summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLubomir Rintel <lkundrak@v3.sk>2015-10-08 14:55:36 +0200
committerLubomir Rintel <lkundrak@v3.sk>2015-10-08 15:21:43 +0200
commit95e8b165a7cf8a9f72ccfbc3ca09833c8e2cdb60 (patch)
tree06b97352b82360881e92515db49331cb02709e0d
parentac633f6f2e18c5c0954824da4939cc9cf2d04696 (diff)
downloadNetworkManager-95e8b165a7cf8a9f72ccfbc3ca09833c8e2cdb60.tar.gz
systemd,dhcpv6: clean up the lease on client reset
Upstream systemd.git commit 4e3e667 [sd-dhcp6-client: Fix unreferencing DHCPv6 lease on client reset]. Fixed on master already. https://bugzilla.redhat.com/show_bug.cgi?id=1260727
-rw-r--r--src/dhcp-manager/systemd-dhcp/src/libsystemd-network/sd-dhcp6-client.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/dhcp-manager/systemd-dhcp/src/libsystemd-network/sd-dhcp6-client.c b/src/dhcp-manager/systemd-dhcp/src/libsystemd-network/sd-dhcp6-client.c
index 8a17a72803..6754fe1990 100644
--- a/src/dhcp-manager/systemd-dhcp/src/libsystemd-network/sd-dhcp6-client.c
+++ b/src/dhcp-manager/systemd-dhcp/src/libsystemd-network/sd-dhcp6-client.c
@@ -285,6 +285,11 @@ static void client_notify(sd_dhcp6_client *client, int event) {
static int client_reset(sd_dhcp6_client *client) {
assert_return(client, -EINVAL);
+ if (client->lease) {
+ dhcp6_lease_clear_timers(&client->lease->ia);
+ client->lease = sd_dhcp6_lease_unref(client->lease);
+ }
+
client->receive_message =
sd_event_source_unref(client->receive_message);