chiark / gitweb /
sd-dhcp-client: log if we fail to set up lease timers
[elogind.git] / src / libsystemd-network / sd-dhcp-client.c
index 8503f19c2751110d99ac3faa7db9433d7a50c63c..9b007bf3cd2e8172021fb04efeafb96a3f22e48c 100644 (file)
@@ -1029,6 +1029,14 @@ static int client_handle_offer(sd_dhcp_client *client, DHCPMessage *offer,
         if (r < 0)
                 return r;
 
+        if (client->client_id_len) {
+                r = dhcp_lease_set_client_id(lease,
+                                             (uint8_t *) &client->client_id.raw,
+                                             client->client_id_len);
+                if (r < 0)
+                        return r;
+        }
+
         r = dhcp_option_parse(offer, len, dhcp_lease_parse_options, lease);
         if (r != DHCP_OFFER) {
                 log_dhcp_client(client, "received message was not an OFFER, ignoring");
@@ -1088,6 +1096,14 @@ static int client_handle_ack(sd_dhcp_client *client, DHCPMessage *ack,
         if (r < 0)
                 return r;
 
+        if (client->client_id_len) {
+                r = dhcp_lease_set_client_id(lease,
+                                             (uint8_t *) &client->client_id.raw,
+                                             client->client_id_len);
+                if (r < 0)
+                        return r;
+        }
+
         r = dhcp_option_parse(ack, len, dhcp_lease_parse_options, lease);
         if (r == DHCP_NAK) {
                 log_dhcp_client(client, "NAK");
@@ -1366,8 +1382,10 @@ static int client_handle_message(sd_dhcp_client *client, DHCPMessage *message,
                         client->last_addr = client->lease->address;
 
                         r = client_set_lease_timeouts(client);
-                        if (r < 0)
+                        if (r < 0) {
+                                log_dhcp_client(client, "could not set lease timeouts");
                                 goto error;
+                        }
 
                         r = dhcp_network_bind_udp_socket(client->lease->address,
                                                          DHCP_PORT_CLIENT);