X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=discover%2Fdevice-handler.c;h=e4978faaffd13d4a0c3545d10caf54955062b5c2;hp=b93cdfa1130cc5c956e6608a997c118a3786cd08;hb=d2b12ddb905a74fa6b2e454142b0b9f71fd99398;hpb=3c49b3fa6e6038fd226253e71cb082e09b4ff7a5 diff --git a/discover/device-handler.c b/discover/device-handler.c index b93cdfa..e4978fa 100644 --- a/discover/device-handler.c +++ b/discover/device-handler.c @@ -285,6 +285,9 @@ struct device_handler *device_handler_init(struct discover_server *server, parser_init(); + if (config_get()->safe_mode) + return handler; + rc = device_handler_init_sources(handler); if (rc) { talloc_free(handler); @@ -842,6 +845,13 @@ static int device_handler_init_sources(struct device_handler *handler) static void device_handler_reinit_sources(struct device_handler *handler) { + /* if we haven't initialised sources previously (becuase we started in + * safe mode), then init once here. */ + if (!(handler->udev || handler->network || handler->user_event)) { + device_handler_init_sources(handler); + return; + } + udev_reinit(handler->udev); network_shutdown(handler->network);