1
0
mirror of https://github.com/gryf/wicd.git synced 2025-12-21 05:18:02 +01:00

Fixed cancelling a connection not working.

Stopped the gui status bar from updating while the gui is closed, which reduces CPU usage and should hopefully fix problems with hibernation not working while wicd was running.
This commit is contained in:
imdano
2007-12-19 22:35:07 +00:00
parent da4d84b793
commit 8a0a471764
3 changed files with 70 additions and 7 deletions

View File

@@ -679,7 +679,7 @@ class ConnectionWizard(dbus.service.Object):
''' Cancels the wireless connection attempt ''' ''' Cancels the wireless connection attempt '''
print 'canceling connection attempt' print 'canceling connection attempt'
if not self.wifi.connecting_thread == None: if not self.wifi.connecting_thread == None:
self.wifi.connecting_thread.ShouldDie = True self.wifi.connecting_thread.should_die = True
misc.Run("killall dhclient dhclient3 wpa_supplicant") misc.Run("killall dhclient dhclient3 wpa_supplicant")
#end function CancelConnect #end function CancelConnect

3
gui.py
View File

@@ -191,6 +191,7 @@ language['setting_broadcast_address'] = _('Setting broadcast address...')
language['setting_static_dns'] = _('Setting static DNS servers...') language['setting_static_dns'] = _('Setting static DNS servers...')
language['setting_static_ip'] = _('Setting static IP addresses...') language['setting_static_ip'] = _('Setting static IP addresses...')
language['running_dhcp'] = _('Obtaining IP address...') language['running_dhcp'] = _('Obtaining IP address...')
language['aborted'] = _('Connection cancelled')
language['done'] = _('Done connecting...') language['done'] = _('Done connecting...')
######################################## ########################################
@@ -1168,6 +1169,8 @@ class appGui:
def update_statusbar(self): def update_statusbar(self):
#should update the status bar #should update the status bar
#every couple hundred milliseconds #every couple hundred milliseconds
if self.is_visible == False:
return True
wireless_ip = wireless.GetWirelessIP() #do this so that it doesn't lock up. don't know how or why this works wireless_ip = wireless.GetWirelessIP() #do this so that it doesn't lock up. don't know how or why this works
#but it does so we leave it alone :) #but it does so we leave it alone :)
wiredConnecting = wired.CheckIfWiredConnecting() wiredConnecting = wired.CheckIfWiredConnecting()

View File

