return 0;
}
-int dhcp4_set_client_identifier(Link *link) {
+static int dhcp4_set_client_identifier(Link *link) {
int r;
assert(link);
return dhcp4_set_client_identifier(link);
}
+int dhcp4_update_mac(Link *link) {
+ int r;
+
+ assert(link);
+
+ if (!link->dhcp_client)
+ return 0;
+
+ r = sd_dhcp_client_set_mac(link->dhcp_client, (const uint8_t *) &link->mac, sizeof (link->mac), ARPHRD_ETHER);
+ if (r < 0)
+ return r;
+
+ r = dhcp4_set_client_identifier(link);
+ if (r < 0)
+ return r;
+
+ return 0;
+}
+
int link_deserialize_dhcp4(Link *link, const char *dhcp4_address) {
union in_addr_union address;
int r;
} DHCPClientIdentifier;
int dhcp4_configure(Link *link);
-int dhcp4_set_client_identifier(Link *link);
+int dhcp4_update_mac(Link *link);
int dhcp4_set_promote_secondaries(Link *link);
int link_deserialize_dhcp4(Link *link, const char *dhcp4_address);
if (r < 0)
return log_link_warning_errno(link, r, "Could not update MAC address in IPv4LL client: %m");
- if (link->dhcp_client) {
- r = sd_dhcp_client_set_mac(link->dhcp_client,
- (const uint8_t *) &link->mac,
- sizeof (link->mac),
- ARPHRD_ETHER);
- if (r < 0)
- return log_link_warning_errno(link, r, "Could not update MAC address in DHCP client: %m");
-
- r = dhcp4_set_client_identifier(link);
- if (r < 0)
- return log_link_warning_errno(link, r, "Could not set DHCP client identifier: %m");
- }
+ r = dhcp4_update_mac(link);
+ if (r < 0)
+ return log_link_warning_errno(link, r, "Could not update MAC address in DHCP client: %m");
if (link->dhcp6_client) {
const DUID* duid = link_get_duid(link);