packages/net/openconnect/files/openconnect.sh

40 lines
956 B
Bash
Raw Normal View History

find_gw() {
route -n | awk '$1 == "0.0.0.0" { print $2; exit }'
}
scan_openconnect() {
config_set "$1" device "vpn-$1"
}
stop_interface_openconnect() {
local config="$1"
local lock="/var/lock/openconnect-$config"
uci_set_state network "$config" up 0
lock "$lock"
SERVICE_PID_FILE="/var/run/openconnect-${config}.pid" \
SERVICE_SIG=HUP service_stop /bin/sh
remove_dns "$config"
lock -u "$lock"
}
setup_interface_openconnect() {
local config="$2"
/sbin/insmod tun 2>&- >&-
# creating the tunnel below will trigger a net subsystem event
# prevent it from touching or iface by disabling .auto here
uci_set_state network "$config" ifname "vpn-$config"
uci_set_state network "$config" auto 0
uci_set_state network "$config" up 1
SERVICE_PID_FILE="/var/run/openconnect-${config}.pid" \
SERVICE_WRITE_PID=1 SERVICE_DAEMONIZE=1 \
service_start /usr/sbin/run-openconnect $config
}