summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libsystemd-network/sd-dhcp-client.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/libsystemd-network/sd-dhcp-client.c b/src/libsystemd-network/sd-dhcp-client.c
index 94ad5bbea9..1a1499fa2c 100644
--- a/src/libsystemd-network/sd-dhcp-client.c
+++ b/src/libsystemd-network/sd-dhcp-client.c
@@ -2223,7 +2223,11 @@ int sd_dhcp_client_send_release(sd_dhcp_client *client) {
log_dhcp_client(client, "RELEASE");
- return 0;
+ /* This function is mostly called when stopping daemon. Hence, do not call client_stop() or
+ * client_restart(). Otherwise, the notification callback will be called again and we may easily
+ * enter an infinite loop. */
+ client_initialize(client);
+ return 1; /* sent and stopped. */
}
int sd_dhcp_client_send_decline(sd_dhcp_client *client) {