diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2021-12-09 20:25:12 +0900 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2021-12-09 15:06:20 +0100 |
commit | b55093ce8884ee4fc72f28c6fd5e39897e921e21 (patch) | |
tree | 959e7bf66cb6459b7a6a0faf289352481a358fce /src/network/networkd-dhcp4.c | |
parent | 93485626a10467630a018e6542b37e278ddb009e (diff) | |
download | systemd-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.c | 15 |
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; } |