diff options
| author | Michael Biebl <biebl@debian.org> | 2020-10-05 22:27:18 +0200 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2020-10-05 22:27:18 +0200 |
| commit | aafc1dbe4712c86189bbc1d4d54ad8cb4c69be7e (patch) | |
| tree | a2a9bb4d007339a0b1304540388230ccedac32bd /examples/python/dbus/is-wwan-default.py | |
| parent | e7b44ef4c80907346ec7492a09c45277459924fc (diff) | |
New upstream version 1.27.90 upstream/1.27.90
Diffstat (limited to 'examples/python/dbus/is-wwan-default.py')
| -rwxr-xr-x | examples/python/dbus/is-wwan-default.py | 65 |
1 files changed, 8 insertions, 57 deletions
diff --git a/examples/python/dbus/is-wwan-default.py b/examples/python/dbus/is-wwan-default.py index 38dc1735..18279db0 100755 --- a/examples/python/dbus/is-wwan-default.py +++ b/examples/python/dbus/is-wwan-default.py @@ -8,30 +8,24 @@ import dbus, sys # This example indicates whether the default network connection is known to be WWAN -NM_DEVICE_TYPE_MODEM = 8 -NM_DEVICE_TYPE_BLUETOOTH = 5 -NM_SERVICE_NAME = "org.freedesktop.NetworkManager" -NM_MANAGER_IFACE = "org.freedesktop.NetworkManager" -DBUS_PROPS_IFACE = "org.freedesktop.DBus.Properties" - -NM_ACTIVE_CONNECTION_INTERFACE = "org.freedesktop.NetworkManager.Connection.Active" - bus = dbus.SystemBus() # Exit early if NetworkManager is not running proxy = bus.get_object("org.freedesktop.DBus", "/org/freedesktop/DBus") busdaemon = dbus.Interface(proxy, "org.freedesktop.DBus") -if not busdaemon.NameHasOwner(NM_SERVICE_NAME): +if not busdaemon.NameHasOwner("org.freedesktop.NetworkManager"): print("NetworkManager not running") sys.exit(1) # Get a proxy for the NetworkManager object -proxy = bus.get_object(NM_SERVICE_NAME, "/org/freedesktop/NetworkManager") -manager = dbus.Interface(proxy, NM_MANAGER_IFACE) -props = dbus.Interface(proxy, DBUS_PROPS_IFACE) +proxy = bus.get_object( + "org.freedesktop.NetworkManager", "/org/freedesktop/NetworkManager" +) +props = dbus.Interface(proxy, "org.freedesktop.DBus.Properties") - -def found_connection_type(ctype): +# Shortcut #1, for NM 1.0 +try: + ctype = props.Get("org.freedesktop.NetworkManager", "PrimaryConnectionType") if ctype == "": print("No active connection") elif ctype in ["gsm", "cdma", "bluetooth"]: @@ -40,48 +34,5 @@ def found_connection_type(ctype): print("WWAN is not default") sys.exit(0) - -# Shortcut #1, for NM 1.0 -try: - ctype = props.Get(NM_MANAGER_IFACE, "PrimaryConnectionType") - found_connection_type(ctype) -except KeyError: - pass - -# Shortcut #2, for NM 0.9.10 -try: - primary = props.Get(NM_MANAGER_IFACE, "PrimaryConnection") - if not primary: - found_connection_type("") - primary_proxy = bus.get_object(NM_SERVICE_NAME, primary) - primary_props = dbus.Interface(primary_proxy, DBUS_PROPS_IFACE) - ctype = primary_props.Get(NM_ACTIVE_CONNECTION_INTERFACE, "Type") - found_connection_type(ctype) except KeyError: pass - -# Fallback for NM 0.9.8 and earlier; look through all active network -# connections for the default one -default_is_wwan = False -active = props.Get(NM_MANAGER_IFACE, "ActiveConnections") -for a in active: - a_proxy = bus.get_object(NM_SERVICE_NAME, a) - a_props = dbus.Interface(a_proxy, DBUS_PROPS_IFACE) - all_props = a_props.GetAll(NM_ACTIVE_CONNECTION_INTERFACE) - - # Ignore this network connection if it's not default for IPv4 or IPv6 - if all_props["Default"] == False and all_props["Default6"] == False: - continue - - dev_path = all_props["Devices"][0] - dev_proxy = bus.get_object(NM_SERVICE_NAME, dev_path) - dev_props = dbus.Interface(dev_proxy, DBUS_PROPS_IFACE) - devtype = dev_props.Get("org.freedesktop.NetworkManager.Device", "DeviceType") - if devtype == NM_DEVICE_TYPE_MODEM or devtype == NM_DEVICE_TYPE_BLUETOOTH: - default_is_wwan = True - break - -if default_is_wwan: - print("WWAN is default") -else: - print("WWAN is not default") |