@@ -139,6 +139,17 @@ class ConnectThread(threading.Thread):
self.lock.release() self.lock.release()
return message return message
def connect_aborted(self, reason):
""" Sets the thread status to aborted in a thread-safe way.
Sets the status to aborted, and also delays returning for
a few seconds to make sure the message is readable
"""
self.SetStatus(reason)
self.is_connecting = False
print 'exiting connection thread'
class Wireless(Controller): class Wireless(Controller):
@@ -378,10 +389,18 @@ class WirelessConnectThread(ConnectThread):
self.is_connecting = True self.is_connecting = True
if self.should_die:
self.connect_aborted('aborted')
return
# Execute pre-connection script if necessary # Execute pre-connection script if necessary
if self.before_script != '' and self.before_script != None: if self.before_script != '' and self.before_script != None:
print 'Executing pre-connection script' print 'Executing pre-connection script'
print misc.ExecuteScript(self.before_script) misc.ExecuteScript(self.before_script)
if self.should_die:
self.connect_aborted('aborted')
return
# Put it down # Put it down
print 'Interface down' print 'Interface down'
@@ -400,6 +419,11 @@ class WirelessConnectThread(ConnectThread):
wiface.StopWPA() wiface.StopWPA()
liface.StopDHCP() liface.StopDHCP()
if self.should_die:
wiface.Up()
self.connect_aborted('aborted')
return
# Check to see if we need to generate a PSK (only for non-ralink # Check to see if we need to generate a PSK (only for non-ralink
# cards). # cards).
if self.wpa_driver != 'ralink legacy': if self.wpa_driver != 'ralink legacy':
@@ -418,6 +442,11 @@ class WirelessConnectThread(ConnectThread):
print 'Attempting to authenticate...' print 'Attempting to authenticate...'
wiface.Authenticate(self.network) wiface.Authenticate(self.network)
if self.should_die:
wiface.Up()
self.connect_aborted('aborted')
return
self.SetStatus('flushing_routing_table') self.SetStatus('flushing_routing_table')
print 'Flushing the routing table...' print 'Flushing the routing table...'
wiface.FlushRoutes() wiface.FlushRoutes()
@@ -431,6 +460,10 @@ class WirelessConnectThread(ConnectThread):
self.SetStatus('interface_up') self.SetStatus('interface_up')
wiface.Up() wiface.Up()
if self.should_die:
self.connect_aborted('aborted')
return
wiface.SetMode(self.network['mode']) wiface.SetMode(self.network['mode'])
wiface.Associate(self.network['essid'], wiface.Associate(self.network['essid'],
self.network['channel'], self.network['bssid']) self.network['channel'], self.network['bssid'])
@@ -446,6 +479,10 @@ class WirelessConnectThread(ConnectThread):
print 'Setting the broadcast address...' + self.network['broadcast'] print 'Setting the broadcast address...' + self.network['broadcast']
wiface.SetAddress(broadcast=self.network['broadcast']) wiface.SetAddress(broadcast=self.network['broadcast'])
if self.should_die:
self.connect_aborted('aborted')
return
if not self.network.get('ip') == None: if not self.network.get('ip') == None:
self.SetStatus('setting_static_ip') self.SetStatus('setting_static_ip')
print 'Setting static IP : ' + self.network['ip'] print 'Setting static IP : ' + self.network['ip']
@@ -470,11 +507,9 @@ class WirelessConnectThread(ConnectThread):
wnettools.SetDNS(self.network.get('dns1'), wnettools.SetDNS(self.network.get('dns1'),
self.network.get('dns2'), self.network.get('dns3')) self.network.get('dns2'), self.network.get('dns3'))
# Save as last used profile if self.should_die:
print 'Saving last used profile' self.connect_aborted('aborted')
config.UnsetLastUsedDefault() # Makes sure there is only one last used profile at a time return
self.network.SetWiredProperty("lastused", True)
config.SaveWiredNetworkProfile(self.profilename)
# Execute post-connection script if necessary # Execute post-connection script if necessary
if misc.Noneify(self.after_script): if misc.Noneify(self.after_script):
@@ -594,11 +629,19 @@ class WiredConnectThread(ConnectThread):
self.is_connecting = True self.is_connecting = True
if self.should_die:
self.connect_aborted('aborted')
return
# Execute pre-connection script if necessary # Execute pre-connection script if necessary
if self.before_script != '' and self.before_script != None: if self.before_script != '' and self.before_script != None:
print 'executing pre-connection script' print 'executing pre-connection script'
misc.ExecuteScript(self.before_script) misc.ExecuteScript(self.before_script)
if self.should_die:
self.connect_aborted('aborted')
return
# Put it down # Put it down
print 'Interface down' print 'Interface down'
self.SetStatus('interface_down') self.SetStatus('interface_down')
@@ -616,6 +659,11 @@ class WiredConnectThread(ConnectThread):
wiface.StopWPA() wiface.StopWPA()
liface.StopDHCP() liface.StopDHCP()
if self.should_die:
liface.Up()
self.connect_aborted('aborted')
return
self.SetStatus('flushing_routing_table') self.SetStatus('flushing_routing_table')
print 'Flushing the routing table...' print 'Flushing the routing table...'
wiface.FlushRoutes() wiface.FlushRoutes()
@@ -626,11 +674,19 @@ class WiredConnectThread(ConnectThread):
self.SetStatus('interface_up') self.SetStatus('interface_up')
liface.Up() liface.Up()
if self.should_die:
self.connect_aborted('aborted')
return
if not self.network.get('broadcast') == None: if not self.network.get('broadcast') == None:
self.SetStatus('setting_broadcast_address') self.SetStatus('setting_broadcast_address')
print 'Setting the broadcast address...' + self.network['broadcast'] print 'Setting the broadcast address...' + self.network['broadcast']
liface.SetAddress(broadcast=self.network['broadcast']) liface.SetAddress(broadcast=self.network['broadcast'])
if self.should_die:
self.connect_aborted('aborted')
return
if self.network.get('ip'): if self.network.get('ip'):
self.SetStatus('setting_static_ip') self.SetStatus('setting_static_ip')
print 'Setting static IP : ' + self.network['ip'] print 'Setting static IP : ' + self.network['ip']
@@ -655,6 +711,10 @@ class WiredConnectThread(ConnectThread):
wnettools.SetDNS(self.network.get('dns1'), wnettools.SetDNS(self.network.get('dns1'),
self.network.get('dns2'), self.network.get('dns3')) self.network.get('dns2'), self.network.get('dns3'))
if self.should_die:
self.connect_aborted('aborted')
return
# Execute post-connection script if necessary # Execute post-connection script if necessary
if misc.Noneify(self.after_script): if misc.Noneify(self.after_script):
print 'executing post connection script' print 'executing post connection script'