+ def getNumberOfAdapters(self):
+ return len(self.ifaces)
+
+ def getFriendlyAdapterName(self, x):
+ # maybe this needs to be replaced by an external list.
+ friendlyNames = {
+ "eth0": _("Integrated Ethernet"),
+ "wlan0": _("Wireless")
+ }
+ return friendlyNames.get(x, x) # when we have no friendly name, use adapter name
+
+ def getAdapterName(self, iface):
+ return iface
+
+ def getAdapterList(self):
+ return self.ifaces.keys()
+
+ def getAdapterAttribute(self, iface, attribute):
+ if self.ifaces.has_key(iface):
+ if self.ifaces[iface].has_key(attribute):
+ return self.ifaces[iface][attribute]
+ return None
+
+ def setAdapterAttribute(self, iface, attribute, value):
+ print "setting for adapter", iface, "attribute", attribute, " to value", value
+ if self.ifaces.has_key(iface):
+ self.ifaces[iface][attribute] = value
+
+ def removeAdapterAttribute(self, iface, attribute):
+ if self.ifaces.has_key(iface):
+ if self.ifaces[iface].has_key(attribute):
+ del self.ifaces[iface][attribute]
+
+ def getNameserverList(self):
+ if len(self.nameservers) == 0:
+ return [[0, 0, 0, 0], [0, 0, 0, 0]]
+ else:
+ return self.nameservers
+
+ def clearNameservers(self):
+ self.nameservers = []
+
+ def addNameserver(self, nameserver):
+ if nameserver not in self.nameservers:
+ self.nameservers.append(nameserver)
+
+ def removeNameserver(self, nameserver):
+ if nameserver in self.nameservers:
+ self.nameservers.remove(nameserver)
+
+ def changeNameserver(self, oldnameserver, newnameserver):
+ if oldnameserver in self.nameservers:
+ for i in range(len(self.nameservers)):
+ if self.nameservers[i] == oldnameserver:
+ self.nameservers[i] = newnameserver
+
+ def writeDefaultNetworkConfig(self,mode='lan'):
+ 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")
+ if mode == 'wlan':
+ fp.write("auto wlan0\n")
+ fp.write("iface wlan0 inet dhcp\n")
+ else:
+ fp.write("auto eth0\n")
+ fp.write("iface eth0 inet dhcp\n")
+ fp.write("\n")
+ fp.close()
+
+ def resetNetworkConfig(self,mode='lan'):
+ self.deactivateNetworkConfig()
+ self.writeDefaultNetworkConfig(mode)
+ if mode == 'wlan':
+ os.system("ifconfig eth0 down")
+ os.system("ifconfig wlan0 up")
+ else:
+ os.system("ifconfig eth0 up")
+ os.system("ifconfig wlan0 down")
+
+ def checkNetworkState(self):
+ ok_counter = 0
+ ret1=os.system("ping -c 1 www.dream-multimedia-tv.de")
+ if ret1 != 0:
+ ok_counter = ok_counter + 1
+ ret2=os.system("ping -c 1 www.heise.de")
+ if ret2 != 0:
+ ok_counter = ok_counter + 1
+ ret3=os.system("ping -c 1 www.google.de")
+ if ret2 != 0:
+ ok_counter = ok_counter + 1
+ if ok_counter == 0:
+ return True
+ else:
+ return False
+
+ def restartNetwork(self):
+ iNetwork.deactivateNetworkConfig()
+ iNetwork.activateNetworkConfig()
+
+ def getLinkState(self,iface,callback):
+ self.dataAvail = callback
+ cmd = self.ethtool_bin + " " + iface
+ self.container.appClosed.get().append(self.cmdFinished)
+ self.container.dataAvail.get().append(callback)
+ self.container.execute(cmd)
+
+ def cmdFinished(self,retval):
+ self.container.appClosed.get().remove(self.cmdFinished)
+ self.container.dataAvail.get().remove(self.dataAvail)
+
+iNetwork = Network()
+
+def InitNetwork():
+ pass