diff --git a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua
index 51aa986d6..31e803161 100644
--- a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua
+++ b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua
@@ -1076,6 +1076,14 @@ function wizard_add()
luci.sys.call("/etc/init.d/shadowsocks-rust rules_down >/dev/null 2>/dev/null")
end
+ -- Enable/disable v2ray/xray udp
+ local v2rayudp = luci.http.formvalue("v2rayudp") or "0"
+ ucic:set("v2ray","main_transparent_proxy","redirect_udp",v2rayudp)
+ ucic:save("v2ray")
+ ucic:commit("v2ray")
+ ucic:set("xray","main_transparent_proxy","redirect_udp",v2rayudp)
+ ucic:save("xray")
+ ucic:commit("xray")
local v2ray_user = luci.http.formvalue("v2ray_user")
ucic:set("v2ray","omrout","s_vmess_user_id",v2ray_user)
@@ -1084,13 +1092,15 @@ function wizard_add()
ucic:set("v2ray","omrout","s_socks_user_id",v2ray_user)
ucic:save("v2ray")
ucic:commit("v2ray")
- ucic:set("xray","omrout","s_vmess_user_id",v2ray_user)
- ucic:set("xray","omrout","s_vless_user_id",v2ray_user)
- ucic:set("xray","omrout","s_vless_reality_user_id",v2ray_user)
- ucic:set("xray","omrout","s_trojan_user_id",v2ray_user)
- ucic:set("xray","omrout","s_socks_user_id",v2ray_user)
+ local xray_user = luci.http.formvalue("xray_user")
+ ucic:set("xray","omrout","s_vmess_user_id",xray_user)
+ ucic:set("xray","omrout","s_vless_user_id",xray_user)
+ ucic:set("xray","omrout","s_vless_reality_user_id",xray_user)
+ ucic:set("xray","omrout","s_trojan_user_id",xray_user)
+ ucic:set("xray","omrout","s_socks_user_id",xray_user)
ucic:save("xray")
ucic:commit("xray")
+
ucic:save("shadowsocks-libev")
ucic:commit("shadowsocks-libev")
ucic:save("shadowsocks-rust")
diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm
index 0d715c027..1959140a2 100644
--- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm
+++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm
@@ -321,18 +321,42 @@
<% end %>
- <% if nixio.fs.access("/etc/init.d/v2ray") or nixio.fs.access("/etc/init.d/xray") then %>
+ <% if nixio.fs.access("/etc/init.d/v2ray") then %>
-
+
<% end %>
+ <% if nixio.fs.access("/etc/init.d/xray") then %>
+
+
+
+
" />
+
+
+ <%:Key is retrieved from server API by default.%>
+
+
+
+ <% end %>
+ <% if nixio.fs.access("/etc/init.d/xray") or nixio.fs.access("/etc/init.d/v2ray") then %>
+
+
+
+
checked<% end %>>
+
+
+ <%:When proxy V2Ray/XRay VLESS, VMESS or Trojan is used, use it for UDP%>
+
+
+
+ <% end %>
diff --git a/omr-tracker/files/bin/omr-tracker b/omr-tracker/files/bin/omr-tracker
index d2c629a00..0bcec9785 100755
--- a/omr-tracker/files/bin/omr-tracker
+++ b/omr-tracker/files/bin/omr-tracker
@@ -164,6 +164,7 @@ _ping() {
"${host}" 2>&1
)
loss=$(echo "$ret" | awk '/packet loss/ {gsub("%","");print $6}' | tr -d '\n')
+
if [ -n "$loss" ] && [ "$loss" != "100" ]; then
if [ "$localip" = "yes" ]; then
latency=$(echo "$ret" | awk -F/ '/rtt/ {print int($5)}' | tr -d '\n')
@@ -205,7 +206,7 @@ _ping() {
fi
false
}
-
+#'
_httping() {
local host=$1
local deviceip=$2
@@ -216,25 +217,41 @@ _httping() {
-y "${deviceip}" \
-t "$OMR_TRACKER_TIMEOUT" \
-c "$OMR_TRACKER_COUNT" 2>&1
- ) && echo "$ret" | grep -sq "1 ok" && {
+ )
+ bindcheck=$(echo "$ret" | grep "Address not available")
+ [ -n "$bindcheck" ] && OMR_TRACKER_NO_BIND=1
+ loss=$(echo "$ret" | awk '/failed/ {gsub("%",""); print int($5)}' | tr -d '\n')
+ if [ -n "$loss" ] && [ "$loss" != "100" ]; then
if [ "$localip" = "yes" ]; then
- OMR_TRACKER_LATENCY=$(echo "$ret" | cut -d "/" -s -f5 | cut -d "." -f1 | tr -d '\n')
- #_update_rto "$OMR_TRACKER_LATENCY"
+ latency=$(echo "$ret" | cut -d "/" -s -f5 | cut -d "." -f1 | tr -d '\n')
+ [ -n "$latency" ] && {
+ OMR_TRACKER_LATENCY="$latency"
+ #_update_rto "$OMR_TRACKER_LATENCY"
+ }
+ OMR_TRACKER_LOSS="$loss"
fi
return
- }
+ fi
else
ret=$(httping -l "${host}" \
-y "${deviceip}" \
-t "$OMR_TRACKER_TIMEOUT" \
-c "$OMR_TRACKER_COUNT" 2>&1
- ) && echo "$ret" | grep -sq "1 ok" && {
+ )
+ bindcheck=$(echo "$ret" | grep "Address not available")
+ [ -n "$bindcheck" ] && OMR_TRACKER_NO_BIND=1
+ loss=$(echo "$ret" | awk '/failed/ {gsub("%",""); print int($5)}' | tr -d '\n')
+ if [ -n "$loss" ] && [ "$loss" != "100" ]; then
if [ "$localip" = "yes" ]; then
- OMR_TRACKER_LATENCY=$(echo "$ret" | cut -d "/" -s -f5 | cut -d "." -f1 | tr -d '\n')
- #_update_rto "$OMR_TRACKER_LATENCY"
+ latency=$(echo "$ret" | cut -d "/" -s -f5 | cut -d "." -f1 | tr -d '\n')
+ [ -n "$latency" ] && {
+ OMR_TRACKER_LATENCY="$latency"
+ #_update_rto "$OMR_TRACKER_LATENCY"
+ }
+ OMR_TRACKER_LOSS="$loss"
fi
return
- }
+ fi
fi
false
}