[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