self.supplicant_up()
+####
+# WWAN support code, for talking to GSMD
+#
+
+import dnotify
+
+def record(key, value):
+ f = open('/run/gsm-state/.new.' + key, 'w')
+ f.write(value)
+ f.close()
+ os.rename('/run/gsm-state/.new.' + key,
+ '/run/gsm-state/' + key)
+
+def recall(key, nofile = ""):
+ try:
+ fd = open("/run/gsm-state/" + key)
+ l = fd.read(1000)
+ l = l.strip()
+ fd.close()
+ except IOError:
+ l = nofile
+ return l
+
+
class WWAN_iface(iface):
def __init__(self, parent):
self.name = 'GSM/3G'
self.rfkill_name = 'wwan'
self.conf = None
self.iface = 'hso0'
+ self.sim = recall('sim')
self.APN = 'INTERNET'
+ if self.sim == "505023304781083":
+ # exetel mobile internet sim
+ self.APN = 'exetel1'
+ if self.sim == "505023104508131":
+ # My exetel sim card
+ self.APN = 'INTERNET'
iface.__init__(self, parent)
self.can_hotspot = False
+ d = dnotify.dir('/run/gsm-state')
+ self.data_watcher = d.watch('data', self.check_data)
+
+ def check_data(self, f):
+ l = recall('data')
+ if l:
+ self.state = 'active'
+ d = recall('dns').split()
+ f = open("/etc/resolv.conf","w")
+ for s in d:
+ f.write('nameserver %s\n', s)
+ f.close()
+
+ elif self.state = 'active':
+ self.state = 'pending'
+ goject.idle_add(self.recalc)
+
+ def recalc(self):
+ self.parent.update_active()
+ self.set_label()
def get_config(self):
self.config = self.addr + ' APN=%s' % self.APN
def activate(self):
self.rfkill('unblock')
- Popen('/usr/local/bin/gsm-data up', shell=True).wait()
- self.state = 'active'
+ self.state = 'pending'
+ record('data-APN', self.APN)
def shutdown(self):
- Popen('/usr/local/bin/gsm-data down', shell=True).wait()
+ self.state = 'disabled'
+ record('data-APN','')
self.rfkill('block')
class BT_iface(iface):