chiark / gitweb /
sd-dhcp6-client: fix free before use
[elogind.git] / src / libsystemd-network / sd-dhcp-client.c
index 1603c41227ea72148cdbfe21ff23f0e4833c824f..8e9f5bd827aa86546d073ab06bf5afb156e1b9a7 100644 (file)
@@ -776,7 +776,7 @@ static int client_timeout_t1(sd_event_source *s, uint64_t usec,
         r = dhcp_network_bind_udp_socket(client->lease->address,
                                          DHCP_PORT_CLIENT);
         if (r < 0) {
-                client_stop(client, r);
+                log_dhcp_client(client, "could not bind UDP socket");
                 return 0;
         }
 
@@ -879,7 +879,8 @@ static int client_handle_ack(sd_dhcp_client *client, DHCPMessage *ack,
                     client->lease->subnet_mask != lease->subnet_mask ||
                     client->lease->router != lease->router) {
                         r = DHCP_EVENT_IP_CHANGE;
-                }
+                } else
+                        r = DHCP_EVENT_RENEW;
 
                 client->lease = sd_dhcp_lease_unref(client->lease);
         }