+ fp = os.popen("ifconfig " + iface)
+ result = fp.readlines()
+ fp.close()
+ data = { 'up': False, 'dhcp': False }
+ for line in result:
+ ip = self.regExpMatch(ipPattern, self.regExpMatch(ipLinePattern, line))
+ netmask = self.regExpMatch(ipPattern, self.regExpMatch(netmaskLinePattern, line))
+ bcast = self.regExpMatch(ipPattern, self.regExpMatch(bcastLinePattern, line))
+ up = self.regExpMatch(upPattern, line)
+ mac = self.regExpMatch(macPattern, line)
+ if ip is not None:
+ data['ip'] = self.convertIP(ip)
+ if netmask is not None:
+ data['netmask'] = self.convertIP(netmask)
+ if bcast is not None:
+ data['bcast'] = self.convertIP(bcast)
+ if up is not None:
+ data['up'] = True
+ if mac is not None:
+ data['mac'] = mac
+ if not data.has_key('ip'):
+ data['dhcp'] = True
+ data['ip'] = [192, 168, 1, 2]
+ data['netmask'] = [255, 255, 255, 0]
+ data['gateway'] = [192, 168, 1, 1]
+
+ fp = os.popen("route -n | grep " + iface)
+ result = fp.readlines()
+ fp.close()
+ for line in result:
+ print line[0:7]
+ if line[0:7] == "0.0.0.0":
+ gateway = self.regExpMatch(ipPattern, line[16:31])
+ if gateway is not None:
+ data['gateway'] = self.convertIP(gateway)
+ return data
+
+ def writeNetworkConfig(self):
+ fp = file('/etc/network/interfaces', 'w')
+ fp.write("# automatically generated by enigma 2\n# do NOT change manually!\n\n")
+ fp.write("auto lo\n")
+ fp.write("iface lo inet loopback\n\n")
+
+ for ifacename, iface in self.ifaces.items():
+ if iface['up'] == True:
+ fp.write("auto " + ifacename + "\n")
+ if iface['dhcp'] == True:
+ fp.write("iface "+ ifacename +" inet dhcp\n")
+ else:
+ fp.write("iface "+ ifacename +" inet static\n")
+ if iface.has_key('ip'):
+ print tuple(iface['ip'])
+ fp.write(" address %d.%d.%d.%d\n" % tuple(iface['ip']))
+ fp.write(" netmask %d.%d.%d.%d\n" % tuple(iface['netmask']))
+ if iface.has_key('gateway'):
+ fp.write(" gateway %d.%d.%d.%d\n" % tuple(iface['gateway']))
+
+ if iface.has_key("configStrings"):
+ fp.write("\n" + iface["configStrings"] + "\n")
+ fp.write("\n")
+ fp.close()
+ self.writeNameserverConfig()
+
+
+ def writeNameserverConfig(self):
+ fp = file('/etc/resolv.conf', 'w')
+ for nameserver in self.nameservers:
+ fp.write("nameserver %d.%d.%d.%d\n" % tuple(nameserver))
+ fp.close()