#include <arpa/telnet.h>

arpa/telnet.h

181 macros · 5 variables

macroIAC

Definitions for the TELNET protocol.
#define IAC 255
interpret as command:

macroDONT

#define DONT 254
you are not to use option

macroDO

#define DO 253
please, you use option

macroWONT

#define WONT 252
I won't use option

macroWILL

#define WILL 251
I will use option

macroSB

#define SB 250
interpret as subnegotiation

macroGA

#define GA 249
you may reverse the line

macroEL

#define EL 248
erase the current line

macroEC

#define EC 247
erase the current character

macroAYT

#define AYT 246
are you there

macroAO

#define AO 245
abort output--but let prog finish

macroIP

#define IP 244
interrupt process--permanently

macroBREAK

#define BREAK 243
break

macroDM

#define DM 242
data mark--for connect. cleaning

macroNOP

#define NOP 241
nop

macroSE

#define SE 240
end sub negotiation

macroEOR

#define EOR 239
end of record (transparent mode)

macroABORT

#define ABORT 238
Abort process

macroSUSP

#define SUSP 237
Suspend process

macroxEOF

#define xEOF 236
End of file: EOF is already used...

macroSYNCH

#define SYNCH 242
for telfunc calls

variabletelcmds

extern char *telcmds[]

macroTELCMD_FIRST

#define TELCMD_FIRST xEOF

macroTELCMD_LAST

#define TELCMD_LAST IAC

macroTELCMD_OK

#define TELCMD_OK(x) ((unsigned int)(x) <= TELCMD_LAST &&
			 (unsigned int)(x) >= TELCMD_FIRST)

macroTELCMD

#define TELCMD(x) telcmds[(x)-TELCMD_FIRST]

macroTELOPT_BINARY

telnet options
#define TELOPT_BINARY 0
8-bit data path

macroTELOPT_ECHO

#define TELOPT_ECHO 1
echo

macroTELOPT_RCP

#define TELOPT_RCP 2
prepare to reconnect

macroTELOPT_SGA

#define TELOPT_SGA 3
suppress go ahead

macroTELOPT_NAMS

#define TELOPT_NAMS 4
approximate message size

macroTELOPT_STATUS

#define TELOPT_STATUS 5
give status

macroTELOPT_TM

#define TELOPT_TM 6
timing mark

macroTELOPT_RCTE

#define TELOPT_RCTE 7
remote controlled transmission and echo

macroTELOPT_NAOL

#define TELOPT_NAOL 8
negotiate about output line width

macroTELOPT_NAOP

#define TELOPT_NAOP 9
negotiate about output page size

macroTELOPT_NAOCRD

#define TELOPT_NAOCRD 10
negotiate about CR disposition

macroTELOPT_NAOHTS

#define TELOPT_NAOHTS 11
negotiate about horizontal tabstops

macroTELOPT_NAOHTD

#define TELOPT_NAOHTD 12
negotiate about horizontal tab disposition

macroTELOPT_NAOFFD

#define TELOPT_NAOFFD 13
negotiate about formfeed disposition

macroTELOPT_NAOVTS

#define TELOPT_NAOVTS 14
negotiate about vertical tab stops

macroTELOPT_NAOVTD

#define TELOPT_NAOVTD 15
negotiate about vertical tab disposition

macroTELOPT_NAOLFD

#define TELOPT_NAOLFD 16
negotiate about output LF disposition

macroTELOPT_XASCII

#define TELOPT_XASCII 17
extended ascic character set

macroTELOPT_LOGOUT

#define TELOPT_LOGOUT 18
force logout

macroTELOPT_BM

#define TELOPT_BM 19
byte macro

macroTELOPT_DET

#define TELOPT_DET 20
data entry terminal

macroTELOPT_SUPDUP

#define TELOPT_SUPDUP 21
supdup protocol

macroTELOPT_SUPDUPOUTPUT

#define TELOPT_SUPDUPOUTPUT 22
supdup output

