From 8516ddb133b3ab28b17bbbba165b641a13624ee4 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Tue, 4 Dec 2012 12:06:40 +0000 Subject: [PATCH] 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 SVN-Revision: 34470 --- package/mac80211/files/lib/wifi/mac80211.sh | 20 ------------------ .../network/services/hostapd/files/hostapd.sh | 21 +++++++++++++++++++ 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 4bf035e5f64a..19b157e12dba 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 d60c26f3c685..ab4288b36204 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() { -- 2.30.2