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>

SVN-Revision: 36944
This commit is contained in:
Jo-Philipp Wich 2013-06-17 11:59:29 +00:00
parent dfea3bae11
commit 541fbfbb9e
1 changed files with 24 additions and 9 deletions

View File

@ -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() {