From fd088b09f57057808a31964e2bf3d3e979fa20c7 Mon Sep 17 00:00:00 2001 From: Yann Leboulanger Date: Sat, 14 Feb 2009 10:07:31 +0000 Subject: [PATCH] [shivan] network manager 0.7 support. Fixes #4536 --- src/network_manager_listener.py | 53 +++++++++++++++++++++++++-------- 1 file changed, 41 insertions(+), 12 deletions(-) diff --git a/src/network_manager_listener.py b/src/network_manager_listener.py index 710e21818..f8215e8f5 100644 --- a/src/network_manager_listener.py +++ b/src/network_manager_listener.py @@ -25,17 +25,32 @@ import sys from common import gajim def device_now_active(self, *args): + '''For Network Manager 0.6''' for connection in gajim.connections.itervalues(): if gajim.config.get_per('accounts', connection.name, 'listen_to_network_manager') and connection.time_to_reconnect: connection._reconnect() def device_no_longer_active(self, *args): + '''For Network Manager 0.6''' for connection in gajim.connections.itervalues(): if gajim.config.get_per('accounts', connection.name, 'listen_to_network_manager') and connection.connected > 1: connection._disconnectedReconnCB() +def state_changed(state): + '''For Network Manager 0.7''' + if props.Get("org.freedesktop.NetworkManager", "State") == 3: + for connection in gajim.connections.itervalues(): + if gajim.config.get_per('accounts', connection.name, + 'listen_to_network_manager') and connection.time_to_reconnect: + connection._reconnect() + else: + for connection in gajim.connections.itervalues(): + if gajim.config.get_per('accounts', connection.name, + 'listen_to_network_manager') and connection.connected > 1: + connection._disconnectedReconnCB() + supported = False if sys.platform == 'darwin': @@ -44,22 +59,36 @@ else: try: from common.dbus_support import system_bus - bus = system_bus.SystemBus() + bus = system_bus.bus() if 'org.freedesktop.NetworkManager' in bus.list_names(): + nm_object = bus.get_object('org.freedesktop.NetworkManager', + '/org/freedesktop/NetworkManager') + props = dbus.Interface(nm_object,"org.freedesktop.DBus.Properties") + bus.add_signal_receiver(state_changed, + 'StateChanged', + 'org.freedesktop.NetworkManager', + 'org.freedesktop.NetworkManager', + '/org/freedesktop/NetworkManager') supported = True - bus.add_signal_receiver(device_no_longer_active, - 'DeviceNoLongerActive', - 'org.freedesktop.NetworkManager', - 'org.freedesktop.NetworkManager', - '/org/freedesktop/NetworkManager') - bus.add_signal_receiver(device_now_active, - 'DeviceNowActive', - 'org.freedesktop.NetworkManager', - 'org.freedesktop.NetworkManager', - '/org/freedesktop/NetworkManager') except Exception: - pass + try: + if 'org.freedesktop.NetworkManager' in bus.list_names(): + supported = True + + bus.add_signal_receiver(device_no_longer_active, + 'DeviceNoLongerActive', + 'org.freedesktop.NetworkManager', + 'org.freedesktop.NetworkManager', + '/org/freedesktop/NetworkManager') + + bus.add_signal_receiver(device_now_active, + 'DeviceNowActive', + 'org.freedesktop.NetworkManager', + 'org.freedesktop.NetworkManager', + '/org/freedesktop/NetworkManager') + except Exception: + pass # vim: se ts=3: