dhcp: stop using magic constants; use (htonl(CONST) != a) - it's smaller

function                                             old     new   delta
udhcp_get_packet                                     146     134     -12
get_raw_packet                                       368     353     -15

diff --git a/networking/udhcp/options.c b/networking/udhcp/options.c
index 3168fc6..2b4f164 100644
--- a/networking/udhcp/options.c
+++ b/networking/udhcp/options.c
@@ -73,12 +73,13 @@
 {
 	int i, length;
 	uint8_t *optionptr;
-	int over = 0, done = 0, curr = OPTION_FIELD;
+	int over = 0;
+	int curr = OPTION_FIELD;
 
 	optionptr = packet->options;
 	i = 0;
-	length = 308;
-	while (!done) {
+	length = sizeof(packet->options);
+	while (1) {
 		if (i >= length) {
 			bb_error_msg("bogus packet, option fields too long");
 			return NULL;
@@ -103,17 +104,18 @@
 			i += optionptr[OPT_LEN] + 2;
 			break;
 		case DHCP_END:
-			if (curr == OPTION_FIELD && over & FILE_FIELD) {
+			if (curr == OPTION_FIELD && (over & FILE_FIELD)) {
 				optionptr = packet->file;
 				i = 0;
-				length = 128;
+				length = sizeof(packet->file);
 				curr = FILE_FIELD;
-			} else if (curr == FILE_FIELD && over & SNAME_FIELD) {
+			} else if (curr == FILE_FIELD && (over & SNAME_FIELD)) {
 				optionptr = packet->sname;
 				i = 0;
-				length = 64;
+				length = sizeof(packet->sname);
 				curr = SNAME_FIELD;
-			} else done = 1;
+			} else
+				return NULL;
 			break;
 		default:
 			i += optionptr[OPT_LEN + i] + 2;