sd-dhcp6-client: disable event source when client is stopped or freed

This commit is contained in:
Yu Watanabe
2022-02-14 14:43:45 +09:00
parent 7771233127
commit d0875a07dd
+7 -7
View File
@@ -589,8 +589,7 @@ static void client_reset(sd_dhcp6_client *client) {
client->lease = sd_dhcp6_lease_unref(client->lease);
client->receive_message =
sd_event_source_unref(client->receive_message);
client->receive_message = sd_event_source_disable_unref(client->receive_message);
client->transaction_id = 0;
client->transaction_start = 0;
@@ -1497,12 +1496,13 @@ sd_event *sd_dhcp6_client_get_event(sd_dhcp6_client *client) {
static sd_dhcp6_client *dhcp6_client_free(sd_dhcp6_client *client) {
assert(client);
client->timeout_resend = sd_event_source_unref(client->timeout_resend);
client->timeout_resend_expire = sd_event_source_unref(client->timeout_resend_expire);
client->timeout_t1 = sd_event_source_unref(client->timeout_t1);
client->timeout_t2 = sd_event_source_unref(client->timeout_t2);
sd_dhcp6_lease_unref(client->lease);
client_reset(client);
sd_event_source_disable_unref(client->receive_message);
sd_event_source_disable_unref(client->timeout_resend);
sd_event_source_disable_unref(client->timeout_resend_expire);
sd_event_source_disable_unref(client->timeout_t1);
sd_event_source_disable_unref(client->timeout_t2);
client->fd = safe_close(client->fd);