|
|
/*===========================================================================*/ /* Copyright (c) 1987 - 1988, Future Soft Engineering, Inc. */ /* Houston, Texas */ /*===========================================================================*/
BOOL bKermitTaskRemote; /* slc nova 110 */ INT gKermitTaskCMD; /* slc nova 110 */ LPSTR glpKermitTaskParm1; /* slc nova 110 */ LPSTR glpKermitTaskParm2; /* slc nova 110 */
/* basic file transfer packet types */ #define KER_ACK 'Y'
#define KER_NACK 'N'
#define KER_SEND 'S'
#define KER_INIT 'I'
#define KER_FILE 'F'
#define KER_TEXT 'X'
#define KER_ATTRIB 'A'
#define KER_DATA 'D'
#define KER_EOF 'Z'
#define KER_BREAK 'B'
#define KER_ERROR 'E'
#define KER_RCV 'R'
#define KER_COMMAND 'C'
#define KER_KERMIT 'K'
#define KER_TIMEOUT 'T'
#define KER_ERRCHK 'Q'
#define KER_CMPLT 'C'
#define KER_ABORT 'A'
#define KER_GENERIC 'G'
/* generic packet types */ #define KER_LOGIN 'I'
#define KER_CHDIR 'C'
#define KER_LOGOUT 'L'
#define KER_FINISH 'F'
#define KER_DIR 'D'
#define KER_FREE 'U'
#define KER_DEL 'E'
#define KER_TYPE 'T'
#define KER_REN 'R'
#define KER_COPY 'K'
#define KER_WHO 'W'
#define KER_MESSAGE 'M'
#define KER_HELP 'H'
#define KER_STATUS 'Q'
#define KER_PROGRAM 'P'
#define KER_JOURNAL 'J'
#define KER_VAR 'V'
#define KER_NOPARITY '\0'
#define KER_ODDPARITY 'o'
#define KER_EVENPARITY 'e'
#define KER_MARKPARITY 'm'
#define KER_SPACEPARITY 's'
/* initialization packet subscripts and values */ #define KER_INIT_MAXL 0
#define KER_INIT_TIME 1
#define KER_INIT_NPAD 2
#define KER_INIT_PADC 3
#define KER_INIT_EOL 4
#define KER_INIT_QCTL 5
#define KER_INIT_QBIN 6
#define KER_INIT_CHKT 7
#define KER_INIT_REPT 8
#define KER_MAXPACKSIZE 94 /* Maximum packet size */
#define KER_RCVTIMEOUT 13 /* Seconds for receive time out */
#define KER_SNDTIMEOUT 8 /* Seconds for send time out */
#define KER_MAXTIMEOUT 60 /* Maximum timeout interval */
#define KER_MINTIMEOUT 2 /* Minumum timeout interval */
#define KER_NPAD 0 /* Number of padding characters I will need */
#define KER_PADCHAR 0 /* Padding character I need (NULL) */
#define KER_EOL 0x0D /* End-Of-Packet character */
#define KER_QUOTE '#' /* Control prefix character */
#define KER_8BITPREFIX '&' /* Eighth bit prefix character */
#define KER_BLOCKCHK1 '1' /* Block check type (1 byte) */
#define KER_BLOCKCHK2 '2' /* Block check type (2 byte) */
#define KER_BLOCKCHK3 '3' /* Block check type (3 byte) */
/* other kermit session constants */ #define KER_MAXRETRY 5 /* Times to retry a packet */
/* myh swat: set the buffer size for the number of bytes read in from file at a time */ #define BUFFSIZE 512
INT KER_bytetran; /* myh swat: number of bytes transfered from the buffer */ INT KER_buffsiz; /* myh swat: the buffer size read from the file; usually is */ /* BUFFSIZE, but the last buffer size can be smaller */ BYTE KER_buffer[BUFFSIZE]; /* myh swat: the buffer storing read in chars from file */ INT KER_debug; BYTE KER_rem8bit;
typedef struct { INT KER_spsiz; /* Maximum send packet size */ INT KER_timint; /* Timeout for foreign host on sends */ INT KER_pad; /* How much padding to send */ BYTE KER_padchar; /* Padding character to send */ BYTE KER_eol; /* End-Of-Line character to send */ BYTE KER_quote; /* Quote character in incoming data */ BYTE KER_select8; /* 8th bit quote character to send either 'Y' or '&'*/ } KERPACKETSTRUCT; typedef struct { INT KER_size; /* Size of present data */ INT KER_rpsiz; /* Maximum receive packet size */ INT KER_spsiz; /* Maximum send packet size */ INT KER_pad; /* How much padding to send */ INT KER_timint; /* Timeout for foreign host on sends */ INT KER_n; /* Packet number */ INT KER_numtry; /* Times this packet retried */ INT KER_oldtry; /* Times previous packet retried */ INT ttyfd; /* File descriptor of tty for I/O, 0 if remote */ INT KER_remote; /* -1 means we're a remote kermit */ INT KER_image; /* -1 means 8-bit mode */ INT KER_parflg; /* TRUE means use parity specified */ INT KER_turn; /* TRUE means look for turnaround char (XON) */ INT KER_lecho; /* TRUE for locally echo chars in connect mode */ INT KER_8flag; /* TRUE means 8th bit quoting is done */ INT KER_pktdeb; /* TRUE means log all packet to a file */ INT KER_filnamcnv; /* -1 means do file name case conversions */ INT KER_filecount; /* Number of files left to send */ INT KER_timeout; /* TRUE means a timeout has occurred. */ BYTE KER_state; /* Present state of the automaton */ BYTE KER_cchksum; /* Our (computed) checksum */ BYTE KER_padchar; /* Padding character to send */ BYTE KER_eol; /* End-Of-Line character to send */ BYTE KER_escchr; /* Connect command escape character */ BYTE KER_quote; /* Quote character in incoming data */ BYTE KER_select8; /* 8th bit quote character to send either 'Y' or '&'*/ BYTE KER_firstfile; BYTE KER_getflag; BYTE **KER_filelist; /* List of files to be sent */ BYTE *KER_filnam; /* Current file name */ BYTE recpkt[KER_MAXPACKSIZE]; /* Receive packet buffer */ BYTE packet[KER_MAXPACKSIZE]; /* Packet buffer */ BYTE KER_buff[KER_MAXPACKSIZE]; /* buffer for translations */ BYTE outstr[80]; /*output string for debugging and translations */ BYTE KERRCVFLAG; /* direct recieved buffers to screen, file or buffer*/
LONG KER_bytes; /* number of bytes received */ } KERMITSTRUCT;
BOOL FAR KER_Receive(BOOL); BYTE NEAR KER_ReceiveInit(); BYTE NEAR KER_ReceiveFile(); BYTE NEAR KER_ReceiveData();
BOOL FAR KER_Send(); BYTE NEAR KER_SendInit(); BYTE NEAR KER_SendFile(); BYTE NEAR KER_SendData(); BYTE NEAR KER_SendGeneric(BYTE lKER_state);
VOID NEAR KER_Init(BYTE state); INT NEAR KER_GetParity(); INT NEAR KER_GetTurnAroundTime(); INT NEAR KER_GetLocalEcho(); BYTE NEAR KER_Abort(WORD msgID); BYTE NEAR KER_DoParity (BYTE ch); VOID NEAR KER_SndPacket(BYTE type, INT num, INT len, BYTE *data); BYTE NEAR KER_RcvPacket(INT*, INT*, BYTE*); BYTE NEAR KER_CInChar(); BYTE NEAR KER_InChar(); INT NEAR KER_ModemWait(); INT NEAR KER_BufferFill(BYTE*); VOID NEAR KER_BufferEmpty(BYTE buffer[],INT len,BYTE flag); BOOL NEAR KER_GetNextFile(); BYTE NEAR KER_PrintErrPacket(BYTE*); VOID NEAR KER_RcvPacketInit(BYTE*); VOID NEAR KER_SndPacketInit(BYTE*); VOID FAR KER_Answer(); VOID FAR KER_Server(BYTE, INT, INT); VOID NEAR KER_DoGenericPack(BYTE*, INT, INT); BOOL NEAR KER_DoDir(BYTE*); INT_PTR APIENTRY dbKerRemote(HWND, UINT, WPARAM, LPARAM); BOOL NEAR KER_RemoteParamsOK(HWND, INT); VOID NEAR KER_DoRemoteShow(HWND, INT); VOID NEAR KER_Remote(HWND, INT); BYTE NEAR KER_Tinit(); INT NEAR KER_Encode(BYTE*, BYTE*, INT); VOID NEAR KER_Pack(HWND, BYTE, INT, INT); VOID NEAR KER_HandleTrans(); VOID NEAR KER_PutScreenStr(BYTE*); VOID NEAR KER_bSetUp(BYTE state); BYTE NEAR KER_AutoPar(); /* tge gold 01 */ VOID NEAR KER_ResetFromRemote(); /* tge gold 01 */
|