/* arpa-telnet.h : reimplementation of BSD arpa/telnet.h */ /* Jon Mayo - PUBLIC DOMAIN - April 7, 2007 */ /* initial: 2007-04-07 * $Id$ */ #ifndef ARPA_TELNET_H #define ARPA_TELNET_H #define IAC '\377' #define DONT '\376' #define DO '\375' #define WONT '\374' #define WILL '\373' #define SB '\372' #define GA '\371' #define EL '\370' #define EC '\367' #define AYT '\366' #define AO '\365' #define IP '\364' #define BREAK '\363' #define DM '\362' #define NOP '\361' #define SE '\360' #define EOR '\357' #define ABORT '\356' #define SUSP '\355' #define xEOF '\354' /* this is what BSD arpa/telnet.h */ #define SYNCH '\362' /* define TELCMDS to create this table, else it will reference an external */ #ifdef TELCMDS const char *telcmds[] = { "SE", "NOP", "DM", "BREAK", "IP", "AO", "AYT", "EC", "EL", "GA", "SB", "WILL", "WONT", "DO", "DONT", "IAC", 0 }; #else extern char *telcmds[]; #endif /* macros for accessing the telcmds table */ #define TELCMD_FIRST SE #define TELCMD_LAST IAC #define TELCMD_OK(cmd) ((cmd)<=TELCMD_LAST && (cmd)>=TELCMD_FIRST) #define TELCMD(cmd) telcmds[(cmd)-TELCMD_FIRST] #define TELOPT_ECHO 1 #define TELOPT_LINEMODE 34 #ifdef TELOPTS const char *telopts[] = { "ECHO", "<2>", "<3>", "<4>", "<5>", "<6>", "<7>", "<8>", "<9>", "<10>", "<11>", "<12>", "<13>", "<14>", "<15>", "<16>", "<17>", "<18>", "<19>", "<20>", "<21>", "<22>", "<23>", "<24>", "<25>", "<26>", "<27>", "<28>", "<29>", "<30>", "<31>", "<32>", "<33>", "LINEMODE", }; #else extern const char *telopts[]; #endif #define TELOPT_FIRST TELOPT_ECHO #define TELOPT_LAST TELOPT_LINEMODE #define TELOPT_OK(opt) ((opt)<=TELOPT_LAST && (opt)>=TELOPT_FIRST) #define TELOPT(opt) telopts[(opt)-TELOPT_FIRST] /** Linemode sub-options **/ #define LM_MODE 1 #define LM_FORWARDMASK 2 #define LM_SLC 3 #define MODE_EDIT 1 #define MODE_TRAPSIG 2 #define MODE_ACK 4 #define MODE_SOFT_TAB 8 #define MODE_LIT_ECHO 16 #define MODE_MASK 31 #endif /* vim: ts=4 sts=0 noet sw=4 */