diff options
author | Lennart Poettering <lennart@poettering.net> | 2013-11-06 03:15:16 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2013-11-06 03:15:16 +0100 |
commit | 74df0fca09b3c31ed19e14ba80f996fdff772417 (patch) | |
tree | 6910dfb512fa634c8e65a5c938f24d4dc133d716 /src/udev | |
parent | 1f0cd86b3dc0f938ce179cdddc62fc0f584e599d (diff) |
util: unify reading of /proc/cmdline
Instead of individually checking for containers in each user do this
once in a new call proc_cmdline() that read the file only if we are not
in a container.
Diffstat (limited to 'src/udev')
-rw-r--r-- | src/udev/net/link-config.c | 8 | ||||
-rw-r--r-- | src/udev/udevd.c | 11 |
2 files changed, 11 insertions, 8 deletions
diff --git a/src/udev/net/link-config.c b/src/udev/net/link-config.c index 9d0f23694c..726945816d 100644 --- a/src/udev/net/link-config.c +++ b/src/udev/net/link-config.c @@ -195,11 +195,11 @@ static bool enable_name_policy(void) { int r; size_t l; - r = read_one_line_file("/proc/cmdline", &line); - if (r < 0) { + r = proc_cmdline(&line); + if (r < 0) log_warning("Failed to read /proc/cmdline, ignoring: %s", strerror(-r)); - return true; /* something is very wrong, let's not make it worse */ - } + if (r <= 0) + return true; FOREACH_WORD_QUOTED(w, l, line, state) if (strneq(w, "net.ifnames=0", l)) diff --git a/src/udev/udevd.c b/src/udev/udevd.c index 1c2d00f03b..559d33e78f 100644 --- a/src/udev/udevd.c +++ b/src/udev/udevd.c @@ -857,10 +857,15 @@ static int systemd_fds(struct udev *udev, int *rctrl, int *rnetlink) */ static void kernel_cmdline_options(struct udev *udev) { - char *line, *w, *state; + _cleanup_free_ char *line = NULL; + char *w, *state; size_t l; + int r; - if (read_one_line_file("/proc/cmdline", &line) < 0) + r = proc_cmdline(&line); + if (r < 0) + log_warning("Failed to read /proc/cmdline, ignoring: %s", strerror(-r)); + if (r <= 0) return; FOREACH_WORD_QUOTED(w, l, line, state) { @@ -890,8 +895,6 @@ static void kernel_cmdline_options(struct udev *udev) free(s); } - - free(line); } int main(int argc, char *argv[]) |