sd-dhcp-client: two tiny cleanups (#42129)

This commit is contained in:
Yu Watanabe
2026-05-17 04:16:32 +09:00
committed by GitHub
10 changed files with 50 additions and 73 deletions
+17 -9
View File
@@ -1,6 +1,7 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/if_arp.h>
#include <linux/pkt_sched.h>
#include <linux/rtnetlink.h>
#include <netinet/in.h>
#include <netinet/ip.h>
@@ -1486,10 +1487,14 @@ static int dhcp4_configure(Link *link) {
if (link->dhcp_client)
return log_link_debug_errno(link, SYNTHETIC_ERRNO(EBUSY), "DHCPv4 client is already configured.");
r = sd_dhcp_client_new(&link->dhcp_client, link->network->dhcp_anonymize);
r = sd_dhcp_client_new(&link->dhcp_client);
if (r < 0)
return log_link_debug_errno(link, r, "DHCPv4 CLIENT: Failed to allocate DHCPv4 client: %m");
r = sd_dhcp_client_set_anonymize(link->dhcp_client, link->network->dhcp_anonymize);
if (r < 0)
return log_link_debug_errno(link, r, "DHCPv4 CLIENT: Failed to anonymize requests: %m");
r = sd_dhcp_client_set_bootp(link->dhcp_client, link->network->dhcp_use_bootp);
if (r < 0)
return log_link_debug_errno(link, r, "DHCPv4 CLIENT: Failed to %s BOOTP: %m",
@@ -1666,12 +1671,13 @@ static int dhcp4_configure(Link *link) {
}
if (link->network->dhcp_ip_service_type >= 0) {
r = sd_dhcp_client_set_service_type(link->dhcp_client, link->network->dhcp_ip_service_type);
assert(link->network->dhcp_ip_service_type <= UINT8_MAX);
r = sd_dhcp_client_set_ip_service_type(link->dhcp_client, link->network->dhcp_ip_service_type);
if (r < 0)
return log_link_debug_errno(link, r, "DHCPv4 CLIENT: Failed to set IP service type: %m");
}
if (link->network->dhcp_socket_priority_set) {
if (link->network->dhcp_socket_priority >= 0) {
r = sd_dhcp_client_set_socket_priority(link->dhcp_client, link->network->dhcp_socket_priority);
if (r < 0)
return log_link_debug_errno(link, r, "DHCPv4 CLIENT: Failed to set socket priority: %m");
@@ -2001,14 +2007,13 @@ int config_parse_dhcp_socket_priority(
void *data,
void *userdata) {
Network *network = ASSERT_PTR(data);
int a, r;
int r, a, *priority = ASSERT_PTR(data);
assert(lvalue);
assert(rvalue);
if (isempty(rvalue)) {
network->dhcp_socket_priority_set = false;
*priority = -1;
return 0;
}
@@ -2018,10 +2023,13 @@ int config_parse_dhcp_socket_priority(
"Failed to parse socket priority, ignoring: %s", rvalue);
return 0;
}
if (a < 0 || a > TC_PRIO_MAX) {
log_syntax(unit, LOG_WARNING, filename, line, 0,
"Invalid socket priority, must be in 0…%i, ignoring: %i", TC_PRIO_MAX, a);
return 0;
}
network->dhcp_socket_priority_set = true;
network->dhcp_socket_priority = a;
*priority = a;
return 0;
}
+1 -1
View File
@@ -292,7 +292,7 @@ DHCPv4.SendDecline, config_parse_bool,
DHCPv4.DenyList, config_parse_in_addr_prefixes, AF_INET, offsetof(Network, dhcp_deny_listed_ip)
DHCPv4.AllowList, config_parse_in_addr_prefixes, AF_INET, offsetof(Network, dhcp_allow_listed_ip)
DHCPv4.IPServiceType, config_parse_dhcp_ip_service_type, 0, offsetof(Network, dhcp_ip_service_type)
DHCPv4.SocketPriority, config_parse_dhcp_socket_priority, 0, 0
DHCPv4.SocketPriority, config_parse_dhcp_socket_priority, 0, offsetof(Network, dhcp_socket_priority)
DHCPv4.SendOption, config_parse_dhcp_option_tlv, 0, offsetof(Network, dhcp_extra_options)
DHCPv4.SendVendorOption, config_parse_dhcp_option_tlv, 0, offsetof(Network, dhcp_vendor_options)
DHCPv4.RouteMTUBytes, config_parse_mtu, AF_INET, offsetof(Network, dhcp_route_mtu)
+1
View File
@@ -404,6 +404,7 @@ int network_load_one(Manager *manager, OrderedHashmap **networks, const char *fi
.dhcp_client_identifier = _DHCP_CLIENT_ID_INVALID,
.dhcp_route_table = RT_TABLE_MAIN,
.dhcp_ip_service_type = -1,
.dhcp_socket_priority = -1,
.dhcp_broadcast = -1,
.dhcp_ipv6_only_mode = -1,
.dhcp_6rd_prefix_route_type = RTN_UNREACHABLE,
-1
View File
@@ -140,7 +140,6 @@ typedef struct Network {
int dhcp_critical;
int dhcp_ip_service_type;
int dhcp_socket_priority;
bool dhcp_socket_priority_set;
bool dhcp_anonymize;
bool dhcp_send_hostname;
bool dhcp_send_hostname_set;