From 6346c442d2afac65a7863e6c14848f8f89ce773f Mon Sep 17 00:00:00 2001 From: Viktor <35473052+viktorxda@users.noreply.github.com> Date: Mon, 8 Apr 2024 23:54:54 +0200 Subject: [PATCH] [no ci] Package: adjust vtund tunnel script --- general/package/vtund-openipc/files/tapip | 38 +++++------ general/package/vtund-openipc/files/tunnel | 74 +++++++++------------- 2 files changed, 47 insertions(+), 65 deletions(-) diff --git a/general/package/vtund-openipc/files/tapip b/general/package/vtund-openipc/files/tapip index 083a1464..a9703a91 100755 --- a/general/package/vtund-openipc/files/tapip +++ b/general/package/vtund-openipc/files/tapip @@ -5,31 +5,25 @@ # Simple script for get IP and Routes via UDHCPC on VTUNd tun/tap interfaces # - set_routes() { - local max=128 - local type - while [ -n "$1" -a -n "$2" -a $max -gt 0 ]; do - [ ${1##*/} -eq 32 ] && type=host || type=net - echo "udhcpc: adding route for $type $1 via $2" - route add -$type "$1" gw "$2" dev "$interface" - max=$(($max-1)) - shift 2 - done + local max=128 + local type + while [ -n "$1" ] && [ -n "$2" ] && [ "$max" -gt 0 ]; do + [ "${1##*/}" -eq 32 ] && type=host || type=net + echo "udhcpc: adding route for $type $1 via $2" + route add -$type "$1" gw "$2" dev "$interface" + max=$(($max-1)) + shift 2 + done } - case "$1" in + deconfig) + ip a flush dev "$interface" + ;; - deconfig) - ip a flush dev $interface - ;; - - renew|bound) - ip a add $ip/$subnet dev $interface - [ -n "$staticroutes" ] && set_routes $staticroutes - ;; - + renew|bound) + ip a add "$ip/$subnet" dev "$interface" + [ -n "$staticroutes" ] && set_routes "$staticroutes" + ;; esac - -exit 0 diff --git a/general/package/vtund-openipc/files/tunnel b/general/package/vtund-openipc/files/tunnel index 9d10065e..cae54f43 100755 --- a/general/package/vtund-openipc/files/tunnel +++ b/general/package/vtund-openipc/files/tunnel @@ -5,61 +5,49 @@ # Busybox applets: awk cat echo insmod ip modprobe sha1sum sleep tr tunctl udhcpc uptime # - -vtund_enable="1" -vtund_server=$1 -vtund_server=${vtund_server:=vtun.localhost} +vtund_enable="true" +vtund_server=${1:-vtun.localhost} vtund_port="5000" vtund_iface="tunnel" -vtund_salt="" device_name="IPC-VTUND" -kernel_module="" working_dir="/tmp" - identity() { - identity_src=$(ip r | awk '/default/ {print $5}' | head -n 1) - identity_mac=$(cat /sys/class/net/${identity_src}/address | tr 'a-z' 'A-Z') - identity_pas=$(echo ${vtund_salt}${identity_mac} | sha1sum | awk '{print $1}') - identity_tid=$(echo ${identity_mac} | tr -d ':') - identity_cfg=${working_dir}/vtund.conf + identity_src=$(ip r | awk '/default/ {print $5}' | head -n 1) + identity_mac=$(cat /sys/class/net/"$identity_src"/address | tr 'a-z' 'A-Z') + identity_pas=$(echo "$identity_mac" | sha1sum | awk '{print $1}') + identity_tid=$(echo "$identity_mac" | tr -d ':') + identity_cfg=$working_dir/vtund.conf } - interface() { - [ -L /sys/class/net/${vtund_iface} ] || (modprobe tun; tunctl -t ${vtund_iface}) >/dev/null 2>&1 - [ -f ${working_dir}/udhcpc-${vtund_iface}.pid ] && kill -9 $(cat ${working_dir}/udhcpc-${vtund_iface}.pid) >/dev/null 2>&1 + [ -L /sys/class/net/$vtund_iface ] || (modprobe tun; tunctl -t $vtund_iface) >/dev/null 2>&1 + [ -f $working_dir/udhcpc-$vtund_iface.pid ] && kill -9 "$(cat $working_dir/udhcpc-$vtund_iface.pid)" >/dev/null 2>&1 } - config() { - ( echo "#" - echo "options {" - echo " port ${vtund_port};" - echo " ifconfig /sbin/ifconfig;" - echo "}" - echo "${identity_tid} {" - echo " password ${identity_pas};" - echo " device ${vtund_iface};" - echo " stat no;" - echo " persist yes;" - echo " keepalive 10:5;" - echo " timeout 10;" - echo " up {" - echo " ifconfig \"${vtund_iface} hw ether ${identity_mac} mtu 1500 -multicast up\";" - echo " program \"udhcpc -T 1 -t 5 -R -b -O staticroutes -S -s tapip -p ${working_dir}/udhcpc-${vtund_iface}.pid -i ${vtund_iface} -x hostname:${device_name}-${identity_tid}\";" - echo " };" - echo " down {" - echo " ifconfig \"${vtund_iface} down\";" - echo " };" - echo "}" - ) >${identity_cfg} + ( echo "options {" + echo " port $vtund_port;" + echo " ifconfig /sbin/ifconfig;" + echo "}" + echo "$identity_tid {" + echo " password $identity_pas;" + echo " device $vtund_iface;" + echo " stat no;" + echo " persist yes;" + echo " keepalive 10:5;" + echo " timeout 10;" + echo " up {" + echo " ifconfig \"$vtund_iface hw ether $identity_mac mtu 1500 -multicast up\";" + echo " program \"udhcpc -T 1 -t 5 -R -b -O staticroutes -S -s tapip -p $working_dir/udhcpc-$vtund_iface.pid -i $vtund_iface -x hostname:$device_name-$identity_tid\";" + echo " };" + echo " down {" + echo " ifconfig \"$vtund_iface down\";" + echo " };" + echo "}" + ) >$identity_cfg } - -if [ ${vtund_enable} = 1 ]; then - (while true ; do sleep 10; identity; interface; config; vtund -n -f ${identity_cfg} ${identity_tid} ${vtund_server} >/dev/null 2>&1; done) & +if [ "$vtund_enable" = "true" ]; then + (while true; do identity; interface; config; vtund -n -f "$identity_cfg" "$identity_tid" "$vtund_server" >/dev/null 2>&1; done) & fi - - -exit 0