From df0c6b07a83248cd421f8b7df3f21ab069c960bf Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Tue, 24 Nov 2009 00:50:06 +0100 Subject: [PATCH] Add first version of script for applying GPRS settings --- Makefile.am | 3 +- test/process-context-settings | 60 +++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 1 deletion(-) create mode 100755 test/process-context-settings diff --git a/Makefile.am b/Makefile.am index d5e5311f..4b0d7e80 100644 --- a/Makefile.am +++ b/Makefile.am @@ -241,7 +241,8 @@ test_files = test/test-manager test/test-modem test/test-voicecall \ test/list-operators test/dial-number test/hangup-all \ test/receive-sms test/send-sms \ test/list-contexts test/create-context \ - test/activate-context test/deactivate-context + test/activate-context test/deactivate-context \ + test/process-context-settings conf_files = src/ofono.conf plugins/modem.conf diff --git a/test/process-context-settings b/test/process-context-settings new file mode 100755 index 00000000..c984240f --- /dev/null +++ b/test/process-context-settings @@ -0,0 +1,60 @@ +#!/usr/bin/python + +import os +import dbus + +bus = dbus.SystemBus() + +manager = dbus.Interface(bus.get_object('org.ofono', '/'), + 'org.ofono.Manager') + +properties = manager.GetProperties() + +for path in properties["Modems"]: + modem = dbus.Interface(bus.get_object('org.ofono', path), + 'org.ofono.Modem') + + properties = modem.GetProperties() + + if "org.ofono.DataConnectionManager" not in properties["Interfaces"]: + continue + + connmgr = dbus.Interface(bus.get_object('org.ofono', path), + 'org.ofono.DataConnectionManager') + + properties = connmgr.GetProperties() + + for path in properties["PrimaryContexts"]: + context = dbus.Interface(bus.get_object('org.ofono', path), + 'org.ofono.PrimaryDataContext') + + properties = context.GetProperties() + + if properties["Active"] == dbus.Boolean(0): + continue + + print "Configuring %s" % (path) + + settings = properties["Settings"] + + interface = settings["Interface"] + address = settings["Address"] + gateway = settings["Gateway"] + + if settings["Method"] == "dhcp": + print " Run DHCP on interface %s" % (interface) + else: + print " IP address is %s" % (address) + print " Gateway is %s" % (gateway) + + cmd = "ifconfig " + interface + " " + address + cmd += " netmask 255.255.255.255" + os.system(cmd); + + for i in settings["DomainNameServers"]: + print " Nameserver is %s" % (i) + + cmd = "route add -host " + i + cmd +=" dev " + interface + os.system(cmd); + print