/* Declarations for FTP support.
Copyright (C) 1995, 1996, 1997, 2000 Free Software Foundation, Inc.
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
+This file is part of GNU Wget.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
+GNU Wget is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+GNU Wget is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Wget; if not, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#ifndef FTP_H
#define FTP_H
/* 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 *, enum stype));
-uerr_t ftp_loop PARAMS ((struct urlinfo *, int *));
-
-uerr_t ftp_index (const char *, struct urlinfo *, struct fileinfo *);
+struct fileinfo *ftp_parse_ls PARAMS ((const char *, const enum stype));
+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 *));
+
#endif /* FTP_H */