Upgrade to tcpdump 4.7.4.

Bug: http://b/24902618
Change-Id: I7c3605015d90453b0a8c339b1774e285796f8775
diff --git a/print-carp.c b/print-carp.c
index 75f5774..7b9f28c 100644
--- a/print-carp.c
+++ b/print-carp.c
@@ -34,52 +34,49 @@
  *
  */
 
+#define NETDISSECT_REWORKED
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
 
 #include <tcpdump-stdinc.h>
 
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "interface.h"
+#include "interface.h" /* for checksum structure and functions */
 #include "extract.h"
-#include "addrtoname.h"
 
 void
-carp_print(register const u_char *bp, register u_int len, int ttl)
+carp_print(netdissect_options *ndo, register const u_char *bp, register u_int len, int ttl)
 {
 	int version, type;
 	const char *type_s;
 
-	TCHECK(bp[0]);
+	ND_TCHECK(bp[0]);
 	version = (bp[0] & 0xf0) >> 4;
 	type = bp[0] & 0x0f;
 	if (type == 1)
 		type_s = "advertise";
 	else
 		type_s = "unknown";
-	printf("CARPv%d-%s %d: ", version, type_s, len);
+	ND_PRINT((ndo, "CARPv%d-%s %d: ", version, type_s, len));
 	if (ttl != 255)
-		printf("[ttl=%d!] ", ttl);
+		ND_PRINT((ndo, "[ttl=%d!] ", ttl));
 	if (version != 2 || type != 1)
 		return;
-	TCHECK(bp[2]);
-	TCHECK(bp[5]);
-	printf("vhid=%d advbase=%d advskew=%d authlen=%d ",
-	    bp[1], bp[5], bp[2], bp[3]);
-	if (vflag) {
+	ND_TCHECK(bp[2]);
+	ND_TCHECK(bp[5]);
+	ND_PRINT((ndo, "vhid=%d advbase=%d advskew=%d authlen=%d ",
+	    bp[1], bp[5], bp[2], bp[3]));
+	if (ndo->ndo_vflag) {
 		struct cksum_vec vec[1];
-		vec[0].ptr = (const u_int8_t *)bp;
+		vec[0].ptr = (const uint8_t *)bp;
 		vec[0].len = len;
-		if (TTEST2(bp[0], len) && in_cksum(vec, 1))
-			printf(" (bad carp cksum %x!)",
-				EXTRACT_16BITS(&bp[6]));
+		if (ND_TTEST2(bp[0], len) && in_cksum(vec, 1))
+			ND_PRINT((ndo, " (bad carp cksum %x!)",
+				EXTRACT_16BITS(&bp[6])));
 	}
-	printf("counter=%" PRIu64, EXTRACT_64BITS(&bp[8]));
+	ND_PRINT((ndo, "counter=%" PRIu64, EXTRACT_64BITS(&bp[8])));
 
 	return;
 trunc:
-	printf("[|carp]");
+	ND_PRINT((ndo, "[|carp]"));
 }