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:
		
							parent
							
								
									dc9e238bb9
								
							
						
					
					
						commit
						5e7cf8bd7a
					
				
					 4 changed files with 34 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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')
 | 
			
		||||
					{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										10
									
								
								luci-app-openmptcprouter/root/bin/omr-mptcp-intf
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										10
									
								
								luci-app-openmptcprouter/root/bin/omr-mptcp-intf
									
										
									
									
									
										Executable 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
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue