diff options
Diffstat (limited to '')
-rw-r--r-- | src/libsystemd-network/sd-dhcp-client.c | 14 | ||||
-rw-r--r-- | src/libsystemd-network/test-dhcp-client.c | 4 |
2 files changed, 8 insertions, 10 deletions
diff --git a/src/libsystemd-network/sd-dhcp-client.c b/src/libsystemd-network/sd-dhcp-client.c index 265750d090..21b6592037 100644 --- a/src/libsystemd-network/sd-dhcp-client.c +++ b/src/libsystemd-network/sd-dhcp-client.c @@ -870,13 +870,6 @@ static int client_message_init( if (client->request_broadcast || client->arp_type != ARPHRD_ETHER) packet->dhcp.flags = htobe16(0x8000); - /* If no client identifier exists, construct an RFC 4361-compliant one */ - if (client->client_id_len == 0) { - r = sd_dhcp_client_set_iaid_duid_en(client, /* iaid_set = */ false, /* iaid = */ 0); - if (r < 0) - return r; - } - /* Some DHCP servers will refuse to issue an DHCP lease if the Client Identifier option is not set */ r = dhcp_option_append(&packet->dhcp, optlen, &optoffset, 0, @@ -2075,6 +2068,13 @@ int sd_dhcp_client_start(sd_dhcp_client *client) { if (r < 0) return r; + /* If no client identifier exists, construct an RFC 4361-compliant one */ + if (client->client_id_len == 0) { + r = sd_dhcp_client_set_iaid_duid_en(client, /* iaid_set = */ false, /* iaid = */ 0); + if (r < 0) + return r; + } + /* RFC7844 section 3.3: SHOULD perform a complete four-way handshake, starting with a DHCPDISCOVER, to obtain a new address lease. If the client can diff --git a/src/libsystemd-network/test-dhcp-client.c b/src/libsystemd-network/test-dhcp-client.c index 8c16d65bbc..f3f558a358 100644 --- a/src/libsystemd-network/test-dhcp-client.c +++ b/src/libsystemd-network/test-dhcp-client.c @@ -522,9 +522,7 @@ static void test_addr_acq(sd_event *e) { res = sd_dhcp_client_start(client); assert_se(IN_SET(res, 0, -EINPROGRESS)); - r = sd_event_loop(e); - /* Times out since https://github.com/systemd/systemd/issues/28990 add workaorund for now */ - assert_se(r >= 0 || r == -ETIMEDOUT); + assert_se(sd_event_loop(e) >= 0); assert_se(sd_dhcp_client_set_callback(client, NULL, NULL) >= 0); assert_se(sd_dhcp_client_stop(client) >= 0); |