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 <[email protected]>
---
 package/mac80211/files/lib/wifi/mac80211.sh       |   20 --------------------
 package/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 eadaa3e..a89696d 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() {
-- 
1.7.7

_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to