1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-02-15 03:51:51 +00:00
openmptcprouter-feeds/mlvpn/files/etc/init.d/mlvpn
Ycarus (Yannick Chabanois) 63b58f3f76 Update MLVPN
2021-09-25 07:21:54 +02:00

85 lines
No EOL
2.5 KiB
Bash
Executable file

#!/bin/sh /etc/rc.common
START=88
SERVICE_DAEMONIZE=1
#SERVICE_SIG="KILL"
interface_multipath_settings() {
local mode port
local config="$1"
id=$(($id+1))
config_get mode "$config" multipath ""
[ "$mode" = "" ] && {
mode="$(uci -q get openmptcprouter.$config.multipath)"
}
[ "$mode" = "off" ] || [ "$mode" = "" ] && return 1
config_get ifname "$config" device
[ -z "$ifname" ] && config_get ifname "$config" ifname
[ -z "$ifname" ] && ifname=$(ifstatus "$config" | jsonfilter -q -e '@["l3_device"]')
[ -n "$(echo $ifname | grep '@')" ] && ifname=$(ifstatus "$1" | jsonfilter -q -e '@["device"]')
[ -z "$ifname" ] && return 1
addr=$(ifstatus ${config} | jsonfilter -q -e '@["ipv4-address"][0].address')
[ -z "$addr" ] && return 1
count=$(($count+1))
port=$((firstport+count))
cat >> /tmp/etc/${interface_name}.conf <<-EOF
[${config}]
bindhost = "${addr}"
bindport = "${port}"
remotehost = "${host}"
remoteport = "${port}"
EOF
}
start() {
local enable timeout mode password reorder_buffer_size interface_name host firstport loss_tolerance latency_tolerance
[ "$(uci -q get mlvpn.general.enable)" = "1" ] || return 1
interface_name="$(uci -q get mlvpn.general.interface_name)"
timeout="$(uci -q get mlvpn.general.timeout)"
mode="$(uci -q get mlvpn.general.mode)"
password="$(uci -q get mlvpn.general.password)"
reorder_buffer_size="$(uci -q get mlvpn.general.reorder_buffer_size)"
loss_tolerance="$(uci -q get mlvpn.general.loss_tolerance)"
latency_tolerance="$(uci -q get mlvpn.general.latency_tolerance)"
cleartext_data="$(uci -q get mlvpn.general.cleartext_data)"
[ -z "$cleartext_data" ] && cleartext_data="0"
host="$(uci -q get mlvpn.general.host)"
firstport="$(uci -q get mlvpn.general.firstport)"
if [ "$(uci -q get network.omrvpn)" != "${interface_name}" ]; then
uci -q set network.omrvpn.device=${interface_name}
uci -q commit
fi
cat > /tmp/etc/${interface_name}.conf <<-EOF
[general]
tuntap = "tun"
mode = "${mode}"
interface_name = "${interface_name}"
timeout = ${timeout}
reorder_buffer = yes
reorder_buffer_size = ${reorder_buffer_size}
loss_tolerence = ${loss_tolerance}
latency_tolerence = ${latency_tolerance}
cleartext_data = ${cleartext_data}
password = "${password}"
mtu = 1452
EOF
local count=0 id=0
config_load network
config_foreach interface_multipath_settings interface
chmod 0600 "/tmp/etc/${interface_name}.conf"
service_start /usr/sbin/mlvpn -c /tmp/etc/${interface_name}.conf --user nobody
}
stop() {
service_stop /usr/sbin/mlvpn
}
reload() {
stop
start
}