diff options
-rw-r--r-- | src/config.c | 2 | ||||
-rw-r--r-- | src/ubus.c | 4 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/config.c b/src/config.c index 5d29173..a5bcf26 100644 --- a/src/config.c +++ b/src/config.c @@ -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])) @@ -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"); |