From: Denis Vlasenko Date: Fri, 21 Dec 2007 16:32:30 +0000 (-0000) Subject: udhcp: decided to not send "short" dhcp packets, X-Git-Tag: 1_9_0~14 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=619879246d57c9c54fa8e8eef138dde0876b0ef0;p=oweals%2Fbusybox.git udhcp: decided to not send "short" dhcp packets, but lets add comments how to do it if needed. --- diff --git a/networking/udhcp/packet.c b/networking/udhcp/packet.c index c3890229f..22c18deaf 100644 --- a/networking/udhcp/packet.c +++ b/networking/udhcp/packet.c @@ -122,7 +122,7 @@ uint16_t udhcp_checksum(void *addr, int count) } -/* Construct a ip/udp header for a packet, and specify the source and dest hardware address */ +/* Construct a ip/udp header for a packet, send packet */ int udhcp_send_raw_packet(struct dhcpMessage *payload, uint32_t source_ip, int source_port, uint32_t dest_ip, int dest_port, const uint8_t *dest_arp, int ifindex) @@ -175,6 +175,10 @@ int udhcp_send_raw_packet(struct dhcpMessage *payload, packet.ip.ttl = IPDEFTTL; packet.ip.check = udhcp_checksum(&packet.ip, sizeof(packet.ip)); + /* Currently we send full-sized DHCP packets (zero padded). + * If you need to change this: last byte of the packet is + * packet.data.options[end_option(packet.data.options)] + */ result = sendto(fd, &packet, IP_UPD_DHCP_SIZE, 0, (struct sockaddr *) &dest, sizeof(dest)); if (result <= 0) { bb_perror_msg("sendto"); @@ -222,6 +226,7 @@ int udhcp_send_kernel_packet(struct dhcpMessage *payload, return -1; } + /* Currently we send full-sized DHCP packets (see above) */ result = write(fd, payload, DHCP_SIZE); close(fd); return result;