diff options
author | jow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2013-06-17 11:59:29 +0000 |
---|---|---|
committer | jow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2013-06-17 11:59:29 +0000 |
commit | d6c58ab4df263261596dd91b6f401761b77e9954 (patch) | |
tree | 48756df1cf5ab189f3c58e8f7a77a2fa2ae8655e /package/network/services/hostapd/files/hostapd.sh | |
parent | d749dd4b04157515752d3f1c3ed34339af7fc21a (diff) |
hostapd: correctly handle macfile uci option
Make hostapd.sh correctly handle the macfile uci option.
Such option specifies the macfile name to pass into the
hostapd configuration file. Moreover, if a maclist option
has been specified, copy the macfile before appending new
entries.
Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36944 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/network/services/hostapd/files/hostapd.sh')
-rw-r--r-- | package/network/services/hostapd/files/hostapd.sh | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/package/network/services/hostapd/files/hostapd.sh b/package/network/services/hostapd/files/hostapd.sh index 00c6a094cf..8d6f30538d 100644 --- a/package/network/services/hostapd/files/hostapd.sh +++ b/package/network/services/hostapd/files/hostapd.sh @@ -215,10 +215,31 @@ hostapd_set_bss_options() { esac fi - config_get macfilter "$vif" macfilter - macfile="/var/run/hostapd-$ifname.maclist" - [ -e "$macfile" ] && rm -f "$macfile" + config_get macfile "$vif" macfile + config_get maclist "$vif" maclist + if [ -z "$macfile" ] + then + # if no macfile has been specified, fallback to the default name + macfile="/var/run/hostapd-$ifname.maclist" + else + if [ -n "$maclist" ] + then + # to avoid to overwrite the original file, make a copy + # before appending the entries specified by the maclist + # option + cp $macfile $macfile.maclist + macfile=$macfile.maclist + fi + fi + + if [ -n "$maclist" ] + then + for mac in $maclist; do + echo "$mac" >> $macfile + done + fi + config_get macfilter "$vif" macfilter case "$macfilter" in allow) append "$var" "macaddr_acl=1" "$N" @@ -229,12 +250,6 @@ hostapd_set_bss_options() { 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() { |