about summary refs log tree commit diff
path: root/examples/python/gi/dns.py
diff options
context:
space:
mode:
authorJeremy Bicha <jeremy.bicha@canonical.com>2022-08-18 08:31:29 -0400
committerJeremy Bicha <jeremy.bicha@canonical.com>2022-08-18 08:31:29 -0400
commitb0887dd4d035acc0d84aa859748d36891548eaaf (patch)
treec4dc0dae50954f3c8fb600aa9e7cfaabeb80deb0 /examples/python/gi/dns.py
parent1a62dcfdc0470be37743914da69fe0b0677c6bfb (diff)
parent4741f1a52215c7ba466140912084d6906185bef3 (diff)
Merge branch 'debian/master' into ubuntu/master
Diffstat (limited to 'examples/python/gi/dns.py')
-rwxr-xr-xexamples/python/gi/dns.py50
1 files changed, 50 insertions, 0 deletions
diff --git a/examples/python/gi/dns.py b/examples/python/gi/dns.py
new file mode 100755
index 00000000..483fe25f
--- /dev/null
+++ b/examples/python/gi/dns.py
@@ -0,0 +1,50 @@
+#!/usr/bin/env python
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+# Copyright (C) 2016 Red Hat, Inc.
+#
+
+import gi
+
+gi.require_version("NM", "1.0")
+from gi.repository import GLib, NM
+
+#  This example shows how to monitor the DNS configuration
+
+main_loop = None
+
+
+def handle_config(config):
+    print(" ---- new configuration ----")
+    for entry in config:
+        print(" * servers: %s" % ", ".join(map(str, entry.get_nameservers())))
+
+        domains = entry.get_domains()
+        if domains and domains[0]:
+            print("   domains: %s" % ", ".join(map(str, domains)))
+
+        if entry.get_interface():
+            print("   interface: %s" % entry.get_interface())
+
+        print("   priority: %d" % entry.get_priority())
+
+        if entry.get_vpn():
+            print("   vpn: yes")
+
+        print("")
+
+
+def dns_config_changed(self, property):
+    handle_config(self.get_dns_configuration())
+
+
+main_loop = None
+
+if __name__ == "__main__":
+    c = NM.Client.new(None)
+    c.connect("notify::dns-configuration", dns_config_changed)
+
+    handle_config(c.get_dns_configuration())
+
+    main_loop = GLib.MainLoop()
+    main_loop.run()