X-Git-Url: http://sjero.net/git/?a=blobdiff_plain;f=src%2Fmain.c;h=35c5f3b63db8e16e7c1fad224e81d090aee38991;hb=7c802e58d3e45e3a21d99c8d24dc5be806ecf174;hp=a08748bb5e9253ae9e3238d9f5950042594496cb;hpb=8c3287dabfcd03c2bbd4c342dd4b8c036a845d53;p=wget diff --git a/src/main.c b/src/main.c index a08748bb..35c5f3b6 100644 --- a/src/main.c +++ b/src/main.c @@ -1,5 +1,5 @@ /* Command line parsing. - Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001 + Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GNU Wget. @@ -16,7 +16,17 @@ 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. */ +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. */ #include @@ -70,6 +80,8 @@ extern int errno; struct options opt; +extern struct cookie_jar *wget_cookie_jar; + /* From log.c. */ void log_init PARAMS ((const char *, int)); void log_close PARAMS ((void)); @@ -146,14 +158,11 @@ Logging and input file:\n\ -i, --input-file=FILE download URLs found in FILE.\n\ -F, --force-html treat input file as HTML.\n\ -B, --base=URL prepends URL to relative links in -F -i file.\n\ - --sslcertfile=FILE optional client certificate.\n\ - --sslcertkey=KEYFILE optional keyfile for this certificate.\n\ - --egd-file=FILE file name of the EGD socket.\n\ -\n"), stdout); +\n"),stdout); fputs (_("\ Download:\n\ - --bind-address=ADDRESS bind to ADDRESS (hostname or IP) on local host.\n\ -t, --tries=NUMBER set number of retries to NUMBER (0 unlimits).\n\ + --retry-connrefused retry even if connection is refused.\n\ -O --output-document=FILE write documents to FILE.\n\ -nc, --no-clobber don\'t clobber existing files or use .# suffixes.\n\ -c, --continue resume getting a partially-downloaded file.\n\ @@ -167,11 +176,14 @@ Download:\n\ --random-wait wait from 0...2*WAIT secs between retrievals.\n\ -Y, --proxy=on/off turn proxy on or off.\n\ -Q, --quota=NUMBER set retrieval quota to NUMBER.\n\ + --bind-address=ADDRESS bind to ADDRESS (hostname or IP) on local host.\n\ --limit-rate=RATE limit download rate to RATE.\n\ + --dns-cache=off disable caching DNS lookups.\n\ + --restrict-file-names=OS restrict chars in file names to ones OS allows.\n\ \n"), stdout); fputs (_("\ Directories:\n\ - -nd --no-directories don\'t create directories.\n\ + -nd, --no-directories don\'t create directories.\n\ -x, --force-directories force creation of directories.\n\ -nH, --no-host-directories don\'t create host directories.\n\ -P, --directory-prefix=PREFIX save files to PREFIX/...\n\ @@ -194,7 +206,23 @@ HTTP options:\n\ --cookies=off don't use cookies.\n\ --load-cookies=FILE load cookies from FILE before session.\n\ --save-cookies=FILE save cookies to FILE after session.\n\ + --post-data=STRING use the POST method; send STRING as the data.\n\ + --post-file=FILE use the POST method; send contents of FILE.\n\ \n"), stdout); +#ifdef HAVE_SSL + fputs (_("\ +HTTPS (SSL) options:\n\ + --sslcertfile=FILE optional client certificate.\n\ + --sslcertkey=KEYFILE optional keyfile for this certificate.\n\ + --egd-file=FILE file name of the EGD socket.\n\ + --sslcadir=DIR dir where hash list of CA's are stured.\n\ + --sslcafile=FILE file with bundle of CA's\n\ + --sslcerttype=0/1 Client-Cert type 0=PEM (default) / 1=ASN1 (DER)\n\ + --sslcheckcert=0/1 Check the server cert agenst given CA\n\ + --sslprotocol=0-3 choose SSL protocol; 0=automatic,\n\ + 1=SSLv2 2=SSLv3 3=TLSv1\n\ +\n"), stdout); +#endif fputs (_("\ FTP options:\n\ -nr, --dont-remove-listing don\'t remove `.listing\' files.\n\ @@ -204,13 +232,14 @@ FTP options:\n\ \n"), stdout); fputs (_("\ Recursive retrieval:\n\ - -r, --recursive recursive web-suck -- use with care!\n\ + -r, --recursive recursive download.\n\ -l, --level=NUMBER maximum recursion depth (inf or 0 for infinite).\n\ --delete-after delete files locally after downloading them.\n\ -k, --convert-links convert non-relative links to relative.\n\ -K, --backup-converted before converting file X, back up as X.orig.\n\ -m, --mirror shortcut option equivalent to -r -N -l inf -nr.\n\ -p, --page-requisites get all images, etc. needed to display HTML page.\n\ + --strict-comments turn on strict (SGML) handling of HTML comments.\n\ \n"), stdout); fputs (_("\ Recursive accept/reject:\n\ @@ -269,10 +298,12 @@ main (int argc, char *const *argv) { "recursive", no_argument, NULL, 'r' }, { "relative", no_argument, NULL, 'L' }, { "retr-symlinks", no_argument, NULL, 137 }, + { "retry-connrefused", no_argument, NULL, 174 }, { "save-headers", no_argument, NULL, 's' }, { "server-response", no_argument, NULL, 'S' }, { "span-hosts", no_argument, NULL, 'H' }, { "spider", no_argument, NULL, 132 }, + { "strict-comments", no_argument, NULL, 177 }, { "timestamping", no_argument, NULL, 'N' }, { "verbose", no_argument, NULL, 'v' }, { "version", no_argument, NULL, 'V' }, @@ -287,6 +318,7 @@ main (int argc, char *const *argv) { "cookies", required_argument, NULL, 160 }, { "cut-dirs", required_argument, NULL, 145 }, { "directory-prefix", required_argument, NULL, 'P' }, + { "dns-cache", required_argument, NULL, 175 }, { "domains", required_argument, NULL, 'D' }, { "dot-style", required_argument, NULL, 134 }, { "execute", required_argument, NULL, 'e' }, @@ -307,12 +339,15 @@ main (int argc, char *const *argv) { "no", required_argument, NULL, 'n' }, { "output-document", required_argument, NULL, 'O' }, { "output-file", required_argument, NULL, 'o' }, + { "post-data", required_argument, NULL, 167 }, + { "post-file", required_argument, NULL, 168 }, { "progress", required_argument, NULL, 163 }, { "proxy", required_argument, NULL, 'Y' }, { "proxy-passwd", required_argument, NULL, 144 }, { "proxy-user", required_argument, NULL, 143 }, { "quota", required_argument, NULL, 'Q' }, { "reject", required_argument, NULL, 'R' }, + { "restrict-file-names", required_argument, NULL, 176 }, { "save-cookies", required_argument, NULL, 162 }, { "timeout", required_argument, NULL, 'T' }, { "tries", required_argument, NULL, 't' }, @@ -323,6 +358,11 @@ main (int argc, char *const *argv) { "sslcertfile", required_argument, NULL, 158 }, { "sslcertkey", required_argument, NULL, 159 }, { "egd-file", required_argument, NULL, 166 }, + { "sslcadir", required_argument, NULL, 169}, + { "sslcafile", required_argument, NULL, 170}, + { "sslcerttype", required_argument, NULL, 171}, + { "sslcheckcert", required_argument, NULL, 172}, + { "sslprotocol", required_argument, NULL, 173}, #endif /* HAVE_SSL */ { "wait", required_argument, NULL, 'w' }, { "waitretry", required_argument, NULL, 152 }, @@ -483,6 +523,12 @@ GNU General Public License for more details.\n")); case 'x': setval ("dirstruct", "on"); break; + case 174: + setval ("retryconnrefused", "on"); + break; + case 177: + setval ("strictcomments", "on"); + break; /* Options accepting an argument: */ case 129: @@ -546,7 +592,34 @@ GNU General Public License for more details.\n")); case 166: setval ("egdfile", optarg); break; + case 169: + setval ("sslcadir", optarg); + break; + case 170: + setval ("sslcafile", optarg); + break; + case 171: + setval ("sslcerttype", optarg); + break; + case 172: + setval ("sslcheckcert", optarg); + break; + case 173: + setval ("sslprotocol", optarg); + break; #endif /* HAVE_SSL */ + case 167: + setval ("postdata", optarg); + break; + case 168: + setval ("postfile", optarg); + break; + case 175: + setval ("dnscache", optarg); + break; + case 176: + setval ("restrictfilenames", optarg); + break; case 'A': setval ("accept", optarg); break; @@ -850,8 +923,8 @@ Can't timestamp and not clobber old files at the same time.\n")); legible (opt.quota)); } - if (opt.cookies_output) - save_cookies (opt.cookies_output); + if (opt.cookies_output && wget_cookie_jar) + cookie_jar_save (wget_cookie_jar, opt.cookies_output); if (opt.convert_links && !opt.delete_after) {