/* Need it for struct rbuf. */
#include "rbuf.h"
+#include "host.h"
+
/* System types. */
enum stype
{
uerr_t ftp_response PARAMS ((struct rbuf *, char **));
uerr_t ftp_login PARAMS ((struct rbuf *, const char *, const char *));
uerr_t ftp_port PARAMS ((struct rbuf *));
-uerr_t ftp_pasv PARAMS ((struct rbuf *, unsigned char *));
+uerr_t ftp_pasv PARAMS ((struct rbuf *, ip_address *, unsigned short *));
+#ifdef INET6
+uerr_t ftp_epsv PARAMS ((struct rbuf *, ip_address *, unsigned short *,
+ char *));
+#endif
uerr_t ftp_type PARAMS ((struct rbuf *, int));
uerr_t ftp_cwd PARAMS ((struct rbuf *, const char *));
uerr_t ftp_retr PARAMS ((struct rbuf *, const char *));
uerr_t ftp_list PARAMS ((struct rbuf *, const char *));
uerr_t ftp_syst PARAMS ((struct rbuf *, enum stype *));
uerr_t ftp_pwd PARAMS ((struct rbuf *, char **));
+uerr_t ftp_size PARAMS ((struct rbuf *, const char *, long int *));
-struct urlinfo;
+struct url;
/* File types. */
enum ftype
correct. */
};
-typedef struct
-{
- int st; /* connection status */
- int cmd; /* command code */
- struct rbuf rbuf; /* control connection buffer */
- long dltime; /* time of the download */
- enum stype rs; /* remote system reported by ftp server */
- char *id; /* initial directory */
-} ccon;
-
struct fileinfo *ftp_parse_ls PARAMS ((const char *, const enum stype));
-uerr_t ftp_loop PARAMS ((struct urlinfo *, int *));
+uerr_t ftp_loop PARAMS ((struct url *, int *));
+
+uerr_t ftp_index PARAMS ((const char *, struct url *, struct fileinfo *));
+
+char ftp_process_type PARAMS ((const char *));
-uerr_t ftp_index (const char *, struct urlinfo *, struct fileinfo *);
#endif /* FTP_H */