summaryrefslogtreecommitdiff
path: root/src/network/networkd-dhcp4.c
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2021-12-09 20:25:12 +0900
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2021-12-09 15:06:20 +0100
commitb55093ce8884ee4fc72f28c6fd5e39897e921e21 (patch)
tree959e7bf66cb6459b7a6a0faf289352481a358fce /src/network/networkd-dhcp4.c
parent93485626a10467630a018e6542b37e278ddb009e (diff)
downloadsystemd-b55093ce8884ee4fc72f28c6fd5e39897e921e21.tar.gz
network: dhcp: make IPServiceType= accept "none" to disable tos in the outgoing packet
Fixes #9874.
Diffstat (limited to 'src/network/networkd-dhcp4.c')
-rw-r--r--src/network/networkd-dhcp4.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/network/networkd-dhcp4.c b/src/network/networkd-dhcp4.c
index b8efb76858..81faf48448 100644
--- a/src/network/networkd-dhcp4.c
+++ b/src/network/networkd-dhcp4.c
@@ -1704,17 +1704,24 @@ int config_parse_dhcp_ip_service_type(
void *data,
void *userdata) {
+ int *tos = data;
+
assert(filename);
assert(lvalue);
assert(rvalue);
+ assert(data);
- if (streq(rvalue, "CS4"))
- *((int *)data) = IPTOS_CLASS_CS4;
+ if (isempty(rvalue))
+ *tos = -1; /* use sd_dhcp_client's default (currently, CS6). */
+ else if (streq(rvalue, "none"))
+ *tos = 0;
+ else if (streq(rvalue, "CS4"))
+ *tos = IPTOS_CLASS_CS4;
else if (streq(rvalue, "CS6"))
- *((int *)data) = IPTOS_CLASS_CS6;
+ *tos = IPTOS_CLASS_CS6;
else
log_syntax(unit, LOG_WARNING, filename, line, 0,
- "Failed to parse IPServiceType type '%s', ignoring.", rvalue);
+ "Failed to parse %s=, ignoring assignment: %s", lvalue, rvalue);
return 0;
}