1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-03-09 15:40:03 +00:00

Fix for multi IP on server

This commit is contained in:
Ycarus (Yannick Chabanois) 2021-01-22 10:40:57 +01:00
parent 2bd2023254
commit f8f62ee77e
4 changed files with 94 additions and 91 deletions

View file

@ -447,7 +447,7 @@ function wizard_add()
if openmptcprouter_vps_disabled == "1" then if openmptcprouter_vps_disabled == "1" then
disablednb = disablednb + 1 disablednb = disablednb + 1
end end
if server_ip ~= "" then if server_ip[1] ~= "" then
serversnb = serversnb + 1 serversnb = serversnb + 1
end end
ucic:set("openmptcprouter",server,"server") ucic:set("openmptcprouter",server,"server")

View file

@ -57,7 +57,7 @@
<div class="cbi-value"> <div class="cbi-value">
<label class="cbi-value-title" for="server_ip"><%:Server IP%></label> <label class="cbi-value-title" for="server_ip"><%:Server IP%></label>
<div class="cbi-value-field"> <div class="cbi-value-field">
<input name="<%=servername%>.server_ip" id="<%=servername%>.server_ip" placeholder="<%:Server IP%>" class="cbi-input-text" value="<%=uci:get("openmptcprouter",servername,"ip")%>" data-optional="false"> <input name="<%=servername%>.server_ip" id="<%=servername%>.server_ip" placeholder="<%:Server IP%>" class="cbi-input-text" value="<%=uci:get_list("openmptcprouter",servername,"ip")[1]%>" data-optional="false">
<div class="cbi-value-description"> <div class="cbi-value-description">
<%:Server IP will be set for proxy and VPN%> <%:Server IP will be set for proxy and VPN%>
</div> </div>

View file

