*/
#ifndef lint
static const char rcsid[] =
- "@(#) $Header: /tcpdump/master/tcpdump/print-bootp.c,v 1.49 2000-07-01 03:39:01 assar Exp $ (LBL)";
+ "@(#) $Header: /tcpdump/master/tcpdump/print-bootp.c,v 1.53 2000-10-27 23:26:30 guy Exp $ (LBL)";
#endif
#ifdef HAVE_CONFIG_H
struct mbuf;
struct rtentry;
-#include <net/if.h>
#include <netinet/in.h>
-#include <netinet/if_ether.h>
#include <ctype.h>
#include <stdio.h>
#include "interface.h"
#include "addrtoname.h"
+#include "ether.h"
#include "bootp.h"
static void rfc1048_print(const u_char *, u_int);
/* RFC1048 tags */
{ TAG_PAD, " PAD" },
{ TAG_SUBNET_MASK, "iSM" }, /* subnet mask (RFC950) */
- { TAG_TIME_OFFSET, "lTZ" }, /* seconds from UTC */
+ { TAG_TIME_OFFSET, "LTZ" }, /* seconds from UTC */
{ TAG_GATEWAY, "iDG" }, /* default gateway */
{ TAG_TIME_SERVER, "iTS" }, /* time servers (RFC868) */
{ TAG_NAME_SERVER, "iIEN" }, /* IEN name servers (IEN116) */
{ TAG_RENEWAL_TIME, "lRN" },
{ TAG_REBIND_TIME, "lRB" },
{ TAG_VENDOR_CLASS, "bVC" },
- { TAG_CLIENT_ID, "bCID" },
+ { TAG_CLIENT_ID, "xCID" },
{ 0, NULL }
};
case 'i':
case 'l':
+ case 'L':
/* ip addresses/32-bit words */
while (size >= sizeof(ul)) {
if (!first)
memcpy((char *)&ul, (char *)bp, sizeof(ul));
if (c == 'i')
printf("%s", ipaddr_string(&ul));
+ else if (c == 'L')
+ printf("%d", ul);
else
printf("%u", ul);
bp += sizeof(ul);
break;
case 'b':
+ case 'x':
default:
/* Bytes */
while (size > 0) {
if (!first)
- putchar('.');
- printf("%d", *bp);
+ putchar (c == 'x' ? ':' : '.');
+ printf (c == 'x' ? "%02x" : "%d", *bp);
++bp;
--size;
first = 0;