summaryrefslogtreecommitdiff
path: root/src/udev
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2013-11-06 03:15:16 +0100
committerLennart Poettering <lennart@poettering.net>2013-11-06 03:15:16 +0100
commit74df0fca09b3c31ed19e14ba80f996fdff772417 (patch)
tree6910dfb512fa634c8e65a5c938f24d4dc133d716 /src/udev
parent1f0cd86b3dc0f938ce179cdddc62fc0f584e599d (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.c8
-rw-r--r--src/udev/udevd.c11
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[])