vpn-select: Demand hood file to be provided as argument

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@adrianschmutzler.de>
Reviewed-by: Robert Langhammer <rlanghammer@web.de>
Reviewed-by: Fabian Bläse <fabian@blaese.de>
This commit is contained in:
Adrian Schmutzler 2018-07-29 12:36:36 +02:00 committed by Tim Niemeyer
parent 62fd2b71e0
commit 53184f63fb
4 changed files with 15 additions and 8 deletions

View File

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=fff-hoods PKG_NAME:=fff-hoods
PKG_VERSION:=2 PKG_VERSION:=3
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME) PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)

View File

@ -195,9 +195,9 @@ if [ -s "$hoodfiletmp" ]; then
# and now we get to vpn-select script and load VPNs directly from /tmp/keyxchangev2data # and now we get to vpn-select script and load VPNs directly from /tmp/keyxchangev2data
if hasInternet ; then if hasInternet ; then
sh /usr/sbin/vpn-select /usr/sbin/vpn-select "$hoodfiletmp"
else else
sh /usr/sbin/vpn-stop /usr/sbin/vpn-stop
fi fi
# now we load the prefix from the hoodfile and set this to br-mesh # now we load the prefix from the hoodfile and set this to br-mesh

View File

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=fff-vpn-select PKG_NAME:=fff-vpn-select
PKG_VERSION:=1 PKG_VERSION:=3
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME) PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)

View File

@ -1,15 +1,18 @@
#!/bin/sh #!/bin/sh
. /lib/functions/fff/keyxchange # Usage: vpn-select <path-to-hood-file>
. /usr/share/libubox/jshn.sh . /usr/share/libubox/jshn.sh
hoodfile="$1"
make_config() { make_config() {
# remove old config # remove old config
>/etc/config/tunneldigger >/etc/config/tunneldigger
rm /tmp/fastd_fff_peers/* rm /tmp/fastd_fff_peers/*
count=0 count=0
Index=1 Index=1
json_load "$(cat "$hoodfiletmp")" json_load "$(cat "$hoodfile")"
json_select vpn json_select vpn
# get fastd peers # get fastd peers
while json_select "$Index" > /dev/null while json_select "$Index" > /dev/null
@ -53,8 +56,8 @@ json_select ".." # back to root
# main # main
# Only do something when file is here and greater 0 byte # Only do something if file is there and not empty; otherwise exit 1
if [ -s "$hoodfiletmp" ]; then if [ -s "$hoodfile" ]; then
# set some vars # set some vars
hostname=$(cat /proc/sys/kernel/hostname) hostname=$(cat /proc/sys/kernel/hostname)
mac=$(awk '{ mac=toupper($1); gsub(":", "", mac); print mac }' /sys/class/net/br-mesh/address 2>/dev/null) 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 ([ -s "$pidfile" ] && [ -d "/proc/$(cat "$pidfile")" ]) && /etc/init.d/fastd stop
fi fi
fi fi
exit 0
else
echo "vpn-select: Hood file not found or empty!"
exit 1
fi fi