[PATCH] Write on flash only if tunneldigger conf has changed
Tim Niemeyer
tim at tn-x.org
Do Apr 27 19:43:38 CEST 2017
Moin Robert
Am Donnerstag, den 27.04.2017, 12:23 +0200 schrieb Robert Langhammer:
> Fixes: 41
Afaik muss ne Raute vor die Zahl.
> 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
Ah prima. Das ist allerdings mehr als du im Commit-Log erwähnst. ;)
> + # check if new tunneldigger conf is different
> + [ -n "$(cat /etc/config/tunneldigger tunneldigger | sort | uniq -u)" ] && cp /tmp/tunneldigger /etc/config/tunneldigger
Das versteh ich nicht. Jetzt würde er ja bei jedem Aufruf die Config
kopieren, sofern die neue nicht leer ist. Wir schreiben dann also immer
noch auf den Flash.
> /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
Hier auch..
Was spricht dagegen einfach ein symlink von /etc/config/tunneldigger
-> /tmp/tunneldigger zu legen? Dann würde der Symlink einmalig angelegt
werden (oder ist im Image ggfs schon drin). Der Rest liegt dann immer im
RAM.
Tim
> + /etc/init.d/tunneldigger restart
> + fi
> /etc/init.d/fastd reload
>
> # fastd start/stop for various situations
> --
> 2.9.3
>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname : signature.asc
Dateityp : application/pgp-signature
Dateigröße : 473 bytes
Beschreibung: This is a digitally signed message part
URL : <http://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20170427/e264dcf9/attachment.sig>
Mehr Informationen über die Mailingliste franken-dev