home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD1.bin / useful / comm / tcp / ftpdaemon / source / ftp.h < prev    next >
C/C++ Source or Header  |  1994-04-26  |  2KB  |  88 lines

  1. #include <stdio.h>
  2. #include <exec/types.h>
  3. #include <sys/socket.h>
  4.  
  5. /* Definitions common to both FTP servers and clients */
  6.  
  7. #define    BLKSIZE    2048    /* Chunk size for file I/O */
  8.  
  9. #define    ASCII_TYPE        0
  10. #define    IMAGE_TYPE        1
  11. #define    LOGICAL_TYPE    2
  12.  
  13. /* In ftpsubr.c: */
  14. long sendfile (FILE *fp,LONG s,int mode,int hash);
  15. long recvfile (FILE *fp,LONG s,int mode,int hash);
  16. int isbinary (FILE *fp);
  17.  
  18. // External definitions
  19. extern char *SignOn;
  20. extern char *Userfile;
  21. extern char *curftwin;
  22. extern int LogLevel;
  23. extern char *DefDirCommand;
  24. extern char *ArgDirCommand;
  25.  
  26. int recvchar(LONG s);
  27. int usputc(LONG s,char c);
  28. int usvprintf(int s,char *fmt, va_list args);
  29. int usprintf(LONG s,char *fmt,...);
  30. int tprintf(char *fmt,...);
  31. int tputc(char c);
  32. int usputs(LONG s,char *x);
  33. int tputs(char *s);
  34.  
  35. char *pathname(char *cd,char *path);
  36.  
  37. void ReadConfig(void);
  38. void AddLog(char *fmt,...);
  39.  
  40. #define CTLZ        26        /* EOF for CP/M systems */
  41. #define IPPORT_FTPD    20        /* FTP data port */
  42.  
  43. struct ftpserv {
  44.     LONG control;            /* Control socket */
  45.     LONG data;                /* Data socket */
  46.     LONG pdata;                /* Pasave socket */
  47.     char type;                /* Transfer type */
  48.     int logbsize;            /* Logical byte size for logical type */
  49.  
  50.     FILE *fp;                /* File descriptor being transferred */
  51.     struct sockaddr_in port;/* Remote port for data connection */
  52.     struct sockaddr_in pasv;/* For Passive Mode */
  53.     char *username;        /* Arg to USER command */
  54.     char *path;                /* Allowable path prefix */
  55.     LONG perms;                /* Permission flag bits */
  56. #define    FTP_READ    1        /* Read files */
  57. #define    FTP_CREATE    2    /* Create new files */
  58. #define    FTP_WRITE    4    /* Overwrite or delete existing files */
  59. #define  FTP_MULTIUSER 256 /* Test name with multiuser (and login) */
  60. #define  FTP_NOEXTDIR  512 /* Do not use the external dir command for this user */
  61.     char *cd;                /* Current directory name */
  62. //    struct timer tdisc;    /* Disconnection timeout timer -  WG7J */
  63. };
  64.  
  65. /* FTP commands */
  66. #define    USER_CMD    0
  67. #define    ACCT_CMD    1
  68. #define    PASS_CMD    2
  69. #define    TYPE_CMD    3
  70. #define    LIST_CMD    4
  71. #define    CWD_CMD    5
  72. #define    DELE_CMD    6
  73. #define    NAME_CMD    7
  74. #define    QUIT_CMD    8
  75. #define    RETR_CMD    9
  76. #define    STOR_CMD    10
  77. #define    PORT_CMD    11
  78. #define    NLST_CMD    12
  79. #define    PWD_CMD    13
  80. #define    XPWD_CMD    14
  81. #define    MKD_CMD    15
  82. #define    XMKD_CMD    16
  83. #define    XRMD_CMD    17
  84. #define    RMD_CMD    18
  85. #define    STRU_CMD    19
  86. #define    MODE_CMD    20
  87. #define PASV_CMD 21
  88.