udhcp: decided to not send "short" dhcp packets,

but lets add comments how to do it if needed.
This commit is contained in:
Denis Vlasenko 2007-12-21 16:32:30 +00:00
parent fff145dba3
commit 619879246d

View File

@ -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, int udhcp_send_raw_packet(struct dhcpMessage *payload,
uint32_t source_ip, int source_port, uint32_t source_ip, int source_port,
uint32_t dest_ip, int dest_port, const uint8_t *dest_arp, int ifindex) 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.ttl = IPDEFTTL;
packet.ip.check = udhcp_checksum(&packet.ip, sizeof(packet.ip)); 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)); result = sendto(fd, &packet, IP_UPD_DHCP_SIZE, 0, (struct sockaddr *) &dest, sizeof(dest));
if (result <= 0) { if (result <= 0) {
bb_perror_msg("sendto"); bb_perror_msg("sendto");
@ -222,6 +226,7 @@ int udhcp_send_kernel_packet(struct dhcpMessage *payload,
return -1; return -1;
} }
/* Currently we send full-sized DHCP packets (see above) */
result = write(fd, payload, DHCP_SIZE); result = write(fd, payload, DHCP_SIZE);
close(fd); close(fd);
return result; return result;