[PATCH] configurehood: Improve conditions for configap setup
Adrian Schmutzler
freifunk at adrianschmutzler.de
Mi Feb 7 15:28:33 CET 2018
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)
--
2.7.4
Mehr Informationen über die Mailingliste franken-dev