diff options
author | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2011-01-26 11:33:54 +0000 |
---|---|---|
committer | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2011-01-26 11:33:54 +0000 |
commit | 9eacd21000c25da72cd5d6938a38a1e1106ca384 (patch) | |
tree | 30cbf474d9379b94afec2a7ee46bd8e90e2610f0 /package/mac80211/files/lib | |
parent | 10b359c8c94efee57377b579b5fdae41aaf9e51f (diff) |
mac80211: Add mac address filter configuration for hostapd
Add support of mac address filter. Now 'macfilter' and 'maclist' options
can be used with mac80211.
Patch from: kentarou matsuyama <matsuyama@thinktube.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@25105 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/mac80211/files/lib')
-rw-r--r-- | package/mac80211/files/lib/wifi/mac80211.sh | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/package/mac80211/files/lib/wifi/mac80211.sh b/package/mac80211/files/lib/wifi/mac80211.sh index b20785cf6..251c2f13d 100644 --- a/package/mac80211/files/lib/wifi/mac80211.sh +++ b/package/mac80211/files/lib/wifi/mac80211.sh @@ -6,6 +6,9 @@ mac80211_hostapd_setup_base() { local ifname="$2" cfgfile="/var/run/hostapd-$phy.conf" + macfile="/var/run/hostapd-$phy.maclist" + [ -e "$macfile" ] && rm -f "$macfile" + config_get device "$vif" device config_get country "$device" country config_get hwmode "$device" hwmode @@ -30,7 +33,25 @@ mac80211_hostapd_setup_base() { [ -n "$ht_capab" ] && append base_cfg "ht_capab=$ht_capab" "$N" } } - cat > "$cfgfile" <<EOF + + config_get macfilter "$vif" macfilter + case "$macfilter" in + allow) + append base_cfg "macaddr_acl=1" "$N" + append base_cfg "accept_mac_file=$macfile" "$N" + ;; + deny) + append base_cfg "macaddr_acl=0" "$N" + append base_cfg "deny_mac_file=$macfile" "$N" + ;; + esac + config_get maclist "$vif" maclist + [ -n "$maclist" ] && { + for mac in $maclist; do + echo "$mac" >> $macfile + done + } + cat >> "$cfgfile" <<EOF ctrl_interface=/var/run/hostapd-$phy driver=nl80211 wmm_ac_bk_cwmin=4 |