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;
|
||||
}
|
||||
|
||||
int dhcp4_set_client_identifier(Link *link) {
|
||||
static int dhcp4_set_client_identifier(Link *link) {
|
||||
int r;
|
||||
|
||||
assert(link);
|
||||
|
@ -1431,6 +1431,25 @@ int dhcp4_configure(Link *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;
|
||||
|
|
|
@ -18,7 +18,7 @@ typedef enum DHCPClientIdentifier {
|
|||
} 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);
|
||||
|
|
|
@ -3039,18 +3039,9 @@ int link_update(Link *link, sd_netlink_message *m) {
|
|||
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);
|
||||
|
|
Loading…
Reference in New Issue