macroTELOPT_SNDLOC

#define TELOPT_SNDLOC 23
send location

macroTELOPT_TTYPE

#define TELOPT_TTYPE 24
terminal type

macroTELOPT_EOR

#define TELOPT_EOR 25
end or record

macroTELOPT_TUID

#define TELOPT_TUID 26
TACACS user identification

macroTELOPT_OUTMRK

#define TELOPT_OUTMRK 27
output marking

macroTELOPT_TTYLOC

#define TELOPT_TTYLOC 28
terminal location number

macroTELOPT_3270REGIME

#define TELOPT_3270REGIME 29
3270 regime

macroTELOPT_X3PAD

#define TELOPT_X3PAD 30
X.3 PAD

macroTELOPT_NAWS

#define TELOPT_NAWS 31
window size

macroTELOPT_TSPEED

#define TELOPT_TSPEED 32
terminal speed

macroTELOPT_LFLOW

#define TELOPT_LFLOW 33
remote flow control

macroTELOPT_LINEMODE

#define TELOPT_LINEMODE 34
Linemode option

macroTELOPT_XDISPLOC

#define TELOPT_XDISPLOC 35
X Display Location

macroTELOPT_OLD_ENVIRON

#define TELOPT_OLD_ENVIRON 36
Old - Environment variables

macroTELOPT_AUTHENTICATION

#define TELOPT_AUTHENTICATION 37
Authenticate

macroTELOPT_ENCRYPT

#define TELOPT_ENCRYPT 38
Encryption option

macroTELOPT_NEW_ENVIRON

#define TELOPT_NEW_ENVIRON 39
New - Environment variables

macroTELOPT_TN3270E

#define TELOPT_TN3270E 40
RFC2355 - TN3270 Enhancements

macroTELOPT_CHARSET

#define TELOPT_CHARSET 42
RFC2066 - Charset

macroTELOPT_COMPORT

#define TELOPT_COMPORT 44
RFC2217 - Com Port Control

macroTELOPT_KERMIT

#define TELOPT_KERMIT 47
RFC2840 - Kermit

macroTELOPT_EXOPL

#define TELOPT_EXOPL 255
extended-options-list

macroCOMPORT_SET_BAUDRATE

#define COMPORT_SET_BAUDRATE 1
RFC2217 - Com Port Set Baud Rate

macroNTELOPTS

#define NTELOPTS (1+TELOPT_KERMIT)

macroTELQUAL_IS

sub-option qualifiers
#define TELQUAL_IS 0
option is...

macroTELQUAL_SEND

#define TELQUAL_SEND 1
send option

macroTELQUAL_INFO

#define TELQUAL_INFO 2
ENVIRON: informational version of IS

macroTELQUAL_REPLY

#define TELQUAL_REPLY 2
AUTHENTICATION: client version of IS

macroTELQUAL_NAME

#define TELQUAL_NAME 3
AUTHENTICATION: client version of IS

macroLFLOW_OFF

#define LFLOW_OFF 0
Disable remote flow control

macroLFLOW_ON

#define LFLOW_ON 1
Enable remote flow control

macroLFLOW_RESTART_ANY

#define LFLOW_RESTART_ANY 2
Restart output on any char

macroLFLOW_RESTART_XON

#define LFLOW_RESTART_XON 3
Restart output only on XON

macroLM_MODE

#define LM_MODE 1

macroLM_FORWARDMASK

#define LM_FORWARDMASK 2

macroLM_SLC

#define LM_SLC 3

macroMODE_EDIT

#define MODE_EDIT 0x01

macroMODE_TRAPSIG

#define MODE_TRAPSIG 0x02

macroMODE_ACK

#define MODE_ACK 0x04

macroMODE_SOFT_TAB

#define MODE_SOFT_TAB 0x08

macroMODE_LIT_ECHO

#define MODE_LIT_ECHO 0x10

macroMODE_MASK

#define MODE_MASK 0x1f

