4 enum {FTP_DIR, FTP_FILE}; /* ftp_dirent type */
30 FTP_MOD_REMDIR = 0x100,
31 FTP_MOD_LOCDIR = 0x200
48 int ctl, lis, data; /* sockets */
54 struct ftp_op *qhead, *qtail;
56 int (*cproc)(struct ftp *ftp, int code, const char *buf, void *cls);
57 void (*dproc)(struct ftp *ftp, const char *buf, int sz, void *cls);
58 void *cproc_cls, *dproc_cls;
65 struct ftp_dirent *dirent[2]; /* dynamic array */
71 struct ftp *ftp_alloc(void);
72 void ftp_free(struct ftp *ftp);
74 void ftp_auth(const char *user, const char *pass);
76 int ftp_connect(struct ftp *ftp, const char *host, int port);
77 void ftp_close(struct ftp *ftp);
79 int ftp_sockets(struct ftp *ftp, int *sockv, int maxsize);
81 int ftp_handle(struct ftp *ftp, int s);
83 int ftp_queue(struct ftp *ftp, int op, const char *arg);
84 int ftp_waitresp(struct ftp *ftp, time_t timeout);
86 int ftp_update(struct ftp *ftp);
87 int ftp_pwd(struct ftp *ftp);
88 int ftp_chdir(struct ftp *ftp, const char *dirname);
89 int ftp_mkdir(struct ftp *ftp, const char *dirname);
90 int ftp_rmdir(struct ftp *ftp, const char *dirname);
91 int ftp_delete(struct ftp *ftp, const char *fname);
92 int ftp_list(struct ftp *ftp);
93 int ftp_retrieve(struct ftp *ftp, const char *fname);
94 int ftp_store(struct ftp *ftp, const char *fname);
96 const char *ftp_curdir(struct ftp *ftp, int whichdir);
97 int ftp_num_dirent(struct ftp *ftp, int whichdir);
98 struct ftp_dirent *ftp_dirent(struct ftp *ftp, int whichdir, int idx);