diff options
author | Marco Pesenti Gritti <mpgritti@gmail.com> | 2008-10-22 16:03:04 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <mpgritti@gmail.com> | 2008-10-22 16:03:04 (GMT) |
commit | 51eb47d2c0f7b7896e3a8c0ea1e2999d754af8cc (patch) | |
tree | 47a31eb2e0fa6e31fdfd431732fc269e06a5cd85 /src/jarabe/model | |
parent | d5185f7ed4464959beed10ab30a1bc10eb9b0d36 (diff) |
Make connection to WEP work. Lots of cleanups left to
in keydialog, really just an hack to make it work there.
Diffstat (limited to 'src/jarabe/model')
-rw-r--r-- | src/jarabe/model/network.py | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/src/jarabe/model/network.py b/src/jarabe/model/network.py index 21047c5..a7a6bd1 100644 --- a/src/jarabe/model/network.py +++ b/src/jarabe/model/network.py @@ -14,6 +14,8 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +import logging + import dbus from sugar import dispatch @@ -49,7 +51,9 @@ class NMSettings(dbus.service.Object): bus = dbus.SystemBus() bus_name = dbus.service.BusName(SETTINGS_SERVICE, bus=bus) dbus.service.Object.__init__(self, bus_name, NM_SETTINGS_PATH) + self.connections = {} + self.secrets_request = dispatch.Signal() @dbus.service.method(dbus_interface=NM_SETTINGS_IFACE, in_signature='', out_signature='ao') @@ -62,8 +66,14 @@ class NMSettings(dbus.service.Object): def add_connection(self, ssid, conn): self.connections[ssid] = conn + conn.secrets_request.connect(self.__secrets_request_cb) self.NewConnection(conn.path) + def __secrets_request_cb(self, sender, **kwargs): + self.secrets_request.send(self, connection=sender, + reply=kwargs['reply'], + error=kwargs['error']) + class NMSettingsConnection(dbus.service.Object): def __init__(self, path, settings, secrets): bus = dbus.SystemBus() @@ -82,12 +92,18 @@ class NMSettingsConnection(dbus.service.Object): return self._settings @dbus.service.method(dbus_interface=NM_SECRETS_IFACE, + async_callbacks=('reply', 'error'), in_signature='sasb', out_signature='a{sa{sv}}') - def GetSecrets(self, setting_name, hints, request_new): - if request_new or self._secrets is None: - self.secrets_request.send(self) + def GetSecrets(self, setting_name, hints, request_new, reply, error): + logging.debug('Secrets requested for connection %s', self.path) - return self._secrets + if request_new or self._secrets is None: + try: + self.secrets_request.send(self, reply=reply, error=error) + except Exception, e: + logging.error(e) + else: + reply(self._secrets) def get_settings(): global _nm_settings |