From 6466c45d74d7b0603e27c0584685fa81578cf261 Mon Sep 17 00:00:00 2001 From: Yann Leboulanger Date: Wed, 1 Nov 2006 16:49:49 +0000 Subject: [PATCH] [gjc] workaround gnome-keyring-daemon bug. see #2595 --- src/common/passwords.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/common/passwords.py b/src/common/passwords.py index 8220c6bbd..b6050bc6a 100644 --- a/src/common/passwords.py +++ b/src/common/passwords.py @@ -33,7 +33,7 @@ class PasswordStorage(object): raise NotImplementedError def save_password(self, account_name, password): raise NotImplementedError - + class SimplePasswordStorage(PasswordStorage): def get_password(self, account_name): @@ -45,8 +45,16 @@ class SimplePasswordStorage(PasswordStorage): class GnomePasswordStorage(PasswordStorage): - def __init__(self): - self.keyring = gnomekeyring.get_default_keyring_sync() + def __init__(self): + # self.keyring = gnomekeyring.get_default_keyring_sync() + + ## above line commented and code below inserted as workaround + ## for the bug http://bugzilla.gnome.org/show_bug.cgi?id=363019 + self.keyring = "default" + try: + gnomekeyring.create_sync(self.keyring, None) + except gnomekeyring.AlreadyExistsError: + pass def get_password(self, account_name): conf = gajim.config.get_per('accounts', account_name, 'password') @@ -73,7 +81,7 @@ class GnomePasswordStorage(PasswordStorage): ## no keyring daemon: in the future, stop using it set_storage(SimplePasswordStorage()) return None - + def save_password(self, account_name, password, update=True): display_name = _('Gajim account %s') % account_name attributes = dict(account_name=str(account_name), gajim=1)