X-Git-Url: http://sjero.net/git/?p=wget;a=blobdiff_plain;f=src%2Fftp.h;h=be00d8806e2e7c551e3f24ea6b3e1107be1bde01;hp=2b7628c4016558dcd7f0defca1d8ef7572a99c58;hb=2f6aa1d7417df1dfc58597777686fbd77179b9fd;hpb=5390ada318a462655c79ef8cfc02d675bab78f7e diff --git a/src/ftp.h b/src/ftp.h index 2b7628c4..be00d880 100644 --- a/src/ftp.h +++ b/src/ftp.h @@ -1,11 +1,13 @@ /* Declarations for FTP support. - Copyright (C) 1995, 1996, 1997, 2000 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, + 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, + Inc. 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 +the Free Software Foundation; either version 3 of the License, or (at your option) any later version. GNU Wget is distributed in the hope that it will be useful, @@ -14,15 +16,22 @@ 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. */ +along with Wget. If not, see . + +Additional permission under GNU GPL version 3 section 7 + +If you modify this program, or any covered work, by linking or +combining it with the OpenSSL project's OpenSSL library (or a +modified version of that library), containing parts covered by the +terms of the OpenSSL or SSLeay licenses, the Free Software Foundation +grants you additional permission to convey the resulting work. +Corresponding Source for a non-source form of such a combination +shall include the source code for the parts of OpenSSL used as well +as that of the covered work. */ #ifndef FTP_H #define FTP_H -/* Need it for struct rbuf. */ -#include "rbuf.h" - #include "host.h" /* System types. */ @@ -32,25 +41,34 @@ enum stype 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 *, ip_address *, unsigned short *)); -#ifdef INET6 -uerr_t ftp_epsv PARAMS ((struct rbuf *, ip_address *, unsigned short *, - char *)); + +extern char ftp_last_respline[]; + +uerr_t ftp_response (int, char **); +uerr_t ftp_login (int, const char *, const char *); +uerr_t ftp_port (int, int *); +uerr_t ftp_pasv (int, ip_address *, int *); +#ifdef ENABLE_IPV6 +uerr_t ftp_lprt (int, int *); +uerr_t ftp_lpsv (int, ip_address *, int *); +uerr_t ftp_eprt (int, int *); +uerr_t ftp_epsv (int, ip_address *, int *); +#endif +uerr_t ftp_type (int, int); +uerr_t ftp_cwd (int, const char *); +uerr_t ftp_retr (int, const char *); +uerr_t ftp_rest (int, wgint); +uerr_t ftp_list (int, const char *, enum stype); +uerr_t ftp_syst (int, enum stype *); +uerr_t ftp_pwd (int, char **); +uerr_t ftp_size (int, const char *, wgint *); + +#ifdef ENABLE_OPIE +const char *skey_response (int, const char *, const 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_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 **)); -uerr_t ftp_size PARAMS ((struct rbuf *, const char *, long int *)); struct url; @@ -67,16 +85,24 @@ enum ftype /* Globbing (used by ftp_retrieve_glob). */ enum { - GLOBALL, GETALL, GETONE + GLOB_GLOBALL, GLOB_GETALL, GLOB_GETONE }; +/* Used by to test if time parsed includes hours and minutes. */ +enum parsetype +{ + TT_HOUR_MIN, TT_DAY +}; + + /* Information about one filename in a linked list. */ struct fileinfo { enum ftype type; /* file type */ char *name; /* file name */ - long size; /* file size */ + wgint size; /* file size */ long tstamp; /* time-stamp */ + enum parsetype ptype; /* time parsing */ int perms; /* file permissions */ char *linkto; /* link to which file points */ struct fileinfo *prev; /* previous... */ @@ -90,9 +116,7 @@ enum wget_ftp_command 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. */ - NO_TRUNCATE = 0x0020 /* Don't truncate the file if REST - malfunctions. */ + LEAVE_PENDING = 0x0010 /* Do not close the socket. */ }; enum wget_ftp_fstatus @@ -104,12 +128,12 @@ enum wget_ftp_fstatus correct. */ }; -struct fileinfo *ftp_parse_ls PARAMS ((const char *, const enum stype)); -uerr_t ftp_loop PARAMS ((struct url *, int *, struct url *)); +struct fileinfo *ftp_parse_ls (const char *, const enum stype); +uerr_t ftp_loop (struct url *, char **, int *, struct url *, bool, bool); -uerr_t ftp_index PARAMS ((const char *, struct url *, struct fileinfo *)); +uerr_t ftp_index (const char *, struct url *, struct fileinfo *); -char ftp_process_type PARAMS ((const char *)); +char ftp_process_type (const char *); #endif /* FTP_H */