summaryrefslogtreecommitdiffstats
path: root/sys/net80211/ieee80211_ioctl.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/net80211/ieee80211_ioctl.c')
-rw-r--r--sys/net80211/ieee80211_ioctl.c12
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;
OpenPOWER on IntegriCloud