summaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-12-04 12:06:40 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-12-04 12:06:40 +0000
commit9a191df9ced38b36105ad540b1d41be7b2549dac (patch)
treeaf11d75dc85bd0ca03d63b0d034b1dc09192152b /package
parentef22716113d4fb76330c9bca4103512a914ef5fd (diff)
mac80211, hostapd: Fix macfilter for multi bssid setups
Previously only the first macfilter configuration would have been used on all interfaces. However, the configuration was always done per vif already. Hence, move the macfilter setup into hostapd.sh where and create one mac list file per vif. Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34470 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package')
-rw-r--r--package/mac80211/files/lib/wifi/mac80211.sh20
-rw-r--r--package/network/services/hostapd/files/hostapd.sh21
2 files changed, 21 insertions, 20 deletions
diff --git a/package/mac80211/files/lib/wifi/mac80211.sh b/package/mac80211/files/lib/wifi/mac80211.sh
index 4bf035e5f..19b157e12 100644
--- a/package/mac80211/files/lib/wifi/mac80211.sh
+++ b/package/mac80211/files/lib/wifi/mac80211.sh
@@ -6,8 +6,6 @@ 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
@@ -51,24 +49,6 @@ mac80211_hostapd_setup_base() {
config_get_bool country_ie "$device" country_ie "$country_ie"
[ "$country_ie" -gt 0 ] && append base_cfg "ieee80211d=1" "$N"
- 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
- }
-
local br brval brstr
[ -n "$basic_rate_list" ] && {
for br in $basic_rate_list; do
diff --git a/package/network/services/hostapd/files/hostapd.sh b/package/network/services/hostapd/files/hostapd.sh
index d60c26f3c..ab4288b36 100644
--- a/package/network/services/hostapd/files/hostapd.sh
+++ b/package/network/services/hostapd/files/hostapd.sh
@@ -210,6 +210,27 @@ hostapd_set_bss_options() {
;;
esac
fi
+
+ config_get macfilter "$vif" macfilter
+ macfile="/var/run/hostapd-$ifname.maclist"
+ [ -e "$macfile" ] && rm -f "$macfile"
+
+ case "$macfilter" in
+ allow)
+ append "$var" "macaddr_acl=1" "$N"
+ append "$var" "accept_mac_file=$macfile" "$N"
+ ;;
+ deny)
+ append "$var" "macaddr_acl=0" "$N"
+ append "$var" "deny_mac_file=$macfile" "$N"
+ ;;
+ esac
+ config_get maclist "$vif" maclist
+ [ -n "$maclist" ] && {
+ for mac in $maclist; do
+ echo "$mac" >> $macfile
+ done
+ }
}
hostapd_set_log_options() {