From 97833237bf38347c75022eb380208d99e1df9d5f Mon Sep 17 00:00:00 2001 From: Beniamino Galvani Date: Fri, 12 Feb 2021 09:53:30 +0100 Subject: [PATCH] initrd: accept 'infinity' as argument to rd.net.timeout.dhcp --- src/core/initrd/nmi-cmdline-reader.c | 8 ++++++-- src/core/initrd/tests/test-cmdline-reader.c | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/core/initrd/nmi-cmdline-reader.c b/src/core/initrd/nmi-cmdline-reader.c index 4fa97cc213..8d1c27890c 100644 --- a/src/core/initrd/nmi-cmdline-reader.c +++ b/src/core/initrd/nmi-cmdline-reader.c @@ -1078,8 +1078,12 @@ nmi_cmdline_reader_parse(const char * sysfs_dir, else if (nm_streq(tag, "rd.peerdns")) reader->ignore_auto_dns = !_nm_utils_ascii_str_to_bool(argument, TRUE); else if (nm_streq(tag, "rd.net.timeout.dhcp")) { - reader->dhcp_timeout = - _nm_utils_ascii_str_to_int64(argument, 10, 1, G_MAXINT32, reader->dhcp_timeout); + if (nm_streq0(argument, "infinity")) { + reader->dhcp_timeout = G_MAXINT32; + } else { + reader->dhcp_timeout = + _nm_utils_ascii_str_to_int64(argument, 10, 1, G_MAXINT32, reader->dhcp_timeout); + } } else if (nm_streq(tag, "rd.net.dhcp.vendor-class")) { if (nm_utils_validate_dhcp4_vendor_class_id(argument, NULL)) nm_utils_strdup_reset(&reader->dhcp4_vci, argument); diff --git a/src/core/initrd/tests/test-cmdline-reader.c b/src/core/initrd/tests/test-cmdline-reader.c index 6f3dd1a504..6795e32d37 100644 --- a/src/core/initrd/tests/test-cmdline-reader.c +++ b/src/core/initrd/tests/test-cmdline-reader.c @@ -240,6 +240,7 @@ test_dhcp_timeout(void) {NM_MAKE_STRV("ip=dhcp", "rd.net.timeout.dhcp=0"), 90}, {NM_MAKE_STRV("ip=dhcp", "rd.net.timeout.dhcp=foobar"), 90}, {NM_MAKE_STRV("ip=dhcp", "rd.net.timeout.dhcp=42"), 42}, + {NM_MAKE_STRV("ip=dhcp", "rd.net.timeout.dhcp=infinity"), G_MAXINT32}, }; guint i;