diff options
author | cinap_lenrek <cinap_lenrek@gmx.de> | 2013-02-11 02:02:44 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@gmx.de> | 2013-02-11 02:02:44 +0100 |
commit | 6e0835f7d8255c0f9f66ec349871e2c8da6efaf4 (patch) | |
tree | 7b01fa2b643867b8c755ebea521b47b60381fc4a /sys/src/9/pc/wifi.c | |
parent | 3376977d06e6dc8132dee443c20be6e045321c2f (diff) |
wifi: clear out ssid in node table entry, cleanup
Diffstat (limited to 'sys/src/9/pc/wifi.c')
-rw-r--r-- | sys/src/9/pc/wifi.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/sys/src/9/pc/wifi.c b/sys/src/9/pc/wifi.c index 6212be029..66a130246 100644 --- a/sys/src/9/pc/wifi.c +++ b/sys/src/9/pc/wifi.c @@ -124,7 +124,9 @@ nodelookup(Wifi *wifi, uchar *bssid, int new) return wn; } } - for(wn = nn = wifi->node; wn != &wifi->node[nelem(wifi->node)]; wn++){ + if((nn = wifi->node) == wn) + nn++; + for(wn = wifi->node; wn != &wifi->node[nelem(wifi->node)]; wn++){ if(wn == wifi->bss) continue; if(memcmp(wn->bssid, bssid, Eaddrlen) == 0){ @@ -137,10 +139,12 @@ nodelookup(Wifi *wifi, uchar *bssid, int new) if(!new) return nil; memmove(nn->bssid, bssid, Eaddrlen); - nn->lastseen = MACHP(0)->ticks; - nn->channel = 0; + nn->ssid[0] = 0; + nn->ival = 0; nn->cap = 0; nn->aid = 0; + nn->channel = 0; + nn->lastseen = MACHP(0)->ticks; return nn; } @@ -418,7 +422,7 @@ wifictl(Wifi *wifi, void *buf, long n) } else { strncpy(wifi->essid, cb->f[1], 32); wifi->essid[32] = 0; - for(wn=wifi->node; wn != &wifi->node[nelem(wifi->node)]; wn++) + for(wn = wifi->node; wn != &wifi->node[nelem(wifi->node)]; wn++) if(strcmp(wifi->essid, wn->ssid) == 0){ wifi->bss = wn; wifi->status = Sconn; @@ -449,7 +453,7 @@ wifistat(Wifi *wifi, void *buf, long n, ulong off) p = seprint(p, e, "bssid: %E\n", wn != nil ? wn->bssid : zeros); now = MACHP(0)->ticks; - for(wn=wifi->node; wn != &wifi->node[nelem(wifi->node)]; wn++){ + for(wn = wifi->node; wn != &wifi->node[nelem(wifi->node)]; wn++){ if(wn->lastseen == 0) continue; p = seprint(p, e, "node: %E %.4x %d %ld %d %s\n", |