summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKay Sievers <kay.sievers@vrfy.org>2011-04-28 23:51:24 +0200
committerKay Sievers <kay.sievers@vrfy.org>2011-04-28 23:51:24 +0200
commit44143309dd0b37d61d7d842ca58f01a65646ec71 (patch)
treeb22d8adcb45561c41348bc4361a24b9cc673d6f1
parentb23de6af893c11da4286bc416455cd0926d1532e (diff)
util: conf_files_list() return list as parameter
-rw-r--r--TODO6
-rw-r--r--src/binfmt.c16
-rw-r--r--src/dbus.c2
-rw-r--r--src/modules-load.c13
-rw-r--r--src/sysctl.c20
-rw-r--r--src/tmpfiles.c15
-rw-r--r--src/util.c14
-rw-r--r--src/util.h2
8 files changed, 52 insertions, 36 deletions
diff --git a/TODO b/TODO
index 3f26e2ea5f..4ba66efec3 100644
--- a/TODO
+++ b/TODO
@@ -63,7 +63,7 @@ Features:
* maybe add tiny dbus services similar to hostnamed for locale and wallclock/timezone?
-* allow port = 0 in .socket units
+* allow port=0 in .socket units
* rename systemd-logger to systemd-stdio-syslog-bridge
@@ -123,6 +123,8 @@ Features:
about policy loading. Probably check for available selinux in /proc/filesystems,
and check for active selinux with getcon_raw() == "kernel"
+* move /selinux to /sys/fs/selinux
+
* Support --test based on current system state
* systemctl enable as D-Bus call
@@ -231,7 +233,7 @@ External:
* make cryptsetup lower --iter-time
-* patch kernel for xattr support in /dev, /proc/, /sys and /sys/fs/cgroup.
+* patch kernel for xattr support in /dev, /proc/, /sys and /sys/fs/cgroup?
* patch kernel for cpu feature modalias for autoloading aes/kvm/...
http://git.kernel.org/?p=linux/kernel/git/ak/linux-misc-2.6.git;a=shortlog;h=refs/heads/cpuid-match
diff --git a/src/binfmt.c b/src/binfmt.c
index 619f6e4aa7..be1f1ff097 100644
--- a/src/binfmt.c
+++ b/src/binfmt.c
@@ -135,11 +135,16 @@ int main(int argc, char *argv[]) {
/* Flush out all rules */
write_one_line_file("/proc/sys/fs/binfmt_misc/status", "-1");
- files = conf_files_list(".conf",
- "/run/binfmt.d",
- "/etc/binfmt.d",
- "/usr/lib/binfmt.d",
- NULL);
+ r = conf_files_list(&files, ".conf",
+ "/run/binfmt.d",
+ "/etc/binfmt.d",
+ "/usr/lib/binfmt.d",
+ NULL);
+
+ if (r < 0) {
+ log_error("Failed to enumerate binfmt.d files: %s", strerror(-r));
+ goto finish;
+ }
STRV_FOREACH(f, files) {
int k;
@@ -151,5 +156,6 @@ int main(int argc, char *argv[]) {
strv_free(files);
}
+finish:
return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
}
diff --git a/src/dbus.c b/src/dbus.c
index 8ea768c5a7..187ed303b4 100644
--- a/src/dbus.c
+++ b/src/dbus.c
@@ -1322,7 +1322,7 @@ int bus_fdset_add_all(Manager *m, FDSet *fds) {
* set to pass over to the newly executed systemd. They won't
* be used there however, except that they are closed at the
* very end of deserialization, those making it possible for
- * clients to synchronously wait for systemd to reexec buy
+ * clients to synchronously wait for systemd to reexec by
* simply waiting for disconnection */
SET_FOREACH(c, m->bus_connections_for_dispatch, i) {
diff --git a/src/modules-load.c b/src/modules-load.c
index fac4511816..7efd81f75b 100644
--- a/src/modules-load.c
+++ b/src/modules-load.c
@@ -53,13 +53,12 @@ int main(int argc, char *argv[]) {
n_arguments = n_allocated = 3;
- files = conf_files_list(".conf",
- "/run/modules-load.d",
- "/etc/modules-load.d",
- "/usr/lib/modules-load.d",
- NULL);
- if (files == NULL) {
- log_error("Failed to enumerate modules-load.d files: %m");
+ if (conf_files_list(&files, ".conf",
+ "/run/modules-load.d",
+ "/etc/modules-load.d",
+ "/usr/lib/modules-load.d",
+ NULL) < 0) {
+ log_error("Failed to enumerate modules-load.d files: %s", strerror(-r));
goto finish;
}
diff --git a/src/sysctl.c b/src/sysctl.c
index 1d42e9378b..814cfea592 100644
--- a/src/sysctl.c
+++ b/src/sysctl.c
@@ -138,13 +138,17 @@ int main(int argc, char *argv[]) {
else {
char **files, **f;
- r = apply_file("/etc/sysctl.conf", true);
-
- files = conf_files_list(".conf",
- "/run/sysctl.d",
- "/etc/sysctl.d",
- "/usr/lib/sysctl.d",
- NULL);
+ apply_file("/etc/sysctl.conf", true);
+
+ r = conf_files_list(&files, ".conf",
+ "/run/sysctl.d",
+ "/etc/sysctl.d",
+ "/usr/lib/sysctl.d",
+ NULL);
+ if (r < 0) {
+ log_error("Failed to enumerate sysctl.d files: %s", strerror(-r));
+ goto finish;
+ }
STRV_FOREACH(f, files) {
int k;
@@ -156,6 +160,6 @@ int main(int argc, char *argv[]) {
strv_free(files);
}
-
+finish:
return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
}
diff --git a/src/tmpfiles.c b/src/tmpfiles.c
index 1574a199fb..f36a75f8f2 100644
--- a/src/tmpfiles.c
+++ b/src/tmpfiles.c
@@ -963,11 +963,16 @@ int main(int argc, char *argv[]) {
} else {
char **files, **f;
- files = conf_files_list(".conf",
- "/run/tmpfiles.d",
- "/etc/tmpfiles.d",
- "/usr/lib/tmpfiles.d",
- NULL);
+ r = conf_files_list(&files, ".conf",
+ "/run/tmpfiles.d",
+ "/etc/tmpfiles.d",
+ "/usr/lib/tmpfiles.d",
+ NULL);
+ if (r < 0) {
+ r = EXIT_FAILURE;
+ log_error("Failed to enumerate tmpfiles.d files: %s", strerror(-r));
+ goto finish;
+ }
STRV_FOREACH(f, files) {
if (read_config_file(*f, true) < 0)
diff --git a/src/util.c b/src/util.c
index 6037455f70..b337778d0e 100644
--- a/src/util.c
+++ b/src/util.c
@@ -4606,15 +4606,15 @@ static int base_cmp(const void *a, const void *b) {
return strcmp(file_name_from_path(s1), file_name_from_path(s2));
}
-char **conf_files_list(const char *suffix, const char *dir, ...) {
+int conf_files_list(char ***strv, const char *suffix, const char *dir, ...) {
Hashmap *fh;
char **files = NULL;
va_list ap;
- int e = 0;
+ int r = 0;
fh = hashmap_new(string_hash_func, string_compare_func);
if (!fh) {
- e = ENOMEM;
+ r = -ENOMEM;
goto finish;
}
@@ -4622,7 +4622,7 @@ char **conf_files_list(const char *suffix, const char *dir, ...) {
while (dir) {
if (files_add(fh, dir, suffix) < 0) {
log_error("Failed to search for files.");
- e = EINVAL;
+ r = -EINVAL;
goto finish;
}
dir = va_arg(ap, const char *);
@@ -4632,13 +4632,13 @@ char **conf_files_list(const char *suffix, const char *dir, ...) {
files = hashmap_get_strv(fh);
if (files == NULL) {
log_error("Failed to compose list of files.");
- e = ENOMEM;
+ r = -ENOMEM;
goto finish;
}
qsort(files, hashmap_size(fh), sizeof(char *), base_cmp);
finish:
hashmap_free(fh);
- errno = e;
- return files;
+ *strv = files;
+ return r;
}
diff --git a/src/util.h b/src/util.h
index ff29474502..5f6325b9e4 100644
--- a/src/util.h
+++ b/src/util.h
@@ -442,5 +442,5 @@ int signal_from_string(const char *s);
int signal_from_string_try_harder(const char *s);
-char **conf_files_list(const char *suffix, const char *dir, ...);
+int conf_files_list(char ***strv, const char *suffix, const char *dir, ...);
#endif