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:
parent
f461385521
commit
7981d79ef0
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user