X-Git-Url: http://sjero.net/git/?a=blobdiff_plain;f=src%2Fftp.h;h=aaaff474298c8e44e58d62195263eb33c908741c;hb=d9fea91a0a319e348adb504bd3edff148ff3d8a0;hp=0fa0a164c15ea5ea725169f6f3fb60036a8aacfd;hpb=7b5ad90acfc8c101a6cf919cd2a00217f0194e93;p=wget diff --git a/src/ftp.h b/src/ftp.h index 0fa0a164..aaaff474 100644 --- a/src/ftp.h +++ b/src/ftp.h @@ -1,25 +1,36 @@ /* 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 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. - - 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. */ +This file is part of GNU Wget. + +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. + +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. + +In addition, as a special exception, the Free Software Foundation +gives permission to link the code of its release of Wget with the +OpenSSL project's "OpenSSL" library (or with modified versions of it +that use the same license as the "OpenSSL" library), and distribute +the linked executables. You must obey the GNU General Public License +in all respects for all of the code used other than "OpenSSL". If you +modify this file, you may extend this exception to your version of the +file, but you are not obligated to do so. If you do not wish to do +so, delete this exception statement from your version. */ #ifndef FTP_H #define FTP_H -/* Need it for struct rbuf. */ -#include "rbuf.h" +#include "host.h" /* System types. */ enum stype @@ -27,22 +38,35 @@ enum stype ST_UNIX, ST_VMS, ST_WINNT, + ST_MACOS, + ST_OS400, ST_OTHER }; -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_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_rest PARAMS ((struct rbuf *, long)); -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 **)); - -struct urlinfo; +uerr_t ftp_response PARAMS ((int, char **)); +uerr_t ftp_login PARAMS ((int, const char *, const char *)); +uerr_t ftp_port PARAMS ((int, int *)); +uerr_t ftp_pasv PARAMS ((int, ip_address *, int *)); +#ifdef ENABLE_IPV6 +uerr_t ftp_lprt PARAMS ((int, int *)); +uerr_t ftp_lpsv PARAMS ((int, ip_address *, int *)); +uerr_t ftp_eprt PARAMS ((int, int *)); +uerr_t ftp_epsv PARAMS ((int, ip_address *, int *)); +#endif +uerr_t ftp_type PARAMS ((int, int)); +uerr_t ftp_cwd PARAMS ((int, const char *)); +uerr_t ftp_retr PARAMS ((int, const char *)); +uerr_t ftp_rest PARAMS ((int, long)); +uerr_t ftp_list PARAMS ((int, const char *)); +uerr_t ftp_syst PARAMS ((int, enum stype *)); +uerr_t ftp_pwd PARAMS ((int, char **)); +uerr_t ftp_size PARAMS ((int, const char *, long int *)); + +#ifdef USE_OPIE +const char *skey_response PARAMS ((int, const char *, const char *)); +#endif + +struct url; /* File types. */ enum ftype @@ -74,16 +98,18 @@ struct fileinfo }; /* Commands for FTP functions. */ -enum command +enum wget_ftp_command { DO_LOGIN = 0x0001, /* Connect and login to the server. */ DO_CWD = 0x0002, /* Change current directory. */ DO_RETR = 0x0004, /* Retrieve the file. */ DO_LIST = 0x0008, /* Retrieve the directory list. */ - LEAVE_PENDING = 0x0010 /* Do not close the socket. */ + LEAVE_PENDING = 0x0010, /* Do not close the socket. */ + NO_TRUNCATE = 0x0020 /* Don't truncate the file if REST + malfunctions. */ }; -enum fstatus +enum wget_ftp_fstatus { NOTHING = 0x0000, /* Nothing done yet. */ ON_YOUR_OWN = 0x0001, /* The ftp_loop_internal sets the @@ -92,17 +118,12 @@ enum fstatus correct. */ }; -typedef struct -{ - int st; /* connection status */ - int cmd; /* command code */ - struct rbuf rbuf; /* control connection buffer */ - long dltime; /* time of the download */ -} ccon; +struct fileinfo *ftp_parse_ls PARAMS ((const char *, const enum stype)); +uerr_t ftp_loop PARAMS ((struct url *, int *, struct url *)); + +uerr_t ftp_index PARAMS ((const char *, struct url *, struct fileinfo *)); -struct fileinfo *ftp_parse_ls PARAMS ((const char *, enum stype)); -uerr_t ftp_loop PARAMS ((struct urlinfo *, int *)); +char ftp_process_type PARAMS ((const char *)); -uerr_t ftp_index (const char *, struct urlinfo *, struct fileinfo *); #endif /* FTP_H */