udhcpc: small code shrink

function                                             old     new   delta
udhcp_recv_raw_packet                                430     425      -5

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2011-10-20 10:34:05 +02:00
parent f461385521
commit 7981d79ef0

View File

@ -802,7 +802,8 @@ static NOINLINE int udhcp_recv_raw_packet(struct dhcp_packet *dhcp_pkt, int fd)
bytes = ntohs(packet.ip.tot_len); bytes = ntohs(packet.ip.tot_len);
/* make sure its the right packet for us, and that it passes sanity checks */ /* make sure its the right packet for us, and that it passes sanity checks */
if (packet.ip.protocol != IPPROTO_UDP || packet.ip.version != IPVERSION if (packet.ip.protocol != IPPROTO_UDP
|| packet.ip.version != IPVERSION
|| packet.ip.ihl != (sizeof(packet.ip) >> 2) || packet.ip.ihl != (sizeof(packet.ip) >> 2)
|| packet.udp.dest != htons(CLIENT_PORT) || packet.udp.dest != htons(CLIENT_PORT)
/* || bytes > (int) sizeof(packet) - can't happen */ /* || bytes > (int) sizeof(packet) - can't happen */
@ -831,15 +832,17 @@ static NOINLINE int udhcp_recv_raw_packet(struct dhcp_packet *dhcp_pkt, int fd)
return -2; return -2;
} }
memcpy(dhcp_pkt, &packet.data, bytes - (sizeof(packet.ip) + sizeof(packet.udp))); if (packet.data.cookie != htonl(DHCP_MAGIC)) {
if (dhcp_pkt->cookie != htonl(DHCP_MAGIC)) {
bb_info_msg("Packet with bad magic, ignoring"); bb_info_msg("Packet with bad magic, ignoring");
return -2; return -2;
} }
log1("Got valid DHCP packet"); log1("Got valid DHCP packet");
udhcp_dump_packet(dhcp_pkt); udhcp_dump_packet(&packet.data);
return bytes - (sizeof(packet.ip) + sizeof(packet.udp));
bytes -= sizeof(packet.ip) + sizeof(packet.udp);
memcpy(dhcp_pkt, &packet.data, bytes);
return bytes;
} }