82 lines
3.5 KiB
C
82 lines
3.5 KiB
C
#ifndef _OPENTCP_H
|
|
#define _OPENTCP_H
|
|
|
|
int opentcp(char *);
|
|
void closetcp(void);
|
|
|
|
#define PUTCHAR(x) tty_putc(x)
|
|
|
|
#define ClearArray(x) memset((char *)x, 0, sizeof x)
|
|
|
|
#define NETADD(c) { PUTCHAR(c); }
|
|
#define NET2ADD(c1,c2) { NETADD(c1); NETADD(c2); }
|
|
|
|
#define MY_STATE_WILL 0x01
|
|
#define MY_WANT_STATE_WILL 0x02
|
|
#define MY_STATE_DO 0x04
|
|
#define MY_WANT_STATE_DO 0x08
|
|
#define my_state_is_do(opt) (telnet_options[opt]&MY_STATE_DO)
|
|
#define my_state_is_will(opt) (telnet_options[opt]&MY_STATE_WILL)
|
|
#define my_want_state_is_do(opt) (telnet_options[opt]&MY_WANT_STATE_DO)
|
|
#define my_want_state_is_will(opt) (telnet_options[opt]&MY_WANT_STATE_WILL)
|
|
#define my_state_is_dont(opt) (!my_state_is_do(opt))
|
|
#define my_state_is_wont(opt) (!my_state_is_will(opt))
|
|
#define my_want_state_is_dont(opt) (!my_want_state_is_do(opt))
|
|
#define my_want_state_is_wont(opt) (!my_want_state_is_will(opt))
|
|
#define set_my_want_state_do(opt) {telnet_options[opt] |= MY_WANT_STATE_DO;}
|
|
#define set_my_want_state_will(opt) {telnet_options[opt] |= MY_WANT_STATE_WILL;}
|
|
#define set_my_want_state_dont(opt) {telnet_options[opt] &= ~MY_WANT_STATE_DO;}
|
|
#define set_my_want_state_wont(opt) {telnet_options[opt] &= ~MY_WANT_STATE_WILL;}
|
|
|
|
#define IAC 255 /* interpret as command: */
|
|
#define DONT 254 /* you are not to use option */
|
|
#define DO 253 /* please, you use option */
|
|
#define WONT 252 /* I won't use option */
|
|
#define WILL 251 /* I will use option */
|
|
|
|
/* 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_ENVIRON 36 /* Environment variables */
|
|
#define TELOPT_AUTHENTICATION 37/* Authenticate */
|
|
#define TELOPT_ENCRYPT 38 /* Encryption option */
|
|
#define TELOPT_EXOPL 255 /* extended-options-list */
|
|
|
|
|
|
#endif
|
|
|