1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-02-14 19:41:51 +00:00

Fixes and set detected ip in a new uci section

This commit is contained in:
Ycarus 2018-12-14 13:19:58 +01:00
parent 8a1b59f1d2
commit 8e03e42f54
5 changed files with 50 additions and 31 deletions

View file

@ -218,6 +218,7 @@ function wizard_add()
end
-- Retrieve all server settings
local getconf = 0
local serversnb = 0
local servers = luci.http.formvaluetable("server")
for server, _ in pairs(servers) do
@ -229,7 +230,12 @@ function wizard_add()
ucic:set("openmptcprouter",server,"server")
ucic:set("openmptcprouter",server,"username","openmptcprouter")
ucic:set("openmptcprouter",server,"password",openmptcprouter_vps_key)
ucic:set("openmptcprouter",server,"get_config","1")
if backup == "0" and getconf == 0 then
ucic:set("openmptcprouter",server,"get_config","1")
getconf = getconf + 1
else
ucic:set("openmptcprouter",server,"get_config","0")
end
ucic:set("openmptcprouter",server,"ip",server_ip)
ucic:set("openmptcprouter",server,"backup",backup)
ucic:set("openmptcprouter",server,"port","65500")
@ -254,10 +260,10 @@ function wizard_add()
if serversnb > 1 then
if backup == "0" then
ss_ip=server_ip
table.insert(ss_servers_nginx,server_ip .. ":65101 max_fails=3 fail_timeout=30s")
table.insert(ss_servers_nginx,server_ip .. ":65101 max_fails=2 fail_timeout=20s")
table.insert(ss_servers_ha,server_ip .. ":65101 check")
if vpn_port ~= "" then
table.insert(vpn_servers,server_ip .. ":" .. vpn_port .. " max_fails=3 fail_timeout=30s")
table.insert(vpn_servers,server_ip .. ":" .. vpn_port .. " max_fails=2 fail_timeout=20s")
end
else
table.insert(ss_servers_nginx,server_ip .. ":65101 backup")
@ -497,7 +503,7 @@ function update_vps()
if update_vps ~= "" then
ucic:foreach("openmptcprouter", "server", function(s)
local serverip = uci:get("openmptcprouter",s[".name"],"ip")
local adminport = uci:get("openmptcprouter",s[".name"],"port") or ""
local adminport = uci:get("openmptcprouter",s[".name"],"port") or "65500"
local token = uci:get("openmptcprouter",s[".name"],"token") or ""
if token ~= "" then
sys.exec('curl -4 --max-time 20 -s -k -H "Authorization: Bearer ' .. token .. '" https://' .. serverip .. ":" .. adminport .. "/update")
@ -582,7 +588,6 @@ function interfaces_status()
mArray.openmptcprouter = {}
--mArray.openmptcprouter["version"] = ut.trim(sys.exec("cat /etc/os-release | grep VERSION= | sed -e 's:VERSION=::'"))
mArray.openmptcprouter["version"] = uci:get("openmptcprouter", "settings", "version") or ut.trim(sys.exec("cat /etc/os-release | grep VERSION= | sed -e 's:VERSION=::' -e 's/^.//' -e 's/.$//'"))
mArray.openmptcprouter["vps_omr_version"] = uci:get("openmptcprouter", "vps", "omr_version") or ""
mArray.openmptcprouter["latest_version_omr"] = uci:get("openmptcprouter", "latest_versions", "omr") or ""
mArray.openmptcprouter["latest_version_vps"] = uci:get("openmptcprouter", "latest_versions", "vps") or ""
@ -608,8 +613,16 @@ function interfaces_status()
mArray.openmptcprouter["wan_addr6"] = ""
local tracker_ip = ""
if mArray.openmptcprouter["dns"] == true then
-- wanaddr
mArray.openmptcprouter["wan_addr"] = sys.exec("wget -4 -qO- -T 1 http://ip.openmptcprouter.com")
if mArray.openmptcprouter["ipv6"] == "enabled" then
mArray.openmptcprouter["wan_addr6"] = uci:get("openmptcprouter","omr","public_detected_ipv6") or ""
if mArray.openmptcprouter["wan_addr6"] == "" then
mArray.openmptcprouter["wan_addr6"] = sys.exec("wget -6 -qO- -T 1 http://ipv6.openmptcprouter.com")
end
end
-- shadowsocksaddr
mArray.openmptcprouter["ss_addr"] = uci:get("openmptcprouter","vps","public_detected_ipv4") or ""
mArray.openmptcprouter["ss_addr"] = uci:get("openmptcprouter","omr","public_detected_ipv4") or ""
if mArray.openmptcprouter["ss_addr"] == "" then
tracker_ip = uci:get("shadowsocks-libev","tracker","local_address") or ""
if tracker_ip ~= "" then
@ -618,14 +631,6 @@ function interfaces_status()
--mArray.openmptcprouter["ss_addr6"] = sys.exec("curl -s -6 --socks5 " .. tracker_ip .. ":" .. tracker_port .. " -m 3 http://ipv6.openmptcprouter.com")
end
end
-- wanaddr
mArray.openmptcprouter["wan_addr"] = sys.exec("wget -4 -qO- -T 1 http://ip.openmptcprouter.com")
if mArray.openmptcprouter["ipv6"] == "enabled" then
mArray.openmptcprouter["wan_addr6"] = uci:get("openmptcprouter","vps","public_detected_ipv6") or ""
if mArray.openmptcprouter["wan_addr6"] == "" then
mArray.openmptcprouter["wan_addr6"] = sys.exec("wget -6 -qO- -T 1 http://ipv6.openmptcprouter.com")
end
end
end
mArray.openmptcprouter["remote_addr"] = luci.http.getenv("REMOTE_ADDR") or ""
@ -639,21 +644,26 @@ function interfaces_status()
end
-- Get VPS info
mArray.openmptcprouter["vps_kernel"] = uci:get("openmptcprouter","vps","kernel") or ""
mArray.openmptcprouter["vps_machine"] = uci:get("openmptcprouter","vps","machine") or ""
mArray.openmptcprouter["vps_omr_version"] = uci:get("openmptcprouter","vps","omr_version") or ""
ucic:foreach("openmptcprouter", "server", function(s)
local serverip = uci:get("openmptcprouter",s[".name"],"ip")
if serverip ~= "" and (mArray.openmptcprouter["service_addr"] == serverip or serverip == mArray.openmptcprouter["wan_addr"]) then
local adminport = uci:get("openmptcprouter",s[".name"],"port") or ""
mArray.openmptcprouter["vps_omr_version"] = uci:get("openmptcprouter", s[".name"], "omr_version") or ""
mArray.openmptcprouter["vps_kernel"] = uci:get("openmptcprouter",s[".name"],"kernel") or ""
mArray.openmptcprouter["vps_machine"] = uci:get("openmptcprouter",s[".name"],"machine") or ""
local adminport = uci:get("openmptcprouter",s[".name"],"port") or "65500"
local token = uci:get("openmptcprouter",s[".name"],"token") or ""
if token ~= "" then
local vpsinfo_json = sys.exec('curl -4 --max-time 2 -s -k -H "Authorization: Bearer ' .. token .. '" https://' .. serverip .. ":" .. adminport .."/status")
local vpsinfo_json = sys.exec('curl -4 --max-time 2 -s -k -H "Authorization: Bearer ' .. token .. '" https://' .. serverip .. ':' .. adminport .. '/status')
local vpsinfo = json.decode(vpsinfo_json) or ""
if vpsinfo.vps ~= nil then
mArray.openmptcprouter["vps_loadavg"] = vpsinfo.vps.loadavg or ""
mArray.openmptcprouter["vps_uptime"] = vpsinfo.vps.uptime or ""
mArray.openmptcprouter["vps_mptcp"] = vpsinfo.vps.mptcp or ""
else
uci:set("openmptcprouter",s[".name"],"admin_error","1")
uci:delete("openmptcprouter",s[".name"],"token")
uci:save("openmptcprouter",s[".name"])
uci:commit("openmptcprouter",s[".name"])
end
end
end
@ -852,7 +862,7 @@ function interfaces_status()
serverip = mArray.openmptcprouter["wan_addr"]
end
if serverip ~= "" then
local server_ping_test = sys.exec("ping -w 1 -c 1 -I " .. ifname .. " " .. mArray.openmptcprouter["service_addr"])
local server_ping_test = sys.exec("ping -w 1 -c 1 -I " .. ifname .. " " .. serverip)
local server_ping_result = ut.trim(sys.exec("echo '" .. server_ping_test .. "' | grep '100% packet loss'"))
if server_ping_result ~= "" then
server_ping = "DOWN"
@ -887,7 +897,7 @@ function interfaces_status()
if multipath_available_state_wan == "" then
multipath_available = "OK"
if mArray.openmptcprouter["service_addr"] ~= "" and mArray.openmptcprouter["service_addr"] ~= "127.0.0.1" then
mArray.openmptcprouter["server_mptcp"] = "disabled"
mArray.openmptcprouter["server_mptcp"] = "disabled"
end
else
multipath_available = "ERROR"

View file

@ -178,7 +178,7 @@
temp += '</td></tr>';
temp += '<tr><td><div class="vertdash" ></div></td></tr>';
temp += '<tr><td>';
temp += '<a href="#" id="omr-vps">';
temp += '<a href="<%=url('admin/system/openmptcprouter/wizard')%>" id="omr-vps">';
var statusIcon = "<%=resource%>/openmptcprouter/images/statusOK.png";
var equipmentIcon = '<img src="<%=resource%>/server.png" />';
if (mArray.openmptcprouter.wan_addr == mArray.openmptcprouter.service_addr || (mArray.openmptcprouter.wan_addr !== "" && mArray.openmptcprouter.service_addr == "127.0.0.1"))
@ -195,6 +195,9 @@
if (mArray.openmptcprouter.wan_addr == "" && mArray.openmptcprouter.ss_addr == "")
{
statusMessage += 'No VPS IP address, No WAN IP address<br/>';
} else if (mArray.openmptcprouter.wan_addr == "")
{
statusMessage += 'No WAN IP address<br/>';
}
if (mArray.openmptcprouter.wan_addr !== "" && mArray.openmptcprouter.vps_status == "DOWN")
{

View file

@ -66,7 +66,7 @@ end
<div class="cbi-value">
<label class="cbi-value-title" for="server_ip"><%:Server IP%></label>
<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-type="ip4addr">
<input name="<%=servername%>.server_ip" id="<%=servername%>.server_ip" placeholder="Server IP" class="cbi-input-text" value="<%=uci:get("openmptcprouter",servername,"ip")%>" data-type="ip4addr" data-optional="false">
<div class="cbi-value-description">
<%:Server IP will be set for ShadowSocks, Glorytun, OpenVPN and MLVPN%>
</div>
@ -76,7 +76,7 @@ end
<div class="cbi-value">
<label class="cbi-value-title"><%:OpenMPTCProuter VPS key%></label>
<div class="cbi-value-field">
<input type="text" name="<%=servername%>.openmptcprouter_vps_key" placeholder="OpenMPTCProuter VPS key" class="cbi-input-text" value="<%=uci:get("openmptcprouter",servername,"password")%>" data-type="base64">
<input type="text" name="<%=servername%>.openmptcprouter_vps_key" placeholder="OpenMPTCProuter VPS key" class="cbi-input-text" value="<%=uci:get("openmptcprouter",servername,"password")%>" data-type="base64" data-optional="false">
<br />
<div class="cbi-value-description">
<%:Key to configure and retrieve others keys from OpenMPTCProuter VPS. Empty to disable.%>
@ -99,7 +99,7 @@ end
%>
<div class="cbi-section-create">
<div>
<input type="text" class="cbi-section-create-name" id="cbi.cts.omr-bypass.server." name="add_server_name" data-type="uciname" data-optional="false" />
<input type="text" class="cbi-section-create-name" id="cbi.cts.omr-bypass.server." name="add_server_name" data-type="uciname" />
</div>
<input class="cbi-button cbi-button-add" type="submit" onclick="this.form.cbi_state='add-section'; return true" name="add_server" value="<%:Add server%>" />
</div>

View file

@ -33,6 +33,12 @@ if [ "$(uci -q get openmptcprouter.vps)" != "server" ]; then
commit openmptcprouter
EOF
fi
if [ "$(uci -q get openmptcprouter.omr)" != "router" ]; then
uci -q batch <<-EOF
set openmptcprouter.omr=router
commit openmptcprouter
EOF
fi
if [ "$(uci -q get openmptcprouter.settings.master)" = "" ]; then
uci -q batch <<-EOF
set openmptcprouter.settings=settings

View file

@ -9,9 +9,9 @@ log() {
}
get_ip() {
uci -q set openmptcprouter.vps.detected_public_ipv4=$(wget -4 -qO- -T 3 http://ip.openmptcprouter.com)
uci -q set openmptcprouter.omr.detected_public_ipv4=$(wget -4 -qO- -T 3 http://ip.openmptcprouter.com)
if [ "$(sysctl -n net.ipv6.conf.all.disable_ipv6 | tr -d '\n')" = "0" ]; then
uci -q set openmptcprouter.vps.detected_public_ipv6=$(wget -6 -qO- -T 3 http://ip.openmptcprouter.com)
uci -q set openmptcprouter.omr.detected_public_ipv6=$(wget -6 -qO- -T 3 http://ip.openmptcprouter.com)
fi
}
@ -25,7 +25,7 @@ nodns=0
last=0
nocontact=""
uci -q set openmptcprouter.vps.shadowsocks="up"
uci -q set openmptcprouter.omr.shadowsocks="up"
get_ip
while true; do
@ -37,14 +37,14 @@ while true; do
nocontact=""
[ "${last}" -ge "${retry}" ] && {
log "Shadowsocks is up (can contact ${host})"
uci -q set openmptcprouter.vps.shadowsocks="up"
uci -q set openmptcprouter.omr.shadowsocks="up"
uci -q commit openmptcprouter
}
if ! /etc/init.d/shadowsocks-libev rules_exist ; then
/etc/init.d/shadowsocks-libev rules_up 2> /dev/null
get_ip
fi
[ "$(uci -q get openmptcprouter.vps.ipv4)" = "" ] || ([ "$(sysctl -n net.ipv6.conf.all.disable_ipv6 | tr -d '\n')" = "0" ] && [ "$(uci -q get openmptcprouter.vps.ipv6)" = "" ]) && get_ip
[ "$(uci -q get openmptcprouter.omr.ipv4)" = "" ] || ([ "$(sysctl -n net.ipv6.conf.all.disable_ipv6 | tr -d '\n')" = "0" ] && [ "$(uci -q get openmptcprouter.omr.ipv6)" = "" ]) && get_ip
last=0
else
last=$((last + 1 ))
@ -52,7 +52,7 @@ while true; do
[ "${last}" -ge "${retry}" ] && {
if /etc/init.d/shadowsocks-libev rules_exist ; then
log "Shadowsocks is down (can't contact ${nocontact})"
uci -q set openmptcprouter.vps.shadowsocks="down"
uci -q set openmptcprouter.omr.shadowsocks="down"
/etc/init.d/shadowsocks-libev rules_down 2> /dev/null
get_ip
fi