diff --git a/src/core/cntlr.c b/src/core/cntlr.c index d33852d5b5b35a76d17505148636b7bba3b97454..4d5f3c71ee4c31605989f23fad1ba72c06d8bcb0 100644 --- a/src/core/cntlr.c +++ b/src/core/cntlr.c @@ -2151,9 +2151,15 @@ int start_controller(void) as_init_table(&c->as_table); ubus_add_uloop(ctx); - if (ubus_lookup_id(c->ubus_ctx, "ieee1905", &ieee1905_obj)) { - warn("Object 'ieee1905' not present!\n"); - return -1; + for (;;) { + int ret; + + ret = ubus_lookup_id(c->ubus_ctx, "ieee1905", &ieee1905_obj); + if (!ret) + break; + + trace("ieee1905 not up yet, sleeping for 2s!\n"); + sleep(2); } ubus_call_object(c, ieee1905_obj, "info", parse_almac, c);