macroMODE_FLOW

Not part of protocol, but needed to simplify things...
#define MODE_FLOW 0x0100

macroMODE_ECHO

#define MODE_ECHO 0x0200

macroMODE_INBIN

#define MODE_INBIN 0x0400

macroMODE_OUTBIN

#define MODE_OUTBIN 0x0800

macroMODE_FORCE

#define MODE_FORCE 0x1000

macroSLC_SYNCH

#define SLC_SYNCH 1

macroSLC_BRK

#define SLC_BRK 2

macroSLC_IP

#define SLC_IP 3

macroSLC_AO

#define SLC_AO 4

macroSLC_AYT

#define SLC_AYT 5

macroSLC_EOR

#define SLC_EOR 6

macroSLC_ABORT

#define SLC_ABORT 7

macroSLC_EOF

#define SLC_EOF 8

macroSLC_SUSP

#define SLC_SUSP 9

macroSLC_EC

#define SLC_EC 10

macroSLC_EL

#define SLC_EL 11

macroSLC_EW

#define SLC_EW 12

macroSLC_RP

#define SLC_RP 13

macroSLC_LNEXT

#define SLC_LNEXT 14

macroSLC_XON

#define SLC_XON 15

macroSLC_XOFF

#define SLC_XOFF 16

macroSLC_FORW1

#define SLC_FORW1 17

macroSLC_FORW2

#define SLC_FORW2 18

macroSLC_MCL

#define SLC_MCL 19

macroSLC_MCR

#define SLC_MCR 20

macroSLC_MCWL

#define SLC_MCWL 21

macroSLC_MCWR

#define SLC_MCWR 22

macroSLC_MCBOL

#define SLC_MCBOL 23

macroSLC_MCEOL

#define SLC_MCEOL 24

macroSLC_INSRT

#define SLC_INSRT 25

macroSLC_OVER

#define SLC_OVER 26

macroSLC_ECR

#define SLC_ECR 27

macroSLC_EWR

#define SLC_EWR 28

macroSLC_EBOL

#define SLC_EBOL 29

macroSLC_EEOL

#define SLC_EEOL 30

macroNSLC

#define NSLC 30

macroSLC_NAMELIST

For backwards compatibility, we define SLC_NAMES to be the list of names if SLC_NAMES is not defined.
#define SLC_NAMELIST "0", "SYNCH", "BRK", "IP", "AO", "AYT", "EOR",
			"ABORT", "EOF", "SUSP", "EC", "EL", "EW", "RP",
			"LNEXT", "XON", "XOFF", "FORW1", "FORW2",
			"MCL", "MCR", "MCWL", "MCWR", "MCBOL",
			"MCEOL", "INSRT", "OVER", "ECR", "EWR",
			"EBOL", "EEOL",
			0

variableslc_names

extern char *slc_names[]

macroSLC_NAMES

#define SLC_NAMES SLC_NAMELIST

macroSLC_NAME_OK

#define SLC_NAME_OK(x) ((unsigned int)(x) <= NSLC)

macroSLC_NAME

#define SLC_NAME(x) slc_names[x]

macroSLC_NOSUPPORT

#define SLC_NOSUPPORT 0

macroSLC_CANTCHANGE

#define SLC_CANTCHANGE 1

macroSLC_VARIABLE

#define SLC_VARIABLE 2

macroSLC_DEFAULT

#define SLC_DEFAULT 3

macroSLC_LEVELBITS

#define SLC_LEVELBITS 0x03

macroSLC_FUNC

#define SLC_FUNC 0

macroSLC_FLAGS

#define SLC_FLAGS 1

macroSLC_VALUE

#define SLC_VALUE 2

macroSLC_ACK

#define SLC_ACK 0x80

macroSLC_FLUSHIN

#define SLC_FLUSHIN 0x40

macroSLC_FLUSHOUT

#define SLC_FLUSHOUT 0x20

macroOLD_ENV_VAR

