mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-03-09 15:40:03 +00:00
Fix and add automatic LAN as ifname source for proxy
This commit is contained in:
parent
2feffb2c1e
commit
79380e9c83
3 changed files with 31 additions and 8 deletions
|
@ -137,19 +137,34 @@ restart_omrtracker() {
|
|||
sleep 10
|
||||
}
|
||||
|
||||
set_lan_ips() {
|
||||
config_get ip4table "$1" ip4table
|
||||
config_get device "$1" device
|
||||
config_get proto "$1" proto
|
||||
if [ "$ip4table" = "lan" ] && [ -n "$device" ] && ([ "$proto" = "dhcp" ] || [ "$proto" = "static" ]); then
|
||||
[ -z "$(uci -q get shadowsocks-libev.ss_rules.ifnames | grep $device)" ] && {
|
||||
uci -q add_list shadowsocks-libev.ss_rules.ifnames="$device"
|
||||
uci -q add_list shadowsocks-rust.ss_rules.ifnames="$device"
|
||||
}
|
||||
elif [ -n "$device" ] && [ -n "$(uci -q get shadowsocks-libev.ss_rules.ifnames | grep $device)" ]; then
|
||||
uci -q del_list shadowsocks-libev.ss_rules.ifnames="$device"
|
||||
uci -q del_list shadowsocks-rust.ss_rules.ifnames="$device"
|
||||
fi
|
||||
}
|
||||
config_load network
|
||||
config_foreach restart_omrtracker interface
|
||||
|
||||
mutlipath_fix() {
|
||||
config_foreach set_lan_ips interface
|
||||
uci -q commit shadowsocks-libev.ss_rules
|
||||
uci -q commit shadowsocks-rust.ss_rules
|
||||
multipath_fix() {
|
||||
config_get multipath "$1" multipath
|
||||
[ "$multipath" != "off" ] && return
|
||||
interface="$(ifstatus $1 | jsonfilter -q -e '@.l3_device' | tr -d '\n')"
|
||||
[ -n "$interface"] && [ -z "$(multipath $interface | grep deactivated)" ] && /etc/init.d/mptcp reload $interface 2>&1 >/dev/null
|
||||
[ -n "$interface" ] && [ -z "$(multipath $interface | grep deactivated)" ] && /etc/init.d/mptcp reload $interface 2>&1 >/dev/null
|
||||
}
|
||||
|
||||
config_load network
|
||||
config_foreach multipath_fix interface
|
||||
|
||||
if [ -f /etc/init.d/shadowsocks-libev ] && [ "$(uci -q get shadowsocks-libev.sss0.disabled)" != "1" ] && [ "$(uci -q get shadowsocks-libev.sss0.key)" != "" ] && [ "$(uci -q get shadowsocks-libev.sss0.server)" != "" ] && [ "$(uci -q get shadowsocks-libev.sss0.server)" != "192.18.1.3" ] && [ "$(pgrep -f omr-tracker-ss)" = "" ] && [ "$(pgrep -f '/etc/init.d/omr-tracker')" = "" ]; then
|
||||
_log "Can't find omr-tracker-ss for Shadowsocks libev, restart omr-tracker..."
|
||||
/etc/init.d/omr-tracker restart 2>&1 >/dev/null
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue