X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fload-dropin.c;h=7a17baaf8930359b1f8be1a3eb654fff99aa368a;hb=23bbb0de4e3f85d9704a5c12a5afa2dfa0159e41;hp=546e560b852c82c4bb27ff59aba793ba6ea3098d;hpb=fdb9161cd3e1a64eb9a653a6bf69596670d6e942;p=elogind.git diff --git a/src/core/load-dropin.c b/src/core/load-dropin.c index 546e560b8..7a17baaf8 100644 --- a/src/core/load-dropin.c +++ b/src/core/load-dropin.c @@ -58,21 +58,18 @@ static int iterate_dir( if (errno == ENOENT) return 0; + log_error("Failed to open directory %s: %m", path); return -errno; } for (;;) { struct dirent *de; _cleanup_free_ char *f = NULL; - int k; errno = 0; de = readdir(d); - if (!de && errno != 0) { - k = errno; - log_error("Failed to read directory %s: %s", path, strerror(k)); - return -k; - } + if (!de && errno != 0) + return log_error_errno(errno, "Failed to read directory %s: %m", path); if (!de) break; @@ -86,7 +83,7 @@ static int iterate_dir( r = unit_add_dependency_by_name(u, dependency, de->d_name, f, true); if (r < 0) - log_error("Cannot add dependency %s to %s, ignoring: %s", de->d_name, u->id, strerror(-r)); + log_error_errno(r, "Cannot add dependency %s to %s, ignoring: %m", de->d_name, u->id); } return 0; @@ -101,7 +98,6 @@ static int process_dir( char ***strv) { _cleanup_free_ char *path = NULL; - int r; assert(u); assert(unit_path); @@ -112,11 +108,8 @@ static int process_dir( if (!path) return log_oom(); - if (!u->manager->unit_path_cache || set_get(u->manager->unit_path_cache, path)) { - r = iterate_dir(u, path, dependency, strv); - if (r < 0) - return r; - } + if (!u->manager->unit_path_cache || set_get(u->manager->unit_path_cache, path)) + iterate_dir(u, path, dependency, strv); if (u->instance) { _cleanup_free_ char *template = NULL, *p = NULL; @@ -130,11 +123,8 @@ static int process_dir( if (!p) return log_oom(); - if (!u->manager->unit_path_cache || set_get(u->manager->unit_path_cache, p)) { - r = iterate_dir(u, p, dependency, strv); - if (r < 0) - return r; - } + if (!u->manager->unit_path_cache || set_get(u->manager->unit_path_cache, p)) + iterate_dir(u, p, dependency, strv); } return 0; @@ -152,12 +142,8 @@ char **unit_find_dropin_paths(Unit *u) { SET_FOREACH(t, u->names, i) { char **p; - STRV_FOREACH(p, u->manager->lookup_paths.unit_path) { - /* This loads the drop-in config snippets */ - r = process_dir(u, *p, t, ".d", _UNIT_DEPENDENCY_INVALID, &strv); - if (r < 0) - return NULL; - } + STRV_FOREACH(p, u->manager->lookup_paths.unit_path) + process_dir(u, *p, t, ".d", _UNIT_DEPENDENCY_INVALID, &strv); } if (strv_isempty(strv)) @@ -165,7 +151,7 @@ char **unit_find_dropin_paths(Unit *u) { r = conf_files_list_strv(&configs, ".conf", NULL, (const char**) strv); if (r < 0) { - log_error("Failed to get list of configuration files: %s", strerror(-r)); + log_error_errno(r, "Failed to get list of configuration files: %m"); strv_free(configs); return NULL; } @@ -176,7 +162,6 @@ char **unit_find_dropin_paths(Unit *u) { int unit_load_dropin(Unit *u) { Iterator i; char *t, **f; - int r; assert(u); @@ -186,26 +171,20 @@ int unit_load_dropin(Unit *u) { char **p; STRV_FOREACH(p, u->manager->lookup_paths.unit_path) { - r = process_dir(u, *p, t, ".wants", UNIT_WANTS, NULL); - if (r < 0) - return r; - - r = process_dir(u, *p, t, ".requires", UNIT_REQUIRES, NULL); - if (r < 0) - return r; + process_dir(u, *p, t, ".wants", UNIT_WANTS, NULL); + process_dir(u, *p, t, ".requires", UNIT_REQUIRES, NULL); } } u->dropin_paths = unit_find_dropin_paths(u); - if (! u->dropin_paths) + if (!u->dropin_paths) return 0; STRV_FOREACH(f, u->dropin_paths) { - r = config_parse(u->id, *f, NULL, - UNIT_VTABLE(u)->sections, config_item_perf_lookup, - (void*) load_fragment_gperf_lookup, false, false, u); - if (r < 0) - return r; + config_parse(u->id, *f, NULL, + UNIT_VTABLE(u)->sections, + config_item_perf_lookup, load_fragment_gperf_lookup, + false, false, false, u); } u->dropin_mtime = now(CLOCK_REALTIME);