X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flibsystemd-dhcp%2Fsd-dhcp-client.c;fp=src%2Flibsystemd-dhcp%2Fsd-dhcp-client.c;h=01397cff398be59c3a4e1a1fee05109bf28e7688;hb=0a1b6da82109c3b08b1f966a1625a77cc312135a;hp=63b7b24d87fd8e359ff84e8fc172f403b134ee47;hpb=8fa2eeace7beecedb01c82811e28949cacec1236;p=elogind.git diff --git a/src/libsystemd-dhcp/sd-dhcp-client.c b/src/libsystemd-dhcp/sd-dhcp-client.c index 63b7b24d8..01397cff3 100644 --- a/src/libsystemd-dhcp/sd-dhcp-client.c +++ b/src/libsystemd-dhcp/sd-dhcp-client.c @@ -206,11 +206,17 @@ static int client_message_init(sd_dhcp_client *client, DHCPMessage *message, size_t *optlen) { int r; - r = dhcp_message_init(message, BOOTREQUEST, client->xid, type, - secs, opt, optlen); + assert(secs); + + r = dhcp_message_init(message, BOOTREQUEST, client->xid, type, opt, + optlen); if (r < 0) return r; + /* Although 'secs' field is a SHOULD in RFC 2131, certain DHCP servers + refuse to issue an DHCP lease if 'secs' is set to zero */ + message->secs = htobe16(secs); + memcpy(&message->chaddr, &client->mac_addr, ETH_ALEN); if (client->state == DHCP_STATE_RENEWING ||