home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 October
/
usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso
/
misc
/
volume38
/
libftp
/
part01
/
FtpLibrary.h
< prev
next >
Wrap
C/C++ Source or Header
|
1993-07-13
|
3KB
|
89 lines
#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);