[systemd-commits] 2 commits - src/core src/shared
Lennart Poettering
lennart at kemper.freedesktop.org
Thu May 22 00:50:06 PDT 2014
src/core/load-dropin.c | 42 +++++++++++++-----------------------------
src/shared/conf-parser.c | 4 ++--
2 files changed, 15 insertions(+), 31 deletions(-)
New commits:
commit bcd816bd349241bcd9c0bfbfd9cfe7b034ba351b
Author: Lennart Poettering <lennart at poettering.net>
Date: Thu May 22 16:49:12 2014 +0900
core: never consider failure when reading drop-ins fatal
drop-ins don't carry the main configuration of a unit, hence read them
if we can't, complain if we cannot, but don't fail.
diff --git a/src/core/load-dropin.c b/src/core/load-dropin.c
index 546e560..f2ffc97 100644
--- a/src/core/load-dropin.c
+++ b/src/core/load-dropin.c
@@ -58,6 +58,7 @@ static int iterate_dir(
if (errno == ENOENT)
return 0;
+ log_error("Failed to open directory %s: %m", path);
return -errno;
}
@@ -101,7 +102,7 @@ static int process_dir(
char ***strv) {
_cleanup_free_ char *path = NULL;
- int r;
+ int r, q;
assert(u);
assert(unit_path);
@@ -112,11 +113,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 +128,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 +147,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))
@@ -186,13 +177,8 @@ 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);
}
}
@@ -201,11 +187,9 @@ int unit_load_dropin(Unit *u) {
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,
+ (void*) load_fragment_gperf_lookup, false, false, u);
}
u->dropin_mtime = now(CLOCK_REALTIME);
commit 9f43a07f10639c5b41b45448e551e43914eefe32
Author: Lennart Poettering <lennart at poettering.net>
Date: Thu May 22 16:47:46 2014 +0900
conf-parser: never consider it an error if we cannot load a drop-in file because it is missing
After all, we want to be able to boot with /etc empty one day...
diff --git a/src/shared/conf-parser.c b/src/shared/conf-parser.c
index 062b15b..77a172e 100644
--- a/src/shared/conf-parser.c
+++ b/src/shared/conf-parser.c
@@ -340,8 +340,8 @@ int config_parse(const char *unit,
if (!f) {
f = ours = fopen(filename, "re");
if (!f) {
- log_error("Failed to open configuration file '%s': %m", filename);
- return -errno;
+ log_full(errno == ENOENT ? LOG_DEBUG : LOG_ERR, "Failed to open configuration file '%s': %m", filename);
+ return errno == ENOENT ? 0 : -errno;
}
}
More information about the systemd-commits
mailing list