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:
parent
e9b6a9759d
commit
7f02d9a805
1 changed files with 18 additions and 29 deletions
|
@ -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
|
|
||||||
}
|
|
Loading…
Add table
Add a link
Reference in a new issue