sshtunnel: init script improvements
authorKimmo Vuorinen <kimmo.vuorinen@gmail.com>
Wed, 12 Feb 2020 18:00:19 +0000 (20:00 +0200)
committerNuno Goncalves <nunojpg@gmail.com>
Thu, 20 Feb 2020 08:04:33 +0000 (09:04 +0100)
* Fix for OpenSSH pickiness about argument order to be able to use
  tap devices.
* Allow tun/tap devices to be used from index 0 as demonstrated in
  example config.
* Change arithmetic expressions.

Signed-off-by: Kimmo Vuorinen <kimmo.vuorinen@gmail.com>
net/sshtunnel/Makefile
net/sshtunnel/files/sshtunnel.init

index 4512b5621c8f137a77d6c3ee76b645d35ebcdd8a..4fcb6817fb573c6e21738e5a67c4719bfc267cba 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sshtunnel
 PKG_VERSION:=4
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 PKG_LICENSE:=GPL-2.0-or-later
 
 PKG_MAINTAINER:=Nuno Goncalves <nunojpg@gmail.com>
index fa5509e02bff1cd6d10a321525f5f0c605e9fc86..3db8dbb118ce8f380f0c94c822380a19dec8244d 100644 (file)
@@ -20,7 +20,7 @@ _err() {
 
 append_params() {
        local p v args
-       for p in $*; do
+       for p in "$@"; do
                eval "v=\$$p"
                [ -n "$v" ] && args="$args -o $p=$v"
        done
@@ -80,8 +80,8 @@ validate_tunnelD_section() {
 validate_tunnelW_section() {
        uci_load_validate sshtunnel tunnelW "$1" "$2" \
                'vpntype:or("ethernet", "point-to-point"):point-to-point' \
-               'localdev:or("any", min(1))' \
-               'remotedev:or("any", min(1))'
+               'localdev:or("any", min(0))' \
+               'remotedev:or("any", min(0))'
 }
 
 load_tunnelR() {
@@ -96,7 +96,7 @@ load_tunnelR() {
        [ -n "$remoteport" -a -n "$localport" -a -n "$remoteaddress" ] || { _err "tunnelR $1: missing required options"; return 1; }
 
        # count nr of valid sections to make sure there are at least one
-       let count++
+       count=$((count+=1))
 
        _log "tunnelR at $server: -R $remoteaddress:$remoteport:$localaddress:$localport"
        append_string "ARGS_tunnels" "-R $remoteaddress:$remoteport:$localaddress:$localport"
@@ -114,7 +114,7 @@ load_tunnelL() {
        [ -n "$remoteport" -a -n "$localport" -a -n "$remoteaddress" ] || { _err "tunnelL $1: missing required options"; return 1; }
 
        # count nr of valid sections to make sure there are at least one
-       let count++
+       count=$((count+=1))
 
        _log "tunnelL at $server: -L $localaddress:$localport:$remoteaddress:$remoteport"
        append_string "ARGS_tunnels" "-L $localaddress:$localport:$remoteaddress:$remoteport"
@@ -132,7 +132,7 @@ load_tunnelD() {
        [ -n "$localport" ] || { _err "tunnelD $1: missing localport"; return 1; }
 
        # count nr of valid sections to make sure there are at least one
-       let count++
+       count=$((count+=1))
 
        _log "proxy via $server: -D $localaddress:$localport"
        append_string "ARGS_tunnels" "-D $localaddress:$localport"
@@ -152,10 +152,10 @@ load_tunnelW() {
        [ "$user" = "root" ] || { _err "tunnelW $1: root is required for tun"; return 1; }
 
        # count nr of valid sections to make sure there are at least one
-       let count++
+       count=$((count+=1))
 
-       _log "tunnelW to $server: -w $localdev:$remotedev -o Tunnel=$vpntype"
-       append_string "ARGS_tunnels" "-w $localdev:$remotedev -o Tunnel=$vpntype"
+       _log "tunnelW to $server: -o Tunnel=$vpntype -w $localdev:$remotedev"
+       append_string "ARGS_tunnels" "-o Tunnel=$vpntype -w $localdev:$remotedev"
 }
 
 load_server() {