mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-03-09 15:40:03 +00:00
Fix in VPS script and little change in status page
This commit is contained in:
parent
d8adb2b6ab
commit
4b84f92a88
4 changed files with 76 additions and 110 deletions
|
@ -456,8 +456,8 @@ function wizard_add()
|
|||
if dsvpn_key ~= "" then
|
||||
ucic:set("dsvpn","vpn","port","65011")
|
||||
ucic:set("dsvpn","vpn","key",dsvpn_key)
|
||||
ucic:set("glorytun","vpn","localip","10.255.251.2")
|
||||
ucic:set("glorytun","vpn","remoteip","10.255.251.1")
|
||||
ucic:set("dsvpn","vpn","localip","10.255.251.2")
|
||||
ucic:set("dsvpn","vpn","remoteip","10.255.251.1")
|
||||
ucic:set("network","omr6in4","ipaddr","10.255.251.2")
|
||||
ucic:set("network","omr6in4","peeraddr","10.255.251.1")
|
||||
ucic:set("network","omrvpn","proto","none")
|
||||
|
@ -764,6 +764,14 @@ end
|
|||
-- Modified by Ycarus (Yannick Chabanois) <ycarus@zugaina.org>
|
||||
-- Under GPL3+
|
||||
function interfaces_status()
|
||||
local ut = require "luci.util"
|
||||
local rv = ut.ubus("openmptcprouter", "status", {}) or {_=0}
|
||||
|
||||
luci.http.prepare_content("application/json")
|
||||
luci.http.write_json(rv)
|
||||
end
|
||||
|
||||
function old_interfaces_status()
|
||||
local ut = require "luci.util"
|
||||
local ntm = require "luci.model.network".init()
|
||||
local uci = require "luci.model.uci".cursor()
|
||||
|
|
|
@ -59,17 +59,25 @@
|
|||
temp += '<a href="#">';
|
||||
|
||||
var equipmentIcon = '<img src="<%=resource%>/computer.png" />';
|
||||
if (mArray.openmptcprouter.remote_from_lease)
|
||||
if (mArray.openmptcprouter.remote_addr)
|
||||
{
|
||||
var title = String.format('<br /><strong>%s (%s)</strong>', mArray.openmptcprouter.remote_hostname ? mArray.openmptcprouter.remote_hostname : _('You'), mArray.openmptcprouter.remote_addr)
|
||||
if (mArray.openmptcprouter.remote_from_lease)
|
||||
{
|
||||
var title = String.format('<br /><strong>%s (%s)</strong>', mArray.openmptcprouter.remote_hostname ? mArray.openmptcprouter.remote_hostname : _('You'), mArray.openmptcprouter.remote_addr)
|
||||
var statusMessageClass = "";
|
||||
var statusIcon = "<%=resource%>/openmptcprouter/images/statusOK.png";
|
||||
var statusMessage = "";
|
||||
} else {
|
||||
var title = String.format("%s (%s)",'You', mArray.openmptcprouter.remote_addr);
|
||||
var statusMessageClass = "warning";
|
||||
var statusIcon = "<%=resource%>/openmptcprouter/images/statusWarning.png";
|
||||
var statusMessage = _('Your IP was not leased by this router');
|
||||
}
|
||||
} else {
|
||||
var title = String.format('<br /><strong>%s</strong>', _('You'))
|
||||
var statusMessageClass = "";
|
||||
var statusIcon = "<%=resource%>/openmptcprouter/images/statusOK.png";
|
||||
var statusMessage = "";
|
||||
} else {
|
||||
var title = String.format("%s (%s)",'You', mArray.openmptcprouter.remote_addr);
|
||||
var statusMessageClass = "warning";
|
||||
var statusIcon = "<%=resource%>/openmptcprouter/images/statusWarning.png";
|
||||
var statusMessage = _('Your IP was not leased by this router');
|
||||
}
|
||||
var content = "";
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ local json = require("luci.json")
|
|||
local fs = require("nixio.fs")
|
||||
local net = require "luci.model.network".init()
|
||||
local ucic = luci.model.uci.cursor()
|
||||
local json = require "luci.jsonc"
|
||||
local jsonc = require "luci.jsonc"
|
||||
|
||||
function interface_from_device(dev)
|
||||
for _, iface in ipairs(net:get_networks()) do
|
||||
|
@ -233,7 +233,7 @@ function default_vpn(default_vpn)
|
|||
vpn_intf = "tun0"
|
||||
--ucic:set("network","omrvpn","proto","dhcp")
|
||||
ucic:set("network","omrvpn","proto","none")
|
||||
if default_vpn == "glorytun" then
|
||||
if default_vpn == "glorytun_udp" then
|
||||
ucic:set("glorytun","vpn","proto","udp")
|
||||
ucic:set("glorytun","vpn","localip","10.255.254.2")
|
||||
ucic:set("glorytun","vpn","remoteip","10.255.254.1")
|
||||
|
@ -251,10 +251,10 @@ function default_vpn(default_vpn)
|
|||
vpn_intf = "tun0"
|
||||
--ucic:set("network","omrvpn","proto","dhcp")
|
||||
ucic:set("network","omrvpn","proto","none")
|
||||
ucic:set("dsvpn","vpn","localip","10.255.254.2")
|
||||
ucic:set("dsvpn","vpn","remoteip","10.255.254.1")
|
||||
ucic:set("network","omr6in4","ipaddr","10.255.254.2")
|
||||
ucic:set("network","omr6in4","peeraddr","10.255.254.1")
|
||||
ucic:set("dsvpn","vpn","localip","10.255.251.2")
|
||||
ucic:set("dsvpn","vpn","remoteip","10.255.251.1")
|
||||
ucic:set("network","omr6in4","ipaddr","10.255.251.2")
|
||||
ucic:set("network","omr6in4","peeraddr","10.255.251.1")
|
||||
elseif default_vpn == "mlvpn" then
|
||||
vpn_port = 65201
|
||||
vpn_intf = "mlvpn0"
|
||||
|
@ -338,83 +338,6 @@ function server_settings(server,server_ip,openmptcprouter_vps_key)
|
|||
ucic:commit("shadowsocks-libev")
|
||||
end
|
||||
|
||||
function server_failover(server,master)
|
||||
if master == server or master == "" then
|
||||
ucic:set("openmptcprouter",server,"get_config","1")
|
||||
ucic:set("openmptcprouter",server,"master","1")
|
||||
ucic:set("openmptcprouter",server,"backup","0")
|
||||
else
|
||||
ucic:set("openmptcprouter",server,"get_config","0")
|
||||
ucic:set("openmptcprouter",server,"master","0")
|
||||
ucic:set("openmptcprouter",server,"backup","1")
|
||||
end
|
||||
|
||||
local ss_servers_nginx = {}
|
||||
local ss_servers_ha = {}
|
||||
local vpn_servers = {}
|
||||
local k = 0
|
||||
local ss_ip
|
||||
|
||||
-- We have an IP, so set it everywhere
|
||||
if server_ip ~= "" then
|
||||
-- Check if we have more than one IP, in this case use Nginx HA
|
||||
if master == server then
|
||||
ss_ip=server_ip
|
||||
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=2 fail_timeout=20s")
|
||||
end
|
||||
else
|
||||
table.insert(ss_servers_nginx,server_ip .. ":65101 backup")
|
||||
table.insert(ss_servers_ha,server_ip .. ":65101 backup")
|
||||
if vpn_port ~= "" then
|
||||
table.insert(vpn_servers,server_ip .. ":" .. vpn_port .. " backup")
|
||||
end
|
||||
end
|
||||
k = k + 1
|
||||
ucic:set("nginx-ha","ShadowSocks","enable","1")
|
||||
ucic:set("nginx-ha","VPN","enable","1")
|
||||
ucic:set("nginx-ha","ShadowSocks","upstreams",ss_servers_nginx)
|
||||
ucic:set("nginx-ha","VPN","upstreams",vpn_servers)
|
||||
ucic:set("haproxy-tcp","general","enable","0")
|
||||
ucic:set("haproxy-tcp","general","upstreams",ss_servers_ha)
|
||||
server_ip = "127.0.0.1"
|
||||
--ucic:set("shadowsocks-libev","sss0","server",ss_ip)
|
||||
else
|
||||
ucic:set("nginx-ha","ShadowSocks","enable","0")
|
||||
ucic:set("nginx-ha","VPN","enable","0")
|
||||
--ucic:set("shadowsocks-libev","sss0","server",server_ip)
|
||||
--ucic:set("openmptcprouter","vps","ip",server_ip)
|
||||
--ucic:save("openmptcprouter")
|
||||
end
|
||||
ucic:set("shadowsocks-libev","sss0","server",server_ip)
|
||||
ucic:set("glorytun","vpn","host",server_ip)
|
||||
ucic:set("dsvpn","vpn","host",server_ip)
|
||||
ucic:set("mlvpn","general","host",server_ip)
|
||||
luci.sys.call("uci -q del openvpn.omr.remote")
|
||||
luci.sys.call("uci -q add_list openvpn.omr.remote=" .. server_ip)
|
||||
ucic:set("qos","serverin","srchost",server_ip)
|
||||
ucic:set("qos","serverout","dsthost",server_ip)
|
||||
end
|
||||
end
|
||||
|
||||
ucic:save("qos")
|
||||
ucic:commit("qos")
|
||||
ucic:save("nginx-ha")
|
||||
ucic:commit("nginx-ha")
|
||||
ucic:save("openvpn")
|
||||
ucic:commit("openvpn")
|
||||
ucic:save("mlvpn")
|
||||
ucic:commit("mlvpn")
|
||||
ucic:save("dsvpn")
|
||||
ucic:commit("dsvpn")
|
||||
ucic:save("glorytun")
|
||||
ucic:commit("glorytun")
|
||||
ucic:save("shadowsocks-libev")
|
||||
ucic:commit("shadowsocks-libev")
|
||||
end
|
||||
|
||||
function set_shadowsocks(shadowsocks_key)
|
||||
-- Set ShadowSocks settings
|
||||
ucic:set("shadowsocks-libev","sss0","key",shadowsocks_key)
|
||||
|
@ -925,8 +848,13 @@ function interfaces_status()
|
|||
mptcp[ipaddr].ipaddr= ipaddr
|
||||
end
|
||||
|
||||
|
||||
mArray.openmptcprouter['model'] = sys.exec("ubus call system board | jsonfilter -q -e '@.model' 2>/dev/nul")
|
||||
local board_name = sys.exec("ubus call system board | jsonfilter -q -e '@.board_name' 2>/dev/nul")
|
||||
-- retrieve core temperature
|
||||
--mArray.openmptcprouter["core_temp"] = sys.exec("cat /sys/devices/platform/coretemp.0/hwmon/hwmon0/temp2_input 2>/dev/null"):match("%d+")
|
||||
if board_name:match("^raspberrypi.*") then
|
||||
mArray.openmptcprouter["core_temp"] = sys.exec("cat /sys/class/thermal/thermal_zone0/temp 2>/dev/null"):match("%d+")
|
||||
end
|
||||
mArray.openmptcprouter["loadavg"] = sys.exec("cat /proc/loadavg 2>/dev/null"):match("[%d%.]+ [%d%.]+ [%d%.]+")
|
||||
mArray.openmptcprouter["uptime"] = sys.exec("cat /proc/uptime 2>/dev/null"):match("[%d%.]+")
|
||||
|
||||
|
@ -1482,7 +1410,7 @@ local methods = {
|
|||
}
|
||||
|
||||
local function parseInput()
|
||||
local parse = json.new()
|
||||
local parse = jsonc.new()
|
||||
local done, err
|
||||
|
||||
while true do
|
||||
|
@ -1495,7 +1423,7 @@ local function parseInput()
|
|||
end
|
||||
|
||||
if not done then
|
||||
print(json.stringify({ error = err or "Incomplete input" }))
|
||||
print(jsonc.stringify({ error = err or "Incomplete input" }))
|
||||
os.exit(1)
|
||||
end
|
||||
|
||||
|
@ -1505,12 +1433,12 @@ end
|
|||
local function validateArgs(func, uargs)
|
||||
local method = methods[func]
|
||||
if not method then
|
||||
print(json.stringify({ error = "Method not found" }))
|
||||
print(jsonc.stringify({ error = "Method not found" }))
|
||||
os.exit(1)
|
||||
end
|
||||
|
||||
if type(uargs) ~= "table" then
|
||||
print(json.stringify({ error = "Invalid arguments" }))
|
||||
print(jsonc.stringify({ error = "Invalid arguments" }))
|
||||
os.exit(1)
|
||||
end
|
||||
|
||||
|
@ -1522,7 +1450,7 @@ local function validateArgs(func, uargs)
|
|||
if margs[k] == nil or
|
||||
(v ~= nil and type(v) ~= type(margs[k]))
|
||||
then
|
||||
print(json.stringify({ error = "Invalid arguments" }))
|
||||
print(jsonc.stringify({ error = "Invalid arguments" }))
|
||||
os.exit(1)
|
||||
end
|
||||
end
|
||||
|
@ -1532,11 +1460,11 @@ end
|
|||
if arg[1] == "list" then
|
||||
local _, method, rv = nil, nil, {}
|
||||
for _, method in pairs(methods) do rv[_] = method.args or {} end
|
||||
print((json.stringify(rv):gsub(":%[%]", ":{}")))
|
||||
print((jsonc.stringify(rv):gsub(":%[%]", ":{}")))
|
||||
elseif arg[1] == "call" then
|
||||
local args = parseInput()
|
||||
local method = validateArgs(arg[2], args)
|
||||
local result, code = method.call(args)
|
||||
print((json.stringify(result):gsub("^%[%]$", "{}")))
|
||||
print((jsonc.stringify(result):gsub("^%[%]$", "{}")))
|
||||
os.exit(code or 0)
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue