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

Add check that MPTCP is not blocked

This commit is contained in:
Ycarus 2018-06-18 10:56:32 +02:00
parent dc9e238bb9
commit 5e7cf8bd7a
4 changed files with 34 additions and 3 deletions

View file

@ -6,7 +6,7 @@
include $(TOPDIR)/rules.mk
LUCI_TITLE:=LuCI Support for OpenMPTCProuter
LUCI_DEPENDS:=+luci-lib-json +rdisc6
LUCI_DEPENDS:=+luci-lib-json +rdisc6 +curl
PKG_LICENSE:=GPLv3
include ../luci/luci.mk

View file

@ -306,11 +306,17 @@ function interfaces_status()
mArray.openmptcprouter = {}
mArray.openmptcprouter["version"] = ut.trim(sys.exec("cat /etc/os-release | grep VERSION= | sed -e 's:VERSION=::'"))
-- Check that requester is in same network
mArray.openmptcprouter["service_addr"] = uci:get("shadowsocks", "proxy", "server") or "0.0.0.0"
mArray.openmptcprouter["service_addr"] = uci:get("shadowsocks-libev", "proxy", "server") or "0.0.0.0"
mArray.openmptcprouter["local_addr"] = uci:get("network", "lan", "ipaddr")
-- shadowsocksaddr
mArray.openmptcprouter["ss_addr"] = sys.exec("curl -s -4 --socks5 127.0.0.1:1111 -m 5 http://ip.openmptcprouter.com")
local tracker_ip = uci:get("shadowsocks-libev","tracker","local_address") or ""
local tracker_port = uci:get("shadowsocks-libev","tracker","local_port")
if tracker_ip ~= "" then
mArray.openmptcprouter["ss_addr"] = sys.exec("curl -s -4 --socks5 " .. tracker_ip .. ":" .. tracker_port .. " -m 5 http://ip.openmptcprouter.com")
else
mArray.openmptcprouter["ss_addr"] = ""
end
-- wanaddr
mArray.openmptcprouter["wan_addr"] = sys.exec("wget -4 -qO- -T 1 http://ip.openmptcprouter.com")
@ -446,6 +452,16 @@ function interfaces_status()
connectivity = 'ERROR'
end
-- Test if multipath can work on the connection
local multipath_available
local multipath_available_state = ut.trim(sys.exec("omr-mptcp-intf " .. ifname .. " | grep 'Nay, Nay, Nay'"))
if multipath_available_state == "" then
multipath_available = 'OK'
else
multipath_available = 'ERROR'
end
-- Detect WAN gateway status
local gw_ping = 'UP'
if gateway == "" then
@ -509,6 +525,7 @@ function interfaces_status()
upload = section['upload'],
gw_ping = gw_ping,
ipv6_discover = ipv6_discover,
multipath_available = multipath_available,
}
if ifname:match("^tun.*") then

View file

@ -188,6 +188,7 @@
var gateway = mArray.wans[i].gateway;
var gw_ping = mArray.wans[i].gw_ping;
var ipv6_discover = mArray.wans[i].ipv6_discover;
var multipath_available = mArray.wans[i].multipath_available;
// Generate template
if(mArray.openmptcprouter.remote_from_lease == true && mArray.wans.length == 1)
{
@ -210,6 +211,9 @@
} else if(gw_ping == 'DOWN')
{
statusMessage += 'Gateway DOWN<br />'
} else if(multipath_available == 'ERROR')
{
statusMessage += 'Multipath blocked on the connection<br />'
}
if(ipv6_discover == 'DETECTED')
{

View file

@ -0,0 +1,10 @@
#!/bin/sh
uci -q batch <<-EOF >/dev/null
add_list dhcp.dnsmasq.ipset='/multipath-tcp.org/ss_rules_dst_bypass'
commit dhcp
EOF
curl -s -4 -m 5 --interface $1 http://www.multipath-tcp.org
uci -q batch <<-EOF >/dev/null
del_list dhcp.dnsmasq.ipset='/multipath-tcp.org/ss_rules_dst_bypass'
commit dhcp
EOF