int r;
assert(client);
- assert(IN_SET(client->state, DHCP_STATE_INIT, DHCP_STATE_SELECTING));
r = client_message_init(client, DHCP_DISCOVER, &discover, &optlen, &optoffset);
if (r < 0)
return r;
log_dhcp_client(client, "DISCOVER");
-
return 0;
}
int r;
assert(client);
- assert(IN_SET(client->state, DHCP_STATE_INIT, DHCP_STATE_SELECTING));
r = client_message_init(client, DHCP_DISCOVER, &discover, &optlen, &optoffset);
if (r < 0)
return 0;
}
+static int client_send_discover(sd_dhcp_client *client) {
+ assert(client);
+ assert(IN_SET(client->state, DHCP_STATE_INIT, DHCP_STATE_SELECTING));
+
+ return client->bootp ?
+ client_send_bootp_discover(client) :
+ client_send_dhcp_discover(client);
+}
+
static int client_send_request(sd_dhcp_client *client) {
_cleanup_free_ DHCPPacket *request = NULL;
size_t optoffset, optlen;
switch (client->state) {
case DHCP_STATE_INIT:
- if (client->bootp)
- r = client_send_bootp_discover(client);
- else
- r = client_send_dhcp_discover(client);
+ r = client_send_discover(client);
if (r >= 0) {
client_set_state(client, DHCP_STATE_SELECTING);
client->discover_attempt = 0;
break;
case DHCP_STATE_SELECTING:
- if (client->bootp)
- r = client_send_bootp_discover(client);
- else
- r = client_send_dhcp_discover(client);
+ r = client_send_discover(client);
if (r < 0 && client->discover_attempt >= client->max_discover_attempts)
goto error;
break;