chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
event: hook up sd-event with the service watchdog logic
[elogind.git]
/
src
/
binfmt
/
binfmt.c
diff --git
a/src/binfmt/binfmt.c
b/src/binfmt/binfmt.c
index 909eef732c14485c1b5c781de121c16d5ad37a24..3487602e467d88de14356f055151562e551c35e8 100644
(file)
--- a/
src/binfmt/binfmt.c
+++ b/
src/binfmt/binfmt.c
@@
-34,6
+34,7
@@
#include "util.h"
#include "conf-files.h"
#include "fileio.h"
#include "util.h"
#include "conf-files.h"
#include "fileio.h"
+#include "build.h"
static const char conf_file_dirs[] =
"/etc/binfmt.d\0"
static const char conf_file_dirs[] =
"/etc/binfmt.d\0"
@@
-62,7
+63,7
@@
static int delete_rule(const char *rule) {
if (!fn)
return log_oom();
if (!fn)
return log_oom();
- return write_
one_line
_file(fn, "-1");
+ return write_
string
_file(fn, "-1");
}
static int apply_rule(const char *rule) {
}
static int apply_rule(const char *rule) {
@@
-70,7
+71,7
@@
static int apply_rule(const char *rule) {
delete_rule(rule);
delete_rule(rule);
- r = write_
one_line
_file("/proc/sys/fs/binfmt_misc/register", rule);
+ r = write_
string
_file("/proc/sys/fs/binfmt_misc/register", rule);
if (r < 0) {
log_error("Failed to add binary format: %s", strerror(-r));
return r;
if (r < 0) {
log_error("Failed to add binary format: %s", strerror(-r));
return r;
@@
-110,7
+111,7
@@
static int apply_file(const char *path, bool ignore_enoent) {
p = strstrip(l);
if (!*p)
continue;
p = strstrip(l);
if (!*p)
continue;
- if (strchr(COMMENTS, *p))
+ if (strchr(COMMENTS
"\n"
, *p))
continue;
k = apply_rule(p);
continue;
k = apply_rule(p);
@@
-125,7
+126,8
@@
static int help(void) {
printf("%s [OPTIONS...] [CONFIGURATION FILE...]\n\n"
"Registers binary formats.\n\n"
printf("%s [OPTIONS...] [CONFIGURATION FILE...]\n\n"
"Registers binary formats.\n\n"
- " -h --help Show this help\n",
+ " -h --help Show this help\n"
+ " --version Show package version\n",
program_invocation_short_name);
return 0;
program_invocation_short_name);
return 0;
@@
-133,9
+135,14
@@
static int help(void) {
static int parse_argv(int argc, char *argv[]) {
static int parse_argv(int argc, char *argv[]) {
+ enum {
+ ARG_VERSION = 0x100,
+ };
+
static const struct option options[] = {
{ "help", no_argument, NULL, 'h' },
static const struct option options[] = {
{ "help", no_argument, NULL, 'h' },
- { NULL, 0, NULL, 0 }
+ { "version", no_argument, NULL, ARG_VERSION },
+ {}
};
int c;
};
int c;
@@
-148,15
+155,18
@@
static int parse_argv(int argc, char *argv[]) {
switch (c) {
case 'h':
switch (c) {
case 'h':
- help();
+ return help();
+
+ case ARG_VERSION:
+ puts(PACKAGE_STRING);
+ puts(SYSTEMD_FEATURES);
return 0;
case '?':
return -EINVAL;
default:
return 0;
case '?':
return -EINVAL;
default:
- log_error("Unknown option code %c", c);
- return -EINVAL;
+ assert_not_reached("Unhandled option");
}
}
}
}
@@
-197,7
+207,7
@@
int main(int argc, char *argv[]) {
}
/* Flush out all rules */
}
/* Flush out all rules */
- write_
one_line
_file("/proc/sys/fs/binfmt_misc/status", "-1");
+ write_
string
_file("/proc/sys/fs/binfmt_misc/status", "-1");
STRV_FOREACH(f, files) {
k = apply_file(*f, true);
STRV_FOREACH(f, files) {
k = apply_file(*f, true);