/* ckcker.h -- Symbol and macro definitions for C-Kermit */ /* Author: Frank da Cruz , 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 */