* Format and print bootp packets.
*/
#ifndef lint
-static const char rcsid[] =
- "@(#) $Header: /tcpdump/master/tcpdump/print-bootp.c,v 1.72 2003-04-28 07:43:03 hannes Exp $ (LBL)";
+static const char rcsid[] _U_ =
+ "@(#) $Header: /tcpdump/master/tcpdump/print-bootp.c,v 1.78 2004-03-02 07:38:10 hannes Exp $ (LBL)";
#endif
#ifdef HAVE_CONFIG_H
static char tstr[] = " [|bootp]";
+static const struct tok bootp_flag_values[] = {
+ { 0x8000, "Broadcast" },
+ { 0, NULL}
+};
+
+static const struct tok bootp_op_values[] = {
+ { BOOTPREQUEST, "Request" },
+ { BOOTPREPLY, "Reply" },
+ { 0, NULL}
+};
+
/*
* Print bootp requests
*/
void
-bootp_print(register const u_char *cp, u_short sport, u_short dport, u_int length)
+bootp_print(register const u_char *cp, u_int length)
{
register const struct bootp *bp;
static const u_char vm_cmu[4] = VM_CMU;
}
putchar('"');
}
- TCHECK2(bp->bp_sname[0], 1); /* check first char only */
+ TCHECK2(bp->bp_file[0], 1); /* check first char only */
if (*bp->bp_file) {
printf("\n\t file \"");
if (fn_print(bp->bp_file, snapend)) {
break;
case TAG_CLIENT_FQDN:
+ /* option 81 should be at least 4 bytes long */
+ if (len < 4)
+ printf("ERROR: options 81 len %u < 4 bytes", len);
+ break;
if (*bp++)
printf("[svrreg]");
if (*bp)