diff options
author | Beniamino Galvani <bgalvani@redhat.com> | 2017-08-09 17:03:36 +0200 |
---|---|---|
committer | Beniamino Galvani <bgalvani@redhat.com> | 2017-08-10 11:21:31 +0200 |
commit | e0cdaf9880929a40f60c1327cf67f800feefc951 (patch) | |
tree | 345fe19ea9b52a789d64d5fd283ed342e2786362 /src/systemd/src/basic/parse-util.c | |
parent | a7aca2ab08abcc5bee02f0f6f9ffe899919f4234 (diff) | |
parent | dc1bfde56b9b354586603d740bc8ca7851f64a6d (diff) | |
download | NetworkManager-e0cdaf9880929a40f60c1327cf67f800feefc951.tar.gz |
systemd: merge branch systemd into master
- fix DHCP over Infiniband
https://bugzilla.redhat.com/show_bug.cgi?id=1477678
Diffstat (limited to 'src/systemd/src/basic/parse-util.c')
-rw-r--r-- | src/systemd/src/basic/parse-util.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/systemd/src/basic/parse-util.c b/src/systemd/src/basic/parse-util.c index 8ffd9464c3..0bd551a760 100644 --- a/src/systemd/src/basic/parse-util.c +++ b/src/systemd/src/basic/parse-util.c @@ -44,6 +44,7 @@ int parse_boolean(const char *v) { return -EINVAL; } +#if 0 /* NM_IGNORED */ int parse_pid(const char *s, pid_t* ret_pid) { unsigned long ul = 0; pid_t pid; @@ -61,12 +62,13 @@ int parse_pid(const char *s, pid_t* ret_pid) { if ((unsigned long) pid != ul) return -ERANGE; - if (pid <= 0) + if (!pid_is_valid(pid)) return -ERANGE; *ret_pid = pid; return 0; } +#endif /* NM_IGNORED */ int parse_mode(const char *s, mode_t *ret) { char *x; @@ -594,4 +596,19 @@ int parse_ip_port(const char *s, uint16_t *ret) { return 0; } + +int parse_dev(const char *s, dev_t *ret) { + unsigned x, y; + dev_t d; + + if (sscanf(s, "%u:%u", &x, &y) != 2) + return -EINVAL; + + d = makedev(x, y); + if ((unsigned) major(d) != x || (unsigned) minor(d) != y) + return -EINVAL; + + *ret = d; + return 0; +} #endif /* NM_IGNORED */ |