]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - src/libsystemd-network/sd-dhcp-client.c
sd-dhcp-client: split out client_enter_requesting()
[thirdparty/systemd.git] / src / libsystemd-network / sd-dhcp-client.c
index 1bd5315c8a39eab58aa7e22c35022240c22b93d5..03e7c7284281cfbf911d15f8c824dc7246ba7dc0 100644 (file)
@@ -1598,6 +1598,20 @@ static int client_handle_offer(sd_dhcp_client *client, DHCPMessage *offer, size_
         return 0;
 }
 
+static int client_enter_requesting(sd_dhcp_client *client) {
+        assert(client);
+
+        client_set_state(client, DHCP_STATE_REQUESTING);
+        client->attempt = 0;
+
+        return event_reset_time_relative(client->event, &client->timeout_resend,
+                                         CLOCK_BOOTTIME,
+                                         0, 0,
+                                         client_timeout_resend, client,
+                                         client->event_priority, "dhcp4-resend-timer",
+                                         /* force_reset = */ true);
+}
+
 static int client_handle_forcerenew(sd_dhcp_client *client, DHCPMessage *force, size_t len) {
         int r;
 
@@ -1854,14 +1868,7 @@ static int client_handle_message(sd_dhcp_client *client, DHCPMessage *message, i
                 if (r < 0)
                         goto error;
 
-                client_set_state(client, DHCP_STATE_REQUESTING);
-                client->attempt = 0;
-
-                r = event_reset_time(client->event, &client->timeout_resend,
-                                     CLOCK_BOOTTIME,
-                                     0, 0,
-                                     client_timeout_resend, client,
-                                     client->event_priority, "dhcp4-resend-timer", true);
+                r = client_enter_requesting(client);
                 break;
 
         case DHCP_STATE_REBOOTING: