[PATCH] Write on flash only if tunneldigger conf has changed
Robert Langhammer
rlanghammer at web.de
Do Apr 27 12:23:21 CEST 2017
Fixes: 41
Signed-off-by: Robert Langhammer <rlanghammer at web.de>
---
.../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
--
2.9.3
Mehr Informationen über die Mailingliste franken-dev