From patchwork Thu Apr 27 10:23:21 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: Write on flash only if tunneldigger conf has changed From: Robert Langhammer X-Patchwork-Id: 327 Message-Id: <20170427102321.3689-1-rlanghammer@web.de> To: franken-dev@freifunk.net Date: Thu, 27 Apr 2017 12:23:21 +0200 Fixes: 41 Signed-off-by: Robert Langhammer Reviewed-by: Michael Fritscher --- .../fff/fff-vpn-select/files/usr/sbin/vpn-select | 31 +++++++++++++--------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select b/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select index a0878c5..c79a872 100755 --- a/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select +++ b/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select @@ -4,7 +4,8 @@ test -f /tmp/started || exit make_config() { # remove old config ->/etc/config/tunneldigger +>/tmp/tunneldigger + rm /tmp/fastd_${project}_peers/* count=0 # get fastd peers @@ -23,13 +24,13 @@ for file in $filecounts; do L2PORT=$((FDPORT + 10000)) UUID=$hostname - uci set tunneldigger.$count=broker - uci set tunneldigger.$count.address="$IP:$L2PORT" - uci set tunneldigger.$count.uuid="$UUID" - uci set tunneldigger.$count.interface="l2tp$count" - uci set tunneldigger.$count.enabled="1" - uci set tunneldigger.$count.hook_script='/etc/tunneldigger/tunneldigger.hook' - uci commit tunneldigger + uci -c /tmp set tunneldigger.$count=broker + uci -c /tmp set tunneldigger.$count.address="$IP:$L2PORT" + uci -c /tmp set tunneldigger.$count.uuid="$UUID" + uci -c /tmp set tunneldigger.$count.interface="l2tp$count" + uci -c /tmp set tunneldigger.$count.enabled="1" + uci -c /tmp set tunneldigger.$count.hook_script='/etc/tunneldigger/tunneldigger.hook' + uci -c /tmp commit tunneldigger count=$((count + 1)) # remove this fastd-peer rm /etc/fastd/${project}/peers/$file @@ -67,14 +68,18 @@ if ping -w5 -c3 "$test_ipv4_host1" &>/dev/null || uci commit fastd fi make_config - /etc/init.d/fastd start + # start fastd if there are some peers left + [ "$(ls /etc/fastd/${project}/peers/* 2>/dev/null)" ] && /etc/init.d/fastd start + # check if new tunneldigger conf is different + [ -n "$(cat /etc/config/tunneldigger tunneldigger | sort | uniq -u)" ] && cp /tmp/tunneldigger /etc/config/tunneldigger /etc/init.d/tunneldigger start else - # check if new tunneldigger conf is different - sumold=$(sha256sum /etc/config/tunneldigger) make_config - sumnew=$(sha256sum /etc/config/tunneldigger) - [ "$sumnew" != "$sumold" ] && /etc/init.d/tunneldigger restart + # check if new tunneldigger conf is different + if [ -n "$(cat /etc/config/tunneldigger tunneldigger | sort | uniq -u)" ] ; then + cp /tmp/tunneldigger /etc/config/tunneldigger + /etc/init.d/tunneldigger restart + fi /etc/init.d/fastd reload # fastd start/stop for various situations