/******************************************************************** * wilkinson * 3.8VMS-1 * 1995/11/24 14:30 * gopher_root1:[gopher.g2.vms2_13.gopherd]ftp.h,v * Exp * * Paul Lindner, University of Minnesota CIS. * * Copyright 1991, 1992 by the Regents of the University of Minnesota * see the file "Copyright" in the distribution for conditions of use. ********************************************************************* * MODULE: ftp.h * Declartions for Routines to translate gopher protocol to ftp protocol. ********************************************************************* * Revision History: * ftp.h,v * Revision 3.8VMS-1 1995/11/24 14:30 wilkinson * Added .error field within FTP structure and macros to read & set it * * Revision 3.8VMS 1995/09/25 11:35 wilkinson * Consolodate VMS/Unix source code for server as well as client * - use __VMS instead of VMS as trigger for VMS items * * Revision 3.8 1994/07/31 04:56:51 lindner * Mondo new stuff for ftp gateway * * Revision 3.7 1994/07/21 15:45:07 lindner * Gopher+ FTP gateway (modified from patch from Brian Coan) * * Revision 3.6 1994/06/29 05:23:14 lindner * Use an enum * * Revision 3.5 1994/03/08 15:55:34 lindner * gcc -Wall fixes * * Revision 3.4 1994/01/20 06:41:18 lindner * FTPtype macros changed to give FTPcommand the (char *) it was expecting * instead of the (char) is was getting. * * Revision 3.3 1993/12/16 11:34:42 lindner * Fixes to work with VM ftp servers * * Revision 3.2 1993/09/21 04:16:15 lindner * Fix for macro declarations * * *********************************************************************/ #include "boolean.h" typedef enum {FTP_UNKNOWN, FTP_VMS, FTP_NOVELL, FTP_UNIX, FTP_MTS, FTP_WINNT, FTP_MACOS, FTP_VM, FTP_UNIX_L8, FTP_MICRO_VAX, FTP_OS2 } FTPsystype; struct FTP_struct { int control_sock; int data_sock; char mode; FTPsystype Ftptype; #ifdef VMS_SERVER boolean error; #endif }; typedef struct FTP_struct FTP; /** Control socket access routines **/ #define FTPsetControl(ftp,num) ((ftp)->control_sock=(num)) #define FTPgetControl(ftp) ((ftp)->control_sock) /** Data socket access routines **/ #define FTPsetData(ftp,num) ((ftp)->data_sock=(num)) #define FTPgetData(ftp) ((ftp)->data_sock) #ifdef VMS_SERVER #define FTPisErrored(a) ((a)->error) #define FTPsetErrored(a,b) ((a)->error=b) #endif /** Ftp type access routines **/ #define FTPsetType(ftp,num) ((ftp)->Ftptype=(num)) #define FTPgetType(ftp) ((ftp)->Ftptype) /** Type command **/ #define FTPtype(ftp,type) FTPcommand(ftp,"TYPE %s",type,201) #define FTPbinary(ftp) FTPtype(ftp,"I") #define FTPascii(ftp) FTPtype(ftp,"A") /** Chdir **/ /*#define FTPchdir(ftp,dir) FTPcommand(ftp,"CWD %s",dir,299)*/ void FTPcleanup(); void FTPcloseData(); void FTPdestroy(); void FTPfindType(); void FTPbyebye(); void FTPopenData(); boolean IsBinaryType(); void FTPabort(); #ifdef __VMS int FTPerrorMessage(); int FTPinfoMessage(); #endif .