From b78f2340b29259a7be1f2fb2fa5ace3378fcfb49 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Tue, 20 Aug 2024 20:12:59 +0200 Subject: [PATCH] Check if multipath is enabled before doing something with it --- omr-schedule/files/usr/share/omr/schedule.d/010-services | 7 ++++--- omr-tracker/files/etc/init.d/omr-tracker | 8 +++++--- omr-tracker/files/usr/share/omr/post-tracking.d/003-up | 4 ++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/omr-schedule/files/usr/share/omr/schedule.d/010-services b/omr-schedule/files/usr/share/omr/schedule.d/010-services index 830c41d90..00cdceb43 100755 --- a/omr-schedule/files/usr/share/omr/schedule.d/010-services +++ b/omr-schedule/files/usr/share/omr/schedule.d/010-services @@ -186,9 +186,10 @@ multipath_fix() { /etc/init.d/mptcp reload $interface >/dev/null 2>&1 } } - -config_load network -config_foreach multipath_fix interface +if [ "$(uci -q get network.globals.multipath)" = "enable" ]; then + config_load network + config_foreach multipath_fix interface +fi 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.168.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 >/dev/null 2>&1 diff --git a/omr-tracker/files/etc/init.d/omr-tracker b/omr-tracker/files/etc/init.d/omr-tracker index c83e91320..60e0515f0 100755 --- a/omr-tracker/files/etc/init.d/omr-tracker +++ b/omr-tracker/files/etc/init.d/omr-tracker @@ -428,8 +428,10 @@ start_service() { config_load shadowsocks-rust config_foreach _initialize_shadowsocks_rust_tracker server - config_load network - config_foreach _launch_tracker interface + if [ "$(uci -q get network.globals.multipath)" = "enable" ]; then + config_load network + config_foreach _launch_tracker interface + fi if [ "$ss_enable" = "1" ]; then config_load shadowsocks-libev @@ -469,7 +471,7 @@ start_service() { } service_triggers() { - procd_add_reload_trigger omr-tracker network shadowsocks-libev v2ray xray + procd_add_reload_trigger omr-tracker network } reload_service() { diff --git a/omr-tracker/files/usr/share/omr/post-tracking.d/003-up b/omr-tracker/files/usr/share/omr/post-tracking.d/003-up index 4bc877603..6fa2c7911 100755 --- a/omr-tracker/files/usr/share/omr/post-tracking.d/003-up +++ b/omr-tracker/files/usr/share/omr/post-tracking.d/003-up @@ -722,7 +722,7 @@ dns_flush() { # Get the current multipath status multipath_status="off" -if [ -e "/sys/class/net/$OMR_TRACKER_DEVICE" ]; then +if [ -e "/sys/class/net/$OMR_TRACKER_DEVICE" ] && [ "$(uci -q get network.globals.multipath)" = "enable" ]; then case "$(multipath "$OMR_TRACKER_DEVICE")" in *default*) multipath_status="on" ;; *backup*) multipath_status="backup" ;; @@ -1054,7 +1054,7 @@ if [ -n "$OMR_TRACKER_INTERFACE" ] && { [ "$multipath_config" = "on" ] || [ "$mu fi fi if [ "$(sysctl -qen net.mptcp.mptcp_enabled | tr -d '\n')" = "1" ] || [ "$(sysctl -qen net.mptcp.enabled | tr -d '\n')" = "1" ]; then - [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.multipathvpn)" != "1" ] && [ "$(uci -q get network.globals.mptcp_force_multipath)" != "0" ] && { + [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.multipathvpn)" != "1" ] && [ "$(uci -q get network.globals.mptcp_force_multipath)" != "0" ] && [ "$(uci -q get network.globals.multipath)" = "enable" ] && { if [ "$multipath_status" = "$multipath_config" ] && ([ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.local_ipv4)" != "$OMR_TRACKER_DEVICE_IP" ] || [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.local_ipv6)" != "$OMR_TRACKER_DEVICE_IP6" ]); then _log "Local IP changed for $OMR_TRACKER_DEVICE ($OMR_TRACKER_INTERFACE) force Multipath" multipath "$OMR_TRACKER_DEVICE" "$multipath_config"