home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <arpa/ftp.h>
- #include <netinet/in.h>
- #include <netdb.h>
-
- #define EXIT(con,e) \
- ({ con -> errno = e; \
- if ( (con->func != NULL) && (e < 0) ) \
- (*(con->func))(con,e,FtpMessage(e));\
- e;\
- })
-
- #define QUIT 0
- #define Ctrl(x) ((x) - '@')
- #define FREE(x) memset ( &x , '\0' , sizeof x )
- #define CUT(x) ((x)&0xff)
-
- typedef int STATUS;
- typedef char String[256];
- typedef int Answers[];
-
- typedef struct
- {
- int sock;
- FILE *data;
- char mode;
- int errno;
- int ch;
- STATUS (*func)();
- STATUS (*debug)();
- } FTP;
-
- #define FtpSetErrorHandler(con,f) con->func = f;
- #define FtpSetDebugHandler(con,f) con->debug = f;
-
- #define FtpAccount(ftp,acc) FtpCommand(ftp,"ACCT %s",acc,230,EOF)
- #define FtpUser(ftp,user) FtpCommand(ftp,"USER %s",user,230,331,332,EOF)
- #define FtpPassword(ftp,pas) FtpCommand(ftp,"PASS %s",pas,230,332,EOF)
- #define FtpType(ftp,type) FtpCommand(ftp,"TYPE %c",type,200,EOF)
- #define FtpChdir(ftp,dir) FtpCommand(ftp,"CWD %s",dir,200,250,EOF)
- #define FtpMkdir(ftp,dir) FtpCommand(ftp,"MKD %s",dir,200,257,EOF)
- #define FtpRm(ftp,dir) FtpCommand(ftp,"DELE %s",dir,200,250,EOF)
- #define FtpGetFile(ftp,file) FtpCommand(ftp,"RETR %s",file,\
- 200,125,150,250,EOF)
- #define FtpPutFile(ftp,file) FtpCommand(ftp,"STOR %s",file,\
- 200,125,150,250,EOF)
- #define FtpAscii(ftp) FtpType(ftp,'A')
- #define FtpBinary(ftp) FtpType(ftp,'I')
- #define FtpOpenRead(ftp,file) FtpData(ftp,"RETR %s",file,"r")
- #define FtpOpenWrite(ftp,file) FtpData(ftp,"STOR %s",file,"w")
- #define FtpOpenAppend(ftp,file) FtpData(ftp,"APPE %s",file,"r")
- #define FtpDirectory(ftp,pat,out) FtpRetr(ftp,"LIST %s",pat,out)
- #define FtpDir(ftp,out) FtpRetr(ftp,"LIST","",out)
- #define FtpGet(ftp,in,out) FtpRetr(ftp,"RETR %s",in,out)
-
-
- FILE
- * FtpFullOpen(char * file,char * mode );
- STATUS
- FtpBye (FTP * con),
- FtpClose ( FTP *),
- FtpConnect ( FTP **con,char *hostname),
- FtpFullClose(FILE *),
- FtpRetr ( FTP *con , char * command , char * inp , char * out),
- FtpGetString ( FTP * con , char * str ),
- FtpDebug ( FTP * con ),
- FtpInitMessageList(),
- FtpLogin ( FTP **con, char * host , char * user , char * pass , char * acct),
- FtpMove ( FTP *con,char * old,char *new),
- FtpData( FTP * con , char * command , char * param , char * mode ),
- FtpPort ( FTP *con ,int ,int ,int ,int ,int ,int ),
- FtpPut ( FTP * con , char * inp , char * out),
- FtpRead ( FTP * con),
- FtpOpenDir( FTP * con , char * files ),
- FtpSendMessage( FTP * con , char * Message ),
- FtpWrite ( FTP * con , char c);
-
- int
- FtpGetMessage( FTP * con , char * Message),
- FtpNumber ( char * Message );
-
- char
- *FtpPwd(FTP *con),
- *FtpMessage(int Number);
-
-
-