xref: /aosp_15_r20/bionic/libc/include/arpa/telnet.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker /*
2*8d67ca89SAndroid Build Coastguard Worker  * Copyright (c) 1983, 1993
3*8d67ca89SAndroid Build Coastguard Worker  *	The Regents of the University of California.  All rights reserved.
4*8d67ca89SAndroid Build Coastguard Worker  *
5*8d67ca89SAndroid Build Coastguard Worker  * Redistribution and use in source and binary forms, with or without
6*8d67ca89SAndroid Build Coastguard Worker  * modification, are permitted provided that the following conditions
7*8d67ca89SAndroid Build Coastguard Worker  * are met:
8*8d67ca89SAndroid Build Coastguard Worker  * 1. Redistributions of source code must retain the above copyright
9*8d67ca89SAndroid Build Coastguard Worker  *    notice, this list of conditions and the following disclaimer.
10*8d67ca89SAndroid Build Coastguard Worker  * 2. Redistributions in binary form must reproduce the above copyright
11*8d67ca89SAndroid Build Coastguard Worker  *    notice, this list of conditions and the following disclaimer in the
12*8d67ca89SAndroid Build Coastguard Worker  *    documentation and/or other materials provided with the distribution.
13*8d67ca89SAndroid Build Coastguard Worker  * 3. Neither the name of the University nor the names of its contributors
14*8d67ca89SAndroid Build Coastguard Worker  *    may be used to endorse or promote products derived from this software
15*8d67ca89SAndroid Build Coastguard Worker  *    without specific prior written permission.
16*8d67ca89SAndroid Build Coastguard Worker  *
17*8d67ca89SAndroid Build Coastguard Worker  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
18*8d67ca89SAndroid Build Coastguard Worker  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19*8d67ca89SAndroid Build Coastguard Worker  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20*8d67ca89SAndroid Build Coastguard Worker  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
21*8d67ca89SAndroid Build Coastguard Worker  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22*8d67ca89SAndroid Build Coastguard Worker  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23*8d67ca89SAndroid Build Coastguard Worker  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24*8d67ca89SAndroid Build Coastguard Worker  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25*8d67ca89SAndroid Build Coastguard Worker  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26*8d67ca89SAndroid Build Coastguard Worker  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27*8d67ca89SAndroid Build Coastguard Worker  * SUCH DAMAGE.
28*8d67ca89SAndroid Build Coastguard Worker  *
29*8d67ca89SAndroid Build Coastguard Worker  *	@(#)telnet.h	8.2 (Berkeley) 12/15/93
30*8d67ca89SAndroid Build Coastguard Worker  * $FreeBSD$
31*8d67ca89SAndroid Build Coastguard Worker  */
32*8d67ca89SAndroid Build Coastguard Worker 
33*8d67ca89SAndroid Build Coastguard Worker #ifndef _ARPA_TELNET_H_
34*8d67ca89SAndroid Build Coastguard Worker #define	_ARPA_TELNET_H_
35*8d67ca89SAndroid Build Coastguard Worker 
36*8d67ca89SAndroid Build Coastguard Worker #include <sys/cdefs.h>
37*8d67ca89SAndroid Build Coastguard Worker 
38*8d67ca89SAndroid Build Coastguard Worker /*
39*8d67ca89SAndroid Build Coastguard Worker  * Definitions for the TELNET protocol.
40*8d67ca89SAndroid Build Coastguard Worker  */
41*8d67ca89SAndroid Build Coastguard Worker #define	IAC	255		/* interpret as command: */
42*8d67ca89SAndroid Build Coastguard Worker #define	DONT	254		/* you are not to use option */
43*8d67ca89SAndroid Build Coastguard Worker #define	DO	253		/* please, you use option */
44*8d67ca89SAndroid Build Coastguard Worker #define	WONT	252		/* I won't use option */
45*8d67ca89SAndroid Build Coastguard Worker #define	WILL	251		/* I will use option */
46*8d67ca89SAndroid Build Coastguard Worker #define	SB	250		/* interpret as subnegotiation */
47*8d67ca89SAndroid Build Coastguard Worker #define	GA	249		/* you may reverse the line */
48*8d67ca89SAndroid Build Coastguard Worker #define	EL	248		/* erase the current line */
49*8d67ca89SAndroid Build Coastguard Worker #define	EC	247		/* erase the current character */
50*8d67ca89SAndroid Build Coastguard Worker #define	AYT	246		/* are you there */
51*8d67ca89SAndroid Build Coastguard Worker #define	AO	245		/* abort output--but let prog finish */
52*8d67ca89SAndroid Build Coastguard Worker #define	IP	244		/* interrupt process--permanently */
53*8d67ca89SAndroid Build Coastguard Worker #define	BREAK	243		/* break */
54*8d67ca89SAndroid Build Coastguard Worker #define	DM	242		/* data mark--for connect. cleaning */
55*8d67ca89SAndroid Build Coastguard Worker #define	NOP	241		/* nop */
56*8d67ca89SAndroid Build Coastguard Worker #define	SE	240		/* end sub negotiation */
57*8d67ca89SAndroid Build Coastguard Worker #define EOR     239             /* end of record (transparent mode) */
58*8d67ca89SAndroid Build Coastguard Worker #define	ABORT	238		/* Abort process */
59*8d67ca89SAndroid Build Coastguard Worker #define	SUSP	237		/* Suspend process */
60*8d67ca89SAndroid Build Coastguard Worker #define	xEOF	236		/* End of file: EOF is already used... */
61*8d67ca89SAndroid Build Coastguard Worker 
62*8d67ca89SAndroid Build Coastguard Worker #define SYNCH	242		/* for telfunc calls */
63*8d67ca89SAndroid Build Coastguard Worker 
64*8d67ca89SAndroid Build Coastguard Worker #ifdef TELCMDS
65*8d67ca89SAndroid Build Coastguard Worker const char *telcmds[] = {
66*8d67ca89SAndroid Build Coastguard Worker 	"EOF", "SUSP", "ABORT", "EOR",
67*8d67ca89SAndroid Build Coastguard Worker 	"SE", "NOP", "DMARK", "BRK", "IP", "AO", "AYT", "EC",
68*8d67ca89SAndroid Build Coastguard Worker 	"EL", "GA", "SB", "WILL", "WONT", "DO", "DONT", "IAC",
69*8d67ca89SAndroid Build Coastguard Worker 	0
70*8d67ca89SAndroid Build Coastguard Worker };
71*8d67ca89SAndroid Build Coastguard Worker #else
72*8d67ca89SAndroid Build Coastguard Worker extern char *telcmds[];
73*8d67ca89SAndroid Build Coastguard Worker #endif
74*8d67ca89SAndroid Build Coastguard Worker 
75*8d67ca89SAndroid Build Coastguard Worker #define	TELCMD_FIRST	xEOF
76*8d67ca89SAndroid Build Coastguard Worker #define	TELCMD_LAST	IAC
77*8d67ca89SAndroid Build Coastguard Worker #define	TELCMD_OK(x)	((unsigned int)(x) <= TELCMD_LAST && \
78*8d67ca89SAndroid Build Coastguard Worker 			 (unsigned int)(x) >= TELCMD_FIRST)
79*8d67ca89SAndroid Build Coastguard Worker #define	TELCMD(x)	telcmds[(x)-TELCMD_FIRST]
80*8d67ca89SAndroid Build Coastguard Worker 
81*8d67ca89SAndroid Build Coastguard Worker /* telnet options */
82*8d67ca89SAndroid Build Coastguard Worker #define TELOPT_BINARY	0	/* 8-bit data path */
83*8d67ca89SAndroid Build Coastguard Worker #define TELOPT_ECHO	1	/* echo */
84*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_RCP	2	/* prepare to reconnect */
85*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_SGA	3	/* suppress go ahead */
86*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_NAMS	4	/* approximate message size */
87*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_STATUS	5	/* give status */
88*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_TM	6	/* timing mark */
89*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_RCTE	7	/* remote controlled transmission and echo */
90*8d67ca89SAndroid Build Coastguard Worker #define TELOPT_NAOL 	8	/* negotiate about output line width */
91*8d67ca89SAndroid Build Coastguard Worker #define TELOPT_NAOP 	9	/* negotiate about output page size */
92*8d67ca89SAndroid Build Coastguard Worker #define TELOPT_NAOCRD	10	/* negotiate about CR disposition */
93*8d67ca89SAndroid Build Coastguard Worker #define TELOPT_NAOHTS	11	/* negotiate about horizontal tabstops */
94*8d67ca89SAndroid Build Coastguard Worker #define TELOPT_NAOHTD	12	/* negotiate about horizontal tab disposition */
95*8d67ca89SAndroid Build Coastguard Worker #define TELOPT_NAOFFD	13	/* negotiate about formfeed disposition */
96*8d67ca89SAndroid Build Coastguard Worker #define TELOPT_NAOVTS	14	/* negotiate about vertical tab stops */
97*8d67ca89SAndroid Build Coastguard Worker #define TELOPT_NAOVTD	15	/* negotiate about vertical tab disposition */
98*8d67ca89SAndroid Build Coastguard Worker #define TELOPT_NAOLFD	16	/* negotiate about output LF disposition */
99*8d67ca89SAndroid Build Coastguard Worker #define TELOPT_XASCII	17	/* extended ascic character set */
100*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_LOGOUT	18	/* force logout */
101*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_BM	19	/* byte macro */
102*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_DET	20	/* data entry terminal */
103*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_SUPDUP	21	/* supdup protocol */
104*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_SUPDUPOUTPUT 22	/* supdup output */
105*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_SNDLOC	23	/* send location */
106*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_TTYPE	24	/* terminal type */
107*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_EOR	25	/* end or record */
108*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_TUID	26	/* TACACS user identification */
109*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_OUTMRK	27	/* output marking */
110*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_TTYLOC	28	/* terminal location number */
111*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_3270REGIME 29	/* 3270 regime */
112*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_X3PAD	30	/* X.3 PAD */
113*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_NAWS	31	/* window size */
114*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_TSPEED	32	/* terminal speed */
115*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_LFLOW	33	/* remote flow control */
116*8d67ca89SAndroid Build Coastguard Worker #define TELOPT_LINEMODE	34	/* Linemode option */
117*8d67ca89SAndroid Build Coastguard Worker #define TELOPT_XDISPLOC	35	/* X Display Location */
118*8d67ca89SAndroid Build Coastguard Worker #define TELOPT_OLD_ENVIRON 36	/* Old - Environment variables */
119*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_AUTHENTICATION 37/* Authenticate */
120*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_ENCRYPT	38	/* Encryption option */
121*8d67ca89SAndroid Build Coastguard Worker #define TELOPT_NEW_ENVIRON 39	/* New - Environment variables */
122*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_TN3270E	40	/* RFC2355 - TN3270 Enhancements */
123*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_CHARSET	42	/* RFC2066 - Charset */
124*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_COMPORT	44	/* RFC2217 - Com Port Control */
125*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_KERMIT	47	/* RFC2840 - Kermit */
126*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_EXOPL	255	/* extended-options-list */
127*8d67ca89SAndroid Build Coastguard Worker 
128*8d67ca89SAndroid Build Coastguard Worker 
129*8d67ca89SAndroid Build Coastguard Worker #define	NTELOPTS	(1+TELOPT_KERMIT)
130*8d67ca89SAndroid Build Coastguard Worker #ifdef TELOPTS
131*8d67ca89SAndroid Build Coastguard Worker const char *telopts[NTELOPTS+1] = {
132*8d67ca89SAndroid Build Coastguard Worker 	"BINARY", "ECHO", "RCP", "SUPPRESS GO AHEAD", "NAME",
133*8d67ca89SAndroid Build Coastguard Worker 	"STATUS", "TIMING MARK", "RCTE", "NAOL", "NAOP",
134*8d67ca89SAndroid Build Coastguard Worker 	"NAOCRD", "NAOHTS", "NAOHTD", "NAOFFD", "NAOVTS",
135*8d67ca89SAndroid Build Coastguard Worker 	"NAOVTD", "NAOLFD", "EXTEND ASCII", "LOGOUT", "BYTE MACRO",
136*8d67ca89SAndroid Build Coastguard Worker 	"DATA ENTRY TERMINAL", "SUPDUP", "SUPDUP OUTPUT",
137*8d67ca89SAndroid Build Coastguard Worker 	"SEND LOCATION", "TERMINAL TYPE", "END OF RECORD",
138*8d67ca89SAndroid Build Coastguard Worker 	"TACACS UID", "OUTPUT MARKING", "TTYLOC",
139*8d67ca89SAndroid Build Coastguard Worker 	"3270 REGIME", "X.3 PAD", "NAWS", "TSPEED", "LFLOW",
140*8d67ca89SAndroid Build Coastguard Worker 	"LINEMODE", "XDISPLOC", "OLD-ENVIRON", "AUTHENTICATION",
141*8d67ca89SAndroid Build Coastguard Worker 	"ENCRYPT", "NEW-ENVIRON", "TN3270E", "XAUTH", "CHARSET",
142*8d67ca89SAndroid Build Coastguard Worker 	"RSP", "COM-PORT", "SLE", "STARTTLS", "KERMIT",
143*8d67ca89SAndroid Build Coastguard Worker 	0
144*8d67ca89SAndroid Build Coastguard Worker };
145*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_FIRST	TELOPT_BINARY
146*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_LAST	TELOPT_KERMIT
147*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT_OK(x)	((unsigned int)(x) <= TELOPT_LAST)
148*8d67ca89SAndroid Build Coastguard Worker #define	TELOPT(x)	telopts[(x)-TELOPT_FIRST]
149*8d67ca89SAndroid Build Coastguard Worker #endif
150*8d67ca89SAndroid Build Coastguard Worker 
151*8d67ca89SAndroid Build Coastguard Worker /* sub-option qualifiers */
152*8d67ca89SAndroid Build Coastguard Worker #define	TELQUAL_IS	0	/* option is... */
153*8d67ca89SAndroid Build Coastguard Worker #define	TELQUAL_SEND	1	/* send option */
154*8d67ca89SAndroid Build Coastguard Worker #define	TELQUAL_INFO	2	/* ENVIRON: informational version of IS */
155*8d67ca89SAndroid Build Coastguard Worker #define	TELQUAL_REPLY	2	/* AUTHENTICATION: client version of IS */
156*8d67ca89SAndroid Build Coastguard Worker #define	TELQUAL_NAME	3	/* AUTHENTICATION: client version of IS */
157*8d67ca89SAndroid Build Coastguard Worker 
158*8d67ca89SAndroid Build Coastguard Worker #define	LFLOW_OFF		0	/* Disable remote flow control */
159*8d67ca89SAndroid Build Coastguard Worker #define	LFLOW_ON		1	/* Enable remote flow control */
160*8d67ca89SAndroid Build Coastguard Worker #define	LFLOW_RESTART_ANY	2	/* Restart output on any char */
161*8d67ca89SAndroid Build Coastguard Worker #define	LFLOW_RESTART_XON	3	/* Restart output only on XON */
162*8d67ca89SAndroid Build Coastguard Worker 
163*8d67ca89SAndroid Build Coastguard Worker /*
164*8d67ca89SAndroid Build Coastguard Worker  * LINEMODE suboptions
165*8d67ca89SAndroid Build Coastguard Worker  */
166*8d67ca89SAndroid Build Coastguard Worker 
167*8d67ca89SAndroid Build Coastguard Worker #define	LM_MODE		1
168*8d67ca89SAndroid Build Coastguard Worker #define	LM_FORWARDMASK	2
169*8d67ca89SAndroid Build Coastguard Worker #define	LM_SLC		3
170*8d67ca89SAndroid Build Coastguard Worker 
171*8d67ca89SAndroid Build Coastguard Worker #define	MODE_EDIT	0x01
172*8d67ca89SAndroid Build Coastguard Worker #define	MODE_TRAPSIG	0x02
173*8d67ca89SAndroid Build Coastguard Worker #define	MODE_ACK	0x04
174*8d67ca89SAndroid Build Coastguard Worker #define MODE_SOFT_TAB	0x08
175*8d67ca89SAndroid Build Coastguard Worker #define MODE_LIT_ECHO	0x10
176*8d67ca89SAndroid Build Coastguard Worker 
177*8d67ca89SAndroid Build Coastguard Worker #define	MODE_MASK	0x1f
178*8d67ca89SAndroid Build Coastguard Worker 
179*8d67ca89SAndroid Build Coastguard Worker /* Not part of protocol, but needed to simplify things... */
180*8d67ca89SAndroid Build Coastguard Worker #define MODE_FLOW		0x0100
181*8d67ca89SAndroid Build Coastguard Worker #define MODE_ECHO		0x0200
182*8d67ca89SAndroid Build Coastguard Worker #define MODE_INBIN		0x0400
183*8d67ca89SAndroid Build Coastguard Worker #define MODE_OUTBIN		0x0800
184*8d67ca89SAndroid Build Coastguard Worker #define MODE_FORCE		0x1000
185*8d67ca89SAndroid Build Coastguard Worker 
186*8d67ca89SAndroid Build Coastguard Worker #define	SLC_SYNCH	1
187*8d67ca89SAndroid Build Coastguard Worker #define	SLC_BRK		2
188*8d67ca89SAndroid Build Coastguard Worker #define	SLC_IP		3
189*8d67ca89SAndroid Build Coastguard Worker #define	SLC_AO		4
190*8d67ca89SAndroid Build Coastguard Worker #define	SLC_AYT		5
191*8d67ca89SAndroid Build Coastguard Worker #define	SLC_EOR		6
192*8d67ca89SAndroid Build Coastguard Worker #define	SLC_ABORT	7
193*8d67ca89SAndroid Build Coastguard Worker #define	SLC_EOF		8
194*8d67ca89SAndroid Build Coastguard Worker #define	SLC_SUSP	9
195*8d67ca89SAndroid Build Coastguard Worker #define	SLC_EC		10
196*8d67ca89SAndroid Build Coastguard Worker #define	SLC_EL		11
197*8d67ca89SAndroid Build Coastguard Worker #define	SLC_EW		12
198*8d67ca89SAndroid Build Coastguard Worker #define	SLC_RP		13
199*8d67ca89SAndroid Build Coastguard Worker #define	SLC_LNEXT	14
200*8d67ca89SAndroid Build Coastguard Worker #define	SLC_XON		15
201*8d67ca89SAndroid Build Coastguard Worker #define	SLC_XOFF	16
202*8d67ca89SAndroid Build Coastguard Worker #define	SLC_FORW1	17
203*8d67ca89SAndroid Build Coastguard Worker #define	SLC_FORW2	18
204*8d67ca89SAndroid Build Coastguard Worker #define SLC_MCL         19
205*8d67ca89SAndroid Build Coastguard Worker #define SLC_MCR         20
206*8d67ca89SAndroid Build Coastguard Worker #define SLC_MCWL        21
207*8d67ca89SAndroid Build Coastguard Worker #define SLC_MCWR        22
208*8d67ca89SAndroid Build Coastguard Worker #define SLC_MCBOL       23
209*8d67ca89SAndroid Build Coastguard Worker #define SLC_MCEOL       24
210*8d67ca89SAndroid Build Coastguard Worker #define SLC_INSRT       25
211*8d67ca89SAndroid Build Coastguard Worker #define SLC_OVER        26
212*8d67ca89SAndroid Build Coastguard Worker #define SLC_ECR         27
213*8d67ca89SAndroid Build Coastguard Worker #define SLC_EWR         28
214*8d67ca89SAndroid Build Coastguard Worker #define SLC_EBOL        29
215*8d67ca89SAndroid Build Coastguard Worker #define SLC_EEOL        30
216*8d67ca89SAndroid Build Coastguard Worker 
217*8d67ca89SAndroid Build Coastguard Worker #define	NSLC		30
218*8d67ca89SAndroid Build Coastguard Worker 
219*8d67ca89SAndroid Build Coastguard Worker /*
220*8d67ca89SAndroid Build Coastguard Worker  * For backwards compatibility, we define SLC_NAMES to be the
221*8d67ca89SAndroid Build Coastguard Worker  * list of names if SLC_NAMES is not defined.
222*8d67ca89SAndroid Build Coastguard Worker  */
223*8d67ca89SAndroid Build Coastguard Worker #define	SLC_NAMELIST	"0", "SYNCH", "BRK", "IP", "AO", "AYT", "EOR",	\
224*8d67ca89SAndroid Build Coastguard Worker 			"ABORT", "EOF", "SUSP", "EC", "EL", "EW", "RP",	\
225*8d67ca89SAndroid Build Coastguard Worker 			"LNEXT", "XON", "XOFF", "FORW1", "FORW2",	\
226*8d67ca89SAndroid Build Coastguard Worker 			"MCL", "MCR", "MCWL", "MCWR", "MCBOL",		\
227*8d67ca89SAndroid Build Coastguard Worker 			"MCEOL", "INSRT", "OVER", "ECR", "EWR",		\
228*8d67ca89SAndroid Build Coastguard Worker 			"EBOL", "EEOL",					\
229*8d67ca89SAndroid Build Coastguard Worker 			0
230*8d67ca89SAndroid Build Coastguard Worker 
231*8d67ca89SAndroid Build Coastguard Worker #ifdef	SLC_NAMES
232*8d67ca89SAndroid Build Coastguard Worker const char *slc_names[] = {
233*8d67ca89SAndroid Build Coastguard Worker 	SLC_NAMELIST
234*8d67ca89SAndroid Build Coastguard Worker };
235*8d67ca89SAndroid Build Coastguard Worker #else
236*8d67ca89SAndroid Build Coastguard Worker extern char *slc_names[];
237*8d67ca89SAndroid Build Coastguard Worker #define	SLC_NAMES SLC_NAMELIST
238*8d67ca89SAndroid Build Coastguard Worker #endif
239*8d67ca89SAndroid Build Coastguard Worker 
240*8d67ca89SAndroid Build Coastguard Worker #define	SLC_NAME_OK(x)	((unsigned int)(x) <= NSLC)
241*8d67ca89SAndroid Build Coastguard Worker #define SLC_NAME(x)	slc_names[x]
242*8d67ca89SAndroid Build Coastguard Worker 
243*8d67ca89SAndroid Build Coastguard Worker #define	SLC_NOSUPPORT	0
244*8d67ca89SAndroid Build Coastguard Worker #define	SLC_CANTCHANGE	1
245*8d67ca89SAndroid Build Coastguard Worker #define	SLC_VARIABLE	2
246*8d67ca89SAndroid Build Coastguard Worker #define	SLC_DEFAULT	3
247*8d67ca89SAndroid Build Coastguard Worker #define	SLC_LEVELBITS	0x03
248*8d67ca89SAndroid Build Coastguard Worker 
249*8d67ca89SAndroid Build Coastguard Worker #define	SLC_FUNC	0
250*8d67ca89SAndroid Build Coastguard Worker #define	SLC_FLAGS	1
251*8d67ca89SAndroid Build Coastguard Worker #define	SLC_VALUE	2
252*8d67ca89SAndroid Build Coastguard Worker 
253*8d67ca89SAndroid Build Coastguard Worker #define	SLC_ACK		0x80
254*8d67ca89SAndroid Build Coastguard Worker #define	SLC_FLUSHIN	0x40
255*8d67ca89SAndroid Build Coastguard Worker #define	SLC_FLUSHOUT	0x20
256*8d67ca89SAndroid Build Coastguard Worker 
257*8d67ca89SAndroid Build Coastguard Worker #define	OLD_ENV_VAR	1
258*8d67ca89SAndroid Build Coastguard Worker #define	OLD_ENV_VALUE	0
259*8d67ca89SAndroid Build Coastguard Worker #define	NEW_ENV_VAR	0
260*8d67ca89SAndroid Build Coastguard Worker #define	NEW_ENV_VALUE	1
261*8d67ca89SAndroid Build Coastguard Worker #define	ENV_ESC		2
262*8d67ca89SAndroid Build Coastguard Worker #define ENV_USERVAR	3
263*8d67ca89SAndroid Build Coastguard Worker 
264*8d67ca89SAndroid Build Coastguard Worker /*
265*8d67ca89SAndroid Build Coastguard Worker  * AUTHENTICATION suboptions
266*8d67ca89SAndroid Build Coastguard Worker  */
267*8d67ca89SAndroid Build Coastguard Worker 
268*8d67ca89SAndroid Build Coastguard Worker /*
269*8d67ca89SAndroid Build Coastguard Worker  * Who is authenticating who ...
270*8d67ca89SAndroid Build Coastguard Worker  */
271*8d67ca89SAndroid Build Coastguard Worker #define	AUTH_WHO_CLIENT		0	/* Client authenticating server */
272*8d67ca89SAndroid Build Coastguard Worker #define	AUTH_WHO_SERVER		1	/* Server authenticating client */
273*8d67ca89SAndroid Build Coastguard Worker #define	AUTH_WHO_MASK		1
274*8d67ca89SAndroid Build Coastguard Worker 
275*8d67ca89SAndroid Build Coastguard Worker /*
276*8d67ca89SAndroid Build Coastguard Worker  * amount of authentication done
277*8d67ca89SAndroid Build Coastguard Worker  */
278*8d67ca89SAndroid Build Coastguard Worker #define	AUTH_HOW_ONE_WAY	0
279*8d67ca89SAndroid Build Coastguard Worker #define	AUTH_HOW_MUTUAL		2
280*8d67ca89SAndroid Build Coastguard Worker #define	AUTH_HOW_MASK		2
281*8d67ca89SAndroid Build Coastguard Worker 
282*8d67ca89SAndroid Build Coastguard Worker #define	AUTHTYPE_NULL		0
283*8d67ca89SAndroid Build Coastguard Worker #define	AUTHTYPE_KERBEROS_V4	1
284*8d67ca89SAndroid Build Coastguard Worker #define	AUTHTYPE_KERBEROS_V5	2
285*8d67ca89SAndroid Build Coastguard Worker #define	AUTHTYPE_SPX		3
286*8d67ca89SAndroid Build Coastguard Worker #define	AUTHTYPE_MINK		4
287*8d67ca89SAndroid Build Coastguard Worker #define	AUTHTYPE_SRA		6
288*8d67ca89SAndroid Build Coastguard Worker #define	AUTHTYPE_CNT		7
289*8d67ca89SAndroid Build Coastguard Worker 
290*8d67ca89SAndroid Build Coastguard Worker #define	AUTHTYPE_TEST		99
291*8d67ca89SAndroid Build Coastguard Worker 
292*8d67ca89SAndroid Build Coastguard Worker #ifdef	AUTH_NAMES
293*8d67ca89SAndroid Build Coastguard Worker const char *authtype_names[] = {
294*8d67ca89SAndroid Build Coastguard Worker 	"NULL", "KERBEROS_V4", "KERBEROS_V5", "SPX", "MINK", NULL, "SRA",
295*8d67ca89SAndroid Build Coastguard Worker 	0
296*8d67ca89SAndroid Build Coastguard Worker };
297*8d67ca89SAndroid Build Coastguard Worker #else
298*8d67ca89SAndroid Build Coastguard Worker extern char *authtype_names[];
299*8d67ca89SAndroid Build Coastguard Worker #endif
300*8d67ca89SAndroid Build Coastguard Worker 
301*8d67ca89SAndroid Build Coastguard Worker #define	AUTHTYPE_NAME_OK(x)	((unsigned int)(x) < AUTHTYPE_CNT)
302*8d67ca89SAndroid Build Coastguard Worker #define	AUTHTYPE_NAME(x)	authtype_names[x]
303*8d67ca89SAndroid Build Coastguard Worker 
304*8d67ca89SAndroid Build Coastguard Worker /*
305*8d67ca89SAndroid Build Coastguard Worker  * ENCRYPTion suboptions
306*8d67ca89SAndroid Build Coastguard Worker  */
307*8d67ca89SAndroid Build Coastguard Worker #define	ENCRYPT_IS		0	/* I pick encryption type ... */
308*8d67ca89SAndroid Build Coastguard Worker #define	ENCRYPT_SUPPORT		1	/* I support encryption types ... */
309*8d67ca89SAndroid Build Coastguard Worker #define	ENCRYPT_REPLY		2	/* Initial setup response */
310*8d67ca89SAndroid Build Coastguard Worker #define	ENCRYPT_START		3	/* Am starting to send encrypted */
311*8d67ca89SAndroid Build Coastguard Worker #define	ENCRYPT_END		4	/* Am ending encrypted */
312*8d67ca89SAndroid Build Coastguard Worker #define	ENCRYPT_REQSTART	5	/* Request you start encrypting */
313*8d67ca89SAndroid Build Coastguard Worker #define	ENCRYPT_REQEND		6	/* Request you end encrypting */
314*8d67ca89SAndroid Build Coastguard Worker #define	ENCRYPT_ENC_KEYID	7
315*8d67ca89SAndroid Build Coastguard Worker #define	ENCRYPT_DEC_KEYID	8
316*8d67ca89SAndroid Build Coastguard Worker #define	ENCRYPT_CNT		9
317*8d67ca89SAndroid Build Coastguard Worker 
318*8d67ca89SAndroid Build Coastguard Worker #define	ENCTYPE_ANY		0
319*8d67ca89SAndroid Build Coastguard Worker #define	ENCTYPE_DES_CFB64	1
320*8d67ca89SAndroid Build Coastguard Worker #define	ENCTYPE_DES_OFB64	2
321*8d67ca89SAndroid Build Coastguard Worker #define	ENCTYPE_CNT		3
322*8d67ca89SAndroid Build Coastguard Worker 
323*8d67ca89SAndroid Build Coastguard Worker #ifdef	ENCRYPT_NAMES
324*8d67ca89SAndroid Build Coastguard Worker const char *encrypt_names[] = {
325*8d67ca89SAndroid Build Coastguard Worker 	"IS", "SUPPORT", "REPLY", "START", "END",
326*8d67ca89SAndroid Build Coastguard Worker 	"REQUEST-START", "REQUEST-END", "ENC-KEYID", "DEC-KEYID",
327*8d67ca89SAndroid Build Coastguard Worker 	0
328*8d67ca89SAndroid Build Coastguard Worker };
329*8d67ca89SAndroid Build Coastguard Worker const char *enctype_names[] = {
330*8d67ca89SAndroid Build Coastguard Worker 	"ANY", "DES_CFB64",  "DES_OFB64",
331*8d67ca89SAndroid Build Coastguard Worker 	0
332*8d67ca89SAndroid Build Coastguard Worker };
333*8d67ca89SAndroid Build Coastguard Worker #else
334*8d67ca89SAndroid Build Coastguard Worker extern char *encrypt_names[];
335*8d67ca89SAndroid Build Coastguard Worker extern char *enctype_names[];
336*8d67ca89SAndroid Build Coastguard Worker #endif
337*8d67ca89SAndroid Build Coastguard Worker 
338*8d67ca89SAndroid Build Coastguard Worker 
339*8d67ca89SAndroid Build Coastguard Worker #define	ENCRYPT_NAME_OK(x)	((unsigned int)(x) < ENCRYPT_CNT)
340*8d67ca89SAndroid Build Coastguard Worker #define	ENCRYPT_NAME(x)		encrypt_names[x]
341*8d67ca89SAndroid Build Coastguard Worker 
342*8d67ca89SAndroid Build Coastguard Worker #define	ENCTYPE_NAME_OK(x)	((unsigned int)(x) < ENCTYPE_CNT)
343*8d67ca89SAndroid Build Coastguard Worker #define	ENCTYPE_NAME(x)		enctype_names[x]
344*8d67ca89SAndroid Build Coastguard Worker 
345*8d67ca89SAndroid Build Coastguard Worker #endif /* !_TELNET_H_ */
346