promisc mode prevented the call to rxon() in transmit
possibly causing association to fail while running snoopy.
filter = FilterNoDecrypt | FilterMulticast | FilterBeacon;
if(ctlr->prom){
filter |= FilterPromisc;
+ if(bss != nil)
+ ctlr->channel = bss->channel;
bss = nil;
}
if(bss != nil){
return;
}
- if(ctlr->prom == 0)
- if(wn->aid != ctlr->aid
- || wn->channel != ctlr->channel
- || memcmp(wn->bssid, ctlr->bssid, Eaddrlen) != 0)
+ if((wn->channel != ctlr->channel)
+ || (!ctlr->prom && (wn->aid != ctlr->aid || memcmp(wn->bssid, ctlr->bssid, Eaddrlen) != 0)))
rxon(edev, wn);
if(b == nil){