enum {
FTP_PWD,
FTP_CHDIR,
+ FTP_CDUP,
FTP_MKDIR,
FTP_RMDIR,
FTP_DEL,
};
enum {
+ FTP_REMOTE,
+ FTP_LOCAL
+};
+
+enum {
FTP_MOD_REMDIR = 0x100,
FTP_MOD_LOCDIR = 0x200
};
char *name;
int type;
long size;
-
- struct ftp_dirent *next;
};
struct ftp {
int ctl, lis, data; /* sockets */
int lis_port;
- int status;
+ int status, busy;
char *user, *pass;
struct ftp_op *qhead, *qtail;
int num_crecv;
char drecv[256];
- char *curdir_rem, *curdir_loc;
- struct ftp_dirent *dent_rem, *dent_loc;
+ char *curdir[2];
+ struct ftp_dirent *dirent[2]; /* dynamic array */
int last_resp;
int modified;
int ftp_retrieve(struct ftp *ftp, const char *fname);
int ftp_store(struct ftp *ftp, const char *fname);
+const char *ftp_curdir(struct ftp *ftp, int whichdir);
+int ftp_num_dirent(struct ftp *ftp, int whichdir);
+struct ftp_dirent *ftp_dirent(struct ftp *ftp, int whichdir, int idx);
+
#endif /* FTP_H_ */