network: introduce dhcp4_update_mac()
This commit is contained in:
parent
a3adb4a6a2
commit
d947f7f977
|
@ -1182,7 +1182,7 @@ int dhcp4_set_promote_secondaries(Link *link) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int dhcp4_set_client_identifier(Link *link) {
|
static int dhcp4_set_client_identifier(Link *link) {
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
assert(link);
|
assert(link);
|
||||||
|
@ -1431,6 +1431,25 @@ int dhcp4_configure(Link *link) {
|
||||||
return dhcp4_set_client_identifier(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) {
|
int link_deserialize_dhcp4(Link *link, const char *dhcp4_address) {
|
||||||
union in_addr_union address;
|
union in_addr_union address;
|
||||||
int r;
|
int r;
|
||||||
|
|
|
@ -18,7 +18,7 @@ typedef enum DHCPClientIdentifier {
|
||||||
} DHCPClientIdentifier;
|
} DHCPClientIdentifier;
|
||||||
|
|
||||||
int dhcp4_configure(Link *link);
|
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 dhcp4_set_promote_secondaries(Link *link);
|
||||||
|
|
||||||
int link_deserialize_dhcp4(Link *link, const char *dhcp4_address);
|
int link_deserialize_dhcp4(Link *link, const char *dhcp4_address);
|
||||||
|
|
|
@ -3039,18 +3039,9 @@ int link_update(Link *link, sd_netlink_message *m) {
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return log_link_warning_errno(link, r, "Could not update MAC address in IPv4LL client: %m");
|
return log_link_warning_errno(link, r, "Could not update MAC address in IPv4LL client: %m");
|
||||||
|
|
||||||
if (link->dhcp_client) {
|
r = dhcp4_update_mac(link);
|
||||||
r = sd_dhcp_client_set_mac(link->dhcp_client,
|
if (r < 0)
|
||||||
(const uint8_t *) &link->mac,
|
return log_link_warning_errno(link, r, "Could not update MAC address in DHCP client: %m");
|
||||||
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");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (link->dhcp6_client) {
|
if (link->dhcp6_client) {
|
||||||
const DUID* duid = link_get_duid(link);
|
const DUID* duid = link_get_duid(link);
|
||||||
|
|
Loading…
Reference in New Issue