chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
lldp: fix uninitialized cleanup var
[elogind.git]
/
src
/
libsystemd-network
/
sd-dhcp-client.c
diff --git
a/src/libsystemd-network/sd-dhcp-client.c
b/src/libsystemd-network/sd-dhcp-client.c
index 8503f19c2751110d99ac3faa7db9433d7a50c63c..c8a724f27e00c0817c84f185c47aa6af5ac3f8c0 100644
(file)
--- a/
src/libsystemd-network/sd-dhcp-client.c
+++ b/
src/libsystemd-network/sd-dhcp-client.c
@@
-500,7
+500,7
@@
static int client_message_init(sd_dhcp_client *client, DHCPPacket **ret,
Note (from ConnMan): Some DHCP servers will send bigger DHCP packets
than the defined default size unless the Maximum Messge Size option
Note (from ConnMan): Some DHCP servers will send bigger DHCP packets
than the defined default size unless the Maximum Messge Size option
- is explicit
e
ly set
+ is explicitly set
RFC3442 "Requirements to Avoid Sizing Constraints":
Because a full routing table can be quite large, the standard 576
RFC3442 "Requirements to Avoid Sizing Constraints":
Because a full routing table can be quite large, the standard 576
@@
-1029,6
+1029,14
@@
static int client_handle_offer(sd_dhcp_client *client, DHCPMessage *offer,
if (r < 0)
return r;
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");
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 (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");
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);
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;
goto error;
+ }
r = dhcp_network_bind_udp_socket(client->lease->address,
DHCP_PORT_CLIENT);
r = dhcp_network_bind_udp_socket(client->lease->address,
DHCP_PORT_CLIENT);