return client;
}
-static int client_initialize(sd_dhcp6_client *client)
-{
+static int client_reset(sd_dhcp6_client *client) {
assert_return(client, -EINVAL);
client->receive_message =
sd_event_source_unref(client->receive_message);
- if (client->fd > 0)
- client->fd = safe_close(client->fd);
+ client->fd = safe_close(client->fd);
client->transaction_id = 0;
client = client_notify(client, error);
if (client)
- client_initialize(client);
+ client_reset(client);
return client;
}
assert_return(client->event, -EINVAL);
assert_return(client->index > 0, -EINVAL);
- r = client_initialize(client);
+ r = client_reset(client);
if (r < 0)
return r;
sd_dhcp6_client *sd_dhcp6_client_unref(sd_dhcp6_client *client) {
if (client && REFCNT_DEC(client->n_ref) <= 0) {
- client_initialize(client);
+ client_reset(client);
sd_dhcp6_client_detach_event(client);
client->index = -1;
+ client->fd = -1;
+
/* initialize DUID */
client->duid.type = htobe16(DHCP6_DUID_EN);
client->duid.pen = htobe32(SYSTEMD_PEN);