Since the length used by options is known, send packets with no
extra padding.
---
Hi,
Discovered that the full buffer was sent out even though the length of
all options would indicate a shorter one. Shave off extra padding from
the packets by properly setting the buffer length.
Cheers,
Patrik
src/libsystemd-network/sd-dhcp-client.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/libsystemd-network/sd-dhcp-client.c
b/src/libsystemd-network/sd-dhcp-client.c
index 1a57939..9052b84 100644
--- a/src/libsystemd-network/sd-dhcp-client.c
+++ b/src/libsystemd-network/sd-dhcp-client.c
@@ -315,7 +315,7 @@ static int client_send_discover(sd_dhcp_client *client,
uint16_t secs) {
if (err < 0)
return err;
- err = dhcp_client_send_raw(client, discover, len);
+ err = dhcp_client_send_raw(client, discover, len - optlen);
if (err < 0)
return err;
@@ -385,9 +385,9 @@ static int client_send_request(sd_dhcp_client *client,
uint16_t secs) {
client->lease->server_address,
DHCP_PORT_SERVER,
&request->dhcp,
- len - DHCP_IP_UDP_SIZE);
+ len - optlen -
DHCP_IP_UDP_SIZE);
} else {
- err = dhcp_client_send_raw(client, request, len);
+ err = dhcp_client_send_raw(client, request, len - optlen);
}
if (err < 0)
return err;
--
1.8.5.2
_______________________________________________
systemd-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/systemd-devel