]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-tftp.c
Revert partially the commit 21b1273
[tcpdump] / print-tftp.c
index a54f029741d43d715143a79a6f5b35fff65ad083..e90fb68c1da044e2152572db41bd9f9ce7706e4b 100644 (file)
@@ -22,7 +22,7 @@
 /* \summary: Trivial File Transfer Protocol (TFTP) printer */
 
 #ifdef HAVE_CONFIG_H
-#include "config.h"
+#include <config.h>
 #endif
 
 #include "netdissect-stdinc.h"
@@ -58,7 +58,6 @@
 #define        EEXISTS         6               /* file already exists */
 #define        ENOUSER         7               /* no such user */
 
-static const char tstr[] = " [|tftp]";
 
 /* op code to string mapping */
 static const struct tok op2str[] = {
@@ -95,16 +94,19 @@ tftp_print(netdissect_options *ndo,
        u_int opcode;
        u_int ui;
 
+       ndo->ndo_protocol = "tftp";
+
+       /* Print protocol */
+       nd_print_protocol_caps(ndo);
        /* Print length */
-       ND_PRINT(" %u", length);
+       ND_PRINT(", length %u", length);
 
        /* Print tftp request type */
        if (length < 2)
                goto trunc;
-       ND_TCHECK_2(bp);
-       opcode = EXTRACT_BE_U_2(bp);
+       opcode = GET_BE_U_2(bp);
        cp = tok2str(op2str, "tftp-#%u", opcode);
-       ND_PRINT(" %s", cp);
+       ND_PRINT(", %s", cp);
        /* Bail if bogus opcode */
        if (*cp == 't')
                return;
@@ -120,7 +122,7 @@ tftp_print(netdissect_options *ndo,
                ND_PRINT(" ");
                /* Print filename */
                ND_PRINT("\"");
-               ui = fn_printztn(ndo, bp, length, ndo->ndo_snapend);
+               ui = nd_printztn(ndo, bp, length, ndo->ndo_snapend);
                ND_PRINT("\"");
                if (ui == 0)
                        goto trunc;
@@ -131,7 +133,7 @@ tftp_print(netdissect_options *ndo,
                if (length == 0)
                        goto trunc;     /* no mode */
                ND_PRINT(" ");
-               ui = fn_printztn(ndo, bp, length, ndo->ndo_snapend);
+               ui = nd_printztn(ndo, bp, length, ndo->ndo_snapend);
                if (ui == 0)
                        goto trunc;
                bp += ui;
@@ -139,10 +141,9 @@ tftp_print(netdissect_options *ndo,
 
                /* Print options, if any */
                while (length != 0) {
-                       ND_TCHECK_1(bp);
-                       if (EXTRACT_U_1(bp) != '\0')
+                       if (GET_U_1(bp) != '\0')
                                ND_PRINT(" ");
-                       ui = fn_printztn(ndo, bp, length, ndo->ndo_snapend);
+                       ui = nd_printztn(ndo, bp, length, ndo->ndo_snapend);
                        if (ui == 0)
                                goto trunc;
                        bp += ui;
@@ -153,10 +154,9 @@ tftp_print(netdissect_options *ndo,
        case OACK:
                /* Print options */
                while (length != 0) {
-                       ND_TCHECK_1(bp);
-                       if (EXTRACT_U_1(bp) != '\0')
+                       if (GET_U_1(bp) != '\0')
                                ND_PRINT(" ");
-                       ui = fn_printztn(ndo, bp, length, ndo->ndo_snapend);
+                       ui = nd_printztn(ndo, bp, length, ndo->ndo_snapend);
                        if (ui == 0)
                                goto trunc;
                        bp += ui;
@@ -168,24 +168,22 @@ tftp_print(netdissect_options *ndo,
        case DATA:
                if (length < 2)
                        goto trunc;     /* no block number */
-               ND_TCHECK_2(bp);
-               ND_PRINT(" block %u", EXTRACT_BE_U_2(bp));
+               ND_PRINT(" block %u", GET_BE_U_2(bp));
                break;
 
        case TFTP_ERROR:
                /* Print error code string */
                if (length < 2)
                        goto trunc;     /* no error code */
-               ND_TCHECK_2(bp);
                ND_PRINT(" %s", tok2str(err2str, "tftp-err-#%u \"",
-                                      EXTRACT_BE_U_2(bp)));
+                                      GET_BE_U_2(bp)));
                bp += 2;
                length -= 2;
                /* Print error message string */
                if (length == 0)
                        goto trunc;     /* no error message */
                ND_PRINT(" \"");
-               ui = fn_printztn(ndo, bp, length, ndo->ndo_snapend);
+               ui = nd_printztn(ndo, bp, length, ndo->ndo_snapend);
                ND_PRINT("\"");
                if (ui == 0)
                        goto trunc;
@@ -198,6 +196,6 @@ tftp_print(netdissect_options *ndo,
        }
        return;
 trunc:
-       ND_PRINT("%s", tstr);
+       nd_print_trunc(ndo);
        return;
 }