153f17a9db278d33517d9888dd77848f554522a38JP Abgrall/* @(#) $Header: /tcpdump/master/tcpdump/telnet.h,v 1.5 2007-08-29 02:31:44 mcr Exp $ (LBL) */ 22949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 353f17a9db278d33517d9888dd77848f554522a38JP Abgrall/* NetBSD: telnet.h,v 1.9 2001/06/11 01:50:50 wiz Exp */ 42949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 52949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* 62949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Copyright (c) 1983, 1993 72949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * The Regents of the University of California. All rights reserved. 82949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * 92949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Redistribution and use in source and binary forms, with or without 102949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * modification, are permitted provided that the following conditions 112949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * are met: 122949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * 1. Redistributions of source code must retain the above copyright 132949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * notice, this list of conditions and the following disclaimer. 142949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright 152949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * notice, this list of conditions and the following disclaimer in the 162949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * documentation and/or other materials provided with the distribution. 172949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * 3. All advertising materials mentioning features or use of this software 182949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * must display the following acknowledgement: 192949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * This product includes software developed by the University of 202949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * California, Berkeley and its contributors. 212949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * 4. Neither the name of the University nor the names of its contributors 222949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * may be used to endorse or promote products derived from this software 232949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * without specific prior written permission. 242949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * 252949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 262949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 272949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 282949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 292949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 302949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 312949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 322949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 332949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 342949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 352949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * SUCH DAMAGE. 362949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * 372949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * @(#)telnet.h 8.2 (Berkeley) 12/15/93 382949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project */ 392949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 402949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef _ARPA_TELNET_H_ 412949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define _ARPA_TELNET_H_ 422949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 432949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* 442949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Definitions for the TELNET protocol. 452949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project */ 462949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define IAC 255 /* interpret as command: */ 472949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define DONT 254 /* you are not to use option */ 482949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define DO 253 /* please, you use option */ 492949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define WONT 252 /* I won't use option */ 502949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define WILL 251 /* I will use option */ 512949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SB 250 /* interpret as subnegotiation */ 522949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define GA 249 /* you may reverse the line */ 532949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define EL 248 /* erase the current line */ 542949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define EC 247 /* erase the current character */ 552949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define AYT 246 /* are you there */ 562949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define AO 245 /* abort output--but let prog finish */ 572949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define IP 244 /* interrupt process--permanently */ 582949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define BREAK 243 /* break */ 592949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define DM 242 /* data mark--for connect. cleaning */ 602949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define NOP 241 /* nop */ 612949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SE 240 /* end sub negotiation */ 622949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define EOR 239 /* end of record (transparent mode) */ 632949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ABORT 238 /* Abort process */ 642949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SUSP 237 /* Suspend process */ 652949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define xEOF 236 /* End of file: EOF is already used... */ 662949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 672949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SYNCH 242 /* for telfunc calls */ 682949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 692949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifdef TELCMDS 702949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectconst char *telcmds[] = { 712949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project "EOF", "SUSP", "ABORT", "EOR", 722949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project "SE", "NOP", "DMARK", "BRK", "IP", "AO", "AYT", "EC", 732949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project "EL", "GA", "SB", "WILL", "WONT", "DO", "DONT", "IAC", 0, 742949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project}; 752949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#else 762949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern char *telcmds[]; 772949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif 782949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 792949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELCMD_FIRST xEOF 802949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELCMD_LAST IAC 812949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELCMD_OK(x) ((unsigned int)(x) <= TELCMD_LAST && \ 822949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project (unsigned int)(x) >= TELCMD_FIRST) 832949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELCMD(x) telcmds[(x)-TELCMD_FIRST] 842949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 852949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* telnet options */ 862949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_BINARY 0 /* 8-bit data path */ 872949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_ECHO 1 /* echo */ 882949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_RCP 2 /* prepare to reconnect */ 892949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_SGA 3 /* suppress go ahead */ 902949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_NAMS 4 /* approximate message size */ 912949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_STATUS 5 /* give status */ 922949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_TM 6 /* timing mark */ 932949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_RCTE 7 /* remote controlled transmission and echo */ 942949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_NAOL 8 /* negotiate about output line width */ 952949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_NAOP 9 /* negotiate about output page size */ 962949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_NAOCRD 10 /* negotiate about CR disposition */ 972949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_NAOHTS 11 /* negotiate about horizontal tabstops */ 982949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_NAOHTD 12 /* negotiate about horizontal tab disposition */ 992949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_NAOFFD 13 /* negotiate about formfeed disposition */ 1002949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_NAOVTS 14 /* negotiate about vertical tab stops */ 1012949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_NAOVTD 15 /* negotiate about vertical tab disposition */ 1022949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_NAOLFD 16 /* negotiate about output LF disposition */ 1032949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_XASCII 17 /* extended ascic character set */ 1042949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_LOGOUT 18 /* force logout */ 1052949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_BM 19 /* byte macro */ 1062949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_DET 20 /* data entry terminal */ 1072949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_SUPDUP 21 /* supdup protocol */ 1082949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_SUPDUPOUTPUT 22 /* supdup output */ 1092949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_SNDLOC 23 /* send location */ 1102949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_TTYPE 24 /* terminal type */ 1112949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_EOR 25 /* end or record */ 1122949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_TUID 26 /* TACACS user identification */ 1132949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_OUTMRK 27 /* output marking */ 1142949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_TTYLOC 28 /* terminal location number */ 1152949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_3270REGIME 29 /* 3270 regime */ 1162949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_X3PAD 30 /* X.3 PAD */ 1172949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_NAWS 31 /* window size */ 1182949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_TSPEED 32 /* terminal speed */ 1192949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_LFLOW 33 /* remote flow control */ 1202949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_LINEMODE 34 /* Linemode option */ 1212949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_XDISPLOC 35 /* X Display Location */ 1222949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_OLD_ENVIRON 36 /* Old - Environment variables */ 1232949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_AUTHENTICATION 37/* Authenticate */ 1242949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_ENCRYPT 38 /* Encryption option */ 1252949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_NEW_ENVIRON 39 /* New - Environment variables */ 1262949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_EXOPL 255 /* extended-options-list */ 1272949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 1282949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 1292949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define NTELOPTS (1+TELOPT_NEW_ENVIRON) 1302949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifdef TELOPTS 1312949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectconst char *telopts[NTELOPTS+1] = { 1322949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project "BINARY", "ECHO", "RCP", "SUPPRESS GO AHEAD", "NAME", 1332949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project "STATUS", "TIMING MARK", "RCTE", "NAOL", "NAOP", 1342949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project "NAOCRD", "NAOHTS", "NAOHTD", "NAOFFD", "NAOVTS", 1352949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project "NAOVTD", "NAOLFD", "EXTEND ASCII", "LOGOUT", "BYTE MACRO", 1362949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project "DATA ENTRY TERMINAL", "SUPDUP", "SUPDUP OUTPUT", 1372949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project "SEND LOCATION", "TERMINAL TYPE", "END OF RECORD", 1382949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project "TACACS UID", "OUTPUT MARKING", "TTYLOC", 1392949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project "3270 REGIME", "X.3 PAD", "NAWS", "TSPEED", "LFLOW", 1402949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project "LINEMODE", "XDISPLOC", "OLD-ENVIRON", "AUTHENTICATION", 1412949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project "ENCRYPT", "NEW-ENVIRON", 1422949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 0, 1432949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project}; 1442949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_FIRST TELOPT_BINARY 1452949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_LAST TELOPT_NEW_ENVIRON 1462949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT_OK(x) ((unsigned int)(x) <= TELOPT_LAST) 1472949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELOPT(x) telopts[(x)-TELOPT_FIRST] 1482949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif 1492949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 1502949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* sub-option qualifiers */ 1512949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELQUAL_IS 0 /* option is... */ 1522949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELQUAL_SEND 1 /* send option */ 1532949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELQUAL_INFO 2 /* ENVIRON: informational version of IS */ 1542949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELQUAL_REPLY 2 /* AUTHENTICATION: client version of IS */ 1552949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TELQUAL_NAME 3 /* AUTHENTICATION: client version of IS */ 1562949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 1572949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define LFLOW_OFF 0 /* Disable remote flow control */ 1582949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define LFLOW_ON 1 /* Enable remote flow control */ 1592949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define LFLOW_RESTART_ANY 2 /* Restart output on any char */ 1602949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define LFLOW_RESTART_XON 3 /* Restart output only on XON */ 1612949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 1622949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* 1632949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * LINEMODE suboptions 1642949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project */ 1652949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 1662949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define LM_MODE 1 1672949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define LM_FORWARDMASK 2 1682949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define LM_SLC 3 1692949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 1702949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define MODE_EDIT 0x01 1712949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define MODE_TRAPSIG 0x02 1722949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define MODE_ACK 0x04 1732949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define MODE_SOFT_TAB 0x08 1742949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define MODE_LIT_ECHO 0x10 1752949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 1762949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define MODE_MASK 0x1f 1772949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 1782949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* Not part of protocol, but needed to simplify things... */ 1792949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define MODE_FLOW 0x0100 1802949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define MODE_ECHO 0x0200 1812949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define MODE_INBIN 0x0400 1822949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define MODE_OUTBIN 0x0800 1832949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define MODE_FORCE 0x1000 1842949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 1852949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_SYNCH 1 1862949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_BRK 2 1872949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_IP 3 1882949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_AO 4 1892949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_AYT 5 1902949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_EOR 6 1912949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_ABORT 7 1922949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_EOF 8 1932949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_SUSP 9 1942949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_EC 10 1952949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_EL 11 1962949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_EW 12 1972949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_RP 13 1982949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_LNEXT 14 1992949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_XON 15 2002949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_XOFF 16 2012949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_FORW1 17 2022949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_FORW2 18 2032949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_MCL 19 2042949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_MCR 20 2052949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_MCWL 21 2062949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_MCWR 22 2072949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_MCBOL 23 2082949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_MCEOL 24 2092949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_INSRT 25 2102949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_OVER 26 2112949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_ECR 27 2122949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_EWR 28 2132949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_EBOL 29 2142949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_EEOL 30 2152949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 2162949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define NSLC 30 2172949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 2182949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* 2192949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * For backwards compatibility, we define SLC_NAMES to be the 2202949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * list of names if SLC_NAMES is not defined. 2212949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project */ 2222949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_NAMELIST "0", "SYNCH", "BRK", "IP", "AO", "AYT", "EOR", \ 2232949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project "ABORT", "EOF", "SUSP", "EC", "EL", "EW", "RP", \ 2242949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project "LNEXT", "XON", "XOFF", "FORW1", "FORW2", \ 2252949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project "MCL", "MCR", "MCWL", "MCWR", "MCBOL", \ 2262949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project "MCEOL", "INSRT", "OVER", "ECR", "EWR", \ 2272949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project "EBOL", "EEOL", \ 2282949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 0, 2292949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 2302949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifdef SLC_NAMES 2312949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectconst char *slc_names[] = { 2322949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project SLC_NAMELIST 2332949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project}; 2342949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#else 2352949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern char *slc_names[]; 2362949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_NAMES SLC_NAMELIST 2372949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif 2382949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 2392949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_NAME_OK(x) ((unsigned int)(x) <= NSLC) 2402949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_NAME(x) slc_names[x] 2412949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 2422949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_NOSUPPORT 0 2432949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_CANTCHANGE 1 2442949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_VARIABLE 2 2452949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_DEFAULT 3 2462949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_LEVELBITS 0x03 2472949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 2482949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_FUNC 0 2492949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_FLAGS 1 2502949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_VALUE 2 2512949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 2522949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_ACK 0x80 2532949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_FLUSHIN 0x40 2542949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define SLC_FLUSHOUT 0x20 2552949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 2562949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define OLD_ENV_VAR 1 2572949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define OLD_ENV_VALUE 0 2582949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define NEW_ENV_VAR 0 2592949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define NEW_ENV_VALUE 1 2602949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ENV_ESC 2 2612949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ENV_USERVAR 3 2622949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 2632949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* 2642949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * AUTHENTICATION suboptions 2652949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project */ 2662949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 2672949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* 2682949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Who is authenticating who ... 2692949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project */ 2702949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define AUTH_WHO_CLIENT 0 /* Client authenticating server */ 2712949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define AUTH_WHO_SERVER 1 /* Server authenticating client */ 2722949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define AUTH_WHO_MASK 1 2732949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 2742949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* 2752949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * amount of authentication done 2762949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project */ 2772949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define AUTH_HOW_ONE_WAY 0 2782949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define AUTH_HOW_MUTUAL 2 2792949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define AUTH_HOW_MASK 2 2802949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 2812949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* 2822949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * should we be encrypting? (not yet formally standardized) 2832949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project */ 2842949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define AUTH_ENCRYPT_OFF 0 2852949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define AUTH_ENCRYPT_ON 4 2862949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define AUTH_ENCRYPT_MASK 4 2872949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 2882949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define AUTHTYPE_NULL 0 2892949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define AUTHTYPE_KERBEROS_V4 1 2902949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define AUTHTYPE_KERBEROS_V5 2 2912949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define AUTHTYPE_SPX 3 2922949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define AUTHTYPE_MINK 4 2932949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define AUTHTYPE_CNT 5 2942949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 2952949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define AUTHTYPE_TEST 99 2962949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 2972949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifdef AUTH_NAMES 2982949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectconst char *authtype_names[] = { 2992949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project "NULL", "KERBEROS_V4", "KERBEROS_V5", "SPX", "MINK", 0, 3002949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project}; 3012949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#else 3022949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern char *authtype_names[]; 3032949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif 3042949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 3052949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define AUTHTYPE_NAME_OK(x) ((unsigned int)(x) < AUTHTYPE_CNT) 3062949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define AUTHTYPE_NAME(x) authtype_names[x] 3072949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 3082949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* 3092949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * ENCRYPTion suboptions 3102949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project */ 3112949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ENCRYPT_IS 0 /* I pick encryption type ... */ 3122949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ENCRYPT_SUPPORT 1 /* I support encryption types ... */ 3132949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ENCRYPT_REPLY 2 /* Initial setup response */ 3142949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ENCRYPT_START 3 /* Am starting to send encrypted */ 3152949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ENCRYPT_END 4 /* Am ending encrypted */ 3162949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ENCRYPT_REQSTART 5 /* Request you start encrypting */ 3172949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ENCRYPT_REQEND 6 /* Request you send encrypting */ 3182949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ENCRYPT_ENC_KEYID 7 3192949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ENCRYPT_DEC_KEYID 8 3202949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ENCRYPT_CNT 9 3212949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 3222949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ENCTYPE_ANY 0 3232949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ENCTYPE_DES_CFB64 1 3242949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ENCTYPE_DES_OFB64 2 3252949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ENCTYPE_CNT 3 3262949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 3272949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifdef ENCRYPT_NAMES 3282949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectconst char *encrypt_names[] = { 3292949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project "IS", "SUPPORT", "REPLY", "START", "END", 3302949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project "REQUEST-START", "REQUEST-END", "ENC-KEYID", "DEC-KEYID", 3312949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 0, 3322949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project}; 3332949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectconst char *enctype_names[] = { 3342949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project "ANY", "DES_CFB64", "DES_OFB64", 0, 3352949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project}; 3362949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#else 3372949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern char *encrypt_names[]; 3382949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern char *enctype_names[]; 3392949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif 3402949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 3412949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 3422949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ENCRYPT_NAME_OK(x) ((unsigned int)(x) < ENCRYPT_CNT) 3432949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ENCRYPT_NAME(x) encrypt_names[x] 3442949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 3452949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ENCTYPE_NAME_OK(x) ((unsigned int)(x) < ENCTYPE_CNT) 3462949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ENCTYPE_NAME(x) enctype_names[x] 3472949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 3482949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif /* _ARPA_TELNET_H_ */ 349