| /* ckcker.h -- Symbol and macro definitions for C-Kermit */ |
| |
| /* |
| Author: Frank da Cruz <fdc@columbia.edu>, |
| Columbia University Academic Information Systems, New York City. |
| |
| Copyright (C) 1985, 2004, |
| Trustees of Columbia University in the City of New York. |
| All rights reserved. See the C-Kermit COPYING.TXT file or the |
| copyright text in the ckcmai.c module for disclaimer and permissions. |
| */ |
| |
| #ifndef CKCKER_H |
| #define CKCKER_H |
| |
| #define I_AM_KERMIT 0 /* Personalities */ |
| #define I_AM_TELNET 1 |
| #define I_AM_RLOGIN 2 |
| #define I_AM_IKSD 3 |
| #define I_AM_FTP 4 |
| #define I_AM_HTTP 5 |
| #define I_AM_SSHSUB 6 |
| #define I_AM_SSH 7 |
| |
| #ifndef NOSTREAMING |
| #ifndef STREAMING |
| #define STREAMING |
| #endif /* STREAMING */ |
| #endif /* NOSTREAMING */ |
| /* |
| If NEWDEFAULTS is defined then: |
| - RECEIVE PACKET-LENGTH is 4095 rather than 90 |
| - WINDOW is 30 rather than 1 |
| - BLOCK-CHECK is 3 rather than 1 |
| - FILE TYPE is BINARY rather than TEXT |
| */ |
| #ifdef BIGBUFOK /* (was OS2) */ |
| #ifndef NEWDEFAULTS |
| #define NEWDEFAULTS |
| #endif /* NEWDEFAULTS */ |
| #endif /* BIGBUFOK */ |
| |
| #ifdef NOICP /* No Interactive Command Parser */ |
| #ifndef NOSPL /* implies... */ |
| #define NOSPL /* No Script Programming Language */ |
| #endif /* NOSPL */ |
| #ifndef NOCSETS /* No character-set translation */ |
| #define NOCSETS /* because the only way to set it up */ |
| #endif /* NOCSETS */ /* is with interactive commands */ |
| #endif /* NOICP */ |
| |
| #ifdef pdp11 /* There is a maximum number of */ |
| #ifndef NOCKSPEED /* of -D's allowed on the CC */ |
| #define NOCKSPEED /* command line, so some of them */ |
| #endif /* NOCKSPEED */ /* have to go here... */ |
| #ifndef NOREDIRECT |
| #define NOREDIRECT |
| #endif /* NOREDIRECT */ |
| #ifdef WHATAMI |
| #undef WHATAMI |
| #endif /* WHATAMI */ |
| #endif /* pdp11 */ |
| |
| #ifdef UIDBUFLEN |
| #define LOGINLEN UIDBUFLEN |
| #else |
| #define LOGINLEN 32 /* Length of server login field */ |
| #endif /* UIDBUFLEN */ |
| |
| /* Bell values */ |
| |
| #define XYB_NONE 0 /* No bell */ |
| #define XYB_AUD 1 /* Audible bell */ |
| #define XYB_VIS 2 /* Visible bell */ |
| #define XYB_BEEP 0 /* Audible Beep */ |
| #define XYB_SYS 4 /* Audible System Sounds */ |
| |
| /* File status bits */ |
| |
| #define FS_OK 1 /* File transferred OK */ |
| #define FS_REFU 2 /* File was refused */ |
| #define FS_DISC 4 /* File was discarded */ |
| #define FS_INTR 8 /* Transfer was interrupted by user */ |
| #define FS_ERR 16 /* Fatal error during transfer */ |
| |
| /* Control-character (un)prefixing options */ |
| |
| #define PX_ALL 0 /* Prefix all control chars */ |
| #define PX_CAU 1 /* Unprefix cautiously */ |
| #define PX_WIL 2 /* Unprefix with wild abandon */ |
| #define PX_NON 3 /* Unprefix all (= prefix none) */ |
| |
| /* Destination codes */ |
| |
| #define DEST_D 0 /* DISK */ |
| #define DEST_S 1 /* SCREEN */ |
| #define DEST_P 2 /* PRINTER */ |
| #define DEST_N 3 /* NOWHERE (calibration run) */ |
| |
| /* File transfer protocols */ |
| |
| #define PROTO_K 0 /* Kermit */ |
| #ifdef CK_XYZ |
| #define PROTO_X 1 /* XMODEM */ |
| #define PROTO_XC 2 /* XMODEM-CRC */ |
| #define PROTO_Y 3 /* YMODEM */ |
| #define PROTO_G 4 /* YMODEM-g */ |
| #define PROTO_Z 5 /* ZMODEM */ |
| #define PROTO_O 6 /* OTHER */ |
| #define NPROTOS 7 /* How many */ |
| #else |
| #define NPROTOS 1 /* How many */ |
| #endif /* CK_XYZ */ |
| |
| struct ck_p { /* C-Kermit Protocol info structure */ |
| char * p_name; /* Protocol name */ |
| int rpktlen; /* Packet length - receive */ |
| int spktlen; /* Packet length - send */ |
| int spktflg; /* ... */ |
| int winsize; /* Window size */ |
| int prefix; /* Control-char prefixing options */ |
| int fnca; /* Filename collision action */ |
| int fncn; /* Filename conversion */ |
| int fnsp; /* Send filename path stripping */ |
| int fnrp; /* Receive filename path stripping */ |
| char * h_b_init; /* Host receive initiation string - text */ |
| char * h_t_init; /* Host receive initiation string - binary */ |
| char * h_x_init; /* Host server string */ |
| char * p_b_scmd; /* SEND cmd for external protocol - text */ |
| char * p_t_scmd; /* SEND cmd for external protocol - binary */ |
| char * p_b_rcmd; /* RECV cmd for external protocol - text */ |
| char * p_t_rcmd; /* RECV cmd for external protocol - binary */ |
| }; |
| |
| struct filelist { /* Send-file list element */ |
| char * fl_name; /* Filename */ |
| int fl_mode; /* Transfer mode */ |
| char * fl_alias; /* Name to send the file under */ |
| struct filelist * fl_next; /* Pointer to next element */ |
| }; |
| |
| /* Kermit system IDs and associated properties... */ |
| |
| struct sysdata { |
| char *sid_code; /* Kermit system ID code */ |
| char *sid_name; /* Descriptive name */ |
| short sid_unixlike; /* Tree-structured directory with separators */ |
| char sid_dirsep; /* Directory separator character if unixlike */ |
| short sid_dev; /* Can start with dev: */ |
| short sid_case; /* Bit mapped: 1 = case matters, 2 = case preserved */ |
| short sid_recfm; /* Text record separator */ |
| /* |
| 0 = unknown or nonstream |
| 1 = cr |
| 2 = lf |
| 3 = crlf |
| */ |
| }; |
| |
| struct ssh_pf { /* SSH port forwarding */ |
| int p1; /* port to be forwarded */ |
| char * host; /* host */ |
| int p2; /* port */ |
| }; |
| |
| #define SET_ON 1 /* General values for settings that can be ON */ |
| #define SET_OFF 0 /* OFF, */ |
| #define SET_AUTO 2 /* or AUTO */ |
| |
| #define PATH_OFF 0 /* Pathnames off (to be stripped) */ |
| #define PATH_REL 1 /* Pathnames on, left relative if possible */ |
| #define PATH_ABS 2 /* Pathnames absolute always */ |
| #define PATH_AUTO 4 /* Pathnames handled automatically */ |
| |
| /* GET Options */ |
| |
| #define GOPT_DEL 1 /* Delete source file */ |
| #define GOPT_REC 2 /* Recursive */ |
| #define GOPT_RES 4 /* Recover (Resend) */ |
| #define GOPT_CMD 8 /* Filename is a Command */ |
| |
| /* GET Transfer Modes */ |
| |
| #define GMOD_TXT 0 /* Text */ |
| #define GMOD_BIN 1 /* Binary */ |
| #define GMOD_AUT 2 /* Auto */ |
| #define GMOD_LBL 3 /* Labeled */ |
| |
| /* GET Filename Options */ |
| |
| #define GNAM_LIT 0 /* Literal */ |
| #define GNAM_CNV 1 /* Converted */ |
| |
| /* GET Pathname Options */ |
| |
| #define GPTH_OFF 0 /* Pathnames Off */ |
| #define GPTH_REL 1 /* Pathnames Relative */ |
| #define GPTH_ABX 2 /* Pathnames Absolute */ |
| |
| #ifndef NOSPL |
| /* |
| The IF REMOTE-ONLY command is available only in versions |
| that actually can be used in remote mode, and only if we have |
| an interactive command parser. |
| */ |
| #define CK_IFRO |
| #ifdef MAC |
| #undef CK_IFRO |
| #else |
| #ifdef GEMDOS |
| #undef CK_IFRO |
| #endif /* GEMDOS */ |
| #endif /* MAC */ |
| #endif /* NOSPL */ |
| |
| /* Systems whose CONNECT modules can execute Application Program Commands */ |
| |
| #ifdef NOSPL /* Script programming language */ |
| #ifdef CK_APC /* is required for APC. */ |
| #undef CK_APC |
| #endif /* CK_APC */ |
| #ifndef NOAPC |
| #define NOAPC |
| #endif /* NOAPC */ |
| #ifndef NOAUTODL |
| #define NOAUTODL |
| #endif /* NOAUTODL */ |
| #endif /* NOSPL */ |
| |
| #ifndef NOAPC /* Unless they said NO APC */ |
| #ifndef CK_APC /* And they didn't already define it */ |
| #ifdef OS2 /* OS/2 gets it */ |
| #define CK_APC |
| #endif /* OS2 */ |
| #ifdef UNIX /* UNIX gets it */ |
| #define CK_APC |
| #endif /* UNIX */ |
| #ifdef VMS /* VMS too */ |
| #define CK_APC |
| #endif /* VMS */ |
| #endif /* CK_APC */ |
| #endif /* NOAPC */ |
| |
| #ifdef CK_APC /* APC buffer length */ |
| #ifndef APCBUFLEN /* Should be no bigger than */ |
| #ifdef NOSPL /* command buffer length */ |
| #define APCBUFLEN 608 /* (see ckucmd.h) but we can't */ |
| #else /* reference ckucmd.h symbols here */ |
| #define APCBUFLEN 4096 |
| #endif /* NOSPL */ |
| #endif /* APCBUFLEN */ |
| #define APC_OFF 0 /* APC OFF (disabled) */ |
| #define APC_ON 1 /* APC ON (enabled for non-dangerous commands) */ |
| #define APC_UNCH 2 /* APC UNCHECKED (enabled for ALL commands) bitmask */ |
| #define APC_NOINP 4 /* APC (enabled with no input allowed - bitmask) */ |
| #define APC_INACTIVE 0 /* APC not in use */ |
| #define APC_REMOTE 1 /* APC in use from Remote */ |
| #define APC_LOCAL 2 /* APC being used from within Kermit */ |
| #ifndef NOAUTODL |
| #ifndef CK_AUTODL /* Autodownload */ |
| #ifdef OS2 |
| #define CK_AUTODL |
| #else |
| #ifdef UNIX |
| #define CK_AUTODL |
| #else |
| #ifdef VMS |
| #define CK_AUTODL |
| #else |
| #ifdef CK_AUTODL |
| #undef CK_AUTODL |
| #endif /* CK_AUTODL */ |
| #endif /* NOAUTODL */ |
| #endif /* VMS */ |
| #endif /* UNIX */ |
| #endif /* OS2 */ |
| #endif /* CK_AUTODL */ |
| |
| #else /* CK_APC not defined */ |
| |
| #ifdef NOICP |
| #ifdef UNIX |
| #ifndef CK_AUTODL |
| #define CK_AUTODL |
| #endif /* CK_AUTODL */ |
| #endif /* UNIX */ |
| #else /* Not NOICP... */ |
| #ifdef CK_AUTODL |
| #undef CK_AUTODL |
| #endif /* CK_AUTODL */ |
| #endif /* NOICP */ |
| #endif /* CK_APC */ |
| |
| #ifdef NOAUTODL |
| #ifdef CK_AUTODL |
| #undef CK_AUTODL |
| #endif /* CK_AUTODL */ |
| #endif /* NOAUTODL */ |
| |
| /* Codes for what we are doing now - bit mask values */ |
| |
| #define W_NOTHING 0 /* Nothing */ |
| #define W_INIT 1 /* Initializing protocol */ |
| #define W_SEND 2 /* SENDing or MAILing */ |
| #define W_RECV 4 /* RECEIVEing or GETting */ |
| #define W_REMO 8 /* Doing a REMOTE command */ |
| #define W_CONNECT 16 /* CONNECT mode */ |
| #define W_COMMAND 32 /* Command mode */ |
| #define W_DIALING 64 /* Dialing a modem */ |
| #define W_FTP 128 /* FTP */ |
| #define W_FT_DELE 64 /* FTP MDELETE */ |
| #define W_KERMIT (W_INIT|W_SEND|W_RECV|W_REMO) /* Kermit protocol */ |
| #define W_XFER (W_INIT|W_SEND|W_RECV|W_REMO|W_FTP) /* File xfer any protocol */ |
| |
| #ifndef NOWHATAMI |
| #ifndef WHATAMI |
| #define WHATAMI |
| #endif /* WHATAMI */ |
| #endif /* NOWHATAMI */ |
| |
| #ifdef WHATAMI /* Bit mask positions for WHATAMI */ |
| #define WMI_SERVE 1 /* Server mode */ |
| #define WMI_FMODE 2 /* File transfer mode */ |
| #define WMI_FNAME 4 /* File name conversion */ |
| #define WMI_STREAM 8 /* I have a reliable transport */ |
| #define WMI_CLEAR 16 /* I have a clear channel */ |
| #define WMI_FLAG 32 /* Flag that WHATAMI field is valid */ |
| /* WHATAMI2 bits... */ |
| #define WMI2_XMODE 1 /* Transfer mode auto(0)/manual(1) */ |
| #define WMI2_RECU 2 /* Transfer is recursive */ |
| #define WMI2_FLAG 32 /* Flag that WHATAMI2 field is valid */ |
| #endif /* WHATAMI */ |
| |
| /* Terminal types */ |
| #define VT100 0 /* Also for VT52 mode */ |
| #define TEKTRONIX 1 |
| |
| /* Normal packet and window size */ |
| |
| #define MAXPACK 94 /* Maximum unextended packet size */ |
| /* Can't be more than 94. */ |
| #ifdef pdp11 /* Maximum sliding window slots */ |
| #define MAXWS 8 |
| #else |
| #define MAXWS 32 /* Can't be more than 32. */ |
| #endif /* pdp11 */ |
| |
| /* Maximum long packet size for sending packets */ |
| /* Override these from cc command line via -DMAXSP=nnn */ |
| |
| #ifdef IRIX /* Irix 6.4 and earlier has */ |
| #ifndef MAXSP /* Telnet server bug */ |
| #ifdef IRIX65 |
| #define MAXSP 9024 |
| #else |
| #define MAXSP 4000 |
| #endif /* IRIX65 */ |
| #endif /* MAXSP */ |
| #endif /* IRIX */ |
| |
| #ifdef DYNAMIC |
| #ifndef MAXSP |
| #define MAXSP 9024 |
| #endif /* MAXSP */ |
| #else /* not DYNAMIC */ |
| #ifndef MAXSP |
| #ifdef pdp11 |
| #define MAXSP 1024 |
| #else |
| #define MAXSP 2048 |
| #endif /* pdp11 */ |
| #endif /* MAXSP */ |
| #endif /* DYNAMIC */ |
| |
| /* Maximum long packet size for receiving packets */ |
| /* Override these from cc command line via -DMAXRP=nnn */ |
| |
| #ifdef DYNAMIC |
| #ifndef MAXRP |
| #define MAXRP 9024 |
| #endif /* MAXRP */ |
| #else /* not DYNAMIC */ |
| #ifndef MAXRP |
| #ifdef pdp11 |
| #define MAXRP 1024 |
| #else |
| #define MAXRP 2048 |
| #endif /* pdp11 */ |
| #endif /* MAXRP */ |
| #endif /* DYNAMIC */ |
| /* |
| Default sizes for windowed packet buffers. |
| Override these from cc command line via -DSBSIZ=nnn, -DRBSIZ=nnn. |
| Or just -DBIGBUFOK. |
| */ |
| #ifndef MAXGETPATH /* Maximum number of directories */ |
| #ifdef BIGBUFOK /* for GET path... */ |
| #define MAXGETPATH 128 |
| #else |
| #define MAXGETPATH 16 |
| #endif /* BIGBUFOK */ |
| #endif /* MAXGETPATH */ |
| |
| #ifndef NOSPL /* Query buffer length */ |
| #ifdef OS2 |
| #define QBUFL 4095 |
| #else |
| #ifdef BIGBUFOK |
| #define QBUFL 4095 |
| #else |
| #define QBUFL 1023 |
| #endif /* BIGBUFOK */ |
| #endif /* OS2 */ |
| #endif /* NOSPL */ |
| |
| #ifdef DYNAMIC |
| #ifndef SBSIZ |
| #ifdef BIGBUFOK /* If big buffers are safe... */ |
| #define SBSIZ 290000 /* Allow for 10 x 9024 or 20 x 4096 */ |
| #else /* Otherwise... */ |
| #ifdef pdp11 |
| #define SBSIZ 3020 |
| #else |
| #define SBSIZ 9050 /* Allow for 3 x 3000, etc. */ |
| #endif /* pdp11 */ |
| #endif /* BIGBUFOK */ |
| #endif /* SBSIZ */ |
| |
| #ifndef RBSIZ |
| #ifdef BIGBUFOK |
| #define RBSIZ 290000 |
| #else |
| #ifdef pdp11 |
| #define RBSIZ 3020 |
| #else |
| #define RBSIZ 9050 |
| #endif /* pdp11 */ |
| #endif /* BIGBUFOK */ |
| #endif /* RBSIZ */ |
| #else /* not DYNAMIC */ |
| #ifdef pdp11 |
| #define SBSIZ 3020 |
| #define RBSIZ 3020 |
| #else |
| #ifndef SBSIZ |
| #define SBSIZ (MAXSP * (MAXWS + 1)) |
| #endif /* SBSIZ */ |
| #ifndef RBSIZ |
| #define RBSIZ (MAXRP * (MAXWS + 1)) |
| #endif /* RBSIZ */ |
| #endif /* pdp11 */ |
| #endif /* DYNAMIC */ |
| |
| #ifdef BIGBUFOK |
| #define PKTMSGLEN 1023 |
| #else |
| #define PKTMSGLEN 80 |
| #endif /* BIGBUFOK */ |
| |
| /* Kermit parameters and defaults */ |
| |
| #define CTLQ '#' /* Control char prefix I will use */ |
| #define MYEBQ '&' /* 8th-Bit prefix char I will use */ |
| #define MYRPTQ '~' /* Repeat count prefix I will use */ |
| |
| #define MAXTRY 10 /* Times to retry a packet */ |
| #define MYPADN 0 /* How many padding chars I need */ |
| #define MYPADC '\0' /* Which padding character I need */ |
| |
| #define DMYTIM 8 /* Initial timeout interval to use. */ |
| #define URTIME 15 /* Timeout interval to use on me. */ |
| #define DSRVTIM 0 /* Default server cmd wait timeout. */ |
| |
| #define DEFTRN 0 /* Default line turnaround handshake */ |
| |
| #define MYEOL CR /* Incoming packet terminator. */ |
| |
| #ifdef NEWDEFAULTS |
| #define DRPSIZ 4095 /* Default incoming packet size. */ |
| #define DFWSIZ 30 /* Default window size */ |
| #define DFBCT 3 /* Default block-check type */ |
| #else |
| #define DRPSIZ 90 /* Default incoming packet size. */ |
| #define DFWSIZ 1 /* Default window size */ |
| #define DFBCT 3 /* Default block-check type */ |
| #endif /* NEWDEFAULTS */ |
| |
| /* The HP-UX 5 and 6 Telnet servers can only swallow 513 bytes at once */ |
| |
| #ifdef HPUX5 |
| #ifdef DRPSIZ |
| #undef DRPSIZ |
| #endif /* DRPSIZ */ |
| #define DRPSIZ 500 |
| #else |
| #ifdef HPUX6 |
| #ifdef DRPSIZ |
| #undef DRPSIZ |
| #endif /* DRPSIZ */ |
| #define DRPSIZ 500 |
| #endif /* HPUX6 */ |
| #endif /* HPUX5 */ |
| |
| #define DSPSIZ 90 /* Default outbound packet size. */ |
| #define DDELAY 1 /* Default delay. */ |
| #define DSPEED 9600 /* Default line speed. */ |
| |
| #ifdef OS2 /* Default CONNECT-mode */ |
| #define DFESC 29 /* escape character */ |
| #else |
| #ifdef NEXT /* Ctrl-] for PC and NeXT */ |
| #define DFESC 29 |
| #else |
| #ifdef GEMDOS /* And Atari ST */ |
| #define DFESC 29 |
| #else |
| #define DFESC 28 /* Ctrl-backslash for others */ |
| #endif /* GEMDOS */ |
| #endif /* NEXT */ |
| #endif /* OS2 */ |
| |
| #ifdef NOPUSH /* NOPUSH implies NOJC */ |
| #ifndef NOJC /* (no job control) */ |
| #define NOJC |
| #endif /* NOJC */ |
| #endif /* NOPUSH */ |
| |
| #ifdef UNIX /* Default for SET SUSPEND */ |
| #ifdef NOJC /* UNIX but job control disabled */ |
| #define DFSUSP 0 |
| #else /* UNIX, job control enabled. */ |
| #define DFSUSP 1 |
| #endif /* NOJC */ |
| #else |
| #define DFSUSP 0 |
| #endif /* UNIX */ |
| |
| #ifndef DFCDMSG |
| #ifdef UNIXOROSK |
| #define DFCDMSG "{{./.readme}{README.TXT}{READ.ME}}" |
| #else |
| #define DFCDMSG "{{README.TXT}{READ.ME}}" |
| #endif /* UNIXOROSK */ |
| #endif /* DFCDMSG */ |
| |
| #define NSNDEXCEPT 64 /* Max patterns for /EXCEPT: list */ |
| |
| /* Files */ |
| |
| #define ZCTERM 0 /* Console terminal */ |
| #define ZSTDIO 1 /* Standard input/output */ |
| #define ZIFILE 2 /* Current input file (SEND, etc) (in) */ |
| #define ZOFILE 3 /* Current output file (RECEIVE, GET) (out) */ |
| #define ZDFILE 4 /* Current debugging log file (out) */ |
| #define ZTFILE 5 /* Current transaction log file (out) */ |
| #define ZPFILE 6 /* Current packet log file (out) */ |
| #define ZSFILE 7 /* Current session log file (out) */ |
| #define ZSYSFN 8 /* Input/Output from a system function */ |
| #define ZRFILE 9 /* Local file for READ (in) */ |
| #define ZWFILE 10 /* Local file for WRITE (out) */ |
| #define ZMFILE 11 /* Miscellaneous file, e.g. for XLATE */ |
| #define ZDIFIL 12 /* DIAL log */ |
| #define ZNFILS 13 /* How many defined file numbers */ |
| |
| #ifdef CKCHANNELIO |
| |
| /* File modes */ |
| |
| #define FM_REA 1 /* Read */ |
| #define FM_WRI 2 /* Write */ |
| #define FM_APP 4 /* Append */ |
| #define FM_RWA 7 /* Read/Write/Append mask */ |
| #define FM_BIN 8 /* Binary */ |
| #define FM_RWB 15 /* Read/Write/Append/Binary mask */ |
| #define FM_CMD 16 /* Command */ |
| #define FM_EOF 64 /* (status) At EOF */ |
| |
| /* File errors */ |
| |
| #define FX_NER 0 /* No error */ |
| #define FX_SYS -1 /* System error */ |
| #define FX_EOF -2 /* End of file */ |
| #define FX_NOP -3 /* Channel not open */ |
| #define FX_CHN -4 /* Channel out of range */ |
| #define FX_RNG -5 /* Argument range error */ |
| #define FX_FNF -6 /* File not found */ |
| #define FX_BFN -7 /* Bad or missing filename */ |
| #define FX_NMF -8 /* No more files */ |
| #define FX_FOP -9 /* Forbidden operation */ |
| #define FX_ACC -10 /* Access denied */ |
| #define FX_BOM -11 /* Bad combination of open modes */ |
| #define FX_OFL -12 /* Buffer overflow */ |
| #define FX_LNU -13 /* Current line number unknown */ |
| #define FX_ROO -14 /* Set Root violation */ |
| #define FX_NYI -99 /* Feature not implemented yet */ |
| #define FX_UNK -999 /* Unknown error */ |
| |
| _PROTOTYP( int z_open, (char *, int) ); |
| _PROTOTYP( int z_close, (int) ); |
| _PROTOTYP( int z_out, (int, char *, int, int) ); |
| _PROTOTYP( int z_in, (int, char *, int, int, int) ); |
| _PROTOTYP( int z_flush, (int) ); |
| _PROTOTYP( int z_seek, (int, long) ); |
| _PROTOTYP( int z_line, (int, long) ); |
| _PROTOTYP( int z_getmode, (int) ); |
| _PROTOTYP( int z_getfnum, (int) ); |
| _PROTOTYP( long z_getpos, (int) ); |
| _PROTOTYP( long z_getline, (int) ); |
| _PROTOTYP( long z_count, (int, int) ); |
| _PROTOTYP( char * z_getname, (int) ); |
| _PROTOTYP( char * ckferror, (int) ); |
| #endif /* CKCHANNELIO */ |
| |
| _PROTOTYP( int scanfile, (char *, int *, int) ); |
| |
| /* Buffered file i/o ... */ |
| #ifdef OS2 /* K-95 */ |
| #define INBUFSIZE 32768 |
| #define OBUFSIZE 32768 |
| #else |
| #ifdef pdp11 |
| #define INBUFSIZE 512 |
| #define OBUFSIZE 512 |
| #else |
| /* In VMS, allow for longest possible RMS record */ |
| #ifdef VMS |
| #define INBUFSIZE 32768 /* File input buffer size */ |
| #define OBUFSIZE 32768 /* File output buffer size */ |
| #else /* Not VMS */ |
| #ifdef STRATUS |
| #ifdef DYNAMIC |
| #define INBUFSIZE 32767 /* File input buffer size */ |
| #define OBUFSIZE 32767 /* File output buffer size */ |
| #else /* STRATUS, not DYNAMIC */ |
| #define INBUFSIZE 4096 /* File input buffer size */ |
| #define OBUFSIZE 4096 /* File output buffer size */ |
| #endif /* DYNAMIC */ |
| #else /* not STRATUS */ |
| #ifdef BIGBUFOK /* Systems where memory is */ |
| #define INBUFSIZE 32768 /* not a problem... */ |
| #define OBUFSIZE 32768 |
| #else /* Not BIGBUFOK */ |
| #define INBUFSIZE 1024 |
| #define OBUFSIZE 1024 |
| #endif /* BIGBUFOK */ |
| #endif /* STRATUS */ |
| #endif /* VMS */ |
| #endif /* pdp11 */ |
| #endif /* OS2 */ |
| |
| /* File-transfer character in/out macros for buffered i/o */ |
| |
| /* Get the next file byte */ |
| #ifndef CKCMAI |
| #ifndef NOXFER |
| extern char ** sndarray; |
| #endif /* NOXFER */ |
| #endif /* CKCMAI */ |
| #ifdef NOSPL |
| #define zminchar() (((--zincnt)>=0) ? ((int)(*zinptr++) & 0377) : zinfill()) |
| #else |
| #ifdef NOXFER |
| #define zminchar() (((--zincnt)>=0) ? ((int)(*zinptr++) & 0377) : zinfill()) |
| #else |
| #define zminchar() \ |
| (sndarray?agnbyte():(((--zincnt)>=0) ? ((int)(*zinptr++) & 0377) : zinfill())) |
| #endif /* NOXFER */ |
| #endif /* NOSPL */ |
| |
| /* Stuff a character into the input buffer */ |
| #define zmstuff(c) zinptr--, *zinptr = c, zincnt++ |
| |
| /* Put a character to a file */ |
| #define zmchout(c) \ |
| ((*zoutptr++=(char)(c)),(((++zoutcnt)>=zobufsize)?zoutdump():0)) |
| |
| /* Screen functions */ |
| |
| #define XYFD_N 0 /* File transfer display: None, Off */ |
| #define XYFD_R 1 /* Regular, Dots */ |
| #define XYFD_C 2 /* Cursor-positioning (e.g. curses) */ |
| #define XYFD_S 3 /* CRT Screen */ |
| #define XYFD_B 4 /* Brief */ |
| #define XYFD_G 5 /* GUI */ |
| |
| #ifdef NODISPLAY |
| #define xxscreen(a,b,c,d) |
| #define ckscreen(a,b,c,d) |
| #else |
| _PROTOTYP( VOID ckscreen, (int, char, long, char *) ); |
| #ifdef VMS |
| #define xxscreen(a,b,c,d) \ |
| if (local && fdispla != XYFD_N) \ |
| ckscreen((int)a,(char)b,(long)c,(char *)d) |
| #else |
| #define xxscreen(a,b,c,d) \ |
| if (local && !backgrd && fdispla != XYFD_N) \ |
| ckscreen((int)a,(char)b,(long)c,(char *)d) |
| #endif /* VMS */ |
| #endif /* NODISPLAY */ |
| |
| #define SCR_FN 1 /* filename */ |
| #define SCR_AN 2 /* as-name */ |
| #define SCR_FS 3 /* file-size */ |
| #define SCR_XD 4 /* x-packet data */ |
| #define SCR_ST 5 /* File status: */ |
| #define ST_OK 0 /* Transferred OK */ |
| #define ST_DISC 1 /* Discarded */ |
| #define ST_INT 2 /* Interrupted */ |
| #define ST_SKIP 3 /* Skipped */ |
| #define ST_ERR 4 /* Fatal Error */ |
| #define ST_REFU 5 /* Refused (use Attribute codes for reason) */ |
| #define ST_INC 6 /* Incompletely received */ |
| #define ST_MSG 7 /* Informational message */ |
| #define ST_SIM 8 /* Transfer simulated (e.g. would be sent) */ |
| #define SCR_PN 6 /* packet number */ |
| #define SCR_PT 7 /* packet type or pseudotype */ |
| #define SCR_TC 8 /* transaction complete */ |
| #define SCR_EM 9 /* error message */ |
| #define SCR_WM 10 /* warning message */ |
| #define SCR_TU 11 /* arbitrary undelimited text */ |
| #define SCR_TN 12 /* arbitrary new text, delimited at beginning */ |
| #define SCR_TZ 13 /* arbitrary text, delimited at end */ |
| #define SCR_QE 14 /* quantity equals (e.g. "foo: 7") */ |
| #define SCR_CW 15 /* close screen window */ |
| #define SCR_CD 16 /* display current directory */ |
| |
| /* Skip reasons */ |
| |
| #define SKP_DAT 1 /* Date-Time (Older) */ |
| #define SKP_EQU 2 /* Date-Time (Equal) */ |
| #define SKP_TYP 3 /* Type */ |
| #define SKP_SIZ 4 /* Size */ |
| #define SKP_NAM 5 /* Name collision */ |
| #define SKP_EXL 6 /* Exception list */ |
| #define SKP_DOT 7 /* Dot file */ |
| #define SKP_BKU 8 /* Backup file */ |
| #define SKP_RES 9 /* Recovery not needed */ |
| #define SKP_ACC 10 /* Access denied */ |
| #define SKP_NRF 11 /* Not a regular file */ |
| #define SKP_SIM 12 /* Simulation (WOULD BE SENT) */ |
| #define SKP_XUP 13 /* Simulation: Would be sent because remote file older */ |
| #define SKP_XNX 14 /* Simulation: ditto, because remote file does not exist */ |
| |
| /* Macros */ |
| |
| #ifndef CKCMAI |
| extern int tcp_incoming; /* Used by ENABLE macro */ |
| #endif /* CKCMAI */ |
| |
| #ifndef TCPSOCKET |
| /* |
| ENABLED tells whether a server-side service is enabled. |
| 0 = disabled, 1 = local, 2 = remote. |
| A "set host *" connection is technically local but logically remote |
| */ |
| #define ENABLED(x) ((local && (x & 1)) || (!local && (x & 2))) |
| #else |
| #define ENABLED(x) (((local && !tcp_incoming) && (x & 1)) || \ |
| ((!local || tcp_incoming) && (x&2))) |
| #endif /* TCPSOCKET */ |
| |
| /* These are from the book */ |
| |
| #define tochar(ch) (((ch) + SP ) & 0xFF ) /* Number to character */ |
| #define xunchar(ch) (((ch) - SP ) & 0xFF ) /* Character to number */ |
| #define ctl(ch) (((ch) ^ 64 ) & 0xFF ) /* Control/Uncontrol toggle */ |
| #define unpar(ch) (((ch) & 127) & 0xFF ) /* Clear parity bit */ |
| |
| #ifndef NOLOCAL /* CONNECT return status codes */ |
| |
| /* Users will see the numbers so they can't be changed */ |
| /* Numbers >= 100 indicate connection loss */ |
| |
| #define CSX_NONE 0 /* No CONNECT yet so no status */ |
| #define CSX_ESCAPE 1 /* User Escaped back */ |
| #define CSX_TRIGGER 2 /* Trigger was encountered */ |
| #define CSX_IKSD 3 /* IKSD autosynchronization */ |
| #define CSX_APC 4 /* Application Program Command */ |
| #define CSX_IDLE 5 /* Idle limit exceeded */ |
| #define CSX_TN_ERR 6 /* Telnet Error */ |
| #define CSX_MACRO 7 /* Macro bound to keystroke */ |
| #define CSX_TIME 8 /* Time Limit exceeded */ |
| #define CSX_INTERNAL 100 /* Internal error */ |
| #define CSX_CARRIER 101 /* Carrier required but not detected */ |
| #define CSX_IOERROR 102 /* I/O error on connection */ |
| #define CSX_HOSTDISC 103 /* Disconnected by host */ |
| #define CSX_USERDISC 104 /* Disconnected by user */ |
| #define CSX_SESSION 105 /* Session Limit exceeded */ |
| #define CSX_TN_POL 106 /* Rejected due to Telnet Policy */ |
| #define CSX_KILL_SIG 107 /* Received Kill Signal */ |
| |
| /* SET TERMINAL IDLE-ACTION values */ |
| |
| #define IDLE_RET 0 /* Return to prompt */ |
| #define IDLE_EXIT 1 /* Exit from Kermit */ |
| #define IDLE_HANG 2 /* Hangup the connection */ |
| #define IDLE_OUT 3 /* OUTPUT a string */ |
| #define IDLE_TNOP 4 /* TELNET NOP */ |
| #define IDLE_TAYT 5 /* TELNET AYT */ |
| #endif /* NOLOCAL */ |
| |
| /* Modem and dialing definitions */ |
| |
| #ifndef NODIAL |
| |
| /* Modem capabilities (bit values) */ |
| #define CKD_AT 1 /* Hayes AT commands and responses */ |
| #define CKD_V25 2 /* V.25bis commands and responses */ |
| #define CKD_SB 4 /* Speed buffering */ |
| #define CKD_EC 8 /* Error correction */ |
| #define CKD_DC 16 /* Data compression */ |
| #define CKD_HW 32 /* Hardware flow control */ |
| #define CKD_SW 64 /* (Local) software flow control */ |
| #define CKD_KS 128 /* Kermit spoofing */ |
| #define CKD_TB 256 /* Made by Telebit */ |
| #define CKD_ID 512 /* Has Caller ID */ |
| |
| /* DIAL command result codes */ |
| #define DIA_UNK -1 /* No DIAL command given yet */ |
| #define DIA_OK 0 /* DIAL succeeded */ |
| #define DIA_NOMO 1 /* Modem type not specified */ |
| #define DIA_NOLI 2 /* Communication line not spec'd */ |
| #define DIA_OPEN 3 /* Line can't be opened */ |
| #define DIA_NOSP 4 /* Speed not specified */ |
| #define DIA_HANG 5 /* Hangup failure */ |
| #define DIA_IE 6 /* Internal error (malloc, etc) */ |
| #define DIA_IO 7 /* I/O error */ |
| #define DIA_TIMO 8 /* Dial timeout expired */ |
| #define DIA_INTR 9 /* Dialing interrupted by user */ |
| #define DIA_NRDY 10 /* Modem not ready */ |
| #define DIA_PART 11 /* Partial dial command OK */ |
| #define DIA_DIR 12 /* Dialing directory error */ |
| #define DIA_HUP 13 /* Modem was hung up OK */ |
| #define DIA_NRSP 19 /* No response from modem */ |
| #define DIA_ERR 20 /* Modem command error */ |
| #define DIA_NOIN 21 /* Failure to initialize modem */ |
| #define DIA_BUSY 22 /* Phone busy */ |
| #define DIA_NOCA 23 /* No carrier */ |
| #define DIA_NODT 24 /* No dialtone */ |
| #define DIA_RING 25 /* Ring, incoming call */ |
| #define DIA_NOAN 26 /* No answer */ |
| #define DIA_DISC 27 /* Disconnected */ |
| #define DIA_VOIC 28 /* Answered by voice */ |
| #define DIA_NOAC 29 /* Access denied, forbidden call */ |
| #define DIA_BLCK 30 /* Blacklisted */ |
| #define DIA_DELA 31 /* Delayed */ |
| #define DIA_FAX 32 /* Fax */ |
| #define DIA_DIGI 33 /* Digital Line */ |
| #define DIA_TAPI 34 /* TAPI dialing failure */ |
| #define DIA_UERR 98 /* Unknown error */ |
| #define DIA_UNSP 99 /* Unspecified failure detected by modem */ |
| |
| #define MDMINF struct mdminf |
| |
| MDMINF { /* Structure for modem-specific information */ |
| |
| char * name; /* Descriptive name */ |
| char * pulse; /* Command to force pulse dialing */ |
| char * tone; /* Command to force tone dialing */ |
| int dial_time; /* Time modem allows for dialing (secs) */ |
| char * pause_chars; /* Character(s) to tell modem to pause */ |
| int pause_time; /* Time associated with pause chars (secs) */ |
| char * wake_str; /* String to wakeup modem & put in cmd mode */ |
| int wake_rate; /* Delay between wake_str characters (msecs) */ |
| char * wake_prompt; /* String prompt after wake_str */ |
| char * dmode_str; /* String to put modem in dialing mode */ |
| char * dmode_prompt; /* String prompt for dialing mode */ |
| char * dial_str; /* Dialing string, with "%s" for number */ |
| int dial_rate; /* Interchar delay to modem (msec) */ |
| int esc_time; /* Escape sequence guard time (msec) */ |
| int esc_char; /* Escape character */ |
| char * hup_str; /* Hangup string */ |
| char * hwfc_str; /* Hardware flow control string */ |
| char * swfc_str; /* Software flow control string */ |
| char * nofc_str; /* No flow control string */ |
| char * ec_on_str; /* Error correction on string */ |
| char * ec_off_str; /* Error correction off string */ |
| char * dc_on_str; /* Data compression on string */ |
| char * dc_off_str; /* Data compression off string */ |
| char * aa_on_str; /* Autoanswer on string */ |
| char * aa_off_str; /* Autoanswer off string */ |
| char * sb_on_str; /* Speed buffering on string */ |
| char * sb_off_str; /* Speed buffering off string */ |
| char * sp_on_str; /* Speaker on string */ |
| char * sp_off_str; /* Speaker off string */ |
| char * vol1_str; /* Volume low string */ |
| char * vol2_str; /* Volume med string */ |
| char * vol3_str; /* Volume high string */ |
| char * ignoredt; /* Ignore dialtone string */ |
| char * ini2; /* Last-minute init string */ |
| long max_speed; /* Maximum interface speed */ |
| long capas; /* Capability bits */ |
| /* function to read modem's response string to a non-dialing command */ |
| _PROTOTYP( int (*ok_fn), (int,int) ); |
| }; |
| #endif /* NODIAL */ |
| |
| /* Symbols for File Attributes */ |
| |
| #define AT_XALL 0 /* All of them */ |
| #define AT_ALLY 1 /* All of them on (Yes) */ |
| #define AT_ALLN 2 /* All of them off (no) */ |
| #define AT_LENK 3 /* Length in K */ |
| #define AT_FTYP 4 /* File Type */ |
| #define AT_DATE 5 /* Creation date */ |
| #define AT_CREA 6 /* Creator */ |
| #define AT_ACCT 7 /* Account */ |
| #define AT_AREA 8 /* Area */ |
| #define AT_PSWD 9 /* Password for area */ |
| #define AT_BLKS 10 /* Blocksize */ |
| #define AT_ACCE 11 /* Access */ |
| #define AT_ENCO 12 /* Encoding */ |
| #define AT_DISP 13 /* Disposition */ |
| #define AT_LPRO 14 /* Local Protection */ |
| #define AT_GPRO 15 /* Generic Protection */ |
| #define AT_SYSI 16 /* System ID */ |
| #define AT_RECF 17 /* Record Format */ |
| #define AT_SYSP 18 /* System-Dependent Parameters */ |
| #define AT_LENB 19 /* Length in Bytes */ |
| #define AT_EOA 20 /* End of Attributes */ |
| |
| /* Kermit packet information structure */ |
| |
| struct pktinfo { /* Packet information structure */ |
| CHAR *bf_adr; /* buffer address */ |
| int bf_len; /* buffer length */ |
| CHAR *pk_adr; /* Packet address within buffer */ |
| int pk_len; /* length of data within buffer */ |
| int pk_typ; /* packet type */ |
| int pk_seq; /* packet sequence number */ |
| int pk_rtr; /* retransmission count */ |
| }; |
| |
| /* Send Modes (indicating which type of SEND command was used) */ |
| |
| #define SM_SEND 0 |
| #define SM_MSEND 1 |
| #define SM_RESEND 2 |
| #define SM_PSEND 3 |
| #define SM_MAIL 4 |
| #define SM_PRINT 5 |
| |
| #define OPTBUFLEN 256 |
| |
| /* File-related symbols and structures */ |
| /* Used by SET FILE command but also by protocol and i/o modules */ |
| |
| #define XMODE_A 0 /* Transfer mode Automatic */ |
| #define XMODE_M 1 /* Transfer mode Manual */ |
| |
| #define XYFILN 0 /* Naming */ |
| #define XYFN_L 0 /* Literal */ |
| #define XYFN_C 1 /* Converted */ |
| #define XYFILT 1 /* Type */ |
| #define XYFT_T 0 /* Text */ |
| #define XYFT_B 1 /* Binary */ |
| #define XYFT_I 2 /* Image or Block (VMS) */ |
| #define XYFT_L 3 /* Labeled (tagged binary) (VMS or OS/2) */ |
| #define XYFT_U 4 /* Binary Undefined (VMS) */ |
| #define XYFT_M 5 /* MacBinary (Macintosh) */ |
| #define XYFT_X 6 /* TENEX (FTP TYPE L 8) */ |
| #define XYFT_D 99 /* Debug (for session logs) */ |
| #define XYFILW 2 /* Warning */ |
| #define XYFILD 3 /* Display */ |
| #define XYFILC 4 /* Character set */ |
| #define XYFILF 5 /* Record Format */ |
| #define XYFF_S 0 /* Stream */ |
| #define XYFF_V 1 /* Variable */ |
| #define XYFF_VB 2 /* Variable with RCW's */ |
| #define XYFF_F 3 /* Fixed length */ |
| #define XYFF_U 4 /* Undefined */ |
| #define XYFILR 6 /* Record length */ |
| #define XYFILO 7 /* Organization */ |
| #define XYFO_S 0 /* Sequential */ |
| #define XYFO_I 1 /* Indexed */ |
| #define XYFO_R 2 /* Relative */ |
| #define XYFILP 8 /* Printer carriage control */ |
| #define XYFP_N 0 /* Newline (imbedded control characters) */ |
| #define XYFP_F 1 /* FORTRAN (space, 1, +, etc, in column 1 */ |
| #define XYFP_P 2 /* Special printer carriage controls */ |
| #define XYFP_X 4 /* None */ |
| #define XYFILX 9 /* Collision Action */ |
| #define XYFX_A 3 /* Append */ |
| #define XYFX_Q 5 /* Ask */ |
| #define XYFX_B 2 /* Backup */ |
| #define XYFX_D 4 /* Discard */ |
| #define XYFX_R 0 /* Rename */ |
| #define XYFX_X 1 /* Replace */ |
| #define XYFX_U 6 /* Update */ |
| #define XYFX_M 7 /* Modtimes differ */ |
| #define XYFILB 10 /* Blocksize */ |
| #define XYFILZ 11 /* Disposition */ |
| #define XYFZ_N 0 /* New, Create */ |
| #define XYFZ_A 1 /* New, append if file exists, else create */ |
| #define XYFZ_O 2 /* Old, file must exist */ |
| #define XYFILS 12 /* File Byte Size */ |
| #define XYFILL 13 /* File Label (VMS) */ |
| #define XYFILI 14 /* File Incomplete */ |
| #define XYFILQ 15 /* File path action (strip or not) */ |
| #define XYFILG 16 /* File download directory */ |
| #define XYFILA 17 /* Line terminator for local text files */ |
| #define XYFA_L 012 /* LF (as in UNIX) */ |
| #define XYFA_C 015 /* CR (as in OS-9 or Mac OS) */ |
| #define XYFA_2 000 /* CRLF -- Note: this must be defined as 0 */ |
| #define XYFILY 18 /* Destination */ |
| #define XYFILV 19 /* EOF Detection Method */ |
| #define XYEOF_L 0 /* File length */ |
| #define XYEOF_Z 1 /* Ctrl-Z in file */ |
| #define XYFILH 20 /* OUTPUT parameters - buffered, blocking, etc */ |
| #define XYFIBP 21 /* BINARY-PATTERN */ |
| #define XYFITP 22 /* TEXT-PATTERN */ |
| #define XYFIPA 23 /* PATTERNS ON/OFF */ |
| #define XYFILU 24 /* UCS ... */ |
| #define XYF_PRM 25 /* PERMISSIONS, PROTECTION */ |
| #define XYF_INSP 26 /* INSPECTION (SCAN) */ |
| #define XYF_DFLT 27 /* DEFAULT (character sets) */ |
| #define XYF_SSPA 28 /* STRINGSPACE */ |
| #define XYF_LSIZ 29 /* LISTSIZE */ |
| |
| /* File Type (return code) definitions and corresponding name strings */ |
| |
| #define FT_7BIT 0 /* 7-bit text */ |
| #define FT_8BIT 1 /* 8-bit text */ |
| #define FT_UTF8 2 /* UTF8 */ |
| #define FT_UCS2 3 /* UCS2 */ |
| #define FT_TEXT 4 /* Unknown text */ |
| #define FT_BIN 5 /* Binary */ |
| #define SCANFILEBUF 49152 /* Size of file scan (48K) */ |
| |
| /* Connection closed reasons */ |
| |
| #define WC_REMO 0 /* Closed by remote */ |
| #define WC_CLOS 1 /* Closed from our end */ |
| #define WC_TELOPT 2 /* Telnet negotiation failure */ |
| |
| #ifdef BIGBUFOK |
| #define FTPATTERNS 256 |
| #else |
| #define FTPATTERNS 64 |
| #endif /* BIGBUFOK */ |
| |
| #define SYS_UNK 0 /* Selected server system types */ |
| #define SYS_UNIX 1 |
| #define SYS_WIN32 2 |
| #define SYS_VMS 3 |
| #define SYS_OS2 4 |
| #define SYS_DOS 5 |
| #define SYS_TOPS10 6 |
| #define SYS_TOPS20 7 |
| #define SYS_VOS 8 |
| #define SYS_DG 9 |
| #define SYS_OSK 10 |
| #define SYS_MAX 11 |
| |
| #ifdef CK_SMALL |
| #define PWBUFL 63 |
| #else |
| #define PWBUFL 255 |
| #endif /* CK_SMALL */ |
| |
| #ifdef OS2 |
| struct tt_info_rec { /* Terminal emulation info */ |
| char *x_name; |
| char *x_aliases[4]; |
| char *x_id; |
| }; |
| #endif /* OS2 */ |
| |
| /* BEEP TYPES */ |
| #define BP_BEL 0 /* Terminal bell */ |
| #define BP_NOTE 1 /* Info */ |
| #define BP_WARN 2 /* Warning */ |
| #define BP_FAIL 3 /* Error */ |
| |
| #ifndef NOIKSD |
| #ifdef IKSDB /* IKSD Database definitions */ |
| |
| /* Field values */ |
| |
| #define DBF_INUSE 1 /* Flag bits... In use */ |
| #define DBF_USER 2 /* Real user (versus anonymous) */ |
| #define DBF_LOGGED 4 /* Logged in (versus not) */ |
| |
| /* Data Definitions... */ |
| |
| /* Numeric fields, hex, right justified, 0-filled on left */ |
| |
| #define db_FLAGS 0 /* Field 0: Flags */ |
| #define DB_FLAGS 0 /* Offset: 0 */ |
| #define dB_FLAGS 4 /* Length: 4 (hex digits) */ |
| |
| #define db_ATYPE 1 /* Field 1: Authentication type */ |
| #define DB_ATYPE 4 /* 4 hex digits */ |
| #define dB_ATYPE 4 |
| |
| #define db_AMODE 2 /* Field 2: Authentication mode */ |
| #define DB_AMODE 8 /* 4 hex digits */ |
| #define dB_AMODE 4 |
| |
| #define db_STATE 3 /* Field 3: State - 4 hex digits*/ |
| #define DB_STATE 12 /* 4 hex digits */ |
| #define dB_STATE 4 |
| |
| #define db_MYPID 4 /* Field 4: My PID */ |
| #define DB_MYPID 16 /* 16 hex digits left padded with 0 */ |
| #define dB_MYPID 16 |
| |
| #define db_SADDR 5 /* Field 5: Server (my) IP address */ |
| #define DB_SADDR 32 /* 16 hex digits left padded with 0 */ |
| #define dB_SADDR 16 |
| |
| #define db_CADDR 6 /* Field 6: Client IP address */ |
| #define DB_CADDR 48 /* 16 hex digits left padded with 0 */ |
| #define dB_CADDR 16 |
| |
| /* Date-time fields (17 right-adjusted in 18 for Y10K readiness) */ |
| |
| #define db_START 7 /* Field 7: Session start date-time */ |
| #define DB_START 65 /* 64 is leading space for Y10K */ |
| #define dB_START 17 |
| |
| #define db_LASTU 8 /* Field 8: Last lastu date-time */ |
| #define DB_LASTU 83 /* 82 is leading space for Y10K */ |
| #define dB_LASTU 17 |
| |
| #define db_ULEN 9 /* Field 9: Length of Username */ |
| #define DB_ULEN 100 /* 4 hex digits */ |
| #define dB_ULEN 4 |
| |
| #define db_DLEN 10 /* Field 10: Length of Directory */ |
| #define DB_DLEN 104 /* 4 hex digits */ |
| #define dB_DLEN 4 |
| |
| #define db_ILEN 11 /* Field 11: Length of Info */ |
| #define DB_ILEN 108 /* 4 hex digits */ |
| #define dB_ILEN 4 |
| |
| #define db_PAD1 12 /* Field 12: (Reserved) */ |
| #define DB_PAD1 112 /* filled with spaces */ |
| #define dB_PAD1 912 |
| |
| /* String fields, all right-padded with blanks */ |
| |
| #define db_USER 13 /* Field 13: Username */ |
| #define DB_USER 1024 /* right-padded with spaces */ |
| #define dB_USER 1024 |
| |
| #define db_DIR 14 /* Field 14: Current directory */ |
| #define DB_DIR 2048 /* right-padded with spaces */ |
| #define dB_DIR 1024 |
| |
| #define db_INFO 15 /* Field 15: State-specific info */ |
| #define DB_INFO 3072 /* right-padded with spaces */ |
| #define dB_INFO 1024 |
| |
| #define DB_RECL 4096 /* Database record length */ |
| |
| /* Offset, length, and type of each field thru its db_XXX symbol */ |
| |
| #define DBT_HEX 1 /* Hexadecimal number */ |
| #define DBT_STR 2 /* String */ |
| #define DBT_DAT 3 /* Date-Time yyyymmdd hh:mm:ss */ |
| #define DBT_UND 9 /* Undefined and blank */ |
| |
| struct iksdbfld { |
| int off; /* Position (offset) */ |
| int len; /* Length (bytes) */ |
| int typ; /* Data type */ |
| }; |
| _PROTOTYP(int dbinit, (void)); |
| _PROTOTYP(int initslot, (int)); |
| _PROTOTYP(int getslot, (void)); |
| _PROTOTYP(int freeslot, (int)); |
| _PROTOTYP(int updslot, (int)); |
| _PROTOTYP(int slotstate, (int, char *, char *, char *)); |
| _PROTOTYP(int slotdir, (char *, char *)); |
| #endif /* IKSDB */ |
| #endif /* NOIKSD */ |
| |
| /* ANSI forward declarations for protocol-related functions. */ |
| |
| _PROTOTYP( int input, (void) ); |
| _PROTOTYP( int inibufs, (int, int) ); |
| _PROTOTYP( int makebuf, (int, int, CHAR [], struct pktinfo *) ); |
| _PROTOTYP( int mksbuf, (int) ); |
| _PROTOTYP( int mkrbuf, (int) ); |
| _PROTOTYP( int spack, (char, int, int, CHAR *) ); |
| _PROTOTYP( VOID proto, (void) ); |
| _PROTOTYP( int rpack, (void) ); |
| _PROTOTYP( int ack, (void) ); |
| _PROTOTYP( int nack, (int) ); |
| _PROTOTYP( int ackn, (int) ); |
| _PROTOTYP( int ack1, (CHAR *) ); |
| _PROTOTYP( int ackns, (int, CHAR *) ); |
| #ifdef STREAMING |
| _PROTOTYP( int fastack, (void) ); |
| #endif /* STREAMING */ |
| _PROTOTYP( int resend, (int) ); |
| _PROTOTYP( int errpkt, (CHAR *) ); |
| _PROTOTYP( VOID logpkt, (char, int, CHAR *, int) ); |
| _PROTOTYP( CHAR dopar, (CHAR) ); |
| _PROTOTYP( int chk1, (CHAR *, int) ); |
| _PROTOTYP( unsigned int chk2, (CHAR *, int) ); |
| _PROTOTYP( unsigned int chk3, (CHAR *, int) ); |
| _PROTOTYP( int sipkt, (char) ); |
| _PROTOTYP( int sopkt, (void) ); |
| _PROTOTYP( int sinit, (void) ); |
| _PROTOTYP( VOID rinit, (CHAR *) ); |
| _PROTOTYP( int spar, (CHAR *) ); |
| _PROTOTYP( int rcvfil, (char *) ); |
| _PROTOTYP( CHAR * rpar, (void) ); |
| _PROTOTYP( int gnfile, (void) ); |
| _PROTOTYP( int getsbuf, (int) ); |
| _PROTOTYP( int getrbuf, (void) ); |
| _PROTOTYP( int freesbuf, (int) ); |
| _PROTOTYP( int freerbuf, (int) ); |
| _PROTOTYP( int dumpsbuf, (void) ); |
| _PROTOTYP( int dumprbuf, (void) ); |
| _PROTOTYP( VOID freerpkt, (int) ); |
| _PROTOTYP( int chkwin, (int, int, int) ); |
| _PROTOTYP( int rsattr, (CHAR *) ); |
| _PROTOTYP( char *getreason, (char *) ); |
| _PROTOTYP( int scmd, (char, CHAR *) ); |
| _PROTOTYP( int encstr, (CHAR *) ); |
| _PROTOTYP( int decode, (CHAR *, int (*)(char), int) ); |
| _PROTOTYP( int bdecode, (CHAR *, int (*)(char)) ); |
| _PROTOTYP( int fnparse, (char *) ); |
| _PROTOTYP( int syscmd, (char *, char *) ); |
| _PROTOTYP( int cwd, (char *) ); |
| _PROTOTYP( int remset, (char *) ); |
| _PROTOTYP( int initattr, (struct zattr *) ); |
| _PROTOTYP( int gattr, (CHAR *, struct zattr *) ); |
| _PROTOTYP( int adebu, (char *, struct zattr *) ); |
| _PROTOTYP( int canned, (CHAR *) ); |
| _PROTOTYP( int opent, (struct zattr *) ); |
| _PROTOTYP( int ckopenx, (struct zattr *) ); |
| _PROTOTYP( int opena, (char *, struct zattr *) ); |
| _PROTOTYP( int openi, (char *) ); |
| _PROTOTYP( int openo, (char *, struct zattr *, struct filinfo *) ); |
| _PROTOTYP( int openc, (int, char *) ); |
| _PROTOTYP( int reof, (char *, struct zattr *) ); |
| _PROTOTYP( VOID reot, (void) ); |
| _PROTOTYP( int sfile, (int) ); |
| _PROTOTYP( int sattr, (int, int) ); |
| _PROTOTYP( int sdata, (void) ); |
| _PROTOTYP( int seof, (int) ); |
| _PROTOTYP( int sxeof, (int) ); |
| _PROTOTYP( int seot, (void) ); |
| _PROTOTYP( int window, (int) ); |
| _PROTOTYP( int clsif, (void) ); |
| _PROTOTYP( int clsof, (int) ); |
| _PROTOTYP( CHAR setgen, (char, char *, char *, char *) ); |
| _PROTOTYP( int getpkt, (int, int) ); |
| _PROTOTYP( int maxdata, (void) ); |
| _PROTOTYP( int putsrv, (char) ); |
| _PROTOTYP( int puttrm, (char) ); |
| _PROTOTYP( int putque, (char) ); |
| _PROTOTYP( int putfil, (char) ); |
| _PROTOTYP( int putmfil, (char) ); |
| _PROTOTYP( int zputfil, (char) ); |
| _PROTOTYP( VOID zdstuff, (CHAR) ); |
| _PROTOTYP( int tinit, (int) ); |
| _PROTOTYP( VOID pktinit, (void) ); |
| _PROTOTYP( VOID resetc, (void) ); |
| _PROTOTYP( VOID xsinit, (void) ); |
| _PROTOTYP( int adjpkl, (int,int,int) ); |
| _PROTOTYP( int chktimo, (int,int) ); |
| _PROTOTYP( int nxtpkt, (void) ); |
| _PROTOTYP( VOID rcalcpsz, (void) ); |
| _PROTOTYP( int srinit, (int, int, int) ); |
| _PROTOTYP( VOID tstats, (void) ); |
| _PROTOTYP( VOID fstats, (void) ); |
| _PROTOTYP( VOID intmsg, (long) ); |
| _PROTOTYP( VOID ermsg, (char *) ); |
| _PROTOTYP( int chkint, (void) ); |
| _PROTOTYP( VOID sdebu, (int) ); |
| _PROTOTYP( VOID rdebu, (CHAR *, int) ); |
| _PROTOTYP( char * dbchr, ( int ) ); |
| #ifdef COMMENT |
| _PROTOTYP( SIGTYP stptrap, (int, int) ); |
| _PROTOTYP( SIGTYP trap, (int, int) ); |
| #else |
| _PROTOTYP( SIGTYP stptrap, (int) ); |
| _PROTOTYP( SIGTYP trap, (int) ); |
| #endif /* COMMENT */ |
| _PROTOTYP( char * ck_errstr, (void) ); |
| #ifndef NOXFER |
| _PROTOTYP( int agnbyte, (void) ); |
| #endif /* NOXFER */ |
| _PROTOTYP( int xgnbyte, (int, int, int (*)(void)) ); |
| _PROTOTYP( int xpnbyte, (int, int, int, int (*)(char)) ); |
| |
| /* User interface functions needed by main program, etc. */ |
| |
| _PROTOTYP( int doconect, (int,int) ); |
| _PROTOTYP( VOID setflow, (void) ); |
| _PROTOTYP( VOID prescan, (int) ); |
| _PROTOTYP( VOID setint, (void) ); |
| _PROTOTYP( VOID doinit, (void) ); |
| _PROTOTYP( VOID dofast, (void) ); |
| _PROTOTYP( VOID cmdini, (void) ); |
| _PROTOTYP( int dotake, (char *) ); |
| _PROTOTYP( int cmdlin, (void) ); |
| #ifdef OS2 |
| _PROTOTYP( int conect, (int) ); |
| #else /* OS2 */ |
| _PROTOTYP( int conect, (void) ); |
| #endif /* OS2 */ |
| _PROTOTYP( int ckcgetc, (int) ); |
| _PROTOTYP( int ckcputc, (int) ); |
| _PROTOTYP (int mdmhup, (void) ); |
| _PROTOTYP( VOID herald, (void) ); |
| _PROTOTYP( VOID fixcmd, (void) ); |
| _PROTOTYP( int doarg, (char) ); |
| _PROTOTYP( int doxarg, (char **, int) ); |
| _PROTOTYP( VOID usage, (void) ); |
| _PROTOTYP( VOID doclean, (int) ); |
| _PROTOTYP( int sndhlp, () ); |
| _PROTOTYP( int sndstring, (char *) ); |
| _PROTOTYP( VOID ckhost, (char *, int) ); |
| _PROTOTYP( int gettcs, (int, int) ); |
| _PROTOTYP( VOID getdialenv, (void) ); |
| _PROTOTYP( VOID setprefix, (int) ); |
| _PROTOTYP(VOID initproto,(int,char *,char *,char *,char *,char *,char*,char*)); |
| _PROTOTYP( VOID initpat, (void) ); |
| _PROTOTYP( VOID initcsets, (void) ); |
| _PROTOTYP( char * getsysid, (char *) ); |
| _PROTOTYP( int getsysix, (char *) ); |
| #ifdef CK_TIMERS |
| _PROTOTYP( VOID rttinit, (void) ); |
| _PROTOTYP( int getrtt, (int, int) ); |
| #endif /* CK_TIMERS */ |
| |
| _PROTOTYP( int is_a_tty, (int) ); |
| _PROTOTYP( int snddir, (char *) ); |
| _PROTOTYP( int snddel, (char *) ); |
| _PROTOTYP( int sndtype, (char *) ); |
| _PROTOTYP( int dooutput, (char *, int) ); |
| _PROTOTYP( int isabsolute, (char *) ); |
| _PROTOTYP( VOID whoarewe, (void) ); |
| _PROTOTYP( int ckmkdir, (int, char *, char **, int, int) ); |
| _PROTOTYP( int autoexitchk, (CHAR) ); |
| _PROTOTYP( VOID fcps, (void) ); |
| #ifdef OS2 |
| _PROTOTYP( VOID logchar, (unsigned short) ); |
| #else /* OS2 */ |
| _PROTOTYP( VOID logchar, (char) ); |
| #endif /* OS2 */ |
| _PROTOTYP( VOID logstr, (char *, int) ); |
| |
| _PROTOTYP( VOID dologend, (void) ); |
| #ifdef NOLOCAL |
| #define dologshow() |
| #else |
| _PROTOTYP( long dologshow, (int) ); |
| #endif /* NOLOCAL */ |
| |
| #ifdef NODISPLAY |
| #define fxdinit(a) |
| #else |
| _PROTOTYP( VOID fxdinit, (int) ); |
| #endif /* NODISPLAY */ |
| |
| _PROTOTYP( int fileselect, (char *, |
| char *, char *, char *, char *, |
| long, long, |
| int, int, |
| char **) ); |
| |
| |
| _PROTOTYP( char * whoami, (void) ); |
| _PROTOTYP( int shoesc, (int) ); |
| |
| #ifdef CK_APC |
| _PROTOTYP( int chkspkt, (char *) ); |
| _PROTOTYP( int kstart, (CHAR) ); |
| _PROTOTYP( VOID autodown, (int)); |
| #ifdef CK_XYZ |
| _PROTOTYP( int zstart, (CHAR) ); |
| #endif /* CK_XYZ */ |
| #ifdef OS2 |
| _PROTOTYP(void apc_command, (int, char*)); |
| #endif /* OS2 */ |
| #endif /* CK_APC */ |
| |
| /* User Query data structures and functions */ |
| |
| struct txtbox { |
| char * t_buf; /* Destination buffer address */ |
| int t_len; /* Destination buffer length */ |
| char * t_lbl; /* Label for this field */ |
| char * t_dflt; /* Default response for this field */ |
| int t_echo; /* 0 = no, 1 = yes, 2 = asterisks */ |
| }; |
| |
| #define DEFAULT_UQ_TIMEOUT 0 |
| _PROTOTYP(int uq_ok, (char *,char *,int,char **,int) ); |
| _PROTOTYP(int uq_txt, (char *,char *,int,char **,char *,int,char *,int)); |
| _PROTOTYP(int uq_mtxt, (char *,char **,int,struct txtbox[]) ); |
| _PROTOTYP(int uq_file, (char *,char *,int,char **,char *,char *,int)); |
| |
| #ifdef CK_URL |
| struct urldata { |
| char * sav; /* The URL itself */ |
| char * svc; /* Service */ |
| char * usr; /* User */ |
| char * psw; /* Password */ |
| char * hos; /* Host */ |
| char * por; /* Port */ |
| char * pth; /* Path */ |
| }; |
| _PROTOTYP(int urlparse, (char *, struct urldata *)); |
| #endif /* CK_URL */ |
| |
| #endif /* CKCKER_H */ |
| |
| /* End of ckcker.h */ |