uqmi: inherit firewall zone membership to virtual sub interfaces
Fix an issue where subinterfaces were not added to the same firewall zone as their parent. Fixes: FS#2122 Signed-off-by: Jo-Philipp Wich <jo@mein.io> Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
This commit is contained in:
		 Jo-Philipp Wich
					Jo-Philipp Wich
				
			
				
					committed by
					
						 Koen Vandeputte
						Koen Vandeputte
					
				
			
			
				
	
			
			
			 Koen Vandeputte
						Koen Vandeputte
					
				
			
						parent
						
							d3506d1bc1
						
					
				
				
					commit
					64bb88841f
				
			| @@ -146,12 +146,18 @@ proto_ncm_setup() { | |||||||
| 	proto_close_data | 	proto_close_data | ||||||
| 	proto_send_update "$interface" | 	proto_send_update "$interface" | ||||||
|  |  | ||||||
|  | 	local zone="$(fw3 -q network "$interface" 2>/dev/null)" | ||||||
|  |  | ||||||
| 	[ "$pdptype" = "IP" -o "$pdptype" = "IPV4V6" ] && { | 	[ "$pdptype" = "IP" -o "$pdptype" = "IPV4V6" ] && { | ||||||
| 		json_init | 		json_init | ||||||
| 		json_add_string name "${interface}_4" | 		json_add_string name "${interface}_4" | ||||||
| 		json_add_string ifname "@$interface" | 		json_add_string ifname "@$interface" | ||||||
| 		json_add_string proto "dhcp" | 		json_add_string proto "dhcp" | ||||||
| 		proto_add_dynamic_defaults | 		proto_add_dynamic_defaults | ||||||
|  | 		[ -n "$zone" ] && { | ||||||
|  | 			json_add_string zone "$zone" | ||||||
|  | 		} | ||||||
|  | 		json_close_object | ||||||
| 		ubus call network add_dynamic "$(json_dump)" | 		ubus call network add_dynamic "$(json_dump)" | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| @@ -162,6 +168,10 @@ proto_ncm_setup() { | |||||||
| 		json_add_string proto "dhcpv6" | 		json_add_string proto "dhcpv6" | ||||||
| 		json_add_string extendprefix 1 | 		json_add_string extendprefix 1 | ||||||
| 		proto_add_dynamic_defaults | 		proto_add_dynamic_defaults | ||||||
|  | 		[ -n "$zone" ] && { | ||||||
|  | 			json_add_string zone "$zone" | ||||||
|  | 		} | ||||||
|  | 		json_close_object | ||||||
| 		ubus call network add_dynamic "$(json_dump)" | 		ubus call network add_dynamic "$(json_dump)" | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|   | |||||||
| @@ -298,6 +298,9 @@ proto_qmi_setup() { | |||||||
| 	} | 	} | ||||||
| 	proto_close_data | 	proto_close_data | ||||||
| 	proto_send_update "$interface" | 	proto_send_update "$interface" | ||||||
|  |  | ||||||
|  | 	local zone="$(fw3 -q network "$interface" 2>/dev/null)" | ||||||
|  |  | ||||||
| 	[ -n "$pdh_6" ] && { | 	[ -n "$pdh_6" ] && { | ||||||
| 		if [ -z "$dhcpv6" -o "$dhcpv6" = 0 ]; then | 		if [ -z "$dhcpv6" -o "$dhcpv6" = 0 ]; then | ||||||
| 			json_load "$(uqmi -s -d $device --set-client-id wds,$cid_6 --get-current-settings)" | 			json_load "$(uqmi -s -d $device --set-client-id wds,$cid_6 --get-current-settings)" | ||||||
| @@ -318,6 +321,11 @@ proto_qmi_setup() { | |||||||
| 				proto_add_dns_server "$dns1_6" | 				proto_add_dns_server "$dns1_6" | ||||||
| 				proto_add_dns_server "$dns2_6" | 				proto_add_dns_server "$dns2_6" | ||||||
| 			} | 			} | ||||||
|  | 			[ -n "$zone" ] && { | ||||||
|  | 		        	proto_add_data | ||||||
|  |         			json_add_string zone "$zone" | ||||||
|  | 			        proto_close_data | ||||||
|  | 			} | ||||||
| 			proto_send_update "$interface" | 			proto_send_update "$interface" | ||||||
| 		else | 		else | ||||||
| 			json_init | 			json_init | ||||||
| @@ -328,6 +336,7 @@ proto_qmi_setup() { | |||||||
| 			proto_add_dynamic_defaults | 			proto_add_dynamic_defaults | ||||||
| 			# RFC 7278: Extend an IPv6 /64 Prefix to LAN | 			# RFC 7278: Extend an IPv6 /64 Prefix to LAN | ||||||
| 			json_add_string extendprefix 1 | 			json_add_string extendprefix 1 | ||||||
|  | 			[ -n "$zone" ] && json_add_string zone "$zone" | ||||||
| 			json_close_object | 			json_close_object | ||||||
| 			ubus call network add_dynamic "$(json_dump)" | 			ubus call network add_dynamic "$(json_dump)" | ||||||
| 		fi | 		fi | ||||||
| @@ -340,6 +349,7 @@ proto_qmi_setup() { | |||||||
| 		json_add_string proto "dhcp" | 		json_add_string proto "dhcp" | ||||||
| 		[ -n "$ip4table" ] && json_add_string ip4table "$ip4table" | 		[ -n "$ip4table" ] && json_add_string ip4table "$ip4table" | ||||||
| 		proto_add_dynamic_defaults | 		proto_add_dynamic_defaults | ||||||
|  | 		[ -n "$zone" ] && json_add_string zone "$zone" | ||||||
| 		json_close_object | 		json_close_object | ||||||
| 		ubus call network add_dynamic "$(json_dump)" | 		ubus call network add_dynamic "$(json_dump)" | ||||||
| 	} | 	} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user