about summary refs log tree commit diff
path: root/examples/python/gi/dns.py
diff options
context:
space:
mode:
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()