umbim: inherit firewall zone membership from parent interface
authorLech Perczak <lech.perczak@gmail.com>
Mon, 19 Jul 2021 17:26:02 +0000 (19:26 +0200)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 29 Apr 2023 19:33:04 +0000 (21:33 +0200)
Fix an issue where subinterfaces were not added to the same
firewall zone as their parent.
Inspired by 64bb88841fb.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
package/network/utils/umbim/files/lib/netifd/proto/mbim.sh

index 133c6ef5e6a169710351406c60decc33244b0443..e7866340aed48a8139584ed9400ac0ad6157b1ea 100755 (executable)
@@ -169,6 +169,8 @@ _proto_mbim_setup() {
 
        echo "mbim[$$]" "Connected"
 
+       local zone="$(fw3 -q network "$interface" 2>/dev/null)"
+
        if [ -z "$dhcp" -o "$dhcp" = 0 ]; then
                echo "mbim[$$]" "Setting up $ifname"
                eval $(umbim $DBG -n -t $tid -d $device config | sed 's/: /=/g')
@@ -190,6 +192,7 @@ _proto_mbim_setup() {
                        [ "$peerdns" = 0 ] || json_add_string "" "$ipv4dnsserver"
                        json_close_array
                        proto_add_dynamic_defaults
+                       [ -n "$zone" ] && json_add_string zone "$zone"
                        json_close_object
                        ubus call network add_dynamic "$(json_dump)"
                }
@@ -207,6 +210,7 @@ _proto_mbim_setup() {
                        [ "$peerdns" = 0 ] || json_add_string "" "$ipv6dnsserver"
                        json_close_array
                        proto_add_dynamic_defaults
+                       [ -n "$zone" ] && json_add_string zone "$zone"
                        json_close_object
                        ubus call network add_dynamic "$(json_dump)"
                }
@@ -221,6 +225,7 @@ _proto_mbim_setup() {
                        json_add_string ifname "@$interface"
                        json_add_string proto "dhcp"
                        proto_add_dynamic_defaults
+                       [ -n "$zone" ] && json_add_string zone "$zone"
                        json_close_object
                        ubus call network add_dynamic "$(json_dump)"
                }
@@ -232,6 +237,7 @@ _proto_mbim_setup() {
                        json_add_string proto "dhcpv6"
                        json_add_string extendprefix 1
                        proto_add_dynamic_defaults
+                       [ -n "$zone" ] && json_add_string zone "$zone"
                        json_close_object
                        ubus call network add_dynamic "$(json_dump)"
                }