about summary refs log tree commit diff
path: root/examples/python/dbus/is-wwan-default.py
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2020-10-05 22:27:18 +0200
committerMichael Biebl <biebl@debian.org>2020-10-05 22:27:18 +0200
commitaafc1dbe4712c86189bbc1d4d54ad8cb4c69be7e (patch)
treea2a9bb4d007339a0b1304540388230ccedac32bd /examples/python/dbus/is-wwan-default.py
parente7b44ef4c80907346ec7492a09c45277459924fc (diff)
New upstream version 1.27.90 upstream/1.27.90
Diffstat (limited to 'examples/python/dbus/is-wwan-default.py')
-rwxr-xr-xexamples/python/dbus/is-wwan-default.py65
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")