diff options
author | Philipp Hörist <forenjunkie@chello.at> | 2017-05-02 16:32:37 +0300 |
---|---|---|
committer | Philipp Hörist <forenjunkie@chello.at> | 2017-05-02 16:32:37 +0300 |
commit | 30d3f0c2ba41dbc988165e164ac60dbea8060bd6 (patch) | |
tree | d6f29a669e1c5621631e48bfb5ea43d86e793601 /src | |
parent | 2cd6634c0e2a41e60169362daa487a5c7d465c8f (diff) | |
parent | 5e8c9fe590bf8167e98ce186d4d7a125766768f1 (diff) |
Merge branch 'new' into 'master'
Add support for systemd's networkd
See merge request !91
Diffstat (limited to 'src')
-rw-r--r-- | src/network_watcher.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/network_watcher.py b/src/network_watcher.py index 6c6a798ae..6854e5de6 100644 --- a/src/network_watcher.py +++ b/src/network_watcher.py @@ -2,6 +2,7 @@ ## src/network_watcher.py ## ## Copyright (C) 2017 Philipp Hoerist <philipp AT hoerist.com> +## Copyright © 2017 Jörg Sommer <joerg@alea.gnuu.de> ## ## This file is part of Gajim. ## @@ -47,6 +48,11 @@ def signal_received(connection, sender_name, object_path, if interface_name == 'org.freedesktop.NetworkManager': # https://people.freedesktop.org/~lkundrak/nm-docs/nm-dbus-types.html connected = parameters[0] == 70 + elif interface_name == 'org.freedesktop.DBus.Properties' and len(parameters) >= 2 \ + and parameters[0] == 'org.freedesktop.network1.Manager' \ + and 'OperationalState' in parameters[1]: + connected = parameters[1]['OperationalState'] == 'routable' + if connected is not None: GLib.timeout_add_seconds( 2, update_connection_state, @@ -67,6 +73,16 @@ def appeared(connection, name, name_owner, *user_data): Gio.DBusSignalFlags.NONE, signal_received, None) + elif name == 'org.freedesktop.network1': + connection.signal_subscribe( + 'org.freedesktop.network1', + None, + 'PropertiesChanged', + '/org/freedesktop/network1', + None, + Gio.DBusSignalFlags.NONE, + signal_received, + None) def update_connection_state(connected): @@ -82,3 +98,4 @@ def update_connection_state(connected): watch_name('org.freedesktop.NetworkManager') +watch_name('org.freedesktop.network1') |