dhcpcd: add diagnostics to valid_udp_packet

A UDP packet may be invalid for a number of reasons. When a packet
is found to be invalid, log the specific reason that we rejected it.

BUG=chromium:342102
TEST=network_DhcpRenew (doesn't test new functionality)

Change-Id: I8f4633cd3974fd10c2bada90842e9902dea0ea1c
Reviewed-on: https://chromium-review.googlesource.com/185511
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
Commit-Queue: mukesh agrawal <quiche@chromium.org>
diff --git a/net.c b/net.c
index b732f37..a501d92 100644
--- a/net.c
+++ b/net.c
@@ -719,6 +719,8 @@
 	uint16_t bytes, udpsum;
 
 	if (data_len < sizeof(packet.ip)) {
+		syslog(LOG_WARNING, "packet shorter than an ip header "
+                    "(len=%zd)", data_len);
 		if (from)
 			from->s_addr = INADDR_ANY;
 		errno = EINVAL;
@@ -728,16 +730,20 @@
 	if (from)
 		from->s_addr = packet.ip.ip_src.s_addr;
 	if (data_len > sizeof(packet)) {
+		syslog(LOG_WARNING, "packet too long (%zd bytes)", data_len);
 		errno = EINVAL;
 		return -1;
 	}
 	if (checksum(&packet.ip, sizeof(packet.ip)) != 0) {
+		syslog(LOG_WARNING, "packet failed ip header checksum");
 		errno = EINVAL;
 		return -1;
 	}
 
 	bytes = ntohs(packet.ip.ip_len);
 	if (data_len < bytes) {
+		syslog(LOG_WARNING, "packet appears truncated "
+		    "(len=%zd, ip_len=%zd)", data_len, bytes);
 		errno = EINVAL;
 		return -1;
 	}
@@ -752,6 +758,7 @@
 	packet.ip.ip_ttl = 0;
 	packet.ip.ip_sum = 0;
 	if (udpsum && checksum(&packet, bytes) != udpsum) {
+		syslog(LOG_WARNING, "packet failed udp checksum");
 		errno = EINVAL;
 		return -1;
 	}