X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/56d8c43b671a98e14b4a505c81bad036b5968e07..5ef0bcb5edd748de9d9af13c40da0395dfdd94e8:/print-telnet.c?ds=sidebyside diff --git a/print-telnet.c b/print-telnet.c index a9a517a0..817d4226 100644 --- a/print-telnet.c +++ b/print-telnet.c @@ -48,17 +48,16 @@ /* \summary: Telnet option printer */ #ifdef HAVE_CONFIG_H -#include "config.h" +#include #endif -#include +#include "netdissect-stdinc.h" #include #include "netdissect.h" #include "extract.h" -static const char tstr[] = " [|telnet]"; #define TELCMDS #define TELOPTS @@ -397,8 +396,7 @@ telnet_parse(netdissect_options *ndo, const u_char *sp, u_int length, int print) do { \ if (length < 1) \ goto pktend; \ - ND_TCHECK_1(sp); \ - c = EXTRACT_U_1(sp); \ + c = GET_U_1(sp); \ sp++; \ length--; \ } while (0) @@ -439,13 +437,11 @@ telnet_parse(netdissect_options *ndo, const u_char *sp, u_int length, int print) /* IAC SB .... IAC SE */ p = sp; while (length > (u_int)(p + 1 - sp)) { - ND_TCHECK_2(p); - if (EXTRACT_U_1(p) == IAC && EXTRACT_U_1(p + 1) == SE) + if (GET_U_1(p) == IAC && GET_U_1(p + 1) == SE) break; p++; } - ND_TCHECK_1(p); - if (EXTRACT_U_1(p) != IAC) + if (GET_U_1(p) != IAC) goto pktend; switch (x) { @@ -498,10 +494,8 @@ telnet_parse(netdissect_options *ndo, const u_char *sp, u_int length, int print) } done: - return sp - osp; + return (int)(sp - osp); -trunc: - ND_PRINT("%s", tstr); pktend: return -1; #undef FETCH @@ -514,10 +508,10 @@ telnet_print(netdissect_options *ndo, const u_char *sp, u_int length) const u_char *osp; int l; + ndo->ndo_protocol = "telnet"; osp = sp; - ND_TCHECK_1(sp); - while (length > 0 && EXTRACT_U_1(sp) == IAC) { + while (length > 0 && GET_U_1(sp) == IAC) { /* * Parse the Telnet command without printing it, * to determine its length. @@ -532,7 +526,7 @@ telnet_print(netdissect_options *ndo, const u_char *sp, u_int length) if (ndo->ndo_Xflag && 2 < ndo->ndo_vflag) { if (first) ND_PRINT("\nTelnet:"); - hex_print_with_offset(ndo, "\n", sp, l, sp - osp); + hex_print_with_offset(ndo, "\n", sp, l, (u_int)(sp - osp)); if (l > 8) ND_PRINT("\n\t\t\t\t"); else @@ -555,5 +549,5 @@ telnet_print(netdissect_options *ndo, const u_char *sp, u_int length) } return; trunc: - ND_PRINT("%s", tstr); + nd_print_trunc(ndo); }