summaryrefslogtreecommitdiff
path: root/invest-applet/invest/networkmanager.py
diff options
context:
space:
mode:
Diffstat (limited to 'invest-applet/invest/networkmanager.py')
-rw-r--r--invest-applet/invest/networkmanager.py24
1 files changed, 23 insertions, 1 deletions
diff --git a/invest-applet/invest/networkmanager.py b/invest-applet/invest/networkmanager.py
index 152cd862..f1156115 100644
--- a/invest-applet/invest/networkmanager.py
+++ b/invest-applet/invest/networkmanager.py
@@ -1,14 +1,36 @@
import mate_invest
+from mate_invest.defs import NETWORKMANAGER_VERSION
from dbus.mainloop.glib import DBusGMainLoop
import dbus
-# possible states, see http://projects.mate.org/NetworkManager/developers/spec-08.html#type-NM_STATE
+# possible states, see http://projects.gnome.org/NetworkManager/developers/ -> spec 0.8 -> NM_STATE
STATE_UNKNOWN = dbus.UInt32(0)
STATE_ASLEEP = dbus.UInt32(1)
STATE_CONNECTING = dbus.UInt32(2)
STATE_CONNECTED = dbus.UInt32(3)
STATE_DISCONNEDTED = dbus.UInt32(4)
+# numerical values of these states depend on the network manager version, they changed with 0.8.995
+fields = NETWORKMANAGER_VERSION.split('.')
+if len(fields) >= 2:
+ major = int(fields[0])
+ minor = int(fields[1])
+ if len(fields) > 2:
+ micro = int(fields[2])
+
+ if major > 0 or major == 0 and (minor >= 9 or len(fields) > 2 and minor == 8 and micro >= 995):
+ # see http://projects.gnome.org/NetworkManager/developers/ -> spec 0.9 -> NM_STATE
+ print("Found NetworkManager spec 0.9 (%s)" % NETWORKMANAGER_VERSION)
+ STATE_UNKNOWN = dbus.UInt32(0)
+ STATE_ASLEEP = dbus.UInt32(10)
+ STATE_DISCONNECTED = dbus.UInt32(20)
+ STATE_DISCONNECTING = dbus.UInt32(30)
+ STATE_CONNECTING = dbus.UInt32(40)
+ STATE_CONNECTED_LOCAL = dbus.UInt32(50)
+ STATE_CONNECTED_SITE = dbus.UInt32(60)
+ STATE_CONNECTED_GLOBAL = dbus.UInt32(70)
+ STATE_CONNECTED = STATE_CONNECTED_GLOBAL # backward compatibility with < 0.9
+
class NetworkManager:
def __init__(self):
self.state = STATE_UNKNOWN