+++ /dev/null
-/*\r
- * Copyright (c) 1983, 1993\r
- * The Regents of the University of California. All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- * 3. All advertising materials mentioning features or use of this software\r
- * must display the following acknowledgement:\r
- * This product includes software developed by the University of\r
- * California, Berkeley and its contributors.\r
- * 4. Neither the name of the University nor the names of its contributors\r
- * may be used to endorse or promote products derived from this software\r
- * without specific prior written permission.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- *\r
- * @(#)telnet.h 8.2 (Berkeley) 12/15/93\r
- */\r
-\r
-#ifndef _ARPA_TELNET_H_\r
-#define _ARPA_TELNET_H_\r
-\r
-/*\r
- * Definitions for the TELNET protocol.\r
- */\r
-#define IAC 255 /* interpret as command: */\r
-#define DONT 254 /* you are not to use option */\r
-#define DO 253 /* please, you use option */\r
-#define WONT 252 /* I won't use option */\r
-#define WILL 251 /* I will use option */\r
-#define SB 250 /* interpret as subnegotiation */\r
-#define GA 249 /* you may reverse the line */\r
-#define EL 248 /* erase the current line */\r
-#define EC 247 /* erase the current character */\r
-#define AYT 246 /* are you there */\r
-#define AO 245 /* abort output--but let prog finish */\r
-#define IP 244 /* interrupt process--permanently */\r
-#define BREAK 243 /* break */\r
-#define DM 242 /* data mark--for connect. cleaning */\r
-#define NOP 241 /* nop */\r
-#define SE 240 /* end sub negotiation */\r
-#define EOR 239 /* end of record (transparent mode) */\r
-#define ABORT 238 /* Abort process */\r
-#define SUSP 237 /* Suspend process */\r
-#define xEOF 236 /* End of file: EOF is already used... */\r
-\r
-#define SYNCH 242 /* for telfunc calls */\r
-\r
-#ifdef TELCMDS\r
-char *telcmds[] = {\r
- "EOF", "SUSP", "ABORT", "EOR",\r
- "SE", "NOP", "DMARK", "BRK", "IP", "AO", "AYT", "EC",\r
- "EL", "GA", "SB", "WILL", "WONT", "DO", "DONT", "IAC",\r
- 0\r
-};\r
-#else\r
-extern char *telcmds[];\r
-#endif\r
-\r
-#define TELCMD_FIRST xEOF\r
-#define TELCMD_LAST IAC\r
-#define TELCMD_OK(x) ((unsigned int)(x) <= TELCMD_LAST && \\r
- (unsigned int)(x) >= TELCMD_FIRST)\r
-#define TELCMD(x) telcmds[(x)-TELCMD_FIRST]\r
-\r
-/* telnet options */\r
-#define TELOPT_BINARY 0 /* 8-bit data path */\r
-#define TELOPT_ECHO 1 /* echo */\r
-#define TELOPT_RCP 2 /* prepare to reconnect */\r
-#define TELOPT_SGA 3 /* suppress go ahead */\r
-#define TELOPT_NAMS 4 /* approximate message size */\r
-#define TELOPT_STATUS 5 /* give status */\r
-#define TELOPT_TM 6 /* timing mark */\r
-#define TELOPT_RCTE 7 /* remote controlled transmission and echo */\r
-#define TELOPT_NAOL 8 /* negotiate about output line width */\r
-#define TELOPT_NAOP 9 /* negotiate about output page size */\r
-#define TELOPT_NAOCRD 10 /* negotiate about CR disposition */\r
-#define TELOPT_NAOHTS 11 /* negotiate about horizontal tabstops */\r
-#define TELOPT_NAOHTD 12 /* negotiate about horizontal tab disposition */\r
-#define TELOPT_NAOFFD 13 /* negotiate about formfeed disposition */\r
-#define TELOPT_NAOVTS 14 /* negotiate about vertical tab stops */\r
-#define TELOPT_NAOVTD 15 /* negotiate about vertical tab disposition */\r
-#define TELOPT_NAOLFD 16 /* negotiate about output LF disposition */\r
-#define TELOPT_XASCII 17 /* extended ascic character set */\r
-#define TELOPT_LOGOUT 18 /* force logout */\r
-#define TELOPT_BM 19 /* byte macro */\r
-#define TELOPT_DET 20 /* data entry terminal */\r
-#define TELOPT_SUPDUP 21 /* supdup protocol */\r
-#define TELOPT_SUPDUPOUTPUT 22 /* supdup output */\r
-#define TELOPT_SNDLOC 23 /* send location */\r
-#define TELOPT_TTYPE 24 /* terminal type */\r
-#define TELOPT_EOR 25 /* end or record */\r
-#define TELOPT_TUID 26 /* TACACS user identification */\r
-#define TELOPT_OUTMRK 27 /* output marking */\r
-#define TELOPT_TTYLOC 28 /* terminal location number */\r
-#define TELOPT_3270REGIME 29 /* 3270 regime */\r
-#define TELOPT_X3PAD 30 /* X.3 PAD */\r
-#define TELOPT_NAWS 31 /* window size */\r
-#define TELOPT_TSPEED 32 /* terminal speed */\r
-#define TELOPT_LFLOW 33 /* remote flow control */\r
-#define TELOPT_LINEMODE 34 /* Linemode option */\r
-#define TELOPT_XDISPLOC 35 /* X Display Location */\r
-#define TELOPT_OLD_ENVIRON 36 /* Old - Environment variables */\r
-#define TELOPT_AUTHENTICATION 37/* Authenticate */\r
-#define TELOPT_ENCRYPT 38 /* Encryption option */\r
-#define TELOPT_NEW_ENVIRON 39 /* New - Environment variables */\r
-#define TELOPT_EXOPL 255 /* extended-options-list */\r
-\r
-\r
-#define NTELOPTS (1+TELOPT_NEW_ENVIRON)\r
-#ifdef TELOPTS\r
-char *telopts[NTELOPTS+1] = {\r
- "BINARY", "ECHO", "RCP", "SUPPRESS GO AHEAD", "NAME",\r
- "STATUS", "TIMING MARK", "RCTE", "NAOL", "NAOP",\r
- "NAOCRD", "NAOHTS", "NAOHTD", "NAOFFD", "NAOVTS",\r
- "NAOVTD", "NAOLFD", "EXTEND ASCII", "LOGOUT", "BYTE MACRO",\r
- "DATA ENTRY TERMINAL", "SUPDUP", "SUPDUP OUTPUT",\r
- "SEND LOCATION", "TERMINAL TYPE", "END OF RECORD",\r
- "TACACS UID", "OUTPUT MARKING", "TTYLOC",\r
- "3270 REGIME", "X.3 PAD", "NAWS", "TSPEED", "LFLOW",\r
- "LINEMODE", "XDISPLOC", "OLD-ENVIRON", "AUTHENTICATION",\r
- "ENCRYPT", "NEW-ENVIRON",\r
- 0\r
-};\r
-#define TELOPT_FIRST TELOPT_BINARY\r
-#define TELOPT_LAST TELOPT_NEW_ENVIRON\r
-#define TELOPT_OK(x) ((unsigned int)(x) <= TELOPT_LAST)\r
-#define TELOPT(x) telopts[(x)-TELOPT_FIRST]\r
-#endif\r
-\r
-/* sub-option qualifiers */\r
-#define TELQUAL_IS 0 /* option is... */\r
-#define TELQUAL_SEND 1 /* send option */\r
-#define TELQUAL_INFO 2 /* ENVIRON: informational version of IS */\r
-#define TELQUAL_REPLY 2 /* AUTHENTICATION: client version of IS */\r
-#define TELQUAL_NAME 3 /* AUTHENTICATION: client version of IS */\r
-\r
-#define LFLOW_OFF 0 /* Disable remote flow control */\r
-#define LFLOW_ON 1 /* Enable remote flow control */\r
-#define LFLOW_RESTART_ANY 2 /* Restart output on any char */\r
-#define LFLOW_RESTART_XON 3 /* Restart output only on XON */\r
-\r
-/*\r
- * LINEMODE suboptions\r
- */\r
-\r
-#define LM_MODE 1\r
-#define LM_FORWARDMASK 2\r
-#define LM_SLC 3\r
-\r
-#define MODE_EDIT 0x01\r
-#define MODE_TRAPSIG 0x02\r
-#define MODE_ACK 0x04\r
-#define MODE_SOFT_TAB 0x08\r
-#define MODE_LIT_ECHO 0x10\r
-\r
-#define MODE_MASK 0x1f\r
-\r
-/* Not part of protocol, but needed to simplify things... */\r
-#define MODE_FLOW 0x0100\r
-#define MODE_ECHO 0x0200\r
-#define MODE_INBIN 0x0400\r
-#define MODE_OUTBIN 0x0800\r
-#define MODE_FORCE 0x1000\r
-\r
-#define SLC_SYNCH 1\r
-#define SLC_BRK 2\r
-#define SLC_IP 3\r
-#define SLC_AO 4\r
-#define SLC_AYT 5\r
-#define SLC_EOR 6\r
-#define SLC_ABORT 7\r
-#define SLC_EOF 8\r
-#define SLC_SUSP 9\r
-#define SLC_EC 10\r
-#define SLC_EL 11\r
-#define SLC_EW 12\r
-#define SLC_RP 13\r
-#define SLC_LNEXT 14\r
-#define SLC_XON 15\r
-#define SLC_XOFF 16\r
-#define SLC_FORW1 17\r
-#define SLC_FORW2 18\r
-#define SLC_MCL 19\r
-#define SLC_MCR 20\r
-#define SLC_MCWL 21\r
-#define SLC_MCWR 22\r
-#define SLC_MCBOL 23\r
-#define SLC_MCEOL 24\r
-#define SLC_INSRT 25\r
-#define SLC_OVER 26\r
-#define SLC_ECR 27\r
-#define SLC_EWR 28\r
-#define SLC_EBOL 29\r
-#define SLC_EEOL 30\r
-\r
-#define NSLC 30\r
-\r
-/*\r
- * For backwards compatability, we define SLC_NAMES to be the\r
- * list of names if SLC_NAMES is not defined.\r
- */\r
-#define SLC_NAMELIST "0", "SYNCH", "BRK", "IP", "AO", "AYT", "EOR", \\r
- "ABORT", "EOF", "SUSP", "EC", "EL", "EW", "RP", \\r
- "LNEXT", "XON", "XOFF", "FORW1", "FORW2", \\r
- "MCL", "MCR", "MCWL", "MCWR", "MCBOL", \\r
- "MCEOL", "INSRT", "OVER", "ECR", "EWR", \\r
- "EBOL", "EEOL", \\r
- 0\r
-\r
-#ifdef SLC_NAMES\r
-char *slc_names[] = {\r
- SLC_NAMELIST\r
-};\r
-#else\r
-extern char *slc_names[];\r
-#define SLC_NAMES SLC_NAMELIST\r
-#endif\r
-\r
-#define SLC_NAME_OK(x) ((unsigned int)(x) <= NSLC)\r
-#define SLC_NAME(x) slc_names[x]\r
-\r
-#define SLC_NOSUPPORT 0\r
-#define SLC_CANTCHANGE 1\r
-#define SLC_VARIABLE 2\r
-#define SLC_DEFAULT 3\r
-#define SLC_LEVELBITS 0x03\r
-\r
-#define SLC_FUNC 0\r
-#define SLC_FLAGS 1\r
-#define SLC_VALUE 2\r
-\r
-#define SLC_ACK 0x80\r
-#define SLC_FLUSHIN 0x40\r
-#define SLC_FLUSHOUT 0x20\r
-\r
-#define OLD_ENV_VAR 1\r
-#define OLD_ENV_VALUE 0\r
-#define NEW_ENV_VAR 0\r
-#define NEW_ENV_VALUE 1\r
-#define ENV_ESC 2\r
-#define ENV_USERVAR 3\r
-\r
-/*\r
- * AUTHENTICATION suboptions\r
- */\r
-\r
-/*\r
- * Who is authenticating who ...\r
- */\r
-#define AUTH_WHO_CLIENT 0 /* Client authenticating server */\r
-#define AUTH_WHO_SERVER 1 /* Server authenticating client */\r
-#define AUTH_WHO_MASK 1\r
-\r
-/*\r
- * amount of authentication done\r
- */\r
-#define AUTH_HOW_ONE_WAY 0\r
-#define AUTH_HOW_MUTUAL 2\r
-#define AUTH_HOW_MASK 2\r
-\r
-#define AUTHTYPE_NULL 0\r
-#define AUTHTYPE_KERBEROS_V4 1\r
-#define AUTHTYPE_KERBEROS_V5 2\r
-#define AUTHTYPE_SPX 3\r
-#define AUTHTYPE_MINK 4\r
-#define AUTHTYPE_CNT 5\r
-\r
-#define AUTHTYPE_TEST 99\r
-\r
-#ifdef AUTH_NAMES\r
-char *authtype_names[] = {\r
- "NULL", "KERBEROS_V4", "KERBEROS_V5", "SPX", "MINK",\r
- 0\r
-};\r
-#else\r
-extern char *authtype_names[];\r
-#endif\r
-\r
-#define AUTHTYPE_NAME_OK(x) ((unsigned int)(x) < AUTHTYPE_CNT)\r
-#define AUTHTYPE_NAME(x) authtype_names[x]\r
-\r
-/*\r
- * ENCRYPTion suboptions\r
- */\r
-#define ENCRYPT_IS 0 /* I pick encryption type ... */\r
-#define ENCRYPT_SUPPORT 1 /* I support encryption types ... */\r
-#define ENCRYPT_REPLY 2 /* Initial setup response */\r
-#define ENCRYPT_START 3 /* Am starting to send encrypted */\r
-#define ENCRYPT_END 4 /* Am ending encrypted */\r
-#define ENCRYPT_REQSTART 5 /* Request you start encrypting */\r
-#define ENCRYPT_REQEND 6 /* Request you end encrypting */\r
-#define ENCRYPT_ENC_KEYID 7\r
-#define ENCRYPT_DEC_KEYID 8\r
-#define ENCRYPT_CNT 9\r
-\r
-#define ENCTYPE_ANY 0\r
-#define ENCTYPE_DES_CFB64 1\r
-#define ENCTYPE_DES_OFB64 2\r
-#define ENCTYPE_CNT 3\r
-\r
-#ifdef ENCRYPT_NAMES\r
-char *encrypt_names[] = {\r
- "IS", "SUPPORT", "REPLY", "START", "END",\r
- "REQUEST-START", "REQUEST-END", "ENC-KEYID", "DEC-KEYID",\r
- 0\r
-};\r
-char *enctype_names[] = {\r
- "ANY", "DES_CFB64", "DES_OFB64",\r
- 0\r
-};\r
-#else\r
-extern char *encrypt_names[];\r
-extern char *enctype_names[];\r
-#endif\r
-\r
-\r
-#define ENCRYPT_NAME_OK(x) ((unsigned int)(x) < ENCRYPT_CNT)\r
-#define ENCRYPT_NAME(x) encrypt_names[x]\r
-\r
-#define ENCTYPE_NAME_OK(x) ((unsigned int)(x) < ENCTYPE_CNT)\r
-#define ENCTYPE_NAME(x) enctype_names[x]\r
-\r
-#endif /* !_TELNET_H_ */\r