umbim: include MBIM-provided DNS servers also with DHCP mode
authorLech Perczak <lech.perczak@gmail.com>
Sat, 6 Nov 2021 16:56:03 +0000 (17:56 +0100)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 29 Apr 2023 19:33:05 +0000 (21:33 +0200)
In MBIM interfaces, DNS servers may be provided out-of-band regardless
whether DHCP is used for configuration, or not. Move the DNS
configuration outside "if" blocks to support that.

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

index da3f4842233ee54a33ce527c2823b7f1cb604705..bf07137fc4e79db99230548de6689d0b3cb5276c 100755 (executable)
@@ -217,18 +217,19 @@ _proto_mbim_setup() {
                        json_close_array
 
                        json_add_string gateway $(_proto_mbim_get_field ipv4gateway "$mbimconfig")
-
-                       [ "$peerdns" = 0 ] || {
-                               json_add_array dns
-                               for server in $(_proto_mbim_get_field ipv4dnsserver "$mbimconfig"); do
-                                       json_add_string "" "$server"
-                               done
-                               json_close_array
-                       }
                elif [ "$dhcp" != 0 ]; then
                        echo "mbim[$$]" "Starting DHCP on $ifname"
                        json_add_string proto "dhcp"
                fi
+
+               [ "$peerdns" = 0 ] || {
+                       json_add_array dns
+                       for server in $(_proto_mbim_get_field ipv4dnsserver "$mbimconfig"); do
+                               json_add_string "" "$server"
+                       done
+                       json_close_array
+               }
+
                proto_add_dynamic_defaults
                [ -n "$zone" ] && json_add_string zone "$zone"
                [ -n "$ip4table" ] && json_add_string ip4table "$ip4table"
@@ -258,18 +259,20 @@ _proto_mbim_setup() {
 
                        json_add_string ip6gw $(_proto_mbim_get_field ipv6gateway "$mbimconfig")
 
-                       [ "$peerdns" = 0 ] || {
-                               json_add_array dns
-                               for server in $(_proto_mbim_get_field ipv6dnsserver "$mbimconfig"); do
-                                       json_add_string "" "$server"
-                               done
-                               json_close_array
-                       }
                elif [ "$dhcpv6" != 0 ]; then
                        echo "mbim[$$]" "Starting DHCPv6 on $ifname"
                        json_add_string proto "dhcpv6"
                        json_add_string extendprefix 1
                fi
+
+               [ "$peerdns" = 0 ] || {
+                       json_add_array dns
+                       for server in $(_proto_mbim_get_field ipv6dnsserver "$mbimconfig"); do
+                               json_add_string "" "$server"
+                       done
+                       json_close_array
+               }
+
                proto_add_dynamic_defaults
                [ -n "$zone" ] && json_add_string zone "$zone"
                [ -n "$ip6table" ] && json_add_string ip6table "$ip6table"