summaryrefslogtreecommitdiffstats
path: root/contrib/tcpdump/print-rpki-rtr.c
diff options
context:
space:
mode:
authordelphij <delphij@FreeBSD.org>2015-01-07 19:55:18 +0000
committerdelphij <delphij@FreeBSD.org>2015-01-07 19:55:18 +0000
commitf49c5d523af9076a4a59e8dd664f9a897108432e (patch)
treee268839e08c106e178b33bd461d8d0a9c6fb5ad9 /contrib/tcpdump/print-rpki-rtr.c
parentc371846049d370ab78d943e60e789cdffe0aad3d (diff)
parent08263d19579d35a7a65e0c8bcb768504ce76d04e (diff)
downloadFreeBSD-src-f49c5d523af9076a4a59e8dd664f9a897108432e.zip
FreeBSD-src-f49c5d523af9076a4a59e8dd664f9a897108432e.tar.gz
MFV r276761: tcpdump 4.6.2.
MFC after: 1 month
Diffstat (limited to 'contrib/tcpdump/print-rpki-rtr.c')
-rw-r--r--contrib/tcpdump/print-rpki-rtr.c68
1 files changed, 31 insertions, 37 deletions
diff --git a/contrib/tcpdump/print-rpki-rtr.c b/contrib/tcpdump/print-rpki-rtr.c
index c705c05..5bb5df7 100644
--- a/contrib/tcpdump/print-rpki-rtr.c
+++ b/contrib/tcpdump/print-rpki-rtr.c
@@ -17,19 +17,13 @@
* Original code by Hannes Gredler (hannes@juniper.net)
*/
-#ifndef lint
-static const char rcsid[] _U_ =
-"@(#) $Header: /tcpdump/master/tcpdump/print-rpki_rtr.c,v 1.10 2008-03-20 09:30:56 hannes Exp $";
-#endif
-
+#define NETDISSECT_REWORKED
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <tcpdump-stdinc.h>
-#include <stdio.h>
-#include <stdlib.h>
#include <string.h>
#include "interface.h"
@@ -175,7 +169,7 @@ indent_string (u_int indent)
* Print a single PDU.
*/
static void
-rpki_rtr_pdu_print (const u_char *tptr, u_int indent)
+rpki_rtr_pdu_print (netdissect_options *ndo, const u_char *tptr, u_int indent)
{
const rpki_rtr_pdu *pdu_header;
u_int pdu_type, pdu_len, hexdump;
@@ -186,11 +180,11 @@ rpki_rtr_pdu_print (const u_char *tptr, u_int indent)
pdu_len = EXTRACT_32BITS(pdu_header->length);
hexdump = FALSE;
- printf("%sRPKI-RTRv%u, %s PDU (%u), length: %u",
+ ND_PRINT((ndo, "%sRPKI-RTRv%u, %s PDU (%u), length: %u",
indent_string(8),
pdu_header->version,
tok2str(rpki_rtr_pdu_values, "Unknown", pdu_type),
- pdu_type, pdu_len);
+ pdu_type, pdu_len));
switch (pdu_type) {
@@ -201,10 +195,10 @@ rpki_rtr_pdu_print (const u_char *tptr, u_int indent)
case RPKI_RTR_SERIAL_QUERY_PDU:
case RPKI_RTR_END_OF_DATA_PDU:
msg = (const u_char *)(pdu_header + 1);
- printf("%sSession ID: 0x%04x, Serial: %u",
+ ND_PRINT((ndo, "%sSession ID: 0x%04x, Serial: %u",
indent_string(indent+2),
EXTRACT_16BITS(pdu_header->u.session_id),
- EXTRACT_32BITS(msg));
+ EXTRACT_32BITS(msg)));
break;
/*
@@ -219,9 +213,9 @@ rpki_rtr_pdu_print (const u_char *tptr, u_int indent)
break;
case RPKI_RTR_CACHE_RESPONSE_PDU:
- printf("%sSession ID: 0x%04x",
+ ND_PRINT((ndo, "%sSession ID: 0x%04x",
indent_string(indent+2),
- EXTRACT_16BITS(pdu_header->u.session_id));
+ EXTRACT_16BITS(pdu_header->u.session_id)));
break;
case RPKI_RTR_IPV4_PREFIX_PDU:
@@ -229,11 +223,11 @@ rpki_rtr_pdu_print (const u_char *tptr, u_int indent)
rpki_rtr_pdu_ipv4_prefix *pdu;
pdu = (rpki_rtr_pdu_ipv4_prefix *)tptr;
- printf("%sIPv4 Prefix %s/%u-%u, origin-as %u, flags 0x%02x",
+ ND_PRINT((ndo, "%sIPv4 Prefix %s/%u-%u, origin-as %u, flags 0x%02x",
indent_string(indent+2),
- ipaddr_string(pdu->prefix),
+ ipaddr_string(ndo, pdu->prefix),
pdu->prefix_length, pdu->max_length,
- EXTRACT_32BITS(pdu->as), pdu->flags);
+ EXTRACT_32BITS(pdu->as), pdu->flags));
}
break;
@@ -243,11 +237,11 @@ rpki_rtr_pdu_print (const u_char *tptr, u_int indent)
rpki_rtr_pdu_ipv6_prefix *pdu;
pdu = (rpki_rtr_pdu_ipv6_prefix *)tptr;
- printf("%sIPv6 Prefix %s/%u-%u, origin-as %u, flags 0x%02x",
+ ND_PRINT((ndo, "%sIPv6 Prefix %s/%u-%u, origin-as %u, flags 0x%02x",
indent_string(indent+2),
- ip6addr_string(pdu->prefix),
+ ip6addr_string(ndo, pdu->prefix),
pdu->prefix_length, pdu->max_length,
- EXTRACT_32BITS(pdu->as), pdu->flags);
+ EXTRACT_32BITS(pdu->as), pdu->flags));
}
break;
#endif
@@ -263,10 +257,10 @@ rpki_rtr_pdu_print (const u_char *tptr, u_int indent)
tlen = pdu_len;
error_code = EXTRACT_16BITS(pdu->pdu_header.u.error_code);
- printf("%sError code: %s (%u), Encapsulated PDU length: %u",
+ ND_PRINT((ndo, "%sError code: %s (%u), Encapsulated PDU length: %u",
indent_string(indent+2),
tok2str(rpki_rtr_error_codes, "Unknown", error_code),
- error_code, encapsulated_pdu_length);
+ error_code, encapsulated_pdu_length));
tptr += sizeof(*pdu);
tlen -= sizeof(*pdu);
@@ -276,8 +270,8 @@ rpki_rtr_pdu_print (const u_char *tptr, u_int indent)
*/
if (encapsulated_pdu_length &&
(encapsulated_pdu_length <= tlen)) {
- printf("%s-----encapsulated PDU-----", indent_string(indent+4));
- rpki_rtr_pdu_print(tptr, indent+2);
+ ND_PRINT((ndo, "%s-----encapsulated PDU-----", indent_string(indent+4)));
+ rpki_rtr_pdu_print(ndo, tptr, indent+2);
}
tptr += encapsulated_pdu_length;
@@ -285,7 +279,7 @@ rpki_rtr_pdu_print (const u_char *tptr, u_int indent)
/*
* Extract, trail-zero and print the Error message.
- */
+ */
text_length = 0;
if (tlen > 4) {
text_length = EXTRACT_32BITS(tptr);
@@ -293,9 +287,9 @@ rpki_rtr_pdu_print (const u_char *tptr, u_int indent)
tlen -= 4;
}
if (text_length && (text_length <= tlen )) {
- memcpy(buf, tptr, MIN(sizeof(buf)-1, text_length));
+ memcpy(buf, tptr, min(sizeof(buf)-1, text_length));
buf[text_length] = '\0';
- printf("%sError text: %s", indent_string(indent+2), buf);
+ ND_PRINT((ndo, "%sError text: %s", indent_string(indent+2), buf));
}
}
break;
@@ -304,18 +298,18 @@ rpki_rtr_pdu_print (const u_char *tptr, u_int indent)
/*
* Unknown data, please hexdump.
- */
+ */
hexdump = TRUE;
}
/* do we also want to see a hex dump ? */
- if (vflag > 1 || (vflag && hexdump)) {
- print_unknown_data(tptr,"\n\t ", pdu_len);
+ if (ndo->ndo_vflag > 1 || (ndo->ndo_vflag && hexdump)) {
+ print_unknown_data(ndo,tptr,"\n\t ", pdu_len);
}
}
void
-rpki_rtr_print(register const u_char *pptr, register u_int len) {
+rpki_rtr_print(netdissect_options *ndo, register const u_char *pptr, register u_int len) {
u_int tlen, pdu_type, pdu_len;
const u_char *tptr;
@@ -324,14 +318,14 @@ rpki_rtr_print(register const u_char *pptr, register u_int len) {
tptr = pptr;
tlen = len;
- if (!vflag) {
- printf(", RPKI-RTR");
+ if (!ndo->ndo_vflag) {
+ ND_PRINT((ndo, ", RPKI-RTR"));
return;
}
while (tlen >= sizeof(rpki_rtr_pdu)) {
- TCHECK2(*tptr, sizeof(rpki_rtr_pdu));
+ ND_TCHECK2(*tptr, sizeof(rpki_rtr_pdu));
pdu_header = (rpki_rtr_pdu *)tptr;
pdu_type = pdu_header->pdu_type;
@@ -342,7 +336,7 @@ rpki_rtr_print(register const u_char *pptr, register u_int len) {
break;
}
- TCHECK2(*tptr, pdu_len);
+ ND_TCHECK2(*tptr, pdu_len);
if (tlen < pdu_len) {
goto trunc;
}
@@ -350,14 +344,14 @@ rpki_rtr_print(register const u_char *pptr, register u_int len) {
/*
* Print the PDU.
*/
- rpki_rtr_pdu_print(tptr, 8);
+ rpki_rtr_pdu_print(ndo, tptr, 8);
tlen -= pdu_len;
tptr += pdu_len;
}
return;
trunc:
- printf("\n\t[|RPKI-RTR]");
+ ND_PRINT((ndo, "\n\t[|RPKI-RTR]"));
}
/*
OpenPOWER on IntegriCloud