diff options
author | sam <sam@FreeBSD.org> | 2005-07-06 15:38:27 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2005-07-06 15:38:27 +0000 |
commit | 61cabe0353ae9b0d47fc3d68e8019caae3ba11dc (patch) | |
tree | dcd8b59c98c47887d9c8ba7d66a7413d7da703f1 /sys/net80211/ieee80211_ioctl.c | |
parent | d0d10216310971a993ad53165ee8e5e4244c5a36 (diff) | |
download | FreeBSD-src-61cabe0353ae9b0d47fc3d68e8019caae3ba11dc.zip FreeBSD-src-61cabe0353ae9b0d47fc3d68e8019caae3ba11dc.tar.gz |
add "pureg" mode for ap operation: reject association requests from
11b-only stations when operating in 11g
Reviewed by: avatar
Approved by: re (scottl)
Diffstat (limited to 'sys/net80211/ieee80211_ioctl.c')
-rw-r--r-- | sys/net80211/ieee80211_ioctl.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/sys/net80211/ieee80211_ioctl.c b/sys/net80211/ieee80211_ioctl.c index 490b567..83ac126 100644 --- a/sys/net80211/ieee80211_ioctl.c +++ b/sys/net80211/ieee80211_ioctl.c @@ -1451,6 +1451,9 @@ ieee80211_ioctl_get80211(struct ieee80211com *ic, u_long cmd, struct ieee80211re /* NB: get from ic_bss for station mode */ ireq->i_val = ic->ic_bss->ni_intval; break; + case IEEE80211_IOC_PUREG: + ireq->i_val = (ic->ic_flags & IEEE80211_F_PUREG) != 0; + break; default: error = EINVAL; break; @@ -2316,6 +2319,15 @@ ieee80211_ioctl_set80211(struct ieee80211com *ic, u_long cmd, struct ieee80211re } else error = EINVAL; break; + case IEEE80211_IOC_PUREG: + if (ireq->i_val) + ic->ic_flags |= IEEE80211_F_PUREG; + else + ic->ic_flags &= ~IEEE80211_F_PUREG; + /* NB: reset only if we're operating on an 11g channel */ + if (ic->ic_curmode == IEEE80211_MODE_11G) + error = ENETRESET; + break; default: error = EINVAL; break; |