umbim: add "_proto_mbim_get_field" helper
authorLech Perczak <lech.perczak@gmail.com>
Sat, 6 Nov 2021 12:21:32 +0000 (13:21 +0100)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 29 Apr 2023 19:33:05 +0000 (21:33 +0200)
Add a new helper to extract IP configuration from umbim output. This is
required to extract fields which can possibly have multiple values,
namely IP addresses and DNS servers, and get rid of primitive parser
using 'eval' builtin without support for this.

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

index 9ab77242321eba3c96a390e26341ac9fc051e01f..8f1ae9ac253a3eb75de898cbcc4170d6660ef1ee 100755 (executable)
@@ -26,6 +26,18 @@ proto_mbim_init_config() {
        proto_config_add_defaults
 }
 
+_proto_mbim_get_field() {
+        local field="$1"
+        shift
+        local mbimconfig="$@"
+        echo "$mbimconfig" | while read -r line; do
+                variable=${line%%:*}
+                [ "$variable" = "$field" ] || continue;
+                value=${line##* }
+                echo -n "$value "
+        done
+}
+
 _proto_mbim_setup() {
        local interface="$1"
        local tid=2