network_manager_listener.py 1.93 KB
Newer Older
1 2
# -*- coding: utf-8 -*-
##	network_manager_listener.py
3 4
## Copyright (C) 2006 Jeffrey C. Ollie <jeff at ocjtech.us>
## Copyright (C) 2006 Stefan Bethge <stefan at lanpartei.de>
5
##
6 7 8
## This file is part of Gajim.
##
## Gajim is free software; you can redistribute it and/or modify
9
## it under the terms of the GNU General Public License as published
10
## by the Free Software Foundation; version 3 only.
11
##
12
## Gajim is distributed in the hope that it will be useful,
13 14 15 16
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU General Public License for more details.
##
17 18 19
## You should have received a copy of the GNU General Public License
## along with Gajim.  If not, see <http://www.gnu.org/licenses/>.
##
20

21
import sys
22 23 24 25
from common import gajim

def device_now_active(self, *args):
	for connection in gajim.connections.itervalues():
26 27 28
		if gajim.config.get_per('accounts', connection.name,
		'listen_to_network_manager') and connection.time_to_reconnect:
			connection._reconnect()
29 30 31

def device_no_longer_active(self, *args):
	for connection in gajim.connections.itervalues():
32 33 34
		if gajim.config.get_per('accounts', connection.name,
		'listen_to_network_manager') and connection.connected > 1:
			connection._disconnectedReconnCB()
35

36 37
supported = False

38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
if sys.platform == 'darwin':
	supported = True
else:
	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')
	except:
		pass