X-Git-Url: http://sjero.net/git/?p=wget;a=blobdiff_plain;f=src%2Fftp.h;h=78b5270ccab85e4aa11c460189bb95cd22220cc3;hp=9aa88d8b3de47a65fc0e75b42f9def77b5321fce;hb=8624553a31b148f9051cc11725bc01d9760fa07b;hpb=714ccdcd844314cc3902fa4fd1b48757d9db9296 diff --git a/src/ftp.h b/src/ftp.h index 9aa88d8b..78b5270c 100644 --- a/src/ftp.h +++ b/src/ftp.h @@ -1,6 +1,7 @@ /* Declarations for FTP support. - Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, - 2004, 2005, 2006, 2007, 2008 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. @@ -44,6 +45,14 @@ enum stype ST_OTHER }; +/* Extensions of the ST_UNIX */ +enum ustype +{ + UST_TYPE_L8, + UST_MULTINET, + UST_OTHER +}; + extern char ftp_last_respline[]; uerr_t ftp_response (int, char **); @@ -58,11 +67,10 @@ 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_dele (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_list (int, const char *, bool, bool, bool *); +uerr_t ftp_syst (int, enum stype *, enum ustype *); uerr_t ftp_pwd (int, char **); uerr_t ftp_size (int, const char *, wgint *); @@ -88,40 +96,63 @@ enum 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 */ - wgint size; /* file size */ - long tstamp; /* time-stamp */ - int perms; /* file permissions */ - char *linkto; /* link to which file points */ - struct fileinfo *prev; /* previous... */ - struct fileinfo *next; /* ...and next structure. */ + enum ftype type; /* file type */ + char *name; /* file name */ + 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... */ + struct fileinfo *next; /* ...and next structure. */ }; /* Commands for FTP functions. */ 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. */ + 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. */ }; enum wget_ftp_fstatus { - NOTHING = 0x0000, /* Nothing done yet. */ - ON_YOUR_OWN = 0x0001, /* The ftp_loop_internal sets the - defaults. */ - DONE_CWD = 0x0002 /* The current working directory is - correct. */ + NOTHING = 0x0000, /* Nothing done yet. */ + ON_YOUR_OWN = 0x0001, /* The ftp_loop_internal sets the + defaults. */ + DONE_CWD = 0x0002, /* The current working directory is + correct. */ + + /* 2013-10-17 Andrea Urbani (matfanjol) + For more information about the following entries, please, + look at ftp.c, function getftp, text "__LIST_A_EXPLANATION__". */ + AVOID_LIST_A = 0x0004, /* It tells us if during this + session we have to avoid the use + of "LIST -a".*/ + AVOID_LIST = 0x0008, /* It tells us if during this + session we have to avoid to use + "LIST". */ + LIST_AFTER_LIST_A_CHECK_DONE = 0x0010 + /* It tells us if we have already + checked "LIST" after the first + "LIST -a" to handle the case of + file/folders named "-a". */ }; struct fileinfo *ftp_parse_ls (const char *, const enum stype); -uerr_t ftp_loop (struct url *, int *, struct url *, bool, bool); +uerr_t ftp_loop (struct url *, char **, int *, struct url *, bool, bool); uerr_t ftp_index (const char *, struct url *, struct fileinfo *);