mirror of git://git.sysmocom.de/ofono
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.4 KiB
61 lines
1.4 KiB
#!/usr/bin/python3
|
|
|
|
import os
|
|
import sys
|
|
import dbus
|
|
|
|
bus = dbus.SystemBus()
|
|
|
|
manager = dbus.Interface(bus.get_object('org.ofono', '/'),
|
|
'org.ofono.Manager')
|
|
|
|
modems = manager.GetModems()
|
|
|
|
for path, properties in modems:
|
|
if "org.ofono.ConnectionManager" not in properties["Interfaces"]:
|
|
continue
|
|
|
|
connman = dbus.Interface(bus.get_object('org.ofono', path),
|
|
'org.ofono.ConnectionManager')
|
|
|
|
contexts = connman.GetContexts()
|
|
|
|
for path, properties in contexts:
|
|
if properties["Active"] == dbus.Boolean(0):
|
|
continue
|
|
|
|
print("Configuring %s" % (path), file=sys.stderr)
|
|
|
|
settings = properties["Settings"]
|
|
interface = settings["Interface"]
|
|
|
|
if settings["Method"] == "dhcp":
|
|
print(" Run DHCP on interface %s" % (interface),
|
|
file=sys.stderr)
|
|
else:
|
|
address = settings["Address"]
|
|
try:
|
|
gateway = settings["Gateway"]
|
|
except:
|
|
gateway = "0.0.0.0";
|
|
|
|
print(" Interface is %s" % (interface),
|
|
file=sys.stderr)
|
|
print(" IP address is %s" % (address),
|
|
file=sys.stderr)
|
|
print(" Gateway is %s" % (gateway),
|
|
file=sys.stderr)
|
|
|
|
cmd = "ip address add dev " + interface + " " + address
|
|
cmd += "/32"
|
|
os.system(cmd);
|
|
|
|
for i in settings["DomainNameServers"]:
|
|
print(" Nameserver is %s" % (i),
|
|
file=sys.stderr)
|
|
|
|
cmd = "ip route add " + i
|
|
cmd +=" dev " + interface
|
|
os.system(cmd);
|
|
print('', file=sys.stderr)
|