ubus: register subscriber
authorSteven Barth <steven@midlink.org>
Tue, 15 Oct 2013 16:18:16 +0000 (18:18 +0200)
committerSteven Barth <steven@midlink.org>
Tue, 15 Oct 2013 16:18:16 +0000 (18:18 +0200)
src/config.c
src/ubus.c

index 5d29173ed58895016581bb497326a0c9878d029d..a5bcf265107318d94afbf7b68c2afcc2ef1385b6 100644 (file)
@@ -276,7 +276,7 @@ int config_parse_interface(void *data, size_t len, const char *name, bool overwr
 
        const char *ifname = NULL;
 #ifdef WITH_UBUS
-       if (overwrite)
+       if (overwrite || !iface->ifname[0])
                ifname = ubus_get_ifname(name);
 #endif
        if ((c = tb[IFACE_ATTR_IFNAME]))
index 55f52dc8ef570d65168a57153f02ff501e1ce588..9116dd849f1e3df9125241a76384e37d1420bb69 100644 (file)
@@ -213,7 +213,6 @@ static int handle_update(_unused struct ubus_context *ctx, _unused struct ubus_o
 
 static void subscribe_netifd(void)
 {
-       netifd.cb = handle_update;
        ubus_subscribe(ubus, &netifd, objid);
        ubus_invoke(ubus, objid, "dump", NULL, handle_dump, NULL, 0);
 }
@@ -353,6 +352,9 @@ int init_ubus(void)
                return -1;
        }
 
+       netifd.cb = handle_update;
+       ubus_register_subscriber(ubus, &netifd);
+
        ubus_add_uloop(ubus);
        ubus_add_object(ubus, &main_object);
        ubus_register_event_handler(ubus, &event_handler, "ubus.object.add");