sd-dhcp6-client: stop IO event source when client entered bound state

Also when the client receives a reply when running in information
requesting mode.
This commit is contained in:
Yu Watanabe
2022-02-14 14:58:49 +09:00
parent 6f4490bb0c
commit 6f8ff34218
+3 -2
View File
@@ -1051,6 +1051,7 @@ static int client_enter_bound_state(sd_dhcp6_client *client) {
DHCP6_STATE_RENEW,
DHCP6_STATE_REBIND));
(void) event_source_disable(client->receive_message);
(void) event_source_disable(client->timeout_resend);
r = dhcp6_lease_get_lifetime(client->lease, &lifetime_t1, &lifetime_t2, &lifetime_valid);
@@ -1152,6 +1153,8 @@ static int client_process_information(
sd_dhcp6_lease_unref(client->lease);
client->lease = TAKE_PTR(lease);
/* Do not call client_stop() here, as it frees the acquired lease. */
(void) event_source_disable(client->receive_message);
(void) event_source_disable(client->timeout_resend);
client_set_state(client, DHCP6_STATE_STOPPED);
@@ -1346,8 +1349,6 @@ static int client_receive_message(
case DHCP6_STATE_BOUND:
case DHCP6_STATE_STOPPED:
return 0;
default:
assert_not_reached();
}