/***********************************
* Telnet.h For Lurking Fear
***********************************/
/*
* Telnet Commands
*/
#define TC_SE 240 //End of subnegotiation parameters.
#define TC_NOP 241 //No operation.
#define TC_DM 242 //The data stream portion of a Synch.
//This should always be accompanied
//by a TCP Urgent notification.
#define TC_BREAK 243 //NVT character BRK.
#define TC_IP 244 //The function IP.
#define TC_AO 245 //The function AO.
#define TC_AYT 246 //The function AYT.
#define TC_EC 247 //The function EC.
#define TC_EL 248 //The function EL.
#define TC_GA 249 //The GA signal.
#define TC_SB 250 //Indicates that what follows is
//subnegotiation of the indicated
//option.
#define TC_WILL 251 //Indicates the desire to begin
//performing, or confirmation that
//you are now performing, the
//indicated option.
#define TC_WONT 252 //Indicates the refusal to perform,
//or continue performing, the
//indicated option.
#define TC_DO 253 //Indicates the request that the
//other party perform, or
//confirmation that you are expecting
//the other party to perform, the
//indicated option.
#define TC_DONT 254 //Indicates the demand that the
//other party stop performing,
//or confirmation that you are no
//longer expecting the other party
//to perform, the indicated option.
#define IAC 255 //Data Byte 255.
/*
* Telnet Options
*/
#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_EXOPL 255 /* extended-options-list */
#define TELQUAL_IS 0 /* option is... */
#define TELQUAL_SEND 1 /* send option */
#define TELQUAL_INFO 2 /* ENVIRON: informational version of IS */
#define BSD_VAR 1
#define BSD_VALUE 0
#define RFC_VAR 0
#define RFC_VALUE 1
enum {
INACTIVE,
REQUESTED,
ACTIVE
};
/*
* Telnet Functions in telnet.c
*/
int parse_telnetcommand (DESCRIPTOR_DATA *d);
void init_telnet_optns(DESCRIPTOR_DATA *d);
void send_reply(DESCRIPTOR_DATA *d,unsigned char cmd, unsigned char option);