1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 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()
|