summaryrefslogtreecommitdiff
path: root/src/basic/time-util.c
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2017-07-03 08:29:32 -0400
committerLennart Poettering <lennart@poettering.net>2017-07-03 14:29:32 +0200
commit0004f698df1410ef8b6ab3fb5f4b41a60c91182c (patch)
tree602a66a4117fe4563c9a489aed4488c6b20000c8 /src/basic/time-util.c
parent131d5e148e9ed883b3c5a3de7aca9a4f97b2774e (diff)
downloadsystemd-0004f698df1410ef8b6ab3fb5f4b41a60c91182c.tar.gz
Parse "timeout=0" as infinity in various generators (#6264)
This extends 2d79a0bbb9f651656384a0a86ed814e6306fb5dd to the kernel command line parsing. The parsing is changed a bit to only understand "0" as infinity. If units are specified, parse normally, e.g. "0s" is just 0. This makes it possible to provide a zero timeout if necessary. Simple test is added. Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1462378.
Diffstat (limited to 'src/basic/time-util.c')
-rw-r--r--src/basic/time-util.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/basic/time-util.c b/src/basic/time-util.c
index b0b181120a..3b44985c69 100644
--- a/src/basic/time-util.c
+++ b/src/basic/time-util.c
@@ -1009,6 +1009,16 @@ int parse_sec(const char *t, usec_t *usec) {
return parse_time(t, usec, USEC_PER_SEC);
}
+int parse_sec_fix_0(const char *t, usec_t *usec) {
+ t += strspn(t, WHITESPACE);
+ if (streq(t, "0")) {
+ *usec = USEC_INFINITY;
+ return 0;
+ }
+
+ return parse_sec(t, usec);
+}
+
int parse_nsec(const char *t, nsec_t *nsec) {
static const struct {
const char *suffix;