[PATCH v2 1/2] vpn-select: Demand hood file to be provided as argument

Fabian Bläse fabian at blaese.de
Do Aug 2 11:14:12 CEST 2018


Hallo,

Reviewed-by: Fabian Bläse <fabian at blaese.de>

Fabian

> On 29. Jul 2018, at 12:36, Adrian Schmutzler <freifunk at adrianschmutzler.de> wrote:
> 
> By removing the reference to the hood file from vpn-select, we
> remove the entire dependency from fff-hoodutils.
> vpn-select will now work with any file provided, as long as
> it has the correct syntax. At the moment, the only provider
> is the configurehood script. Since the various hood file variants
> are handled there, it seems logical that configurehood also
> chooses and provides the correct hood file for vpn-select, instead
> of vpn-select which had no other contact with hood file choice.
> 
> This is simple, tidy and effective.
> 
> Adjusted some comments.
> 
> Fixes #106
> 
> Signed-off-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
> 
> ---
> 
> Changes in v2:
> - Added usage comment
> - Added exit 0
> - Added error and exit 1 for missing file
> - Removed sh call in configurehood
> 
> Since multiple things changed, I did NOT copy the reviews.
> Please redo!
> 
> I raised the version for fff-vpn-select by 2, since it still was
> on 1. The never existant version 2 would have been the initial
> KeyXchangeV2 version.
> ---
> src/packages/fff/fff-hoods/Makefile                       |  2 +-
> src/packages/fff/fff-hoods/files/usr/sbin/configurehood   |  4 ++--
> src/packages/fff/fff-vpn-select/Makefile                  |  2 +-
> src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select | 15 +++++++++++----
> 4 files changed, 15 insertions(+), 8 deletions(-)
> 
> diff --git a/src/packages/fff/fff-hoods/Makefile b/src/packages/fff/fff-hoods/Makefile
> index b565ac7..93fd430 100644
> --- a/src/packages/fff/fff-hoods/Makefile
> +++ b/src/packages/fff/fff-hoods/Makefile
> @@ -1,7 +1,7 @@
> include $(TOPDIR)/rules.mk
> 
> PKG_NAME:=fff-hoods
> -PKG_VERSION:=2
> +PKG_VERSION:=3
> PKG_RELEASE:=1
> 
> PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
> diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> index 57c6f9f..47e228b 100755
> --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> @@ -195,9 +195,9 @@ if [ -s "$hoodfiletmp" ]; then
> 	# and now we get to vpn-select script and load VPNs directly from /tmp/keyxchangev2data
> 
> 	if hasInternet ; then
> -		sh /usr/sbin/vpn-select
> +		/usr/sbin/vpn-select "$hoodfiletmp"
> 	else
> -		sh /usr/sbin/vpn-stop
> +		/usr/sbin/vpn-stop
> 	fi
> 
> 	# now we load the prefix from the hoodfile and set this to br-mesh
> diff --git a/src/packages/fff/fff-vpn-select/Makefile b/src/packages/fff/fff-vpn-select/Makefile
> index 4e2d89b..27cff09 100644
> --- a/src/packages/fff/fff-vpn-select/Makefile
> +++ b/src/packages/fff/fff-vpn-select/Makefile
> @@ -1,7 +1,7 @@
> include $(TOPDIR)/rules.mk
> 
> PKG_NAME:=fff-vpn-select
> -PKG_VERSION:=1
> +PKG_VERSION:=3
> PKG_RELEASE:=1
> 
> PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
> 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 7c9bced..ddd21a1 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
> @@ -1,15 +1,18 @@
> #!/bin/sh
> 
> -. /lib/functions/fff/keyxchange
> +# Usage: vpn-select <path-to-hood-file>
> +
> . /usr/share/libubox/jshn.sh
> 
> +hoodfile="$1"
> +
> make_config() {
> # remove old config
>> /etc/config/tunneldigger
> rm /tmp/fastd_fff_peers/*
> count=0
> Index=1
> -json_load "$(cat "$hoodfiletmp")"
> +json_load "$(cat "$hoodfile")"
> json_select vpn
> # get fastd peers
> while json_select "$Index" > /dev/null
> @@ -53,8 +56,8 @@ json_select ".." # back to root
> 
> # main
> 
> -# Only do something when file is here and greater 0 byte
> -if [ -s "$hoodfiletmp" ]; then
> +# Only do something if file is there and not empty; otherwise exit 1
> +if [ -s "$hoodfile" ]; then
> 	# set some vars
> 	hostname=$(cat /proc/sys/kernel/hostname)
> 	mac=$(awk '{ mac=toupper($1); gsub(":", "", mac); print mac }' /sys/class/net/br-mesh/address 2>/dev/null)
> @@ -84,4 +87,8 @@ if [ -s "$hoodfiletmp" ]; then
> 			([ -s "$pidfile" ] && [ -d "/proc/$(cat "$pidfile")" ]) && /etc/init.d/fastd stop
> 		fi
> 	fi
> +	exit 0
> +else
> +	echo "vpn-select: Hood file not found or empty!"
> +	exit 1
> fi
> --
> 2.11.0
> 

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 833 bytes
Beschreibung: Message signed with OpenPGP
URL         : <http://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20180802/4f886120/attachment.sig>


Mehr Informationen über die Mailingliste franken-dev