chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
bd08f24
)
bmfmt: allow passing more than one config file name
author
Lennart Poettering
<lennart@poettering.net>
Tue, 20 Mar 2012 14:29:49 +0000
(15:29 +0100)
committer
Lennart Poettering
<lennart@poettering.net>
Tue, 20 Mar 2012 14:29:49 +0000
(15:29 +0100)
src/binfmt/binfmt.c
patch
|
blob
|
history
diff --git
a/src/binfmt/binfmt.c
b/src/binfmt/binfmt.c
index 0e60618e9080b5ff40613e168258130bead6604f..28925ac84b488869dfe4f4c6fd42b3ffc19a5819 100644
(file)
--- a/
src/binfmt/binfmt.c
+++ b/
src/binfmt/binfmt.c
@@
-118,11
+118,6
@@
finish:
int main(int argc, char *argv[]) {
int r = 0;
int main(int argc, char *argv[]) {
int r = 0;
- if (argc > 2) {
- log_error("This program expects one or no arguments.");
- return EXIT_FAILURE;
- }
-
log_set_target(LOG_TARGET_AUTO);
log_parse_environment();
log_open();
log_set_target(LOG_TARGET_AUTO);
log_parse_environment();
log_open();
@@
-130,25
+125,35
@@
int main(int argc, char *argv[]) {
umask(0022);
if (argc > 1) {
umask(0022);
if (argc > 1) {
- r = apply_file(argv[1], false);
+ int i;
+
+ for (i = 1; i < argc; i++) {
+ int k;
+
+ k = apply_file(argv[1], false);
+ if (k < 0 && r == 0)
+ r = k;
+ }
} else {
char **files, **f;
} else {
char **files, **f;
- /* Flush out all rules */
- write_one_line_file("/proc/sys/fs/binfmt_misc/status", "-1");
-
r = conf_files_list(&files, ".conf",
"/etc/binfmt.d",
"/run/binfmt.d",
"/usr/local/lib/binfmt.d",
"/usr/lib/binfmt.d",
r = conf_files_list(&files, ".conf",
"/etc/binfmt.d",
"/run/binfmt.d",
"/usr/local/lib/binfmt.d",
"/usr/lib/binfmt.d",
+#ifdef HAVE_SPLIT_USR
+ "/lib/binfmt.d",
+#endif
NULL);
NULL);
-
if (r < 0) {
log_error("Failed to enumerate binfmt.d files: %s", strerror(-r));
goto finish;
}
if (r < 0) {
log_error("Failed to enumerate binfmt.d files: %s", strerror(-r));
goto finish;
}
+ /* Flush out all rules */
+ write_one_line_file("/proc/sys/fs/binfmt_misc/status", "-1");
+
STRV_FOREACH(f, files) {
int k;
STRV_FOREACH(f, files) {
int k;