1
0
mirror of https://github.com/gryf/wicd.git synced 2025-12-29 01:42:33 +01:00

make sure that disconnect scripts are run when the connection is dropped

This commit is contained in:
Adam Blackburn
2009-11-23 12:22:43 -06:00
parent f8ee16fc8d
commit 6164b59691
2 changed files with 15 additions and 0 deletions

View File

@@ -294,6 +294,13 @@ class ConnectionStatus(object):
if (state != self.last_state or (state == misc.WIRELESS and
self.signal_changed)):
daemon.EmitStatusChanged(state, info)
if (state != self.last_state) and (state == misc.NOT_CONNECTED) and \
(not daemon.GetForcedDisconnect()):
daemon.Disconnect()
# Disconnect() sets forced disconnect = True
# so we'll revert that
daemon.SetForcedDisconnect(False)
self.last_state = state
return True
@@ -345,6 +352,10 @@ class ConnectionStatus(object):
# network again. Otherwise just call Autoconnect.
cur_net_id = wireless.GetCurrentNetworkID(self.iwconfig)
if from_wireless and cur_net_id > -1:
# make sure disconnect scripts are run
# before we reconnect
print 'Disconnecting from network'
wireless.DisconnectWireless()
print 'Trying to reconnect to last used wireless ' + \
'network'
wireless.ConnectWireless(cur_net_id)

View File

@@ -1147,6 +1147,8 @@ class WirelessDaemon(dbus.service.Object):
self.wifi.post_disconnect_script = self.GetWirelessProperty(id,
'postdisconnectscript')
print 'Connecting to wireless network ' + str(self.LastScan[id]['essid'])
# disconnect to make sure that scripts are run
self.wifi.Disconnect()
self.daemon.wired_bus.wired.Disconnect()
self.daemon.SetForcedDisconnect(False)
conthread = self.wifi.Connect(self.LastScan[id], debug=self.debug_mode)
@@ -1439,6 +1441,8 @@ class WiredDaemon(dbus.service.Object):
self.wired.pre_disconnect_script = self.GetWiredProperty("predisconnectscript")
self.wired.post_disconnect_script = self.GetWiredProperty("postdisconnectscript")
self.daemon.wireless_bus.wifi.Disconnect()
# make sure disconnect scripts are run
self.wired.Disconnect()
self.daemon.SetForcedDisconnect(False)
self.UnsetWiredLastUsed()
self.config.set(self._cur_wired_prof_name, "lastused", True, write=True)