From 7d567cd23d8944f8a52942ceae52efa0684357f7 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Sun, 10 Dec 2023 18:47:17 +0100 Subject: [PATCH 1/5] Fix https://github.com/Ysurac/openmptcprouter/issues/3069 --- omr-tracker/files/bin/omr-tracker-server | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/omr-tracker/files/bin/omr-tracker-server b/omr-tracker/files/bin/omr-tracker-server index ef80e9086..fcab8b2d4 100755 --- a/omr-tracker/files/bin/omr-tracker-server +++ b/omr-tracker/files/bin/omr-tracker-server @@ -64,14 +64,16 @@ _check_master() { config_get disabled $1 disabled [ "$master" = "1" ] && [ -n "$ip" ] && [ "$disabled" != "1" ] && { set_ip() { - local ip=$1 - ipresolve="$(resolveip -4 $ip | head -n 1)" + local ipd=$1 + local ip="" + ipresolve="$(resolveip -4 $ipd | head -n 1)" if [ -n "$ipresolve" ]; then ip="$ipresolve" else - ip6resolve="$(resolveip -6 $ip | head -n 1)" + ip6resolve="$(resolveip -6 $ipd | head -n 1)" [ -n "$ip6resolve" ] && ip="$ip6resolve" fi + [ -z "$ip" ] && return #_ping_server $ip _check_server $ip $port if [ "$server_ping" = true ]; then From ba464a917abe1a2c15face0fa4857ef9e4672c6c Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Sun, 10 Dec 2023 18:48:06 +0100 Subject: [PATCH 2/5] Remove MPTCP test for > 5.4 --- luci-app-mptcp/luasrc/controller/mptcp.lua | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/luci-app-mptcp/luasrc/controller/mptcp.lua b/luci-app-mptcp/luasrc/controller/mptcp.lua index 842adc6ef..98e07b492 100644 --- a/luci-app-mptcp/luasrc/controller/mptcp.lua +++ b/luci-app-mptcp/luasrc/controller/mptcp.lua @@ -5,13 +5,17 @@ module("luci.controller.mptcp", package.seeall) +local uname = nixio.uname() + function index() entry({"admin", "network", "mptcp"}, alias("admin", "network", "mptcp", "settings"), _("MPTCP")) entry({"admin", "network", "mptcp", "settings"}, cbi("mptcp"), _("Settings"),2).leaf = true entry({"admin", "network", "mptcp", "bandwidth"}, template("mptcp/multipath"), _("Bandwidth"), 3).leaf = true entry({"admin", "network", "mptcp", "multipath_bandwidth"}, call("multipath_bandwidth")).leaf = true entry({"admin", "network", "mptcp", "interface_bandwidth"}, call("interface_bandwidth")).leaf = true - entry({"admin", "network", "mptcp", "mptcp_check"}, template("mptcp/mptcp_check"), _("MPTCP Support Check"), 4).leaf = true + if uname.release:sub(1,1) == "5" then + entry({"admin", "network", "mptcp", "mptcp_check"}, template("mptcp/mptcp_check"), _("MPTCP Support Check"), 4).leaf = true + end entry({"admin", "network", "mptcp", "mptcp_check_trace"}, post("mptcp_check_trace")).leaf = true entry({"admin", "network", "mptcp", "mptcp_fullmesh"}, template("mptcp/mptcp_fullmesh"), _("MPTCP Fullmesh"), 5).leaf = true entry({"admin", "network", "mptcp", "mptcp_fullmesh_data"}, post("mptcp_fullmesh_data")).leaf = true From 0e383c542c28b627ac3c604dba02d0ccbc973670 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Sun, 10 Dec 2023 18:48:28 +0100 Subject: [PATCH 3/5] Force reload mptcp --- luci-app-mptcp/luasrc/model/cbi/mptcp.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/luci-app-mptcp/luasrc/model/cbi/mptcp.lua b/luci-app-mptcp/luasrc/model/cbi/mptcp.lua index c4756ad65..ef54c1499 100644 --- a/luci-app-mptcp/luasrc/model/cbi/mptcp.lua +++ b/luci-app-mptcp/luasrc/model/cbi/mptcp.lua @@ -183,5 +183,8 @@ o:value("backup", translate("backup")) --o:value("handover", translate("handover")) o.default = "off" +function m.on_after_apply(self,map) + sys.call('/etc/init.d/mptcp reload') +end return m From 6c2ffa6cf05ef0209e029c8c938a01633879907a Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Sun, 10 Dec 2023 18:49:51 +0100 Subject: [PATCH 4/5] Display core temp when available in all cases --- .../files/usr/libexec/rpcd/openmptcprouter | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/openmptcprouter-api/files/usr/libexec/rpcd/openmptcprouter b/openmptcprouter-api/files/usr/libexec/rpcd/openmptcprouter index 340fbf77c..f28df60c1 100755 --- a/openmptcprouter-api/files/usr/libexec/rpcd/openmptcprouter +++ b/openmptcprouter-api/files/usr/libexec/rpcd/openmptcprouter @@ -8,6 +8,11 @@ local net = require "luci.model.network".init() local ucic = require "luci.model.uci".cursor() local jsonc = require "luci.jsonc" +function file_exists(name) + local f = io.open(name, "r") + return f ~= nil and io.close(f) +end + function interface_from_device(dev) for _, iface in ipairs(net:get_networks()) do local ifacen = iface:name() @@ -1183,7 +1188,8 @@ function interfaces_status() mArray.openmptcprouter['model'] = sys.exec("ubus call system board | jsonfilter -q -e '@.model' 2>/dev/null | tr -d '\n'") local board_name = sys.exec("ubus call system board | jsonfilter -q -e '@.board_name' 2>/dev/null | tr -d '\n'") -- retrieve core temperature - if board_name:match("^raspberrypi.*") then + --if board_name:match("^raspberrypi.*") then + if file_exists("/sys/class/thermal/thermal_zone0/temp") then mArray.openmptcprouter["core_temp"] = sys.exec("cat /sys/class/thermal/thermal_zone0/temp 2>/dev/null"):match("%d+") end mArray.openmptcprouter["loadavg"] = sys.exec("cat /proc/loadavg 2>/dev/null"):match("[%d%.]+ [%d%.]+ [%d%.]+") From e9fda36208dc0d9dfe473a56a1209ca9da48c73c Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Sun, 10 Dec 2023 18:50:14 +0100 Subject: [PATCH 5/5] Force disable MPTCP when needed --- mptcp/files/usr/share/omr/post-tracking.d/010-services | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/mptcp/files/usr/share/omr/post-tracking.d/010-services b/mptcp/files/usr/share/omr/post-tracking.d/010-services index 4268caa61..4cc11015b 100755 --- a/mptcp/files/usr/share/omr/post-tracking.d/010-services +++ b/mptcp/files/usr/share/omr/post-tracking.d/010-services @@ -134,6 +134,16 @@ restart_omrtracker() { config_load network config_foreach restart_omrtracker interface +mutlipath_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 +} + +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