From a1bf7363c7cf751bae69cd8d95fcdd132e8a721b Mon Sep 17 00:00:00 2001
From: Yann Leboulanger <asterix@lagaule.org>
Date: Tue, 26 Jun 2007 20:59:30 +0000
Subject: [PATCH] better network_manager detection

---
 src/gajim.py                    |  5 ++---
 src/network_manager_listener.py | 40 ++++++++++++++++-----------------
 2 files changed, 22 insertions(+), 23 deletions(-)

diff --git a/src/gajim.py b/src/gajim.py
index 3808697731..d0fcf0c7b2 100755
--- a/src/gajim.py
+++ b/src/gajim.py
@@ -2370,9 +2370,8 @@ class Interface:
 			self.remote_ctrl = None
 
 		if gajim.config.get('networkmanager_support') and dbus_support.supported:
-			try:
-				import network_manager_listener
-			except:
+			import network_manager_listener
+			if not network_manager_listener.supported:
 				print >> sys.stderr, _('Network Manager support not available')
 
 		self.show_vcard_when_connect = []
diff --git a/src/network_manager_listener.py b/src/network_manager_listener.py
index aeeb13a345..00300232a7 100644
--- a/src/network_manager_listener.py
+++ b/src/network_manager_listener.py
@@ -27,23 +27,23 @@ def device_no_longer_active(self, *args):
 		'listen_to_network_manager') and connection.connected > 1:
 			connection._disconnectedReconnCB()
 
-
-from common.dbus_support import system_bus
-
-import dbus
-import dbus.glib
-
-bus = system_bus.SystemBus()
-
-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')
-
+supported = False
+
+try:
+	from common.dbus_support import system_bus
+
+	bus = system_bus.SystemBus()
+
+	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')
-- 
GitLab