home *** CD-ROM | disk | FTP | other *** search
- #ifndef __DCP
- #define __DCP
- /*
- * History:77,17
- * Mon May 15 19:54:43 1989 change portactive to port_active
- * Mon May 15 19:51:13 1989 Add portactive flag
- * 19 Mar 1990 Add hostable.h header ahd
- *
- */
-
- /*
- For best results in visual layout while viewing this file, set
- tab stops to every 4 columns.
- */
-
- /*
- dcp.h
- */
-
- /* DCP a uucp clone. Copyright Richard H. Lamb 1985,1986,1987 */
-
- #define MAXPACK 256
-
- #define ERROR 10
- #define EMPTY 11
-
- /*--------------------------------------------------------------------*/
- /* Define high level state machine levels. These levels define */
- /* processing during initialization, connection and */
- /* termination, but not during actual file transfers */
- /*--------------------------------------------------------------------*/
-
- typedef enum {
- CONN_INITIALIZE = 'A', /* Select system to call, if any */
- CONN_CALLUP, /* Dial out to another system */
- CONN_HOTMODEM, /* Initialize for a modem already
- off-hook */
- CONN_ANSWER, /* Wait for phone to ring and user to
- login */
- CONN_LOGIN, /* Modem is connected, do a login */
- CONN_HOTLOGIN, /* Modem is connected, initialize user
- from command line w/o login */
- CONN_PROTOCOL, /* Exchange protocol information */
- CONN_SERVER, /* Process files after dialing out */
- CONN_CLIENT, /* Process files after being called */
- CONN_TERMINATE, /* Terminate procotol */
- CONN_DROPLINE, /* Hangup the telephone */
- CONN_EXIT } /* Exit state machine loop */
- CONN_STATE ;
-
- /*--------------------------------------------------------------------*/
- /* File transfer states */
- /*--------------------------------------------------------------------*/
-
- typedef enum {
- XFER_SENDINIT = 'a', /* Initialize outgoing protocol */
- XFER_MASTER, /* Begin master mode */
- XFER_FILEDONE, /* Receive or transmit is complete */
- XFER_NEXTJOB, /* Look for work in local queue */
- XFER_REQUEST, /* Process work in local queue */
- XFER_PUTFILE, /* Send a file to remote host at our
- request */
- XFER_GETFILE, /* Retrieve a file from a remote host
- at our request */
- XFER_SENDDATA, /* Remote accepted our work, send data */
- XFER_SENDEOF, /* File xfer complete, send EOF */
- XFER_NOLOCAL, /* No local work, remote have any? */
- XFER_SLAVE, /* Begin slave mode */
- XFER_RECVINIT, /* Initialize Receive protocol */
- XFER_RECVHDR, /* Receive header from other host */
- XFER_GIVEFILE, /* Send a file to remote host at their
- request */
- XFER_TAKEFILE, /* Retrieve a file from a remote host
- at their request */
- XFER_RECVDATA, /* Receive file data from other host */
- XFER_RECVEOF, /* Close file received from other host */
- XFER_NOREMOTE, /* No remote work, local have any? */
- XFER_LOST, /* Lost the other host, flame out */
- XFER_ABORT, /* Internal error, flame out */
- XFER_ENDP, /* End the protocol */
- XFER_EXIT /* Return to caller */
- } XFER_STATE ;
-
- #define RETRY (-2)
- #define FAILED (-1)
- #define OK 0
-
- typedef int (*procref)();
-
- typedef struct {
- char type;
- procref getpkt, sendpkt, openpk, closepk, rdmsg, wrmsg, eofpkt,
- filepkt;
- } Proto;
-
-
- extern size_t pktsize; /* packet size for this protocol*/
- extern FILE *syslog; /* syslog file pointer */
- extern char workfile[FILENAME_MAX];
- /* name of current workfile */
- extern FILE *fwork; /* current work file pointer */
- extern FILE *xfer_stream; /* current disk file stream for file
- being transfered */
- extern FILE *fsys;
-
- extern boolean callnow; /* TRUE = call no matter what L.SYS says */
-
- extern char *Rmtname; /* system we WANT to talk to */
-
- extern char rmtname[20]; /* system we end up talking to */
-
- extern char s_systems[FILENAME_MAX];
- /* full-name of systems file */
- extern struct HostTable *hostp;
- extern struct HostStats remote_stats;
- /* host status, as defined by hostatus */
-
- int dcpmain(int argc,char * *argv);
-
- #endif /* __DCP */
-