+ 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")
+ if mode == 'wlan-mpci':
+ fp.write("auto ath0\n")
+ fp.write("iface ath0 inet dhcp\n")
+ if mode == 'lan':
+ 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':
+ system("ifconfig eth0 down")
+ system("ifconfig ath0 down")
+ system("ifconfig wlan0 up")
+ if mode == 'wlan-mpci':
+ system("ifconfig eth0 down")
+ system("ifconfig wlan0 down")
+ system("ifconfig ath0 up")
+ if mode == 'lan':
+ system("ifconfig eth0 up")
+ system("ifconfig wlan0 down")
+ system("ifconfig ath0 down")
+ self.getInterfaces()
+
+ def checkNetworkState(self):
+ # www.dream-multimedia-tv.de, www.heise.de, www.google.de
+ return system("ping -c 1 82.149.226.170") == 0 or \
+ system("ping -c 1 193.99.144.85") == 0 or \
+ system("ping -c 1 209.85.135.103") == 0
+
+ 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)