summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancois-Xavier Le Bail <fx.lebail@yahoo.com>2016-08-18 11:45:29 +0200
committerFrancois-Xavier Le Bail <fx.lebail@yahoo.com>2016-08-18 13:59:52 +0200
commit4e0187006366b895c525f88f205ae77b53722a7c (patch)
tree3535c0211cb4e0067e94f06acd0c5d2a31a6f3e9
parent392cc92bcf0084025ebad0482c1951bee6e31550 (diff)
downloadtcpdump-4e0187006366b895c525f88f205ae77b53722a7c.tar.gz
RPKI-RTR: Remove printing when truncated condition already detected
Moreover: Remove redundant 'truncated' messages. Add and use tstr[]. Update output of some tests accordingly.
-rw-r--r--print-rpki-rtr.c21
-rw-r--r--tests/kday2.out2
-rw-r--r--tests/kday3.out10
-rw-r--r--tests/kday4.out12
-rw-r--r--tests/kday7.out13
-rw-r--r--tests/kday8.out2
6 files changed, 22 insertions, 38 deletions
diff --git a/print-rpki-rtr.c b/print-rpki-rtr.c
index 24ee3267..77e29c78 100644
--- a/print-rpki-rtr.c
+++ b/print-rpki-rtr.c
@@ -31,6 +31,8 @@
#include "extract.h"
#include "addrtoname.h"
+static const char tstr[] = "[|RPKI-RTR]";
+
/*
* RPKI/Router PDU header
*
@@ -169,7 +171,7 @@ indent_string (u_int indent)
/*
* Print a single PDU.
*/
-static void
+static int
rpki_rtr_pdu_print (netdissect_options *ndo, const u_char *tptr, u_int indent)
{
const rpki_rtr_pdu *pdu_header;
@@ -271,7 +273,8 @@ rpki_rtr_pdu_print (netdissect_options *ndo, const u_char *tptr, u_int indent)
if (encapsulated_pdu_length &&
(encapsulated_pdu_length <= tlen)) {
ND_PRINT((ndo, "%s-----encapsulated PDU-----", indent_string(indent+4)));
- rpki_rtr_pdu_print(ndo, tptr, indent+2);
+ if (rpki_rtr_pdu_print(ndo, tptr, indent+2))
+ goto trunc;
}
tptr += encapsulated_pdu_length;
@@ -307,11 +310,10 @@ rpki_rtr_pdu_print (netdissect_options *ndo, const u_char *tptr, u_int indent)
if (ndo->ndo_vflag > 1 || (ndo->ndo_vflag && hexdump)) {
print_unknown_data(ndo,tptr,"\n\t ", pdu_len);
}
- return;
+ return 0;
- trunc:
- ND_PRINT((ndo, "|trunc"));
- return;
+trunc:
+ return 1;
}
void
@@ -350,14 +352,15 @@ rpki_rtr_print(netdissect_options *ndo, register const u_char *pptr, register u_
/*
* Print the PDU.
*/
- rpki_rtr_pdu_print(ndo, tptr, 8);
+ if (rpki_rtr_pdu_print(ndo, tptr, 8))
+ goto trunc;
tlen -= pdu_len;
tptr += pdu_len;
}
return;
- trunc:
- ND_PRINT((ndo, "\n\t[|RPKI-RTR]"));
+trunc:
+ ND_PRINT((ndo, "\n\t%s", tstr));
}
/*
diff --git a/tests/kday2.out b/tests/kday2.out
index 770fc3b7..fbfc10e1 100644
--- a/tests/kday2.out
+++ b/tests/kday2.out
@@ -29,6 +29,6 @@ IP (tos 0x0, ttl 64, id 36752, offset 0, flags [DF], proto TCP (6), length 399,
0x0020: b36d cc11 3abf 1291 f106 4ede 61f4 6297
0x0030: afc4 39a4 0db9 7aa5 6873 33e8
RPKI-RTRv65, Error Report PDU (10), length: 21
- Error code: Unknown (66), Encapsulated PDU length: 37|trunc
+ Error code: Unknown (66), Encapsulated PDU length: 37
[|RPKI-RTR]
EXIT CODE 00000100
diff --git a/tests/kday3.out b/tests/kday3.out
index f6fd7284..61578d5f 100644
--- a/tests/kday3.out
+++ b/tests/kday3.out
@@ -13,10 +13,7 @@ IP (tos 0x0, ttl 64, id 36752, offset 0, flags [DF], proto TCP (6), length 399,
0x0010: f857 ee68 4dfd 4d5f d9bd c709 30ac 8176
0x0020: b36d cc11 3abf 1291 f106 4ede 61f4 6297
0x0030: afc4 39a4 0db9 7aa5 6873 33e8
- RPKI-RTRv65, Error Report PDU (10), length: 66|trunc
- RPKI-RTRv115, Error Report PDU (10), length: 66
- Error code: Unknown (66), Encapsulated PDU length: 12
- -----encapsulated PDU-----|trunc|trunc
+ RPKI-RTRv65, Error Report PDU (10), length: 66
[|RPKI-RTR]
IP (tos 0x10, ttl 62, id 64806, offset 0, flags [DF], proto TCP (6), length 52)
204.9.51.132.50079 > 204.9.54.80.22: Flags [.], cksum 0x8611 (incorrect -> 0xa678), ack 0, win 4094, options [nop,nop,TS val 941371775 ecr 4294967242], length 0
@@ -33,9 +30,6 @@ IP (tos 0x0, ttl 64, id 36752, offset 0, flags [DF], proto TCP (6), length 399,
0x0030: afc4 39a4 0db9 7aa5 6873 33e8
RPKI-RTRv65, Error Report PDU (10), length: 66
Error code: Unknown (66), Encapsulated PDU length: 37
- -----encapsulated PDU-----|trunc|trunc
- RPKI-RTRv9, Unknown PDU (51), length: 32
- 0x0000: 0933 84cc 0000 0020 9f00 1649 d1c8 546c
- 0x0010: ff13 1980 100f fc85 8b00 0055 0000 0101
+ -----encapsulated PDU-----
[|RPKI-RTR]
EXIT CODE 00000100
diff --git a/tests/kday4.out b/tests/kday4.out
index 00836ee9..ccdebfc8 100644
--- a/tests/kday4.out
+++ b/tests/kday4.out
@@ -18,10 +18,7 @@ IP (tos 0x0, ttl 64, id 36752, offset 0, flags [DF], proto TCP (6), length 399,
0x0030: afc4 39a4 0db9 7aa5 6873 33e8
RPKI-RTRv65, Error Report PDU (10), length: 66
Error code: Unknown (66), Encapsulated PDU length: 37
- -----encapsulated PDU-----|trunc|trunc
- RPKI-RTRv115, Error Report PDU (10), length: 66
- Error code: Unknown (66), Encapsulated PDU length: 12
- -----encapsulated PDU-----|trunc|trunc
+ -----encapsulated PDU-----
[|RPKI-RTR]
IP (tos 0x10, ttl 62, id 64806, offset 0, flags [DF], proto TCP (6), length 52)
204.9.51.132.50079 > 204.9.54.80.22: Flags [.], cksum 0x8611 (incorrect -> 0xa678), ack 1819218606, win 4094, options [nop,nop,TS val 941371775 ecr 4294967242], length 0
@@ -38,10 +35,7 @@ IP (tos 0x0, ttl 64, id 36752, offset 0, flags [DF], proto TCP (6), length 399,
0x0030: afc4 39a4 0db9 7aa5 6873 33e8
RPKI-RTRv65, Error Report PDU (10), length: 66
Error code: Unknown (66), Encapsulated PDU length: 37
- -----encapsulated PDU-----|trunc|trunc
- RPKI-RTRv115, Error Report PDU (10), length: 66
- Error code: Unknown (66), Encapsulated PDU length: 12
- -----encapsulated PDU-----|trunc|trunc
+ -----encapsulated PDU-----
[|RPKI-RTR]
IP truncated-ip - 768 bytes missing! (tos 0x10, ttl 62, id 64806, offset 0, flags [DF], proto TCP (6), length 820, bad cksum 3da6 (->3aa6)!)
204.9.51.132.50079 > 204.9.54.80.22: Flags [.], seq 0:768, ack 1, win 4094, options [nop,nop,TS val 941371775 ecr 4294967242], length 768
@@ -59,6 +53,6 @@ IP (tos 0x0, ttl 64, id 36752, offset 0, flags [DF], proto TCP (6), length 399,
RPKI-RTRv65, Error Report PDU (10), length: 66
Error code: Unknown (66), Encapsulated PDU length: 100
Error text: ^@^@^@M-^?M-^?^_^[pM-xWM-nhMM-}M_M-YM-=M-G^I0M-,M-^AvM-3mM-L^Q:M-?^RM-^QM-q^FNM-^aM-tbM-^WM-/M-D9M-$^MM-9zM-%hs3M-hA^J^@B^@^@^@B^@^@^@%M-Dz^HM-i^RM-^DM-5M-^\M->0H^H^@E^P^@4M-}&@^@>^F
- RPKI-RTRv115, Error Report PDU (10), length: 66|trunc
+ RPKI-RTRv115, Error Report PDU (10), length: 66
[|RPKI-RTR]
EXIT CODE 00000100
diff --git a/tests/kday7.out b/tests/kday7.out
index 5179a0f7..75e24caf 100644
--- a/tests/kday7.out
+++ b/tests/kday7.out
@@ -18,10 +18,7 @@ IP (tos 0x0, ttl 64, id 36752, offset 0, flags [DF], proto TCP (6), length 399,
0x0030: afc4 39a4 0db9 7aa5 6873 33e8
RPKI-RTRv65, Error Report PDU (10), length: 66
Error code: Unknown (66), Encapsulated PDU length: 37
- -----encapsulated PDU-----|trunc|trunc
- RPKI-RTRv115, Error Report PDU (10), length: 66
- Error code: Unknown (66), Encapsulated PDU length: 12
- -----encapsulated PDU-----|trunc|trunc
+ -----encapsulated PDU-----
[|RPKI-RTR]
IP (tos 0x10, ttl 62, id 64806, offset 0, flags [DF], proto TCP (6), length 52)
204.9.51.132.50079 > 204.9.54.80.22: Flags [.], cksum 0x8611 (incorrect -> 0xa678), ack 1819218606, win 4094, options [nop,nop,TS val 941371775 ecr 4294967242], length 0
@@ -38,10 +35,7 @@ IP (tos 0x0, ttl 64, id 36752, offset 0, flags [DF], proto TCP (6), length 399,
0x0030: afc4 39a4 0db9 7aa5 6873 33e8
RPKI-RTRv65, Error Report PDU (10), length: 66
Error code: Unknown (66), Encapsulated PDU length: 37
- -----encapsulated PDU-----|trunc|trunc
- RPKI-RTRv115, Error Report PDU (10), length: 66
- Error code: Unknown (66), Encapsulated PDU length: 12
- -----encapsulated PDU-----|trunc|trunc
+ -----encapsulated PDU-----
[|RPKI-RTR]
IP truncated-ip - 768 bytes missing! (tos 0x10, ttl 62, id 64806, offset 0, flags [DF], proto TCP (6), length 820, bad cksum 3da6 (->3aa6)!)
204.9.51.132.50079 > 204.9.54.80.22: Flags [.], seq 0:768, ack 1, win 4094, options [nop,nop,TS val 941371775 ecr 4294967242], length 768
@@ -57,7 +51,6 @@ IP (tos 0x0, ttl 64, id 36752, offset 0, flags [DF], proto TCP (6), length 399,
0x0020: b36d cc11 3abf 1291 f106 4ede 61f4 6297
0x0030: afc4 39a4 0db9 7aa5 6873 33e8
RPKI-RTRv65, Error Report PDU (10), length: 66
- Error code: Unknown (66), Encapsulated PDU length: 100|trunc
- RPKI-RTRv115, Error Report PDU (10), length: 66|trunc
+ Error code: Unknown (66), Encapsulated PDU length: 100
[|RPKI-RTR]
EXIT CODE 00000100
diff --git a/tests/kday8.out b/tests/kday8.out
index 2d84b724..6446b7d3 100644
--- a/tests/kday8.out
+++ b/tests/kday8.out
@@ -29,6 +29,6 @@ IP (tos 0x0, ttl 64, id 36752, offset 0, flags [DF], proto TCP (6), length 399,
0x0020: b36d cc11 3abf 1291 f106 4ede 61f4 6297
0x0030: afc4 39a4 0db9 7aa5 6873 33e8
RPKI-RTRv65, Error Report PDU (10), length: 66
- Error code: Unknown (66), Encapsulated PDU length: 80|trunc
+ Error code: Unknown (66), Encapsulated PDU length: 80
[|RPKI-RTR]
EXIT CODE 00000100