| #!/usr/bin/python | |
| import dbus | |
| def extract_values(values): | |
| val = "{" | |
| for key in values.keys(): | |
| val += " " + key + "=" | |
| if key in ["Servers", "Excludes"]: | |
| val += extract_list(values[key]) | |
| else: | |
| val += str(values[key]) | |
| val += " }" | |
| return val | |
| def extract_list(list): | |
| val = "[" | |
| for i in list: | |
| if type(i).__name__ == 'Dictionary': | |
| val += extract_values(i) | |
| elif type(i).__name__ == 'Struct': | |
| val += extract_list(i) | |
| else: | |
| val += " " + str(i) | |
| val += "]" | |
| return val | |
| bus = dbus.SystemBus() | |
| manager = dbus.Interface(bus.get_object('net.connman.vpn', '/'), | |
| 'net.connman.vpn.Manager') | |
| for entry in manager.GetConnections(): | |
| path = entry[0] | |
| properties = entry[1] | |
| print "[ %s ]" % (path) | |
| for key in properties.keys(): | |
| if key in ["IPv4", "IPv6" ]: | |
| val = extract_values(properties[key]) | |
| elif key in ["Nameservers","ServerRoutes","UserRoutes"]: | |
| val = extract_list(properties[key]) | |
| else: | |
| val = str(properties[key]) | |
| print " %s = %s" % (key, val) | |