Merge commit 'origin/bug_203_fix_wrong_networkstate' into experimental
authoracid-burn <acid-burn@opendreambox.org>
Thu, 17 Dec 2009 11:11:35 +0000 (12:11 +0100)
committeracid-burn <acid-burn@opendreambox.org>
Thu, 17 Dec 2009 11:11:35 +0000 (12:11 +0100)
lib/python/Components/Network.py
lib/python/Screens/NetworkSetup.py

index f65d609..bd10d9c 100755 (executable)
@@ -24,6 +24,7 @@ class Network:
                self.activateConsole = Console()
                self.resetNetworkConsole = Console()
                self.DnsConsole = Console()
+               self.PingConsole = Console()
                self.config_ready = None
                self.getInterfaces()
 
@@ -475,10 +476,17 @@ class Network:
 
        def getLinkStateFinished(self, result, retval,extra_args):
                (callback) = extra_args
+
                if self.LinkConsole is not None:
                        if len(self.LinkConsole.appContainers) == 0:
                                callback(result)
                        
+       def stopPingConsole(self):
+               if self.PingConsole is not None:
+                       if len(self.PingConsole.appContainers):
+                               for name in self.PingConsole.appContainers.keys():
+                                       self.PingConsole.kill(name)
+
        def stopLinkStateConsole(self):
                if self.LinkConsole is not None:
                        if len(self.LinkConsole.appContainers):
index e16f26f..b32ebaf 100755 (executable)
@@ -712,7 +712,7 @@ class AdapterSetupConfiguration(Screen, HelpableScreen):
                self.onClose.append(self.cleanup)
 
        def ok(self):
-               self.stopCheckNetworkConsole()
+               self.cleanup()
                if self["menulist"].getCurrent()[1] == 'edit':
                        if self.iface == 'wlan0' or self.iface == 'ath0':
                                try:
@@ -927,7 +927,11 @@ class AdapterSetupConfiguration(Screen, HelpableScreen):
                                        self.LinkState = True
                                else:
                                        self.LinkState = False
-               iNetwork.checkNetworkState(self.checkNetworkCB)
+               if self.LinkState == True:
+                       iNetwork.checkNetworkState(self.checkNetworkCB)
+               else:
+                       self["statuspic"].setPixmapNum(1)
+                       self["statuspic"].show()                        
 
        def showErrorMessage(self):
                self.session.open(MessageBox, self.errortext, type = MessageBox.TYPE_INFO,timeout = 10 )
@@ -935,7 +939,7 @@ class AdapterSetupConfiguration(Screen, HelpableScreen):
        def cleanup(self):
                iNetwork.stopLinkStateConsole()
                iNetwork.stopDeactivateInterfaceConsole()
-               self.stopCheckNetworkConsole()
+               iNetwork.stopPingConsole()
                try:
                        from Plugins.SystemPlugins.WirelessLan.Wlan import iStatus
                except ImportError:
@@ -944,14 +948,17 @@ class AdapterSetupConfiguration(Screen, HelpableScreen):
                        iStatus.stopWlanConsole()
 
        def getInfoCB(self,data,status):
+               self.LinkState = None
                if data is not None:
                        if data is True:
                                if status is not None:
                                        if status[self.iface]["acesspoint"] == "No Connection" or status[self.iface]["acesspoint"] == "Not-Associated" or status[self.iface]["acesspoint"] == False:
+                                               self.LinkState = False
                                                self["statuspic"].setPixmapNum(1)
+                                               self["statuspic"].show()
                                        else:
-                                               self["statuspic"].setPixmapNum(0)
-                                       self["statuspic"].show()
+                                               self.LinkState = True
+                                               iNetwork.checkNetworkState(self.checkNetworkCB)
 
        def checkNetworkCB(self,data):
                if iNetwork.getAdapterAttribute(self.iface, "up") is True:
@@ -960,17 +967,14 @@ class AdapterSetupConfiguration(Screen, HelpableScreen):
                                        self["statuspic"].setPixmapNum(0)
                                else:
                                        self["statuspic"].setPixmapNum(1)
+                               self["statuspic"].show()        
                        else:
                                self["statuspic"].setPixmapNum(1)
+                               self["statuspic"].show()
                else:
                        self["statuspic"].setPixmapNum(1)
-               self["statuspic"].show()
+                       self["statuspic"].show()
 
-       def stopCheckNetworkConsole(self):
-               if iNetwork.PingConsole is not None:
-                       if len(iNetwork.PingConsole.appContainers):
-                               for name in iNetwork.PingConsole.appContainers.keys():
-                                       iNetwork.PingConsole.kill(name)
 
 class NetworkAdapterTest(Screen):      
        def __init__(self, session,iface):
@@ -1389,4 +1393,4 @@ class NetworkAdapterTest(Screen):
                        pass
                else:
                        iStatus.stopWlanConsole()
-                       
+