summaryrefslogtreecommitdiff
path: root/src/dbus1-generator
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2014-07-16 18:27:12 -0400
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2014-07-16 18:47:20 -0400
commit36f822c4bd077f9121757e24b6516e5c7ada63b5 (patch)
tree9201ba3d895aa08a00c17ada422a3dd399e456f9 /src/dbus1-generator
parente1bbf3d12f28b8e3d4394f2b257e1b7aea3d10fc (diff)
downloadsystemd-36f822c4bd077f9121757e24b6516e5c7ada63b5.tar.gz
Let config_parse open file where applicable
Special care is needed so that we get an error message if the file failed to parse, but not when it is missing. To avoid duplicating the same error check in every caller, add an additional 'warn' boolean to tell config_parse whether a message should be issued. This makes things both shorter and more robust wrt. to error reporting.
Diffstat (limited to 'src/dbus1-generator')
-rw-r--r--src/dbus1-generator/dbus1-generator.c22
1 files changed, 6 insertions, 16 deletions
diff --git a/src/dbus1-generator/dbus1-generator.c b/src/dbus1-generator/dbus1-generator.c
index ba2953014d..dcfceecf63 100644
--- a/src/dbus1-generator/dbus1-generator.c
+++ b/src/dbus1-generator/dbus1-generator.c
@@ -163,27 +163,17 @@ static int add_dbus(const char *path, const char *fname, const char *type) {
{ "D-BUS Service", "SystemdService", config_parse_string, 0, &service },
};
- _cleanup_fclose_ FILE *f = NULL;
- _cleanup_free_ char *p = NULL;
+ char *p;
int r;
assert(path);
assert(fname);
- p = strjoin(path, "/", fname, NULL);
- if (!p)
- return log_oom();
-
- f = fopen(p, "re");
- if (!f) {
- if (errno == -ENOENT)
- return 0;
-
- log_error("Failed to read %s: %m", p);
- return -errno;
- }
-
- r = config_parse(NULL, p, f, "D-BUS Service\0", config_item_table_lookup, table, true, false, NULL);
+ p = strappenda3(path, "/", fname);
+ r = config_parse(NULL, p, NULL,
+ "D-BUS Service\0",
+ config_item_table_lookup, table,
+ true, false, true, NULL);
if (r < 0)
return r;