mac80211/hostapd: short_preamble is a per-vif option and should be enabled by default
[openwrt.git] / package / network / services / hostapd / files / hostapd.sh
index d60c26f..00c6a09 100644 (file)
@@ -12,6 +12,7 @@ hostapd_set_bss_options() {
        config_get_bool disassoc_low_ack "$vif" disassoc_low_ack 1
        config_get max_num_sta "$vif" max_num_sta 0
        config_get max_inactivity "$vif" max_inactivity 0
+       config_get_bool preamble "$vif" short_preamble 1
 
        config_get device "$vif" device
        config_get hwmode "$device" hwmode
@@ -29,6 +30,9 @@ hostapd_set_bss_options() {
                append "$var" "ap_max_inactivity=$max_inactivity" "$N"
        fi
        append "$var" "disassoc_low_ack=$disassoc_low_ack" "$N"
+       if [ "$preamble" -gt 0 ]; then
+               append "$var" "preamble=$preamble" "$N"
+       fi
 
        # Examples:
        # psk-mixed/tkip        => WPA1+2 PSK, TKIP
@@ -210,6 +214,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() {