mirror of
				https://github.com/Ysurac/openmptcprouter-feeds.git
				synced 2025-03-09 15:40:03 +00:00 
			
		
		
		
	Fix omr-bypass with vlan
This commit is contained in:
		
							parent
							
								
									b0e38240cc
								
							
						
					
					
						commit
						df1f5a7915
					
				
					 1 changed files with 16 additions and 15 deletions
				
			
		| 
						 | 
				
			
			@ -50,7 +50,8 @@ _bypass_domains() {
 | 
			
		|||
_bypass_domain() {
 | 
			
		||||
	local domain=$1
 | 
			
		||||
	local intf=$2
 | 
			
		||||
 | 
			
		||||
	intf=$(echo $intf | sed -e 's/\./_/')
 | 
			
		||||
	
 | 
			
		||||
	[ -z "$intf" ] && intf="all"
 | 
			
		||||
	if [ -n "$domain" ]; then
 | 
			
		||||
		domain=$(echo $domain | sed 's:^\.::')
 | 
			
		||||
| 
						 | 
				
			
			@ -68,7 +69,7 @@ _bypass_domain() {
 | 
			
		|||
			fi
 | 
			
		||||
		fi
 | 
			
		||||
		if [ "$(uci -q get dhcp.@dnsmasq[0].ipset | grep /$domain/)" = "" ]; then
 | 
			
		||||
			uci -q add_list dhcp.@dnsmasq[0].ipset="/$domain/omr_dst_bypass_$intf,omr6_dst_bypass_$intf"
 | 
			
		||||
			uci -q add_list dhcp.@dnsmasq[0].ipset="/$domain/omr_dst_bypass_$intfuci,omr6_dst_bypass_$intf"
 | 
			
		||||
		else
 | 
			
		||||
			dnsmasqipset=$(uci -q get dhcp.@dnsmasq[0].ipset | sed 's/ /\n/g')
 | 
			
		||||
			for dnsipset in $dnsmasqipset; do
 | 
			
		||||
| 
						 | 
				
			
			@ -90,8 +91,8 @@ _bypass_mac() {
 | 
			
		|||
	config_get intf $1 interface
 | 
			
		||||
	config_get enabled $1 enabled
 | 
			
		||||
	[ "$enabled" = "0" ] && return
 | 
			
		||||
	intfuci=$(echo $intf | sed 's/\./_/')
 | 
			
		||||
	local intfid="$(uci -q get omr-bypass.$intfuci.id)"
 | 
			
		||||
	intf=$(echo $intf | sed -e 's/\./_/')
 | 
			
		||||
	local intfid="$(uci -q get omr-bypass.$intf.id)"
 | 
			
		||||
 | 
			
		||||
	[ -z "$intf" ] && intf="all"
 | 
			
		||||
	[ -z "$mac" ] && return
 | 
			
		||||
| 
						 | 
				
			
			@ -132,8 +133,8 @@ _bypass_lan_ip() {
 | 
			
		|||
	config_get intf $1 interface
 | 
			
		||||
	config_get enabled $1 enabled
 | 
			
		||||
	[ "$enabled" = "0" ] && return
 | 
			
		||||
	intfuci=$(echo $intf | sed 's/\./_/')
 | 
			
		||||
	local intfid="$(uci -q get omr-bypass.$intfuci.id)"
 | 
			
		||||
	intf=$(echo $intf | sed -e 's/\./_/')
 | 
			
		||||
	local intfid="$(uci -q get omr-bypass.$intf.id)"
 | 
			
		||||
 | 
			
		||||
	[ -z "$intf" ] && intf="all"
 | 
			
		||||
	[ -z "$ip" ] && return
 | 
			
		||||
| 
						 | 
				
			
			@ -190,8 +191,8 @@ _bypass_dest_port() {
 | 
			
		|||
	config_get intf $1 interface
 | 
			
		||||
	config_get enabled $1 enabled
 | 
			
		||||
	[ "$enabled" = "0" ] && return
 | 
			
		||||
	intfuci=$(echo $intf | sed 's/\./_/')
 | 
			
		||||
	local intfid="$(uci -q get omr-bypass.$intfuci.id)"
 | 
			
		||||
	intf=$(echo $intf | sed -e 's/\./_/')
 | 
			
		||||
	local intfid="$(uci -q get omr-bypass.$intf.id)"
 | 
			
		||||
 | 
			
		||||
	[ -z "$intf" ] && intf="all"
 | 
			
		||||
	[ -z "$dport" ] && return
 | 
			
		||||
| 
						 | 
				
			
			@ -246,8 +247,8 @@ _bypass_src_port() {
 | 
			
		|||
	config_get intf $1 interface
 | 
			
		||||
	config_get enabled $1 enabled
 | 
			
		||||
	[ "$enabled" = "0" ] && return
 | 
			
		||||
	intfuci=$(echo $intf | sed 's/\./_/')
 | 
			
		||||
	local intfid="$(uci -q get omr-bypass.$intfuci.id)"
 | 
			
		||||
	intf=$(echo $intf | sed -e 's/\./_/')
 | 
			
		||||
	local intfid="$(uci -q get omr-bypass.$intf.id)"
 | 
			
		||||
 | 
			
		||||
	[ -z "$intf" ] && intf="all"
 | 
			
		||||
	[ -z "$sport" ] && return
 | 
			
		||||
| 
						 | 
				
			
			@ -300,8 +301,8 @@ _bypass_proto() {
 | 
			
		|||
	config_get intf $1 interface
 | 
			
		||||
	config_get enabled $1 enabled
 | 
			
		||||
	[ "$enabled" = "0" ] && return
 | 
			
		||||
	intfuci=$(echo $intf | sed 's/\./_/')
 | 
			
		||||
	local intfid="$(uci -q get omr-bypass.$intfuci.id)"
 | 
			
		||||
	intf=$(echo $intf | sed -e 's/\./_/')
 | 
			
		||||
	local intfid="$(uci -q get omr-bypass.$intf.id)"
 | 
			
		||||
 | 
			
		||||
	[ -z "$intf" ] && intf="all"
 | 
			
		||||
	[ -z "$proto" ] && return
 | 
			
		||||
| 
						 | 
				
			
			@ -459,6 +460,7 @@ _intf_rule() {
 | 
			
		|||
	#[ "$mode" = "off" ] && return
 | 
			
		||||
	[ -z "$count" ] && return
 | 
			
		||||
	[ -z "$intf" ] && return
 | 
			
		||||
	intf=$(echo $intf | sed -e 's/\./_/')
 | 
			
		||||
	[ "$(echo $1 | grep _dev)" != "" ] && return
 | 
			
		||||
	[ -z "$RELOAD" ] || [ "$(ipset --list | grep omr_dst_bypass_$intf)" = "" ] && {
 | 
			
		||||
		unset RELOAD
 | 
			
		||||
| 
						 | 
				
			
			@ -498,9 +500,8 @@ _intf_rule() {
 | 
			
		|||
	config_foreach _intf_rule_ss_rules ss_rules
 | 
			
		||||
	_intf_rule_v2ray_rules
 | 
			
		||||
 | 
			
		||||
	intfuci=$(echo $intf | sed 's/\./_/')
 | 
			
		||||
	uci -q set omr-bypass.$intfuci=interface
 | 
			
		||||
	uci -q set omr-bypass.$intfuci.id=$count
 | 
			
		||||
	uci -q set omr-bypass.$intf=interface
 | 
			
		||||
	uci -q set omr-bypass.$intf.id=$count
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
_bypass_ip_set() {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue