- log_dhcp_client(client, "set MAC address to "
- "%02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx",
- addr->ether_addr_octet[0],
- addr->ether_addr_octet[1],
- addr->ether_addr_octet[2],
- addr->ether_addr_octet[3],
- addr->ether_addr_octet[4],
- addr->ether_addr_octet[5]);
+ if (memcmp(&client->client_id.mac_addr, addr, ETH_ALEN) == 0)
+ return 0;
+
+ if (client->state != DHCP_STATE_INIT) {
+ log_dhcp_client(client, "Changing MAC address on running DHCP "
+ "client, restarting");
+ sd_dhcp_client_stop(client);
+ need_restart = true;
+ }