#include "extract.h"
-#define TELCMDS
-#define TELOPTS
-
/* NetBSD: telnet.h,v 1.9 2001/06/11 01:50:50 wiz Exp */
/*
#define SYNCH 242 /* for telfunc calls */
-#ifdef TELCMDS
static const char *telcmds[] = {
"EOF", "SUSP", "ABORT", "EOR",
"SE", "NOP", "DMARK", "BRK", "IP", "AO", "AYT", "EC",
"EL", "GA", "SB", "WILL", "WONT", "DO", "DONT", "IAC", 0,
};
-#else
-extern char *telcmds[];
-#endif
#define TELCMD_FIRST xEOF
#define TELCMD_LAST IAC
#define NTELOPTS (1+TELOPT_NEW_ENVIRON)
-#ifdef TELOPTS
static const char *telopts[NTELOPTS+1] = {
"BINARY", "ECHO", "RCP", "SUPPRESS GO AHEAD", "NAME",
"STATUS", "TIMING MARK", "RCTE", "NAOL", "NAOP",
#define TELOPT_LAST TELOPT_NEW_ENVIRON
#define TELOPT_OK(x) ((unsigned int)(x) <= TELOPT_LAST)
#define TELOPT(x) telopts[(x)-TELOPT_FIRST]
-#endif
/* sub-option qualifiers */
#define TELQUAL_IS 0 /* option is... */
do { \
if (length < 1) \
goto pktend; \
- ND_TCHECK_1(sp); \
c = GET_U_1(sp); \
sp++; \
length--; \
/* IAC SB .... IAC SE */
p = sp;
while (length > (u_int)(p + 1 - sp)) {
- ND_TCHECK_2(p);
if (GET_U_1(p) == IAC && GET_U_1(p + 1) == SE)
break;
p++;
}
- ND_TCHECK_1(p);
if (GET_U_1(p) != IAC)
goto pktend;
done:
return (int)(sp - osp);
-trunc:
- nd_print_trunc(ndo);
pktend:
return -1;
#undef FETCH
ndo->ndo_protocol = "telnet";
osp = sp;
- ND_TCHECK_1(sp);
while (length > 0 && GET_U_1(sp) == IAC) {
/*
* Parse the Telnet command without printing it,
sp += l;
length -= l;
- ND_TCHECK_1(sp);
}
if (!first) {
if (ndo->ndo_Xflag && 2 < ndo->ndo_vflag)
else
ND_PRINT("]");
}
- return;
-trunc:
- nd_print_trunc(ndo);
}