1999-12-02 15:42:23 +08:00
|
|
|
/* struct options.
|
|
|
|
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
|
|
|
|
2001-05-28 03:35:15 +08:00
|
|
|
This file is part of GNU Wget.
|
1999-12-02 15:42:23 +08:00
|
|
|
|
2001-05-28 03:35:15 +08:00
|
|
|
GNU Wget is free software; you can redistribute it and/or modify
|
1999-12-02 15:42:23 +08:00
|
|
|
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.
|
|
|
|
|
2001-05-28 03:35:15 +08:00
|
|
|
GNU Wget is distributed in the hope that it will be useful,
|
1999-12-02 15:42:23 +08:00
|
|
|
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
|
2001-05-28 03:35:15 +08:00
|
|
|
along with Wget; if not, write to the Free Software
|
2002-05-18 10:16:36 +08:00
|
|
|
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. */
|
1999-12-02 15:42:23 +08:00
|
|
|
|
|
|
|
struct options
|
|
|
|
{
|
|
|
|
int verbose; /* Are we verbose? */
|
|
|
|
int quiet; /* Are we quiet? */
|
|
|
|
int ntry; /* Number of tries per URL */
|
2003-09-05 05:34:58 +08:00
|
|
|
int retry_connrefused; /* Treat CONNREFUSED as non-fatal. */
|
1999-12-02 15:42:23 +08:00
|
|
|
int background; /* Whether we should work in background. */
|
|
|
|
int kill_longer; /* Do we reject messages with *more*
|
|
|
|
data than specified in
|
|
|
|
content-length? */
|
|
|
|
int ignore_length; /* Do we heed content-length at all? */
|
|
|
|
int recursive; /* Are we recursive? */
|
|
|
|
int spanhost; /* Do we span across hosts in
|
|
|
|
recursion? */
|
|
|
|
int relative_only; /* Follow only relative links. */
|
|
|
|
int no_parent; /* Restrict access to the parent
|
|
|
|
directory. */
|
|
|
|
int reclevel; /* Maximum level of recursion */
|
|
|
|
int dirstruct; /* Do we build the directory structure
|
|
|
|
as we go along? */
|
|
|
|
int no_dirstruct; /* Do we hate dirstruct? */
|
|
|
|
int cut_dirs; /* Number of directory components to cut. */
|
|
|
|
int add_hostdir; /* Do we add hostname directory? */
|
2003-12-06 11:01:31 +08:00
|
|
|
int protocol_directories; /* Whether to prepend "http"/"ftp" to dirs. */
|
1999-12-02 15:42:23 +08:00
|
|
|
int noclobber; /* Disables clobbering of existing
|
|
|
|
data. */
|
|
|
|
char *dir_prefix; /* The top of directory tree */
|
|
|
|
char *lfilename; /* Log filename */
|
|
|
|
char *input_filename; /* Input filename */
|
|
|
|
int force_html; /* Is the input file an HTML file? */
|
|
|
|
|
|
|
|
int spider; /* Is Wget in spider mode? */
|
|
|
|
|
|
|
|
char **accepts; /* List of patterns to accept. */
|
|
|
|
char **rejects; /* List of patterns to reject. */
|
|
|
|
char **excludes; /* List of excluded FTP directories. */
|
|
|
|
char **includes; /* List of FTP directories to
|
|
|
|
follow. */
|
|
|
|
|
|
|
|
char **domains; /* See host.c */
|
|
|
|
char **exclude_domains;
|
2003-09-11 03:41:54 +08:00
|
|
|
int dns_cache; /* whether we cache DNS lookups. */
|
1999-12-02 15:42:23 +08:00
|
|
|
|
2000-03-11 14:48:06 +08:00
|
|
|
char **follow_tags; /* List of HTML tags to recursively follow. */
|
|
|
|
char **ignore_tags; /* List of HTML tags to ignore if recursing. */
|
|
|
|
|
1999-12-02 15:42:23 +08:00
|
|
|
int follow_ftp; /* Are FTP URL-s followed in recursive
|
|
|
|
retrieving? */
|
|
|
|
int retr_symlinks; /* Whether we retrieve symlinks in
|
|
|
|
FTP. */
|
|
|
|
char *output_document; /* The output file to which the
|
|
|
|
documents will be printed. */
|
|
|
|
|
|
|
|
int always_rest; /* Always use REST. */
|
|
|
|
char *ftp_acc; /* FTP username */
|
|
|
|
char *ftp_pass; /* FTP password */
|
|
|
|
int netrc; /* Whether to read .netrc. */
|
|
|
|
int ftp_glob; /* FTP globbing */
|
|
|
|
int ftp_pasv; /* Passive FTP. */
|
|
|
|
|
|
|
|
char *http_user; /* HTTP user. */
|
|
|
|
char *http_passwd; /* HTTP password. */
|
2003-11-30 02:40:01 +08:00
|
|
|
char **user_headers; /* User-defined header(s). */
|
2000-11-20 08:04:06 +08:00
|
|
|
int http_keep_alive; /* whether we use keep-alive */
|
1999-12-02 15:42:23 +08:00
|
|
|
|
|
|
|
int use_proxy; /* Do we use proxy? */
|
2001-04-27 13:26:44 +08:00
|
|
|
int allow_cache; /* Do we allow server-side caching? */
|
2000-12-06 07:09:41 +08:00
|
|
|
char *http_proxy, *ftp_proxy, *https_proxy;
|
1999-12-02 15:42:23 +08:00
|
|
|
char **no_proxy;
|
|
|
|
char *base_href;
|
2001-11-24 00:12:53 +08:00
|
|
|
char *progress_type; /* progress indicator type. */
|
1999-12-02 15:42:23 +08:00
|
|
|
char *proxy_user; /*oli*/
|
|
|
|
char *proxy_passwd;
|
2003-09-21 12:41:55 +08:00
|
|
|
|
|
|
|
double read_timeout; /* The read/write timeout. */
|
|
|
|
double dns_timeout; /* The DNS timeout. */
|
|
|
|
double connect_timeout; /* The connect timeout. */
|
|
|
|
|
2001-11-26 05:23:15 +08:00
|
|
|
int random_wait; /* vary from 0 .. wait secs by random()? */
|
2003-09-21 07:12:18 +08:00
|
|
|
double wait; /* The wait period between retrievals. */
|
|
|
|
double waitretry; /* The wait period between retries. - HEH */
|
1999-12-02 15:42:23 +08:00
|
|
|
int use_robots; /* Do we heed robots.txt? */
|
|
|
|
|
2005-03-20 01:29:25 +08:00
|
|
|
wgint limit_rate; /* Limit the download rate to this
|
2001-11-27 04:07:13 +08:00
|
|
|
many bps. */
|
2003-10-11 21:57:11 +08:00
|
|
|
LARGE_INT quota; /* Maximum file size to download and
|
|
|
|
store. */
|
1999-12-02 15:42:23 +08:00
|
|
|
int numurls; /* Number of successfully downloaded
|
|
|
|
URLs */
|
|
|
|
|
|
|
|
int server_response; /* Do we print server response? */
|
|
|
|
int save_headers; /* Do we save headers together with
|
|
|
|
file? */
|
|
|
|
|
2003-10-08 08:05:51 +08:00
|
|
|
#ifdef ENABLE_DEBUG
|
1999-12-02 15:42:23 +08:00
|
|
|
int debug; /* Debugging on/off */
|
2003-10-08 08:05:51 +08:00
|
|
|
#endif
|
1999-12-02 15:42:23 +08:00
|
|
|
|
|
|
|
int timestamping; /* Whether to use time-stamping. */
|
2000-03-01 08:17:23 +08:00
|
|
|
|
|
|
|
int backup_converted; /* Do we save pre-converted files as *.orig? */
|
|
|
|
int backups; /* Are numeric backups made? */
|
1999-12-02 15:42:23 +08:00
|
|
|
|
|
|
|
char *useragent; /* Naughty User-Agent, which can be
|
|
|
|
set to something other than
|
|
|
|
Wget. */
|
2000-03-02 22:23:22 +08:00
|
|
|
char *referer; /* Naughty Referer, which can be
|
|
|
|
set to something other than
|
|
|
|
NULL. */
|
1999-12-02 15:42:23 +08:00
|
|
|
int convert_links; /* Will the links be converted
|
|
|
|
locally? */
|
|
|
|
int remove_listing; /* Do we remove .listing files
|
|
|
|
generated by FTP? */
|
|
|
|
int htmlify; /* Do we HTML-ify the OS-dependent
|
|
|
|
listings? */
|
|
|
|
|
2001-11-28 10:44:18 +08:00
|
|
|
char *dot_style;
|
2005-03-20 01:29:25 +08:00
|
|
|
wgint dot_bytes; /* How many bytes in a printing
|
1999-12-02 15:42:23 +08:00
|
|
|
dot. */
|
|
|
|
int dots_in_line; /* How many dots in one line. */
|
|
|
|
int dot_spacing; /* How many dots between spacings. */
|
|
|
|
|
|
|
|
int delete_after; /* Whether the files will be deleted
|
|
|
|
after download. */
|
2000-08-30 19:26:21 +08:00
|
|
|
|
2000-10-20 13:55:46 +08:00
|
|
|
int html_extension; /* Use ".html" extension on all text/html? */
|
|
|
|
|
2000-08-30 19:26:21 +08:00
|
|
|
int page_requisites; /* Whether we need to download all files
|
|
|
|
necessary to display a page properly. */
|
2002-01-25 11:34:23 +08:00
|
|
|
char *bind_address; /* What local IP address to bind to. */
|
2001-02-11 06:33:31 +08:00
|
|
|
#ifdef HAVE_SSL
|
2002-04-21 10:26:48 +08:00
|
|
|
char *sslcadir; /* CA directory (hash files) */
|
|
|
|
char *sslcafile; /* CA File to use */
|
2001-02-11 06:33:31 +08:00
|
|
|
char *sslcertfile; /* external client cert to use. */
|
|
|
|
char *sslcertkey; /* the keyfile for this certificate
|
|
|
|
(if not internal) included in the
|
|
|
|
certfile. */
|
2002-04-21 10:26:48 +08:00
|
|
|
int sslcerttype; /* 0 = PEM / 1=ASN1 (DER) */
|
|
|
|
int sslcheckcert; /* 0 do not check / 1 check server cert */
|
2001-11-30 15:39:08 +08:00
|
|
|
char *sslegdsock; /* optional socket of the egd daemon */
|
2002-04-21 10:26:48 +08:00
|
|
|
int sslprotocol; /* 0 = auto / 1 = v2 / 2 = v3 / 3 = TLSv1 */
|
2001-02-11 06:33:31 +08:00
|
|
|
#endif /* HAVE_SSL */
|
2001-04-09 06:25:24 +08:00
|
|
|
|
2003-11-05 08:11:33 +08:00
|
|
|
int cookies; /* whether cookies are used. */
|
|
|
|
char *cookies_input; /* file we're loading the cookies from. */
|
|
|
|
char *cookies_output; /* file we're saving the cookies to. */
|
|
|
|
int keep_session_cookies; /* whether session cookies should be
|
|
|
|
saved and loaded. */
|
2002-04-14 12:22:47 +08:00
|
|
|
|
|
|
|
char *post_data; /* POST query string */
|
|
|
|
char *post_file_name; /* File to post */
|
2003-09-15 06:04:13 +08:00
|
|
|
|
|
|
|
enum {
|
2003-09-17 09:32:05 +08:00
|
|
|
restrict_unix,
|
2003-09-15 06:04:13 +08:00
|
|
|
restrict_windows
|
2003-09-17 09:32:05 +08:00
|
|
|
} restrict_files_os; /* file name restriction ruleset. */
|
|
|
|
int restrict_files_ctrl; /* non-zero if control chars in URLs
|
|
|
|
are restricted from appearing in
|
|
|
|
generated file names. */
|
2003-09-19 08:33:22 +08:00
|
|
|
|
|
|
|
int strict_comments; /* whether strict SGML comments are
|
|
|
|
enforced. */
|
2003-11-07 04:33:20 +08:00
|
|
|
|
|
|
|
int preserve_perm; /* whether remote permissions are used
|
|
|
|
or that what is set by umask. */
|
2003-11-12 05:48:35 +08:00
|
|
|
|
|
|
|
#ifdef ENABLE_IPV6
|
|
|
|
int ipv4_only; /* IPv4 connections have been requested. */
|
|
|
|
int ipv6_only; /* IPv4 connections have been requested. */
|
|
|
|
#endif
|
2005-04-25 04:00:19 +08:00
|
|
|
enum {
|
|
|
|
prefer_ipv4,
|
|
|
|
prefer_ipv6,
|
|
|
|
prefer_none
|
|
|
|
} prefer_family; /* preferred address family when more
|
|
|
|
than one type is available */
|
1999-12-02 15:42:23 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
extern struct options opt;
|