fff-hoods: create hoodfile AP earlier

The hidden AP creation is moved to the end of
configurehood, so it is executed right after hoodfile
changes are processed.

When keeping the long sleep before trying to gather hoodfiles
via wireless or ethernet, this should decrease the delay after
hood changes to a minimum, as mesh nodes don't have to wait
until configurehood on VPN nodes is executed a second time.

Because hoodfiles gathered via wireless or ethernet are not
copied to hoodfilewww (which is used to deliver the active
hoodfile via ethernet or wireless), only authoritative hoodfiles
(keyxchange and gateway) trigger the creation of a hidden AP.

Signed-off-by: Fabian Bläse <fabian@blaese.de>
Reviewed-by: Robert Langhammer <rlanghammer@web.de>
Acked-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
[bump PKG_RELEASE]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
This commit is contained in:
Fabian Bläse 2020-05-06 16:48:03 +02:00 committed by Adrian Schmutzler
parent 0264cc48b3
commit c23c98b2cb
2 changed files with 24 additions and 25 deletions

View File

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=fff-hoods
PKG_RELEASE:=12
PKG_RELEASE:=13
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)

View File

@ -38,30 +38,6 @@ hasInternet() {
return 1
}
# Hidden AP check
if [ -s "$hoodfilewww" ] && isGatewayAvailable ; then
needwifi="0"
for radio in $(wifiListRadio); do
freq="$(wifiGetFreq $radio)"
# Break: wXconfig is up
[ "$(uci get "wireless.w${freq}configap.disabled")" = "0" ] && continue
# Break: No mesh interface
[ "$(uci get "wireless.w${freq}mesh.disabled")" = "0" ] || continue
# Enable configap
uci set wireless.w${freq}configap.disabled='0'
uci commit wireless
needwifi="1"
done
if [ "$needwifi" = "1" ]; then
reload_config
sleep 10
fi
fi
if [ -s "$hoodfilelocal" ]; then
# remove webroot hoodfile to prevent offering local hoodfiles to neighbours
rm -f "$hoodfilewww"
@ -247,3 +223,26 @@ else
echo "We haven't got a file. We do nothing. We try it again in 5 minutes...";
exit 0
fi
# Hidden AP check
if [ -s "$hoodfilewww" ] && isGatewayAvailable; then
needwifi="0"
for radio in $(wifiListRadio); do
freq="$(wifiGetFreq $radio)"
# Break: wXconfig is up
[ "$(uci get "wireless.w${freq}configap.disabled")" = "0" ] && continue
# Break: No mesh interface
[ "$(uci get "wireless.w${freq}mesh.disabled")" = "0" ] || continue
# Enable configap
uci set wireless.w${freq}configap.disabled='0'
uci commit wireless
needwifi="1"
done
if [ "$needwifi" = "1" ]; then
reload_config
sleep 10
fi
fi