]> git.pld-linux.org Git - packages/evolution-data-server.git/commitdiff
- applied upstream
authorMarcin Banasiak <marcin.banasiak@gmail.com>
Wed, 28 May 2008 20:36:10 +0000 (20:36 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    evolution-data-server-passwords.patch -> 1.2

evolution-data-server-passwords.patch [deleted file]

diff --git a/evolution-data-server-passwords.patch b/evolution-data-server-passwords.patch
deleted file mode 100644 (file)
index be20492..0000000
+++ /dev/null
@@ -1,324 +0,0 @@
-Index: libedataserverui/e-passwords.c
-===================================================================
---- libedataserverui/e-passwords.c     (wersja 8811)
-+++ libedataserverui/e-passwords.c     (wersja 8815)
-@@ -208,38 +208,50 @@
- }
- static EUri *
--ep_keyring_uri_new (const gchar *string)
-+ep_keyring_uri_new (const gchar *string,
-+                    GError **error)
- {
-       EUri *uri;
-       uri = e_uri_new (string);
--      if (uri == NULL)
--              return NULL;
-+      g_return_val_if_fail (uri != NULL, NULL);
-       /* LDAP URIs do not have usernames, so use the URI as the username. */
-       if (uri->user == NULL && uri->protocol != NULL &&
-                       (strcmp (uri->protocol, "ldap") == 0|| strcmp (uri->protocol, "google") == 0))
-               uri->user = g_strdelimit (g_strdup (string), "/=", '_');
-+      /* Make sure the URI has the required components. */
-+      if (uri->user == NULL && uri->host == NULL) {
-+              g_set_error (
-+                      error, EP_KEYRING_ERROR,
-+                      GNOME_KEYRING_RESULT_BAD_ARGUMENTS,
-+                      _("Keyring key is unusable: no user or host name"));
-+              e_uri_free (uri);
-+              uri = NULL;
-+      }
-+
-       return uri;
- }
- static gboolean
- ep_keyring_validate (const gchar *user,
-                      const gchar *server,
-+                     const gchar *protocol,
-                      GnomeKeyringAttributeList *attributes)
- {
-       const gchar *user_value = NULL;
-       const gchar *server_value = NULL;
-+      const gchar *protocol_value = NULL;
-       gint ii;
-       g_return_val_if_fail (attributes != NULL, FALSE);
-       /* Is there anything to validate? */
--      if (user == NULL && server == NULL)
-+      if (user == NULL && server == NULL && protocol == NULL)
-               return TRUE;
--      /* Look for "user" and "server" attributes. */
-+      /* Look for "user", "server", and "protocol" attributes. */
-       for (ii = 0; ii < attributes->len; ii++) {
-               GnomeKeyringAttribute *attr;
-@@ -250,6 +262,8 @@
-                       user_value = attr->value.string;
-               else if (strcmp (attr->name, "server") == 0)
-                       server_value = attr->value.string;
-+              else if (strcmp (attr->name, "protocol") == 0)
-+                      protocol_value = attr->value.string;
-       }
-       /* Is there a "user" attribute? */
-@@ -268,12 +282,21 @@
-       if (server != NULL && strcmp (server, server_value) != 0)
-               return FALSE;
-+      /* Is there a "protocol" attribute? */
-+      if (protocol != NULL && protocol_value == NULL)
-+              return FALSE;
-+
-+      /* Does it match what we're looking for? */
-+      if (protocol != NULL && strcmp (protocol, protocol_value) != 0)
-+              return FALSE;
-+
-       return TRUE;
- }
- static gboolean
- ep_keyring_delete_passwords (const gchar *user,
-                              const gchar *server,
-+                             const gchar *protocol,
-                              GList *passwords,
-                              GError **error)
- {
-@@ -282,9 +305,14 @@
-               GnomeKeyringResult result;
-               /* Validate the item before deleting it. */
--              if (!ep_keyring_validate (user, server, found->attributes)) {
--                      passwords = g_list_next (passwords);
--                      continue;
-+              if (!ep_keyring_validate (user, server, protocol, found->attributes)) {
-+                      /* XXX We didn't always store protocols in the
-+                       *     keyring, so for backward-compatibility
-+                       *     try validating by user and server only. */
-+                      if (!ep_keyring_validate (user, server, NULL, found->attributes)) {
-+                              passwords = g_list_next (passwords);
-+                              continue;
-+                      }
-               }
-               result = gnome_keyring_item_delete_sync (NULL, found->item_id);
-@@ -306,6 +334,7 @@
- static gboolean
- ep_keyring_insert_password (const gchar *user,
-                             const gchar *server,
-+                            const gchar *protocol,
-                             const gchar *display_name,
-                             const gchar *password,
-                             GError **error)
-@@ -316,6 +345,7 @@
-       g_return_val_if_fail (user != NULL, FALSE);
-       g_return_val_if_fail (server != NULL, FALSE);
-+      g_return_val_if_fail (protocol != NULL, FALSE);
-       g_return_val_if_fail (display_name != NULL, FALSE);
-       g_return_val_if_fail (password != NULL, FALSE);
-@@ -326,6 +356,8 @@
-               attributes, "user", user);
-       gnome_keyring_attribute_list_append_string (
-               attributes, "server", server);
-+      gnome_keyring_attribute_list_append_string (
-+              attributes, "protocol", protocol);
-       /* XXX We don't use item_id but gnome-keyring doesn't allow
-        *     for a NULL pointer.  In fact it doesn't even check! */
-@@ -348,6 +380,7 @@
- static GList *
- ep_keyring_lookup_passwords (const gchar *user,
-                              const gchar *server,
-+                             const gchar *protocol,
-                              GError **error)
- {
-       GnomeKeyringAttributeList *attributes;
-@@ -363,6 +396,9 @@
-       if (server != NULL)
-               gnome_keyring_attribute_list_append_string (
-                       attributes, "server", server);
-+      if (protocol != NULL)
-+              gnome_keyring_attribute_list_append_string (
-+                      attributes, "protocol", protocol);
-       result = gnome_keyring_find_items_sync (
-               GNOME_KEYRING_ITEM_NETWORK_PASSWORD, attributes, &passwords);
-@@ -502,9 +538,9 @@
-       GError *error = NULL;
-       /* Find all Evolution passwords and delete them. */
--      passwords = ep_keyring_lookup_passwords (NULL, NULL, &error);
-+      passwords = ep_keyring_lookup_passwords (NULL, NULL, NULL, &error);
-       if (passwords != NULL) {
--              ep_keyring_delete_passwords (NULL, NULL, passwords, &error);
-+              ep_keyring_delete_passwords (NULL, NULL, NULL, passwords, &error);
-               gnome_keyring_found_list_free (passwords);
-       }
-@@ -532,9 +568,9 @@
-       /* Not finding the requested group is acceptable, but we still
-        * want to leave an informational message on the terminal. */
--        else if (g_error_matches (error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_GROUP_NOT_FOUND)) {
--                g_message ("%s", error->message);
--                g_error_free (error);
-+      else if (g_error_matches (error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_GROUP_NOT_FOUND)) {
-+              g_message ("%s", error->message);
-+              g_error_free (error);
-       } else if (error != NULL)
-               g_propagate_error (&msg->error, error);
-@@ -566,9 +602,9 @@
-       GError *error = NULL;
-       /* Find all Evolution passwords and delete them. */
--      passwords = ep_keyring_lookup_passwords (NULL, NULL, &error);
-+      passwords = ep_keyring_lookup_passwords (NULL, NULL, NULL, &error);
-       if (passwords != NULL) {
--              ep_keyring_delete_passwords (NULL, NULL, passwords, &error);
-+              ep_keyring_delete_passwords (NULL, NULL, NULL, passwords, &error);
-               gnome_keyring_found_list_free (passwords);
-       }
-@@ -641,12 +677,13 @@
-               return;
-       }
--      uri = ep_keyring_uri_new (msg->key);
--      g_return_if_fail (uri != NULL);
-+      uri = ep_keyring_uri_new (msg->key, &msg->error);
-+      if (uri == NULL)
-+              return;
-       /* Only remove the password from the session hash
-        * if the keyring insertion was successful. */
--      if (ep_keyring_insert_password (uri->user, uri->host, msg->key, password, &error))
-+      if (ep_keyring_insert_password (uri->user, uri->host, uri->protocol, msg->key, password, &error))
-               g_hash_table_remove (password_cache, msg->key);
-       if (error != NULL)
-@@ -704,13 +741,21 @@
-       EUri *uri;
-       GError *error = NULL;
--      uri = ep_keyring_uri_new (msg->key);
--      g_return_if_fail (uri != NULL);
-+      uri = ep_keyring_uri_new (msg->key, &msg->error);
-+      if (uri == NULL)
-+              return;
--      /* Find all Evolution passwords matching the URI and delete them. */
--      passwords = ep_keyring_lookup_passwords (uri->user, uri->host, &error);
-+      /* Find all Evolution passwords matching the URI and delete them.
-+       *
-+       * XXX We didn't always store protocols in the keyring, so for
-+       *     backward-compatibility we need to lookup passwords by user
-+       *     and host only (no protocol).  But we do send the protocol
-+       *     to ep_keyring_delete_passwords(), which also knows about
-+       *     the backward-compatibility issue and will filter the list
-+       *     appropriately. */
-+      passwords = ep_keyring_lookup_passwords (uri->user, uri->host, NULL, &error);
-       if (passwords != NULL) {
--              ep_keyring_delete_passwords (uri->user, uri->host, passwords, &error);
-+              ep_keyring_delete_passwords (uri->user, uri->host, uri->protocol, passwords, &error);
-               gnome_keyring_found_list_free (passwords);
-       }
-@@ -739,10 +784,10 @@
-               g_message ("%s", error->message);
-               g_error_free (error);
--        /* Not finding the requested group is also acceptable. */
--        } else if (g_error_matches (error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_GROUP_NOT_FOUND)) {
--                g_message ("%s", error->message);
--                g_error_free (error);
-+      /* Not finding the requested group is also acceptable. */
-+      } else if (g_error_matches (error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_GROUP_NOT_FOUND)) {
-+              g_message ("%s", error->message);
-+              g_error_free (error);
-       } else if (error != NULL)
-               g_propagate_error (&msg->error, error);
-@@ -777,18 +822,19 @@
-       EUri *uri;
-       GError *error = NULL;
--      uri = ep_keyring_uri_new (msg->key);
--      g_return_if_fail (uri != NULL);
-+      uri = ep_keyring_uri_new (msg->key, &msg->error);
-+      if (uri == NULL)
-+              return;
-       /* Find the first Evolution password that matches the URI. */
--      passwords = ep_keyring_lookup_passwords (uri->user, uri->host, &error);
-+      passwords = ep_keyring_lookup_passwords (uri->user, uri->host, uri->protocol, &error);
-       if (passwords != NULL) {
-               GList *iter = passwords;
-               while (iter != NULL) {
-                       GnomeKeyringFound *found = iter->data;
--                      if (ep_keyring_validate (uri->user, uri->host, found->attributes)) {
-+                      if (ep_keyring_validate (uri->user, uri->host, uri->protocol, found->attributes)) {
-                               msg->password = g_strdup (found->secret);
-                               break;
-                       }
-@@ -799,6 +845,36 @@
-               gnome_keyring_found_list_free (passwords);
-       }
-+      if (msg->password != NULL)
-+              goto done;
-+
-+      /* Clear the previous error, if there was one.  If the error was
-+       * something other than NO_MATCH then it's likely to occur again. */
-+      if (error != NULL)
-+              g_clear_error (&error);
-+
-+      /* XXX We didn't always store protocols in the keyring, so for
-+       *     backward-compatibility we also need to lookup passwords
-+       *     by user and host only (no protocol). */
-+      passwords = ep_keyring_lookup_passwords (uri->user, uri->host, NULL, &error);
-+      if (passwords != NULL) {
-+              GList *iter = passwords;
-+
-+              while (iter != NULL) {
-+                      GnomeKeyringFound *found = iter->data;
-+
-+                      if (ep_keyring_validate (uri->user, uri->host, NULL, found->attributes)) {
-+                              msg->password = g_strdup (found->secret);
-+                              break;
-+                      }
-+
-+                      iter = g_list_next (iter);
-+              }
-+
-+              gnome_keyring_found_list_free (passwords);
-+      }
-+
-+done:
-       /* Not finding the requested key is acceptable, but we still
-        * want to leave an informational message on the terminal. */
-       if (g_error_matches (error, EP_KEYRING_ERROR, GNOME_KEYRING_RESULT_NO_MATCH)) {
-@@ -832,10 +908,10 @@
-               g_message ("%s", error->message);
-               g_error_free (error);
--        /* Not finding the requested group is also acceptable. */
--        } else if (g_error_matches (error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_GROUP_NOT_FOUND)) {
--                g_message ("%s", error->message);
--                g_error_free (error);
-+      /* Not finding the requested group is also acceptable. */
-+      } else if (g_error_matches (error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_GROUP_NOT_FOUND)) {
-+              g_message ("%s", error->message);
-+              g_error_free (error);
-       } else if (error != NULL)
-               g_propagate_error (&msg->error, error);
This page took 0.05118 seconds and 4 git commands to generate.