X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/f58e26a369aba6aba89041b04e3b1e325b0e6566..0023eaa78f123676bfa9c5fba72ea4b8a59aaa70:/print-lspping.c diff --git a/print-lspping.c b/print-lspping.c index e798eeb1..04a4b21a 100644 --- a/print-lspping.c +++ b/print-lspping.c @@ -17,12 +17,11 @@ /* specification: RFC 4379 */ -#ifdef HAVE_CONFIG_H #include -#endif #include "netdissect-stdinc.h" +#define ND_LONGJMP_FROM_TCHECK #include "netdissect.h" #include "extract.h" #include "addrtoname.h" @@ -588,14 +587,13 @@ lspping_print(netdissect_options *ndo, GET_BE_U_4(lspping_com_header->sender_handle), GET_BE_U_4(lspping_com_header->seq_number)); - ND_PRINT("\n\t Sender Timestamp: "); + ND_PRINT("\n\t TimeStamp Sent: "); p_ntp_time(ndo, &lspping_com_header->ts_sent); - ND_PRINT(" "); int_part=GET_BE_U_4(lspping_com_header->ts_rcvd.int_part); fraction=GET_BE_U_4(lspping_com_header->ts_rcvd.fraction); - ND_PRINT("Receiver Timestamp: "); - if ((int_part != 0) && (fraction != 0)) + ND_PRINT("\n\t TimeStamp Received: "); + if (! (int_part == 0 && fraction == 0)) p_ntp_time(ndo, &lspping_com_header->ts_rcvd); else ND_PRINT("no timestamp"); @@ -608,9 +606,6 @@ lspping_print(netdissect_options *ndo, if (tlen < sizeof(struct lspping_tlv_header)) goto tooshort; - /* did we capture enough for fully decoding the tlv header ? */ - ND_TCHECK_LEN(tptr, sizeof(struct lspping_tlv_header)); - lspping_tlv_header = (const struct lspping_tlv_header *)tptr; lspping_tlv_type=GET_BE_U_2(lspping_tlv_header->type); lspping_tlv_len=GET_BE_U_2(lspping_tlv_header->length); @@ -648,8 +643,6 @@ lspping_print(netdissect_options *ndo, tlv_hexdump = TRUE; goto tlv_tooshort; } - /* did we capture enough for fully decoding the subtlv header ? */ - ND_TCHECK_LEN(tlv_tptr, sizeof(struct lspping_tlv_header)); subtlv_hexdump=FALSE; lspping_subtlv_header = (const struct lspping_tlv_header *)tlv_tptr; @@ -1011,9 +1004,6 @@ lspping_print(netdissect_options *ndo, /* FIXME add hash-key type, depth limit, multipath processing */ - tlv_tptr+=sizeof(struct lspping_tlv_downstream_map_info_t); - tlv_tlen-=sizeof(struct lspping_tlv_downstream_map_info_t); - /* FIXME print downstream labels */ tlv_hexdump=TRUE; /* dump the TLV until code complete */ @@ -1026,8 +1016,7 @@ lspping_print(netdissect_options *ndo, tlv_hexdump = TRUE; goto tlv_tooshort; } else { - ND_TCHECK_LEN(tptr, LSPPING_TLV_BFD_DISCRIMINATOR_LEN); - ND_PRINT("\n\t BFD Discriminator 0x%08x", GET_BE_U_4(tptr)); + ND_PRINT("\n\t BFD Discriminator 0x%08x", GET_BE_U_4(tlv_tptr)); } break; @@ -1040,7 +1029,6 @@ lspping_print(netdissect_options *ndo, tlv_hexdump = TRUE; goto tlv_tooshort; } else { - ND_TCHECK_LEN(tptr, LSPPING_TLV_VENDOR_ENTERPRISE_LEN); vendor_id = GET_BE_U_4(tlv_tptr); ND_PRINT("\n\t Vendor: %s (0x%04x)", tok2str(smi_values, "Unknown", vendor_id), @@ -1083,8 +1071,4 @@ lspping_print(netdissect_options *ndo, return; tooshort: ND_PRINT("\n\t\t packet is too short"); - return; -trunc: - nd_print_trunc(ndo); - return; }