Fix config retrieval from netifd
authorSteven Barth <steven@midlink.org>
Tue, 15 Oct 2013 14:32:35 +0000 (16:32 +0200)
committerSteven Barth <steven@midlink.org>
Tue, 15 Oct 2013 14:32:35 +0000 (16:32 +0200)
src/config.c
src/odhcpd.h
src/ubus.c

index baa857913b62b4bf30c44389ccd8ba1430b5640c..e33c8554fd28392435e51d0a43f448d00941a86a 100644 (file)
@@ -254,10 +254,10 @@ err:
 }
 
 
-int config_parse_interface(struct blob_attr *b, const char *name, bool overwrite)
+int config_parse_interface(void *data, size_t len, const char *name, bool overwrite)
 {
        struct blob_attr *tb[IFACE_ATTR_MAX], *c;
-       blobmsg_parse(iface_attrs, IFACE_ATTR_MAX, tb, blob_data(b), blob_len(b));
+       blobmsg_parse(iface_attrs, IFACE_ATTR_MAX, tb, data, len);
 
        if (tb[IFACE_ATTR_INTERFACE])
                name = blobmsg_get_string(tb[IFACE_ATTR_INTERFACE]);
@@ -481,7 +481,7 @@ static int set_interface(struct uci_section *s)
 {
        blob_buf_init(&b, 0);
        uci_to_blob(&b, s, &interface_attr_list);
-       return config_parse_interface(b.head, s->e.name, true);
+       return config_parse_interface(blob_data(b.head), blob_len(b.head), s->e.name, true);
 }
 
 
index 531a0ff155767f91348638ba043a038c36e9a43c..090b07bdc3807e815fece3e2ef2ed93bad570a98 100644 (file)
@@ -186,7 +186,7 @@ time_t odhcpd_time(void);
 ssize_t odhcpd_unhexlify(uint8_t *dst, size_t len, const char *src);
 void odhcpd_hexlify(char *dst, const uint8_t *src, size_t len);
 
-int config_parse_interface(struct blob_attr *b, const char *iname, bool overwrite);
+int config_parse_interface(void *data, size_t len, const char *iname, bool overwrite);
 
 #ifdef WITH_UBUS
 int init_ubus(void);
index bfa052e63dd8bffced141502d13361498c0010b3..55f52dc8ef570d65168a57153f02ff501e1ce588 100644 (file)
@@ -248,7 +248,8 @@ void ubus_apply_network(void)
                                continue;
 
                        if (!c || !c->ignore)
-                               config_parse_interface(tb[IFACE_ATTR_DATA], interface, false);
+                               config_parse_interface(blobmsg_data(tb[IFACE_ATTR_DATA]),
+                                               blobmsg_data_len(tb[IFACE_ATTR_DATA]), interface, false);
                }
        }
 }