diff options
author | Beniamino Galvani <bgalvani@redhat.com> | 2016-01-25 09:47:02 +0100 |
---|---|---|
committer | Beniamino Galvani <bgalvani@redhat.com> | 2016-01-25 17:46:01 +0100 |
commit | 3eb5037e1f34aa40320281893f58aca8ffa51952 (patch) | |
tree | 65e40f33a75a22b5cff7bad2f4ae920ec785ddca | |
parent | 37d0833a1526d2674243a9b06eeae1aba49dad76 (diff) | |
download | NetworkManager-3eb5037e1f34aa40320281893f58aca8ffa51952.tar.gz |
dhcp/systemd: disable callback before stopping the client
Otherwise the call to stop() would generate a new unwanted state
transition.
-rw-r--r-- | src/dhcp-manager/nm-dhcp-systemd.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/dhcp-manager/nm-dhcp-systemd.c b/src/dhcp-manager/nm-dhcp-systemd.c index ca4027e8dd..2dc351dbee 100644 --- a/src/dhcp-manager/nm-dhcp-systemd.c +++ b/src/dhcp-manager/nm-dhcp-systemd.c @@ -815,10 +815,13 @@ stop (NMDhcpClient *client, gboolean release, const GByteArray *duid) NMDhcpSystemdPrivate *priv = NM_DHCP_SYSTEMD_GET_PRIVATE (client); int r = 0; - if (priv->client4) + if (priv->client4) { + sd_dhcp_client_set_callback (priv->client4, NULL, NULL); r = sd_dhcp_client_stop (priv->client4); - else if (priv->client6) + } else if (priv->client6) { + sd_dhcp6_client_set_callback (priv->client6, NULL, NULL); r = sd_dhcp6_client_stop (priv->client6); + } if (r) { nm_log_warn (priv->client6 ? LOGD_DHCP6 : LOGD_DHCP4, |