]> sjero.net Git - wget/blobdiff - src/options.h
[svn] Add --random-file option. Bail out in case of error during
[wget] / src / options.h
index e7eff5e2766a663804370c494dbdfeafab905c13..6e968aac331de239cb5e82480f2e6364032c3407 100644 (file)
@@ -27,9 +27,6 @@ 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.  */
 
-/* Needed for FDP.  */
-#include <stdio.h>
-
 struct options
 {
   int verbose;                 /* Are we verbose? */
@@ -53,6 +50,7 @@ struct options
   int no_dirstruct;            /* Do we hate dirstruct? */
   int cut_dirs;                        /* Number of directory components to cut. */
   int add_hostdir;             /* Do we add hostname directory? */
+  int protocol_directories;    /* Whether to prepend "http"/"ftp" to dirs. */
   int noclobber;               /* Disables clobbering of existing
                                   data. */
   char *dir_prefix;            /* The top of directory tree */
@@ -81,11 +79,6 @@ struct options
                                   FTP. */
   char *output_document;       /* The output file to which the
                                   documents will be printed.  */
-  int od_known_regular;                /* whether output_document is a
-                                   regular file we can manipulate,
-                                   i.e. not `-' or a device file. */
-  FILE *dfp;                   /* The file pointer to the output
-                                  document. */
 
   int always_rest;             /* Always use REST. */
   char *ftp_acc;               /* FTP username */
@@ -96,7 +89,7 @@ struct options
 
   char *http_user;             /* HTTP user. */
   char *http_passwd;           /* HTTP password. */
-  char *user_header;           /* User-defined header(s). */
+  char **user_headers;         /* User-defined header(s). */
   int http_keep_alive;         /* whether we use keep-alive */
 
   int use_proxy;               /* Do we use proxy? */
@@ -107,21 +100,20 @@ struct options
   char *progress_type;         /* progress indicator type. */
   char *proxy_user; /*oli*/
   char *proxy_passwd;
-#ifdef HAVE_SELECT
-  long timeout;                        /* The value of read timeout in
-                                  seconds. */
-#endif
+
+  double read_timeout;         /* The read/write timeout. */
+  double dns_timeout;          /* The DNS timeout. */
+  double connect_timeout;      /* The connect timeout. */
+
   int random_wait;             /* vary from 0 .. wait secs by random()? */
-  long wait;                   /* The wait period between retrievals. */
-  long waitretry;              /* The wait period between retries. - HEH */
+  double wait;                 /* The wait period between retrievals. */
+  double waitretry;            /* The wait period between retries. - HEH */
   int use_robots;              /* Do we heed robots.txt? */
 
-  long limit_rate;             /* Limit the download rate to this
+  wgint limit_rate;            /* Limit the download rate to this
                                   many bps. */
-  long quota;                  /* Maximum number of bytes to
-                                  retrieve. */
-  VERY_LONG_TYPE downloaded;   /* How much we downloaded already. */
-  int downloaded_overflow;     /* Whether the above overflowed. */
+  LARGE_INT quota;             /* Maximum file size to download and
+                                  store. */
   int numurls;                 /* Number of successfully downloaded
                                   URLs */
 
@@ -129,9 +121,9 @@ struct options
   int save_headers;            /* Do we save headers together with
                                   file? */
 
-#ifdef DEBUG
+#ifdef ENABLE_DEBUG
   int debug;                   /* Debugging on/off */
-#endif /* DEBUG */
+#endif
 
   int timestamping;            /* Whether to use time-stamping. */
 
@@ -152,7 +144,7 @@ struct options
                                   listings? */
 
   char *dot_style;
-  long dot_bytes;              /* How many bytes in a printing
+  wgint dot_bytes;             /* How many bytes in a printing
                                   dot. */
   int dots_in_line;            /* How many dots in one line. */
   int dot_spacing;             /* How many dots between spacings. */
@@ -165,25 +157,65 @@ struct options
   int page_requisites;         /* Whether we need to download all files
                                   necessary to display a page properly. */
   char *bind_address;          /* What local IP address to bind to. */
+
 #ifdef HAVE_SSL
-  char *sslcadir;              /* CA directory (hash files) */
-  char *sslcafile;             /* CA File to use */
-  char *sslcertfile;           /* external client cert to use. */
-  char *sslcertkey;            /* the keyfile for this certificate
-                                  (if not internal) included in the
-                                  certfile. */
-  int   sslcerttype;           /* 0 = PEM / 1=ASN1 (DER) */
-  int   sslcheckcert;          /* 0 do not check / 1 check server cert */
-  char *sslegdsock;             /* optional socket of the egd daemon */
-  int   sslprotocol;           /* 0 = auto / 1 = v2 / 2 = v3 / 3 = TLSv1 */
+  enum {
+    secure_protocol_auto,
+    secure_protocol_sslv2,
+    secure_protocol_sslv3,
+    secure_protocol_tlsv1
+  } secure_protocol;           /* type of secure protocol to use. */
+  int check_cert;              /* whether to validate the server's cert */
+  char *cert_file;             /* external client certificate to use. */
+  char *private_key;           /* private key file (if not internal). */
+  enum keyfile_type {
+    keyfile_pem,
+    keyfile_asn1
+  } cert_type;                 /* type of client certificate file */
+  enum keyfile_type
+    private_key_type;          /* type of private key file */
+
+  char *ca_directory;          /* CA directory (hash files) */
+  char *ca_cert;               /* CA certificate file to use */
+
+
+  char *random_file;           /* file with random data to seed the PRNG */
+  char *egd_file;              /* file name of the egd daemon socket */
 #endif /* HAVE_SSL */
 
-  int   cookies;
-  char *cookies_input;
-  char *cookies_output;
+  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. */
 
   char *post_data;             /* POST query string */
   char *post_file_name;                /* File to post */
+
+  enum {
+    restrict_unix,
+    restrict_windows
+  } 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. */
+
+  int strict_comments;         /* whether strict SGML comments are
+                                  enforced.  */
+
+  int preserve_perm;           /* whether remote permissions are used
+                                 or that what is set by umask. */
+
+#ifdef ENABLE_IPV6
+  int ipv4_only;               /* IPv4 connections have been requested. */
+  int ipv6_only;               /* IPv4 connections have been requested. */
+#endif
+  enum {
+    prefer_ipv4,
+    prefer_ipv6,
+    prefer_none
+  } prefer_family;             /* preferred address family when more
+                                  than one type is available */
 };
 
 extern struct options opt;