1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-03-09 15:40:03 +00:00

Fix MLVPN init script

This commit is contained in:
Ycarus (Yannick Chabanois) 2020-09-13 08:40:10 +02:00
parent e9b6a9759d
commit 7f02d9a805

View file

@ -1,20 +1,9 @@
#!/bin/sh /etc/rc.common #!/bin/sh /etc/rc.common
START=88 START=88
USE_PROCD=1 SERVICE_DAEMONIZE=1
#SERVICE_SIG="KILL"
validate_section() {
uci_validate_section mlvpn mlvpn ${1} \
'enable:bool:0' \
'timeout:uinteger:30' \
'mode:string:client' \
'password:string' \
'reorder_buffer_size:uinteger:64' \
'loss_tolerence:uinteger:30' \
'interface_name:string:mlvpn0' \
'host:host' \
'firstport:port'
}
interface_multipath_settings() { interface_multipath_settings() {
local mode port local mode port
@ -28,12 +17,13 @@ interface_multipath_settings() {
config_get ifname "$config" ifname config_get ifname "$config" ifname
[ -z "$ifname" ] && ifname=$(ifstatus "$config" | jsonfilter -q -e '@["l3_device"]') [ -z "$ifname" ] && ifname=$(ifstatus "$config" | jsonfilter -q -e '@["l3_device"]')
[ -z "$ifname" ] && return 1 [ -z "$ifname" ] && return 1
addr=$(ifstatus ${ifname} | jsonfilter -q -e '@["ipv4-address"][0].address')
count=$(($count+1)) count=$(($count+1))
port=$((firstport+count)) port=$((firstport+count))
cat >> /tmp/etc/${interface_name}.conf <<-EOF cat >> /tmp/etc/${interface_name}.conf <<-EOF
[${id}] [${config}]
bindhost = "${ifname}" bindhost = "${addr}"
bindport = "${port}" bindport = "${port}"
remotehost = "${host}" remotehost = "${host}"
remoteport = "${port}" remoteport = "${port}"
@ -42,12 +32,15 @@ interface_multipath_settings() {
start() { start() {
local enable timeout mode password reorder_buffer_size interface_name host firstport loss_tolerence local enable timeout mode password reorder_buffer_size interface_name host firstport loss_tolerence
validate_section "general" || { [ "$(uci -q get mlvpn.general.enable)" = "1" ] || return 1
_err "validation failed" interface_name="$(uci -q get mlvpn.general.interface_name)"
return 1 timeout="$(uci -q get mlvpn.general.timeout)"
} mode="$(uci -q get mlvpn.general.mode)"
password="$(uci -q get mlvpn.general.password)"
[ "${enable}" = "1" ] || return 1 reorder_buffer_size="$(uci -q get mlvpn.general.reorder_buffer_size)"
loss_tolerence="$(uci -q get mlvpn.general.loss_tolerence)"
host="$(uci -q get mlvpn.general.host)"
firstport="$(uci -q get mlvpn.general.firstport)"
if [ "$(uci -q get network.omrvpn)" != "${interface_name}" ]; then if [ "$(uci -q get network.omrvpn)" != "${interface_name}" ]; then
uci -q set network.omrvpn.ifname=${interface_name} uci -q set network.omrvpn.ifname=${interface_name}
@ -60,9 +53,9 @@ start() {
mode = "${mode}" mode = "${mode}"
interface_name = "${interface_name}" interface_name = "${interface_name}"
timeout = ${timeout} timeout = ${timeout}
reorder_buffer = yes #reorder_buffer = yes
reorder_buffer_size = ${reorder_buffer_size} reorder_buffer_size = ${reorder_buffer_size}
loss_tolerence = ${loss_tolerence} #loss_tolerence = ${loss_tolerence}
password = "${password}" password = "${password}"
mtu = 1452 mtu = 1452
EOF EOF
@ -72,13 +65,9 @@ start() {
config_foreach interface_multipath_settings interface config_foreach interface_multipath_settings interface
chmod 0600 "/tmp/etc/${interface_name}.conf" chmod 0600 "/tmp/etc/${interface_name}.conf"
service_start /usr/sbin/mlvpn --config "/tmp/etc/${interface_name}.conf" --user nobody service_start /usr/sbin/mlvpn -c /tmp/etc/${interface_name}.conf --user nobody
} }
stop() { stop() {
killall mlvpn service_stop /usr/sbin/mlvpn
} }
service_triggers() {
procd_add_reload_trigger mlvpn network
}