config: fix ifname->ports compat rename
authorFelix Fietkau <nbd@nbd.name>
Thu, 20 May 2021 08:57:52 +0000 (10:57 +0200)
committerFelix Fietkau <nbd@nbd.name>
Thu, 20 May 2021 08:57:53 +0000 (10:57 +0200)
Instead of looking it up as a string, use uci_rename.
That way it works both on list and string options

Signed-off-by: Felix Fietkau <nbd@nbd.name>
config.c

index 1f4560f..d83ea9c 100644 (file)
--- a/config.c
+++ b/config.c
@@ -103,14 +103,21 @@ config_fixup_bridge_var(struct uci_section *s, const char *name, const char *val
  */
 static void config_fixup_bridge_ports(struct uci_section *s)
 {
-       const char *ifname;
+       struct uci_ptr ptr = {
+               .p = s->package,
+               .s = s,
+               .option = "ifname",
+       };
 
        if (uci_lookup_option(uci_ctx, s, "ports"))
                return;
 
-       ifname = uci_lookup_option_string(uci_ctx, s, "ifname");
-       if (ifname)
-               config_fixup_bridge_var(s, "ports", ifname);
+       uci_lookup_ptr(uci_ctx, &ptr, NULL, false);
+       if (!ptr.o)
+               return;
+
+       ptr.value = "ports";
+       uci_rename(uci_ctx, &ptr);
 }
 
 static void