[PATCH] configurehood: Improve conditions for configap setup
Tim Niemeyer
tim at tn-x.org
Sa Feb 10 19:34:09 CET 2018
Hi
Reviewed-by: Tim Niemeyer <tim at tn-x.org>
Tim
Am 7. Februar 2018 15:28:33 MEZ schrieb Adrian Schmutzler <freifunk at adrianschmutzler.de>:
>This addresses a bunch of issues:
>- Previously, only the presence of w2configap was checked. With
> only 5 GHz, this would have caused a recreation every 5 min.
> (Note that this is only valid for a 5 GHz only device, as we
> always create all interfaces for disabled radios)
>- The two outer if-statements are merged
>- We now check for presence of wXmesh to enable wXconfigap. Although
> this is no necessity (as the hood file contains the whole config)
> this assumes that a disabled wXmesh means no intent of the owner
> to connect to other devices on this radio.
>- With the dependency of wXconfigap from wXmesh, this patch now
> enables the deactivation of hood file transmitting by disabling
> meshing in the hood file
>
>Signed-off-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
>---
>.../fff/fff-hoods/files/usr/sbin/configurehood | 41
>++++++++++++----------
> 1 file changed, 22 insertions(+), 19 deletions(-)
>
>diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>index 80e82ec..90d81d1 100755
>--- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>+++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>@@ -38,27 +38,30 @@ hasInternet() {
>
> # Hidden AP check
>
>-if [ -s "$hoodfilecopy" ] && ! uci -q get wireless.w2configap >
>/dev/null ; then
>- if isGatewayAvailable ; then
>-
>- for radio in $(uci show wireless | sed -n
>'s,.*\.\([a-z0-9]*\)=wifi-device,\1,p'); do
>- channel=$(uci get "wireless.${radio}.channel")
>- iface="configap2"
>- if [ "$channel" -gt "14" ]; then
>- iface="configap5"
>- fi
>- uci set network.${iface}=interface
>- uci set network.${iface}.proto='static'
>- uci set network.${iface}.ip6addr='fe80::1/64'
>- if ! wifiAddAP "$radio" "config.franken.freifunk.net" "$iface"
>"configap" "1"; then
>- echo "Can't add Config interface on $radio."
>- exit 1
>- fi
>- done
>+if [ -s "$hoodfilecopy" ] && isGatewayAvailable ; then
>+ for radio in $(uci show wireless | sed -n
>'s,.*\.\([a-z0-9]*\)=wifi-device,\1,p'); do
>+ freq="2"
>+ if [ "$(uci get "wireless.${radio}.channel")" -gt "14" ]; then
>+ freq="5"
>+ fi
>+ # Break: wXconfig is up
>+ uci -q get "wireless.w${freq}configap" > /dev/null && continue
>+ # Break: No mesh interface
>+ (uci -q get "wireless.w${freq}mesh" > /dev/null || uci -q get
>"wireless.w${freq}ibss" > /dev/null) || continue
>+
>+ # Create configap
>+ iface="configap$freq"
>+ uci set network.${iface}=interface
>+ uci set network.${iface}.proto='static'
>+ uci set network.${iface}.ip6addr='fe80::1/64'
> uci commit network
>+ if ! wifiAddAP "$radio" "config.franken.freifunk.net" "$iface"
>"configap" "1"; then
>+ echo "Can't add Config interface on $radio."
>+ exit 1
>+ fi
>+ done
>
>- wifi
>- fi
>+ wifi
> fi
>
> lat=$(uci -q get fff.system.latitude)
Mehr Informationen über die Mailingliste franken-dev