Wicd-gtk shows I'm connected to the wrong network
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
wicd |
New
|
Undecided
|
Unassigned |
Bug Description
When two wireless networks have the same ESSID (but different channels), no matter which one I connect to, wicd-gtk shows I'm connected to the one with the lower channel.
Again:
Two wireless networks are available. Both have the ESSID "linksys". One is using channel 1, one is using channel 6. I click "connect" for the one using channel 1. I get connected, and wicd-gtk shows I'm connected to the network using channel 1. I click "disconnect", then for the one using channel 6, I click "connect". I get connected, and wicd-gtk shows I'm connected to the network using channel 1. I click "disconnect" and in the terminal, type: sudo iwconfig wlan0 essid linksys channel 6; sudo dhcpcd wlan0 . I get connected, and wicd-gtk shows I am connected to the network using channel 1.
I have tried this also with the channel 1 network set to refuse connections from my MAC address, so I know I'm connected to the network using channel 6. But wicd-gtk still shows I'm connected to the one using channel 1.
This patched fixed the same issue using wicd-curses. I bet it fixes wicd-gtk as well.
Note: Ideally we'd modify GetApBssid to also accept an iwconfig parameter so we don't have to do extra work. BUT, this was causing dbus errors for me that I didn't have time to dig into, so I went with the simple option which has one extra call to iwconfig every time GetCurrentNetworkID is called.
=== modified file 'wicd/wicd- daemon. py' rkID(self, iwconfig=None):
currentESSID = self.GetCurrent Network( iwconfig) LastScan) ): x]['essid' ] == currentESSID: x]['essid' ] == currentESSID and self.LastScan[ x]['bssid' ] == currentBSSID:
return x orkID: Returning -1, current network not found'
--- wicd/wicd-daemon.py 2012-11-22 08:02:04 +0000
+++ wicd/wicd-daemon.py 2014-05-28 23:29:37 +0000
@@ -1177,8 +1177,9 @@
def GetCurrentNetwo
""" Returns the id of the current network, or -1 if its not found. """
+ currentBSSID = self.GetApBssid()
for x in xrange(0, len(self.
- if self.LastScan[
+ if self.LastScan[
if self.debug_mode:
print 'GetCurrentNetw