|
|
/* comwsock.hh -- Private header file for winsock communications driver module
* * Copyright 1996 by Hilgraeve Inc. -- Monroe, MI * All rights reserved * * $Revision: 3 $ * $Date: 9/20/00 4:54p $ */
// -=-=-=-=-=-=-=-=-=-=-=- EXPORTED PROTOTYPES -=-=-=-=-=-=-=-=-=-=-=-=-=-=-
int WINAPI WsckDeviceInitialize(HCOM hCom, unsigned usInterfaceVersion, void **ppvDriverData); int WINAPI WsckDeviceClose(void *pstPrivate); int WINAPI WsckDeviceDialog(void *pstPrivate, HWND hwndParent); int WINAPI WsckDeviceSpecial(void *pstPrivate, const TCHAR *pszInstructions, TCHAR *pszResult, int nBufrSize); int WINAPI WsckDeviceLoadHdl(void *pstPrivate, SF_HANDLE sfHdl); int WINAPI WsckDeviceSaveHdl(void *pstPrivate, SF_HANDLE sfHdl); int WINAPI WsckDeviceStub(void *pstPrivate); int WINAPI WsckPortActivate(void *pstPrivate, TCHAR *pszPortName, DWORD_PTR dwMediaHdl); int WINAPI WsckPortDeactivate(void *pstPrivate); int WINAPI WsckPortConnected(void *pstPrivate);
int WINAPI WsckRcvRefill(void *pstPrivate); int WINAPI WsckRcvClear(void *pstPrivate);
int WINAPI WsckSndBufrSend(void *pstPrivate, void *pvBufr, int nSize); int WINAPI WsckSndBufrIsBusy(void *pstPrivate); int WINAPI WsckSndBufrQuery(void *pstPrivate, unsigned *pafStatus, long *plHandshakeDelay); int WINAPI WsckSndBufrClear(void *pstPrivate); int WINAPI WsckPortConfigure(void *pstPrivate); DWORD WINAPI WsckComConnectThread(void *pvData); DWORD WINAPI WsckComReadThread(void *pvData); DWORD WINAPI WsckComWriteThread(void *pvData);
#if defined(INCL_WINSOCK)
/*
* This block of defines is used by the Telnet / NVT code, * and is taken from RFC1143 */ #define NO 1
#define YES 2
#define WANTNO 3
#define WANTYES 4
#define EMPTY 1
#define OPPOSITE 2
#define NONE 3
#define NVT_THRU 0
#define NVT_IAC 1
#define NVT_WILL 2
#define NVT_WONT 3
#define NVT_DO 4
#define NVT_DONT 5
#define NVT_SB 6
#define NVT_SB_TT 7
#define NVT_SB_TT_S 8
#define NVT_SB_TT_S_I 9
#define ECHO_MODE 0
#define SGA_MODE 1
#define TTYPE_MODE 2
#define BINARY_MODE 3
#define NAWS_MODE 4
// If any new modes are added, be sure to update MODE_MAX in comstd.
#define NVT_DISCARD 1
#define NVT_KEEP 2
/*
* Definitions for the TELNET protocol. */ #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 */
#define SB 250 /* interpret as subnegotiation */
#define GA 249 /* you may reverse the line */
#define EL 248 /* erase the current line */
#define EC 247 /* erase the current character */
#define AYT 246 /* are you there */
#define AO 245 /* abort output--but let prog finish */
#define IP 244 /* interrupt process--permanently */
#define BREAK 243 /* break */
#define DM 242 /* data mark--for connect. cleaning */
#define NOP 241 /* nop */
#define SE 240 /* end sub negotiation */
#define EOR 239 /* end of record (transparent mode) */
#define SYNCH 242 /* for telfunc calls */
/* 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_TACACS 26 /* TACACS user identification */
#define TELOPT_OUTMARK 27 /* output marking */
#define TELOPT_TERMLOC 28 /* terminal location number */
#define TELOPT_X3_PAD 30
#define TELOPT_NAWS 31 /* negotiate about terminal size */
#define TELOPT_SPEED 32 /* negotiate terminal speed */
#define TELOPT_TOGGLEFLOW 33 /* toggle flow control */
#define TELOPT_XDISPLOC 35 /* X display location */
#define TELOPT_EXOPL 255 /* extended-options-list */
/* sub-option qualifiers */ #define TELQUAL_IS 0 /* option is... */
#define TELQUAL_SEND 1 /* send option */
#define TELQUAL_OFF 0 /* turn off option */
#define TELQUAL_ON 1 /* turn on option */
#define MAX_IP_ADDR_LEN 128
/* --- These implement the Telnet NVT(network virtual terminal) --- */
VOID WinSockCreateNVT(ST_STDCOM * pstWS); VOID WinSockReleaseNVT(ST_STDCOM * pstWS); int FAR PASCAL WinSockNetworkVirtualTerminal(ECHAR mc, void *pD);
VOID WinSockSendMessage(ST_STDCOM * pstWS, INT nMsg, INT nChar); VOID WinSockSendBuffer(ST_STDCOM * pstWS, INT nSize, LPSTR pszBuffer);
VOID WinSockGotDO (ST_STDCOM * pstWS, const PSTOPT pstO); VOID WinSockGotWILL(ST_STDCOM * pstWS, const PSTOPT pstO); VOID WinSockGotDONT(ST_STDCOM * pstWS, const PSTOPT pstO); VOID WinSockGotWONT(ST_STDCOM * pstWS, const PSTOPT pstO);
VOID WinSockSendNAWS( ST_STDCOM * hhDriver ); #endif
|