[shivan] network manager 0.7 support. Fixes #4536
This commit is contained in:
		
							parent
							
								
									531ab92651
								
							
						
					
					
						commit
						fd088b09f5
					
				
					 1 changed files with 41 additions and 12 deletions
				
			
		|  | @ -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: | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue