/* \summary: Trivial File Transfer Protocol (TFTP) printer */
-#ifdef HAVE_CONFIG_H
#include <config.h>
-#endif
#include "netdissect-stdinc.h"
-#include <string.h>
-
#include "netdissect.h"
#include "extract.h"
/* Print tftp request type */
if (length < 2)
goto trunc;
- ND_TCHECK_2(bp);
opcode = GET_BE_U_2(bp);
cp = tok2str(op2str, "tftp-#%u", opcode);
ND_PRINT(", %s", cp);
/* Print options, if any */
while (length != 0) {
- ND_TCHECK_1(bp);
if (GET_U_1(bp) != '\0')
ND_PRINT(" ");
ui = nd_printztn(ndo, bp, length, ndo->ndo_snapend);
case OACK:
/* Print options */
while (length != 0) {
- ND_TCHECK_1(bp);
if (GET_U_1(bp) != '\0')
ND_PRINT(" ");
ui = nd_printztn(ndo, bp, length, ndo->ndo_snapend);
case DATA:
if (length < 2)
goto trunc; /* no block number */
- ND_TCHECK_2(bp);
ND_PRINT(" block %u", GET_BE_U_2(bp));
break;
/* Print error code string */
if (length < 2)
goto trunc; /* no error code */
- ND_TCHECK_2(bp);
ND_PRINT(" %s", tok2str(err2str, "tftp-err-#%u \"",
GET_BE_U_2(bp)));
bp += 2;
return;
trunc:
nd_print_trunc(ndo);
- return;
}