summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBeniamino Galvani <bgalvani@redhat.com>2021-02-12 09:53:30 +0100
committerBeniamino Galvani <bgalvani@redhat.com>2021-02-17 11:20:18 +0100
commit97833237bf38347c75022eb380208d99e1df9d5f (patch)
treead60fe8c1ce0d066ca425df15439205179c33da9
parent7e126fe898f130f53f3e5cb2f87eca2169978b4d (diff)
downloadNetworkManager-97833237bf38347c75022eb380208d99e1df9d5f.tar.gz
initrd: accept 'infinity' as argument to rd.net.timeout.dhcp
-rw-r--r--src/core/initrd/nmi-cmdline-reader.c8
-rw-r--r--src/core/initrd/tests/test-cmdline-reader.c1
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;