home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <exec/types.h>
- #include <sys/socket.h>
-
- /* Definitions common to both FTP servers and clients */
-
- #define BLKSIZE 2048 /* Chunk size for file I/O */
-
- #define ASCII_TYPE 0
- #define IMAGE_TYPE 1
- #define LOGICAL_TYPE 2
-
- /* In ftpsubr.c: */
- long sendfile (FILE *fp,LONG s,int mode,int hash);
- long recvfile (FILE *fp,LONG s,int mode,int hash);
- int isbinary (FILE *fp);
-
- // External definitions
- extern char *SignOn;
- extern char *Userfile;
- extern char *curftwin;
- extern int LogLevel;
- extern char *DefDirCommand;
- extern char *ArgDirCommand;
-
- int recvchar(LONG s);
- int usputc(LONG s,char c);
- int usvprintf(int s,char *fmt, va_list args);
- int usprintf(LONG s,char *fmt,...);
- int tprintf(char *fmt,...);
- int tputc(char c);
- int usputs(LONG s,char *x);
- int tputs(char *s);
-
- char *pathname(char *cd,char *path);
-
- void ReadConfig(void);
- void AddLog(char *fmt,...);
-
- #define CTLZ 26 /* EOF for CP/M systems */
- #define IPPORT_FTPD 20 /* FTP data port */
-
- struct ftpserv {
- LONG control; /* Control socket */
- LONG data; /* Data socket */
- LONG pdata; /* Pasave socket */
- char type; /* Transfer type */
- int logbsize; /* Logical byte size for logical type */
-
- FILE *fp; /* File descriptor being transferred */
- struct sockaddr_in port;/* Remote port for data connection */
- struct sockaddr_in pasv;/* For Passive Mode */
- char *username; /* Arg to USER command */
- char *path; /* Allowable path prefix */
- LONG perms; /* Permission flag bits */
- #define FTP_READ 1 /* Read files */
- #define FTP_CREATE 2 /* Create new files */
- #define FTP_WRITE 4 /* Overwrite or delete existing files */
- #define FTP_MULTIUSER 256 /* Test name with multiuser (and login) */
- #define FTP_NOEXTDIR 512 /* Do not use the external dir command for this user */
- char *cd; /* Current directory name */
- // struct timer tdisc; /* Disconnection timeout timer - WG7J */
- };
-
- /* FTP commands */
- #define USER_CMD 0
- #define ACCT_CMD 1
- #define PASS_CMD 2
- #define TYPE_CMD 3
- #define LIST_CMD 4
- #define CWD_CMD 5
- #define DELE_CMD 6
- #define NAME_CMD 7
- #define QUIT_CMD 8
- #define RETR_CMD 9
- #define STOR_CMD 10
- #define PORT_CMD 11
- #define NLST_CMD 12
- #define PWD_CMD 13
- #define XPWD_CMD 14
- #define MKD_CMD 15
- #define XMKD_CMD 16
- #define XRMD_CMD 17
- #define RMD_CMD 18
- #define STRU_CMD 19
- #define MODE_CMD 20
- #define PASV_CMD 21
-