From: John W. Linville <[email protected]>
Probe for hidden SSIDs if initiating pre-authentication scan and SSID
is set for STA interface.
Signed-off-by: John W. Linville <[email protected]>
---
The ternary conditionals are a bit ugly. I guess I could recode it
with temp vars initialized before calling ieee80211_sta_start_scan.
Any other complaints?
net/mac80211/ieee80211_sta.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/net/mac80211/ieee80211_sta.c b/net/mac80211/ieee80211_sta.c
index 007dd08..9f467cc 100644
--- a/net/mac80211/ieee80211_sta.c
+++ b/net/mac80211/ieee80211_sta.c
@@ -3217,7 +3217,10 @@ static int ieee80211_sta_config_auth(struct net_device *dev,
return 0;
} else {
if (ifsta->state != IEEE80211_AUTHENTICATE) {
- ieee80211_sta_start_scan(dev, NULL, 0);
+ ieee80211_sta_start_scan(dev, ifsta->auto_ssid_sel ?
+ NULL : ifsta->ssid,
+ ifsta->auto_ssid_sel ?
+ 0 : ifsta->ssid_len);
ifsta->state = IEEE80211_AUTHENTICATE;
set_bit(IEEE80211_STA_REQ_AUTH, &ifsta->request);
} else
--
John W. Linville
[email protected]
On Tuesday 07 August 2007 13:33, John W. Linville wrote:
> The ternary conditionals are a bit ugly. I guess I could recode it
> with temp vars initialized before calling ieee80211_sta_start_scan.
>
Something more like:
if (ifsta->auto_ssid_sel && ifsta->ssid_len)
ieee80211_sta_start_scan(dev, NULL, 0);
else
ieee80211_sta_start_scan(dev, ifsta->ssid, ifsta->ssid_len);
would be better.
-Michael Wu
On Wed, 2007-08-08 at 00:56 -0700, Michael Wu wrote:
> On Tuesday 07 August 2007 13:33, John W. Linville wrote:
> > The ternary conditionals are a bit ugly. I guess I could recode it
> > with temp vars initialized before calling ieee80211_sta_start_scan.
> >
> Something more like:
>
> if (ifsta->auto_ssid_sel && ifsta->ssid_len)
> ieee80211_sta_start_scan(dev, NULL, 0);
> else
> ieee80211_sta_start_scan(dev, ifsta->ssid, ifsta->ssid_len);
Except you got the condition inverted.
johannes
On Wed, 2007-08-08 at 11:34 +0200, Johannes Berg wrote:
> On Wed, 2007-08-08 at 00:56 -0700, Michael Wu wrote:
> > On Tuesday 07 August 2007 13:33, John W. Linville wrote:
> > > The ternary conditionals are a bit ugly. I guess I could recode it
> > > with temp vars initialized before calling ieee80211_sta_start_scan.
> > >
> > Something more like:
> >
> > if (ifsta->auto_ssid_sel && ifsta->ssid_len)
> > ieee80211_sta_start_scan(dev, NULL, 0);
> > else
> > ieee80211_sta_start_scan(dev, ifsta->ssid, ifsta->ssid_len);
>
> Except you got the condition inverted.
Well, not fully inverted. Shouldn't it be
if (!ifsta->auto_ssid_sel && ifsta->ssid_len)
...(dev, ifsta->ssid, ifsta->ssid_len)
else
...(dev, NULL, 0)
On the other hand, calling with a "anything, 0" probably has the same
effect as calling with "NULL, 0" so the "ifsta->ssid_len" condition can
go away just as linville had it.
johannes
On Wednesday 08 August 2007 02:41, Johannes Berg wrote:
> On the other hand, calling with a "anything, 0" probably has the same
> effect as calling with "NULL, 0" so the "ifsta->ssid_len" condition can
> go away just as linville had it.
>
Yep.
-Michael Wu