diff --git a/luci-app-omr-tracker/luasrc/model/cbi/omr-tracker.lua b/luci-app-omr-tracker/luasrc/model/cbi/omr-tracker.lua index 9915e8516..bd83a2035 100644 --- a/luci-app-omr-tracker/luasrc/model/cbi/omr-tracker.lua +++ b/luci-app-omr-tracker/luasrc/model/cbi/omr-tracker.lua @@ -134,6 +134,13 @@ o.default = false o.disabled = 0 o.enabled = 1 +o = s:option(Flag, "restart_down", translate("Restart if down"), translate("Restart interface if detected as down")) +o.optional = false +o.rmempty = false +o.default = false +o.disabled = 0 +o.enabled = 1 + o = s:option(DynamicList, "hosts", translate("Hosts"), translate("Must be IPs and not domains")) o.placeholder = "4.2.2.1" o.default = { "4.2.2.1", "8.8.8.8" } @@ -202,6 +209,13 @@ o.default = false o.disabled = 0 o.enabled = 1 +o = s:option(Flag, "restart_down", translate("Restart if down"), translate("Restart interface if detected as down")) +o.optional = false +o.rmempty = false +o.default = false +o.disabled = 0 +o.enabled = 1 + o = s:option(DynamicList, "hosts", translate("Hosts"), translate("Must be IPs and not domains")) o.placeholder = "4.2.2.1" o.default = { "4.2.2.1", "8.8.8.8" } 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 6f95daece..0e3770797 100755 --- a/mptcp/files/usr/share/omr/post-tracking.d/post-tracking +++ b/mptcp/files/usr/share/omr/post-tracking.d/post-tracking @@ -678,6 +678,14 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || [ "$interface_up" != "true" ]; then script_alert_down="$(uci -q get omr-tracker.$OMR_TRACKER_INTERFACE.script_alert_down)" [ -n "$script_alert_down" ] && eval $script_alert_down + restart_down="$(uci -q get omr-tracker.$OMR_TRACKER_INTERFACE.restart_down)" + [ -z "$restart_down" ] && restart_down="$(uci -q get omr-tracker.defaults.restart_down)" + [ "$restart_down" = "1" ] && { + ifdown $OMR_TRACKER_INTERFACE 2>&1 >/dev/null + sleep 5 + ifup $OMR_TRACKER_INTERFACE 2>&1 >/dev/null + } + if [ "$OMR_TRACKER_INTERFACE" = "glorytun" ] || [ "$OMR_TRACKER_INTERFACE" = "omrvpn" ]; then if [ "$OMR_TRACKER_STATUS_MSG" = "" ]; then _log "$OMR_TRACKER_INTERFACE down" diff --git a/omr-tracker/files/etc/config/omr-tracker b/omr-tracker/files/etc/config/omr-tracker index a88fb6a7c..df54c8416 100644 --- a/omr-tracker/files/etc/config/omr-tracker +++ b/omr-tracker/files/etc/config/omr-tracker @@ -24,6 +24,7 @@ config defaults 'defaults' option type 'ping' option wait_test '0' option server_http_test '1' + option restart_down '0' option options '' config proxy 'proxy'