#define OLD_ENV_VAR 1

macroOLD_ENV_VALUE

#define OLD_ENV_VALUE 0

macroNEW_ENV_VAR

#define NEW_ENV_VAR 0

macroNEW_ENV_VALUE

#define NEW_ENV_VALUE 1

macroENV_ESC

#define ENV_ESC 2

macroENV_USERVAR

#define ENV_USERVAR 3

macroAUTH_WHO_CLIENT

Who is authenticating who ...
#define AUTH_WHO_CLIENT 0
Client authenticating server

macroAUTH_WHO_SERVER

#define AUTH_WHO_SERVER 1
Server authenticating client

macroAUTH_WHO_MASK

#define AUTH_WHO_MASK 1

macroAUTH_HOW_ONE_WAY

amount of authentication done
#define AUTH_HOW_ONE_WAY 0

macroAUTH_HOW_MUTUAL

#define AUTH_HOW_MUTUAL 2

macroAUTH_HOW_MASK

#define AUTH_HOW_MASK 2

macroAUTHTYPE_NULL

#define AUTHTYPE_NULL 0

macroAUTHTYPE_KERBEROS_V4

#define AUTHTYPE_KERBEROS_V4 1

macroAUTHTYPE_KERBEROS_V5

#define AUTHTYPE_KERBEROS_V5 2

macroAUTHTYPE_SPX

#define AUTHTYPE_SPX 3

macroAUTHTYPE_MINK

#define AUTHTYPE_MINK 4

macroAUTHTYPE_SRA

#define AUTHTYPE_SRA 6

macroAUTHTYPE_CNT

#define AUTHTYPE_CNT 7

macroAUTHTYPE_TEST

#define AUTHTYPE_TEST 99

variableauthtype_names

extern char *authtype_names[]

macroAUTHTYPE_NAME_OK

#define AUTHTYPE_NAME_OK(x) ((unsigned int)(x) < AUTHTYPE_CNT)

macroAUTHTYPE_NAME

#define AUTHTYPE_NAME(x) authtype_names[x]

macroENCRYPT_IS

ENCRYPTion suboptions
#define ENCRYPT_IS 0
I pick encryption type ...

macroENCRYPT_SUPPORT

#define ENCRYPT_SUPPORT 1
I support encryption types ...

macroENCRYPT_REPLY

#define ENCRYPT_REPLY 2
Initial setup response

macroENCRYPT_START

#define ENCRYPT_START 3
Am starting to send encrypted

macroENCRYPT_END

#define ENCRYPT_END 4
Am ending encrypted

macroENCRYPT_REQSTART

#define ENCRYPT_REQSTART 5
Request you start encrypting

macroENCRYPT_REQEND

#define ENCRYPT_REQEND 6
Request you end encrypting

macroENCRYPT_ENC_KEYID

#define ENCRYPT_ENC_KEYID 7

macroENCRYPT_DEC_KEYID

#define ENCRYPT_DEC_KEYID 8

macroENCRYPT_CNT

#define ENCRYPT_CNT 9

macroENCTYPE_ANY

#define ENCTYPE_ANY 0

macroENCTYPE_DES_CFB64

#define ENCTYPE_DES_CFB64 1

macroENCTYPE_DES_OFB64

#define ENCTYPE_DES_OFB64 2

macroENCTYPE_CNT

#define ENCTYPE_CNT 3

variableencrypt_names

extern char *encrypt_names[]

variableenctype_names

extern char *enctype_names[]

macroENCRYPT_NAME_OK

#define ENCRYPT_NAME_OK(x) ((unsigned int)(x) < ENCRYPT_CNT)

macroENCRYPT_NAME

#define ENCRYPT_NAME(x) encrypt_names[x]

macroENCTYPE_NAME_OK

#define ENCTYPE_NAME_OK(x) ((unsigned int)(x) < ENCTYPE_CNT)

macroENCTYPE_NAME

#define ENCTYPE_NAME(x) enctype_names[x]