[telepathy-mission-control/master] mcd-account: remove password on a NULL value argument to set_parameter

Jonny Lamb jonny.lamb at collabora.co.uk
Mon Sep 14 11:09:19 PDT 2009


Signed-off-by: Jonny Lamb <jonny.lamb at collabora.co.uk>
---
 src/mcd-account.c |   25 ++++++++++++++++++-------
 1 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/src/mcd-account.c b/src/mcd-account.c
index 71a14a3..441f0aa 100644
--- a/src/mcd-account.c
+++ b/src/mcd-account.c
@@ -383,7 +383,7 @@ keyring_set_cb (GnomeKeyringResult result,
     }
     else
     {
-        DEBUG ("Set secret parameter %s in keyring", data->name);
+        DEBUG ("Set/deleted secret parameter %s in keyring", data->name);
     }
 
     if (data->callback != NULL)
@@ -437,12 +437,23 @@ set_parameter (McdAccount *account, const gchar *name, const GValue *value,
                 display_name = g_strdup_printf ("Password for account %s",
                                                 priv->unique_name);
 
-                gnome_keyring_store_password (&keyring_schema, GNOME_KEYRING_DEFAULT,
-                                              display_name, g_value_get_string (value),
-                                              keyring_set_cb, data, NULL,
-                                              "account", priv->unique_name,
-                                              "param", name,
-                                              NULL);
+                if (value != NULL)
+                {
+                    gnome_keyring_store_password (&keyring_schema, GNOME_KEYRING_DEFAULT,
+                                                  display_name, g_value_get_string (value),
+                                                  keyring_set_cb, data, NULL,
+                                                  "account", priv->unique_name,
+                                                  "param", name,
+                                                  NULL);
+                }
+                else
+                {
+                    gnome_keyring_delete_password (&keyring_schema, keyring_set_cb,
+                                                   data, NULL,
+                                                   "account", priv->unique_name,
+                                                   "param", name,
+                                                   NULL);
+                }
                 g_free (display_name);
                 return;
             }
-- 
1.5.6.5




More information about the telepathy-commits mailing list