dhcp/systemd: disable callback before stopping the client
authorBeniamino Galvani <bgalvani@redhat.com>
Mon, 25 Jan 2016 08:47:02 +0000 (09:47 +0100)
committerBeniamino Galvani <bgalvani@redhat.com>
Mon, 25 Jan 2016 16:46:01 +0000 (17:46 +0100)
Otherwise the call to stop() would generate a new unwanted state
transition.

src/dhcp-manager/nm-dhcp-systemd.c

index ca4027e..2dc351d 100644 (file)
@@ -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,