area/
build/testing/
log/
player/
player/backup/
/***********************************
 * 	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);