mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-09 17:38:00 +00:00
Minor code cleanup: I just happened to be looking at this file for
other reasons and I noticed that the list of TELOPTs is given twice and hence needs to be kept in sync. Replace with my now-standard second-order-macro approach which allows the list to be maintained in only one place. [originally from svn r8156]
This commit is contained in:
parent
6e2bd31d32
commit
c87697a00f
176
telnet.c
176
telnet.c
@ -36,60 +36,65 @@
|
||||
#define SUSP 237 /* Suspend process */
|
||||
#define xEOF 236 /* End of file: EOF is already used... */
|
||||
|
||||
#define TELOPT_BINARY 0 /* 8-bit data path */
|
||||
#define TELOPT_ECHO 1 /* echo */
|
||||
#define TELOPT_RCP 2 /* prepare to reconnect */
|
||||
#define TELOPT_SGA 3 /* suppress go ahead */
|
||||
#define TELOPT_NAMS 4 /* approximate message size */
|
||||
#define TELOPT_STATUS 5 /* give status */
|
||||
#define TELOPT_TM 6 /* timing mark */
|
||||
#define TELOPT_RCTE 7 /* remote controlled transmission and echo */
|
||||
#define TELOPT_NAOL 8 /* negotiate about output line width */
|
||||
#define TELOPT_NAOP 9 /* negotiate about output page size */
|
||||
#define TELOPT_NAOCRD 10 /* negotiate about CR disposition */
|
||||
#define TELOPT_NAOHTS 11 /* negotiate about horizontal tabstops */
|
||||
#define TELOPT_NAOHTD 12 /* negotiate about horizontal tab disposition */
|
||||
#define TELOPT_NAOFFD 13 /* negotiate about formfeed disposition */
|
||||
#define TELOPT_NAOVTS 14 /* negotiate about vertical tab stops */
|
||||
#define TELOPT_NAOVTD 15 /* negotiate about vertical tab disposition */
|
||||
#define TELOPT_NAOLFD 16 /* negotiate about output LF disposition */
|
||||
#define TELOPT_XASCII 17 /* extended ascic character set */
|
||||
#define TELOPT_LOGOUT 18 /* force logout */
|
||||
#define TELOPT_BM 19 /* byte macro */
|
||||
#define TELOPT_DET 20 /* data entry terminal */
|
||||
#define TELOPT_SUPDUP 21 /* supdup protocol */
|
||||
#define TELOPT_SUPDUPOUTPUT 22 /* supdup output */
|
||||
#define TELOPT_SNDLOC 23 /* send location */
|
||||
#define TELOPT_TTYPE 24 /* terminal type */
|
||||
#define TELOPT_EOR 25 /* end or record */
|
||||
#define TELOPT_TUID 26 /* TACACS user identification */
|
||||
#define TELOPT_OUTMRK 27 /* output marking */
|
||||
#define TELOPT_TTYLOC 28 /* terminal location number */
|
||||
#define TELOPT_3270REGIME 29 /* 3270 regime */
|
||||
#define TELOPT_X3PAD 30 /* X.3 PAD */
|
||||
#define TELOPT_NAWS 31 /* window size */
|
||||
#define TELOPT_TSPEED 32 /* terminal speed */
|
||||
#define TELOPT_LFLOW 33 /* remote flow control */
|
||||
#define TELOPT_LINEMODE 34 /* Linemode option */
|
||||
#define TELOPT_XDISPLOC 35 /* X Display Location */
|
||||
#define TELOPT_OLD_ENVIRON 36 /* Old - Environment variables */
|
||||
#define TELOPT_AUTHENTICATION 37 /* Authenticate */
|
||||
#define TELOPT_ENCRYPT 38 /* Encryption option */
|
||||
#define TELOPT_NEW_ENVIRON 39 /* New - Environment variables */
|
||||
#define TELOPT_TN3270E 40 /* TN3270 enhancements */
|
||||
#define TELOPT_XAUTH 41
|
||||
#define TELOPT_CHARSET 42 /* Character set */
|
||||
#define TELOPT_RSP 43 /* Remote serial port */
|
||||
#define TELOPT_COM_PORT_OPTION 44 /* Com port control */
|
||||
#define TELOPT_SLE 45 /* Suppress local echo */
|
||||
#define TELOPT_STARTTLS 46 /* Start TLS */
|
||||
#define TELOPT_KERMIT 47 /* Automatic Kermit file transfer */
|
||||
#define TELOPT_SEND_URL 48
|
||||
#define TELOPT_FORWARD_X 49
|
||||
#define TELOPT_PRAGMA_LOGON 138
|
||||
#define TELOPT_SSPI_LOGON 139
|
||||
#define TELOPT_PRAGMA_HEARTBEAT 140
|
||||
#define TELOPT_EXOPL 255 /* extended-options-list */
|
||||
#define TELOPTS(X) \
|
||||
X(BINARY, 0) /* 8-bit data path */ \
|
||||
X(ECHO, 1) /* echo */ \
|
||||
X(RCP, 2) /* prepare to reconnect */ \
|
||||
X(SGA, 3) /* suppress go ahead */ \
|
||||
X(NAMS, 4) /* approximate message size */ \
|
||||
X(STATUS, 5) /* give status */ \
|
||||
X(TM, 6) /* timing mark */ \
|
||||
X(RCTE, 7) /* remote controlled transmission and echo */ \
|
||||
X(NAOL, 8) /* negotiate about output line width */ \
|
||||
X(NAOP, 9) /* negotiate about output page size */ \
|
||||
X(NAOCRD, 10) /* negotiate about CR disposition */ \
|
||||
X(NAOHTS, 11) /* negotiate about horizontal tabstops */ \
|
||||
X(NAOHTD, 12) /* negotiate about horizontal tab disposition */ \
|
||||
X(NAOFFD, 13) /* negotiate about formfeed disposition */ \
|
||||
X(NAOVTS, 14) /* negotiate about vertical tab stops */ \
|
||||
X(NAOVTD, 15) /* negotiate about vertical tab disposition */ \
|
||||
X(NAOLFD, 16) /* negotiate about output LF disposition */ \
|
||||
X(XASCII, 17) /* extended ascic character set */ \
|
||||
X(LOGOUT, 18) /* force logout */ \
|
||||
X(BM, 19) /* byte macro */ \
|
||||
X(DET, 20) /* data entry terminal */ \
|
||||
X(SUPDUP, 21) /* supdup protocol */ \
|
||||
X(SUPDUPOUTPUT, 22) /* supdup output */ \
|
||||
X(SNDLOC, 23) /* send location */ \
|
||||
X(TTYPE, 24) /* terminal type */ \
|
||||
X(EOR, 25) /* end or record */ \
|
||||
X(TUID, 26) /* TACACS user identification */ \
|
||||
X(OUTMRK, 27) /* output marking */ \
|
||||
X(TTYLOC, 28) /* terminal location number */ \
|
||||
X(3270REGIME, 29) /* 3270 regime */ \
|
||||
X(X3PAD, 30) /* X.3 PAD */ \
|
||||
X(NAWS, 31) /* window size */ \
|
||||
X(TSPEED, 32) /* terminal speed */ \
|
||||
X(LFLOW, 33) /* remote flow control */ \
|
||||
X(LINEMODE, 34) /* Linemode option */ \
|
||||
X(XDISPLOC, 35) /* X Display Location */ \
|
||||
X(OLD_ENVIRON, 36) /* Old - Environment variables */ \
|
||||
X(AUTHENTICATION, 37) /* Authenticate */ \
|
||||
X(ENCRYPT, 38) /* Encryption option */ \
|
||||
X(NEW_ENVIRON, 39) /* New - Environment variables */ \
|
||||
X(TN3270E, 40) /* TN3270 enhancements */ \
|
||||
X(XAUTH, 41) \
|
||||
X(CHARSET, 42) /* Character set */ \
|
||||
X(RSP, 43) /* Remote serial port */ \
|
||||
X(COM_PORT_OPTION, 44) /* Com port control */ \
|
||||
X(SLE, 45) /* Suppress local echo */ \
|
||||
X(STARTTLS, 46) /* Start TLS */ \
|
||||
X(KERMIT, 47) /* Automatic Kermit file transfer */ \
|
||||
X(SEND_URL, 48) \
|
||||
X(FORWARD_X, 49) \
|
||||
X(PRAGMA_LOGON, 138) \
|
||||
X(SSPI_LOGON, 139) \
|
||||
X(PRAGMA_HEARTBEAT, 140) \
|
||||
X(EXOPL, 255) /* extended-options-list */
|
||||
|
||||
#define telnet_enum(x,y) TELOPT_##x = y,
|
||||
enum { TELOPTS(telnet_enum) dummy=0 };
|
||||
#undef telnet_enum
|
||||
|
||||
#define TELQUAL_IS 0 /* option is... */
|
||||
#define TELQUAL_SEND 1 /* send option */
|
||||
@ -109,62 +114,13 @@
|
||||
|
||||
static char *telopt(int opt)
|
||||
{
|
||||
#define i(x) if (opt == TELOPT_ ## x) return #x;
|
||||
i(BINARY);
|
||||
i(ECHO);
|
||||
i(RCP);
|
||||
i(SGA);
|
||||
i(NAMS);
|
||||
i(STATUS);
|
||||
i(TM);
|
||||
i(RCTE);
|
||||
i(NAOL);
|
||||
i(NAOP);
|
||||
i(NAOCRD);
|
||||
i(NAOHTS);
|
||||
i(NAOHTD);
|
||||
i(NAOFFD);
|
||||
i(NAOVTS);
|
||||
i(NAOVTD);
|
||||
i(NAOLFD);
|
||||
i(XASCII);
|
||||
i(LOGOUT);
|
||||
i(BM);
|
||||
i(DET);
|
||||
i(SUPDUP);
|
||||
i(SUPDUPOUTPUT);
|
||||
i(SNDLOC);
|
||||
i(TTYPE);
|
||||
i(EOR);
|
||||
i(TUID);
|
||||
i(OUTMRK);
|
||||
i(TTYLOC);
|
||||
i(X3PAD);
|
||||
i(NAWS);
|
||||
i(TSPEED);
|
||||
i(LFLOW);
|
||||
i(LINEMODE);
|
||||
i(XDISPLOC);
|
||||
i(OLD_ENVIRON);
|
||||
i(AUTHENTICATION);
|
||||
i(ENCRYPT);
|
||||
i(NEW_ENVIRON);
|
||||
i(TN3270E);
|
||||
i(XAUTH);
|
||||
i(CHARSET);
|
||||
i(RSP);
|
||||
i(COM_PORT_OPTION);
|
||||
i(SLE);
|
||||
i(STARTTLS);
|
||||
i(KERMIT);
|
||||
i(SEND_URL);
|
||||
i(FORWARD_X);
|
||||
i(PRAGMA_LOGON);
|
||||
i(SSPI_LOGON);
|
||||
i(PRAGMA_HEARTBEAT);
|
||||
i(EXOPL);
|
||||
#undef i
|
||||
return "<unknown>";
|
||||
#define telnet_str(x,y) case TELOPT_##x: return #x;
|
||||
switch (opt) {
|
||||
TELOPTS(telnet_str)
|
||||
default:
|
||||
return "<unknown>";
|
||||
}
|
||||
#undef telnet_str
|
||||
}
|
||||
|
||||
static void telnet_size(void *handle, int width, int height);
|
||||
|
Loading…
Reference in New Issue
Block a user