@ -547,7 +547,7 @@ end
function get_rootfs() function get_rootfs()
local rootfs = {} local rootfs = {}
rootfs['format'] = ut.trim(sys.exec("mount | awk 'NR==1{print $5}'")) rootfs['format'] = luci.util.trim(sys.exec("mount | awk 'NR==1{print $5}'"))
return rootfs return rootfs
end end
@ -837,102 +837,105 @@ function interfaces_status()
mArray.openmptcprouter["vps_hostname"] = "Server" mArray.openmptcprouter["vps_hostname"] = "Server"
-- Get VPS info -- Get VPS info
ucic:foreach("openmptcprouter", "server", function(s) ucic:foreach("openmptcprouter", "server", function(s)
local serverip = uci:get("openmptcprouter",s[".name"],"ip") or "" local serverips = uci:get("openmptcprouter",s[".name"],"ip") or { "" }
local master = uci:get("openmptcprouter",s[".name"],"master") or "1" local master = uci:get("openmptcprouter",s[".name"],"master") or "1"
if serverip ~= "" and (master == "1" or mArray.openmptcprouter["wan_addr"] == serverip or mArray.openmptcprouter["wan_addr6"] == serverip) then for key, value in pairs(serverips) do
mArray.openmptcprouter["vps_omr_version"] = uci:get("openmptcprouter", s[".name"], "omr_version") or "" serverip = value
mArray.openmptcprouter["vps_kernel"] = uci:get("openmptcprouter",s[".name"],"kernel") or "" if serverip ~= "" and (master == "1" or mArray.openmptcprouter["wan_addr"] == serverip or mArray.openmptcprouter["wan_addr6"] == serverip) and mArray.openmptcprouter["vps_admin"] == false then
mArray.openmptcprouter["vps_machine"] = uci:get("openmptcprouter",s[".name"],"machine") or "" mArray.openmptcprouter["vps_omr_version"] = uci:get("openmptcprouter", s[".name"], "omr_version") or ""
timeout = uci:get("openmptcprouter","settings","status_vps_timeout") or "2" mArray.openmptcprouter["vps_kernel"] = uci:get("openmptcprouter",s[".name"],"kernel") or ""
if uci:get("openmptcprouter",s[".name"],"admin_error") == "1" then mArray.openmptcprouter["vps_machine"] = uci:get("openmptcprouter",s[".name"],"machine") or ""
mArray.openmptcprouter["vps_admin_error"] = true timeout = uci:get("openmptcprouter","settings","status_vps_timeout") or "2"
end if uci:get("openmptcprouter",s[".name"],"admin_error") == "1" then
local adminport = uci:get("openmptcprouter",s[".name"],"port") or "65500" mArray.openmptcprouter["vps_admin_error"] = true
local token = uci:get("openmptcprouter",s[".name"],"token") or ""
if token ~= "" then
local vpsinfo_json = ""
if mArray.openmptcprouter["service_addr_ip"] ~= "" then
vpsinfo_json = sys.exec('curl --max-time ' .. timeout .. ' -s -k -H "Authorization: Bearer ' .. token .. '" https://' .. serverip .. ':' .. adminport .. '/status')
end end
if mArray.openmptcprouter["service_addr_ip6"] ~= "" then local adminport = uci:get("openmptcprouter",s[".name"],"port") or "65500"
vpsinfo_json = sys.exec('curl --max-time ' .. timeout .. ' -s -k -H "Authorization: Bearer ' .. token .. '" https://[' .. serverip .. ']:' .. adminport .. '/status') local token = uci:get("openmptcprouter",s[".name"],"token") or ""
end if token ~= "" then
if vpsinfo_json ~= "" and vpsinfo_json ~= nil then local vpsinfo_json = ""
local status, vpsinfo = pcall(function() if mArray.openmptcprouter["service_addr_ip"] ~= "" then
return json.decode(vpsinfo_json) vpsinfo_json = sys.exec('curl --max-time ' .. timeout .. ' -s -k -H "Authorization: Bearer ' .. token .. '" https://' .. serverip .. ':' .. adminport .. '/status')
end) end
if status and vpsinfo.vps ~= nil then if mArray.openmptcprouter["service_addr_ip6"] ~= "" then
mArray.openmptcprouter["vps_loadavg"] = vpsinfo.vps.loadavg or "" vpsinfo_json = sys.exec('curl --max-time ' .. timeout .. ' -s -k -H "Authorization: Bearer ' .. token .. '" https://[' .. serverip .. ']:' .. adminport .. '/status')
mArray.openmptcprouter["vps_uptime"] = vpsinfo.vps.uptime or "" end
mArray.openmptcprouter["vps_mptcp"] = vpsinfo.vps.mptcp.enabled or "" if vpsinfo_json ~= "" and vpsinfo_json ~= nil then
mArray.openmptcprouter["vps_hostname"] = vpsinfo.vps.hostname or "" local status, vpsinfo = pcall(function()
mArray.openmptcprouter["vps_time"] = vpsinfo.vps.time or "" return json.decode(vpsinfo_json)
if vpsinfo.vps.kernel ~= nil then end)
mArray.openmptcprouter["vps_kernel"] = vpsinfo.vps.kernel or "" if status and vpsinfo.vps ~= nil then
end mArray.openmptcprouter["vps_loadavg"] = vpsinfo.vps.loadavg or ""
if vpsinfo.vps.omr_version ~= nil then mArray.openmptcprouter["vps_uptime"] = vpsinfo.vps.uptime or ""
mArray.openmptcprouter["vps_omr_version"] = vpsinfo.vps.omr_version or "" mArray.openmptcprouter["vps_mptcp"] = vpsinfo.vps.mptcp.enabled or ""
end mArray.openmptcprouter["vps_hostname"] = vpsinfo.vps.hostname or ""
if vpsinfo.vps.time ~= "" then mArray.openmptcprouter["vps_time"] = vpsinfo.vps.time or ""
if math.abs(os.time() - vpsinfo.vps.time) > 10 then if vpsinfo.vps.kernel ~= nil then
mArray.openmptcprouter["vps_time_accurate"] = false mArray.openmptcprouter["vps_kernel"] = vpsinfo.vps.kernel or ""
else
mArray.openmptcprouter["vps_time_accurate"] = true
end end
if vpsinfo.vps.omr_version ~= nil then
mArray.openmptcprouter["vps_omr_version"] = vpsinfo.vps.omr_version or ""
end
if vpsinfo.vps.time ~= "" then
if math.abs(os.time() - vpsinfo.vps.time) > 10 then
mArray.openmptcprouter["vps_time_accurate"] = false
else
mArray.openmptcprouter["vps_time_accurate"] = true
end
end
mArray.openmptcprouter["vps_admin"] = true
mArray.openmptcprouter["vps_status"] = "UP"
mArray.openmptcprouter["vps_admin_error_msg"] = ""
else
uci:set("openmptcprouter",s[".name"],"admin_error","1")
mArray.openmptcprouter["vps_admin_error"] = true
uci:delete("openmptcprouter",s[".name"],"token")
uci:save("openmptcprouter",s[".name"])
uci:commit("openmptcprouter",s[".name"])
mArray.openmptcprouter["vps_admin"] = false
mArray.openmptcprouter["vps_admin_error_msg"] = "Answer error"
end end
mArray.openmptcprouter["vps_admin"] = true if status and vpsinfo.vpn ~= nil then
mArray.openmptcprouter["vps_status"] = "UP" mArray.openmptcprouter["vpn_traffic_rx"] = vpsinfo.vpn.rx or "0"
mArray.openmptcprouter["vps_admin_error_msg"] = "" mArray.openmptcprouter["vpn_traffic_tx"] = vpsinfo.vpn.tx or "0"
mArray.openmptcprouter["vpn_traffic"] = mArray.openmptcprouter["vpn_traffic_tx"] + mArray.openmptcprouter["vpn_traffic_rx"]
else
mArray.openmptcprouter["vpn_traffic_rx"] = "0"
mArray.openmptcprouter["vpn_traffic_tx"] = "0"
mArray.openmptcprouter["vpn_traffic"] = "0"
end
if status and vpsinfo.shadowsocks ~= nil then
mArray.openmptcprouter["ss_traffic"] = vpsinfo.shadowsocks.traffic or "0"
else
mArray.openmptcprouter["ss_traffic"] = "0"
end
if status and vpsinfo.v2ray ~= nil then
mArray.openmptcprouter["v2ray_traffic_rx"] = vpsinfo.v2ray.rx or "0"
mArray.openmptcprouter["v2ray_traffic_tx"] = vpsinfo.v2ray.tx or "0"
mArray.openmptcprouter["v2ray_traffic"] = mArray.openmptcprouter["v2ray_traffic_tx"] + mArray.openmptcprouter["v2ray_traffic_rx"]
else
mArray.openmptcprouter["v2ray_traffic_rx"] = "0"
mArray.openmptcprouter["v2ray_traffic_tx"] = "0"
mArray.openmptcprouter["v2ray_traffic"] = "0"
end
mArray.openmptcprouter["proxy_traffic"] = mArray.openmptcprouter["ss_traffic"] + mArray.openmptcprouter["v2ray_traffic"]
mArray.openmptcprouter["total_traffic"] = mArray.openmptcprouter["proxy_traffic"] + mArray.openmptcprouter["vpn_traffic"]
else else
uci:set("openmptcprouter",s[".name"],"admin_error","1")
mArray.openmptcprouter["vps_admin_error"] = true
uci:delete("openmptcprouter",s[".name"],"token")
uci:save("openmptcprouter",s[".name"])
uci:commit("openmptcprouter",s[".name"])
mArray.openmptcprouter["vps_admin"] = false mArray.openmptcprouter["vps_admin"] = false
mArray.openmptcprouter["vps_admin_error_msg"] = "Answer error" mArray.openmptcprouter["vps_admin_error_msg"] = "No result"
end end
if status and vpsinfo.vpn ~= nil then
mArray.openmptcprouter["vpn_traffic_rx"] = vpsinfo.vpn.rx or "0"
mArray.openmptcprouter["vpn_traffic_tx"] = vpsinfo.vpn.tx or "0"
mArray.openmptcprouter["vpn_traffic"] = mArray.openmptcprouter["vpn_traffic_tx"] + mArray.openmptcprouter["vpn_traffic_rx"]
else
mArray.openmptcprouter["vpn_traffic_rx"] = "0"
mArray.openmptcprouter["vpn_traffic_tx"] = "0"
mArray.openmptcprouter["vpn_traffic"] = "0"
end
if status and vpsinfo.shadowsocks ~= nil then
mArray.openmptcprouter["ss_traffic"] = vpsinfo.shadowsocks.traffic or "0"
else
mArray.openmptcprouter["ss_traffic"] = "0"
end
if status and vpsinfo.v2ray ~= nil then
mArray.openmptcprouter["v2ray_traffic_rx"] = vpsinfo.v2ray.rx or "0"
mArray.openmptcprouter["v2ray_traffic_tx"] = vpsinfo.v2ray.tx or "0"
mArray.openmptcprouter["v2ray_traffic"] = mArray.openmptcprouter["v2ray_traffic_tx"] + mArray.openmptcprouter["v2ray_traffic_rx"]
else
mArray.openmptcprouter["v2ray_traffic_rx"] = "0"
mArray.openmptcprouter["v2ray_traffic_tx"] = "0"
mArray.openmptcprouter["v2ray_traffic"] = "0"
end
mArray.openmptcprouter["proxy_traffic"] = mArray.openmptcprouter["ss_traffic"] + mArray.openmptcprouter["v2ray_traffic"]
mArray.openmptcprouter["total_traffic"] = mArray.openmptcprouter["proxy_traffic"] + mArray.openmptcprouter["vpn_traffic"]
else else
mArray.openmptcprouter["vps_admin"] = false mArray.openmptcprouter["vps_admin"] = false
mArray.openmptcprouter["vps_admin_error_msg"] = "No result" mArray.openmptcprouter["vps_admin_error_msg"] = "No token yet available"
end end
else if mArray.openmptcprouter["vps_admin"] == false then
mArray.openmptcprouter["vps_admin"] = false if mArray.openmptcprouter["service_addr_ip"] ~= "" then
mArray.openmptcprouter["vps_admin_error_msg"] = "No token yet available" local vpstest = sys.exec('curl --max-time ' .. timeout .. ' -s -k https://' .. serverip .. ':' .. adminport .. '/')
end elseif mArray.openmptcprouter["service_addr_ip6"] ~= "" then
if mArray.openmptcprouter["vps_admin"] == false then local vpstest = sys.exec('curl --max-time ' .. timeout .. ' -s -k https://[' .. serverip .. ']:' .. adminport .. '/')
if mArray.openmptcprouter["service_addr_ip"] ~= "" then end
local vpstest = sys.exec('curl --max-time ' .. timeout .. ' -s -k https://' .. serverip .. ':' .. adminport .. '/') if vpstest == "" then
elseif mArray.openmptcprouter["service_addr_ip6"] ~= "" then mArray.openmptcprouter["vps_admin_error_msg"] = mArray.openmptcprouter["vps_admin_error_msg"] .. " - No API script answer"
local vpstest = sys.exec('curl --max-time ' .. timeout .. ' -s -k https://[' .. serverip .. ']:' .. adminport .. '/') end
end
if vpstest == "" then
mArray.openmptcprouter["vps_admin_error_msg"] = mArray.openmptcprouter["vps_admin_error_msg"] .. " - No API script answer"
end end
end end
end end

View file

@ -1030,7 +1030,7 @@ if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($(
fi fi
fi fi
} }
config_list_foreach $1 ip omr_tracebox_mptcp config_list_foreach $1 ip omr_tracebox_mtu
} }
config_load openmptcprouter config_load openmptcprouter
config_foreach traceboxmtutest server config_foreach traceboxmtutest server
@ -1090,7 +1090,7 @@ if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($(
fi fi
fi fi
} }
config_list_foreach $1 ip omr_tracebox_mptcp config_list_foreach $1 ip omr_tracebox_mtu
} }
config_load openmptcprouter config_load openmptcprouter
config_foreach traceboxmtutest server config_foreach traceboxmtutest server