summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2012-12-04 12:06:40 +0000
committerFelix Fietkau <nbd@openwrt.org>2012-12-04 12:06:40 +0000
commit8516ddb133b3ab28b17bbbba165b641a13624ee4 (patch)
treee6130c58e3a425679bcec16b41627e1bc00582f8
parentd3cda519947676e9dcdc29c12071a365c941dafb (diff)
downloadmtk-20170518-8516ddb133b3ab28b17bbbba165b641a13624ee4.zip
mtk-20170518-8516ddb133b3ab28b17bbbba165b641a13624ee4.tar.gz
mtk-20170518-8516ddb133b3ab28b17bbbba165b641a13624ee4.tar.bz2
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> SVN-Revision: 34470
-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 4bf035e..19b157e 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 d60c26f..ab4288b 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() {