From a1c1e5917e03636516ede3da7c5b9a1f9db55db8 Mon Sep 17 00:00:00 2001 From: Ycarus Date: Thu, 13 Dec 2018 13:54:06 +0100 Subject: [PATCH] Fix and change default to new master select after network change --- .../luasrc/controller/openmptcprouter.lua | 3 ++- .../luasrc/view/openmptcprouter/settings.htm | 12 ++++++------ .../luasrc/view/openmptcprouter/wizard.htm | 2 +- .../root/etc/uci-defaults/openmptcprouter | 2 +- .../usr/share/omr/post-tracking.d/post-tracking | 5 +++-- 5 files changed, 13 insertions(+), 11 deletions(-) diff --git a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua index be6010752..c2c836966 100644 --- a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua +++ b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua @@ -37,7 +37,7 @@ function wizard_add() local add_server = luci.http.formvalue("add_server") or "" local add_server_name = luci.http.formvalue("add_server_name") or "" if add_server ~= "" and add_server_name ~= "" then - ucic:set("openmptcprouter",add_server_name,"server") + ucic:set("openmptcprouter",add_server_name:gsub("[^%w_]+","_"),"server") gostatus = false end @@ -404,6 +404,7 @@ function wizard_add() local shadowsocks_disable = luci.http.formvalue("disableshadowsocks") or "0" ucic:set("openmptcprouter","settings","shadowsocks_disable",shadowsocks_disable) ucic:set("openmptcprouter","settings","vpn",default_vpn) + ucic:delete("openmptcprouter","settings","master_lcintf") ucic:save("openmptcprouter") ucic:commit("openmptcprouter") diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm index 93593b6ac..000e14287 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm @@ -71,13 +71,13 @@
- +
- checked<% end %>> -
-
- <%:Connection with lowest RTT is used as master interface%> -
+
diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm index 84da87033..78818b472 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm @@ -99,7 +99,7 @@ end %>
- +
diff --git a/luci-app-openmptcprouter/root/etc/uci-defaults/openmptcprouter b/luci-app-openmptcprouter/root/etc/uci-defaults/openmptcprouter index dcd2daca8..13a779ea5 100755 --- a/luci-app-openmptcprouter/root/etc/uci-defaults/openmptcprouter +++ b/luci-app-openmptcprouter/root/etc/uci-defaults/openmptcprouter @@ -36,7 +36,7 @@ fi if [ "$(uci -q get openmptcprouter.settings.master)" = "" ]; then uci -q batch <<-EOF set openmptcprouter.settings=settings - set openmptcprouter.settings.master='dynamic' + set openmptcprouter.settings.master='change' commit openmptcprouter EOF fi diff --git a/mptcp/files/usr/share/omr/post-tracking.d/post-tracking b/mptcp/files/usr/share/omr/post-tracking.d/post-tracking index df98d2b85..2c095baff 100755 --- a/mptcp/files/usr/share/omr/post-tracking.d/post-tracking +++ b/mptcp/files/usr/share/omr/post-tracking.d/post-tracking @@ -352,12 +352,13 @@ fi [ -n "$OMR_TRACKER_LATENCY" ] && { uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.latency="$OMR_TRACKER_LATENCY" - if [ "$multipath_config" = "on" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.multipath)" != "master" ] && [ "$(uci -q get openmptcprouter.settings.master)" = "dynamic" ]; then + if [ "$multipath_config" = "on" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.multipath)" != "master" ] && ([ "$(uci -q get openmptcprouter.settings.master)" = "dynamic" ] || ([ "$(uci -q get openmptcprouter.settings.master)" = "change" ] && [ "$(uci -q get openmptcprouter.settings.master_lcintf | grep $OMR_TRACKER_INTERFACE)" = "" ])); then masterintf="$(uci -q show network | grep multipath=\'master\' | cut -d'.' -f2)" masterlatency="$(uci -q get openmptcprouter.$masterintf.latency | tr -d '\n')" - if [ -n "$masterintf" ] && [ "$masterlatency" != "" ] && [ "$OMR_TRACKER_LATENCY" -lt "$(($masterlatency/2))" ]; then + if [ -n "$masterintf" ] && [ "$masterlatency" != "" ] && [ "$OMR_TRACKER_LATENCY" -lt "$((masterlatency/2))" ]; then uci -q set network.$masterintf.multipath='on' uci -q set network.$OMR_TRACKER_INTERFACE.multipath='master' + uci -q add_list openmptcprouter.settings.master_lcintf="$OMR_TRACKER_INTERFACE" _log "Change master interface from $masterintf ($masterlatency ms) to $OMR_TRACKER_INTERFACE ($OMR_TRACKER_LATENCY ms)" fi fi