add "wpad" DHCP option. Spotted some optimization opportunities: -80 bytes
diff --git a/networking/udhcp/options.c b/networking/udhcp/options.c
index 9fcbc84..4a46da5 100644
--- a/networking/udhcp/options.c
+++ b/networking/udhcp/options.c
@@ -10,53 +10,55 @@
 
 
 /* supported options are easily added here */
-struct dhcp_option dhcp_options[] = {
-	/* name[10]	flags					code */
-	{"subnet",	OPTION_IP | OPTION_REQ,			0x01},
-	{"timezone",	OPTION_S32,				0x02},
-	{"router",	OPTION_IP | OPTION_LIST | OPTION_REQ,	0x03},
-	{"timesvr",	OPTION_IP | OPTION_LIST,		0x04},
-	{"namesvr",	OPTION_IP | OPTION_LIST,		0x05},
-	{"dns",		OPTION_IP | OPTION_LIST | OPTION_REQ,	0x06},
-	{"logsvr",	OPTION_IP | OPTION_LIST,		0x07},
-	{"cookiesvr",	OPTION_IP | OPTION_LIST,		0x08},
-	{"lprsvr",	OPTION_IP | OPTION_LIST,		0x09},
-	{"hostname",	OPTION_STRING | OPTION_REQ,		0x0c},
-	{"bootsize",	OPTION_U16,				0x0d},
-	{"domain",	OPTION_STRING | OPTION_REQ,		0x0f},
-	{"swapsvr",	OPTION_IP,				0x10},
-	{"rootpath",	OPTION_STRING,				0x11},
-	{"ipttl",	OPTION_U8,				0x17},
-	{"mtu",		OPTION_U16,				0x1a},
-	{"broadcast",	OPTION_IP | OPTION_REQ,			0x1c},
-	{"nisdomain",	OPTION_STRING | OPTION_REQ,		0x28},
-	{"nissrv",	OPTION_IP | OPTION_LIST | OPTION_REQ,	0x29},
-	{"ntpsrv",	OPTION_IP | OPTION_LIST | OPTION_REQ,	0x2a},
-	{"wins",	OPTION_IP | OPTION_LIST,		0x2c},
-	{"requestip",	OPTION_IP,				0x32},
-	{"lease",	OPTION_U32,				0x33},
-	{"dhcptype",	OPTION_U8,				0x35},
-	{"serverid",	OPTION_IP,				0x36},
-	{"message",	OPTION_STRING,				0x38},
+const struct dhcp_option dhcp_options[] = {
+	/* name[10]     flags                                   code */
+	{"subnet",      OPTION_IP | OPTION_REQ,                 0x01},
+	{"timezone",    OPTION_S32,                             0x02},
+	{"router",      OPTION_IP | OPTION_LIST | OPTION_REQ,   0x03},
+	{"timesvr",     OPTION_IP | OPTION_LIST,                0x04},
+	{"namesvr",     OPTION_IP | OPTION_LIST,                0x05},
+	{"dns",         OPTION_IP | OPTION_LIST | OPTION_REQ,   0x06},
+	{"logsvr",      OPTION_IP | OPTION_LIST,                0x07},
+	{"cookiesvr",   OPTION_IP | OPTION_LIST,                0x08},
+	{"lprsvr",      OPTION_IP | OPTION_LIST,                0x09},
+	{"hostname",    OPTION_STRING | OPTION_REQ,             0x0c},
+	{"bootsize",    OPTION_U16,                             0x0d},
+	{"domain",      OPTION_STRING | OPTION_REQ,             0x0f},
+	{"swapsvr",     OPTION_IP,                              0x10},
+	{"rootpath",    OPTION_STRING,                          0x11},
+	{"ipttl",       OPTION_U8,                              0x17},
+	{"mtu",         OPTION_U16,                             0x1a},
+	{"broadcast",   OPTION_IP | OPTION_REQ,                 0x1c},
+	{"nisdomain",   OPTION_STRING | OPTION_REQ,             0x28},
+	{"nissrv",      OPTION_IP | OPTION_LIST | OPTION_REQ,   0x29},
+	{"ntpsrv",      OPTION_IP | OPTION_LIST | OPTION_REQ,   0x2a},
+	{"wins",        OPTION_IP | OPTION_LIST,                0x2c},
+	{"requestip",   OPTION_IP,                              0x32},
+	{"lease",       OPTION_U32,                             0x33},
+	{"dhcptype",    OPTION_U8,                              0x35},
+	{"serverid",    OPTION_IP,                              0x36},
+	{"message",     OPTION_STRING,                          0x38},
 	{"vendorclass", OPTION_STRING,                          0x3C},
 	{"clientid",    OPTION_STRING,                          0x3D},
-	{"tftp",	OPTION_STRING,				0x42},
-	{"bootfile",	OPTION_STRING,				0x43},
+	{"tftp",        OPTION_STRING,                          0x42},
+	{"bootfile",    OPTION_STRING,                          0x43},
 	{"userclass",   OPTION_STRING,                          0x4D},
-	{"",		0x00,				0x00}
+	/* MSIE's "Web Proxy Autodiscovery Protocol" support */
+	{"wpad",        OPTION_STRING,                          0xfc},
+	{"",            0x00,                                   0x00}
 };
 
 /* Lengths of the different option types */
-int option_lengths[] = {
-	[OPTION_IP] =		4,
-	[OPTION_IP_PAIR] =	8,
-	[OPTION_BOOLEAN] =	1,
-	[OPTION_STRING] =	1,
-	[OPTION_U8] =		1,
-	[OPTION_U16] =		2,
-	[OPTION_S16] =		2,
-	[OPTION_U32] =		4,
-	[OPTION_S32] =		4
+const unsigned char option_lengths[] = {
+	[OPTION_IP] =      4,
+	[OPTION_IP_PAIR] = 8,
+	[OPTION_BOOLEAN] = 1,
+	[OPTION_STRING] =  1,
+	[OPTION_U8] =      1,
+	[OPTION_U16] =     2,
+	[OPTION_S16] =     2,
+	[OPTION_U32] =     4,
+	[OPTION_S32] =     4
 };
 
 
@@ -150,9 +152,9 @@
 /* add a one to four byte option to a packet */
 int add_simple_option(uint8_t *optionptr, uint8_t code, uint32_t data)
 {
-	struct dhcp_option *dh;
+	const struct dhcp_option *dh;
 
-	for (dh=dhcp_options; dh->code; dh++) {
+	for (dh = dhcp_options; dh->code; dh++) {
 		if (dh->code == code) {
 			uint8_t option[6], len;