]> sjero.net Git - wget/blobdiff - src/main.c
[svn] Applied Christian Fraenkel's patch "custom certificate patch for wget-1.7+dev;
[wget] / src / main.c
index 1b85b0b35a9226bd72fe10a0ab987337312ddb1b..275605ca58cef7264eff79dcf634ce8d00584158 100644 (file)
@@ -39,6 +39,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 # include <locale.h>
 #endif /* HAVE_LOCALE_H */
 #endif /* HAVE_NLS */
+#include <errno.h>
 
 #define OPTIONS_DEFINED_HERE   /* for options.h */
 
@@ -149,13 +150,15 @@ 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\
 \n"), _("\
 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\
   -O   --output-document=FILE   write documents to FILE.\n\
   -nc, --no-clobber             don\'t clobber existing files or use .# suffixes.\n\
-  -c,  --continue               restart getting an existing file.\n\
+  -c,  --continue               resume getting a partially-downloaded file.\n\
        --dot-style=STYLE        set retrieval display style.\n\
   -N,  --timestamping           don\'t retrieve files if older than local.\n\
   -S,  --server-response        print server response.\n\
@@ -302,6 +305,10 @@ main (int argc, char *const *argv)
     { "user-agent", required_argument, NULL, 'U' },
     { "referer", required_argument, NULL, 129 },
     { "use-proxy", required_argument, NULL, 'Y' },
+#ifdef HAVE_SSL
+    { "sslcertfile", required_argument, NULL, 132},
+    { "sslcertkey", required_argument, NULL, 133},
+#endif /* HAVE_SSL */
     { "wait", required_argument, NULL, 'w' },
     { "waitretry", required_argument, NULL, 24 },
     { 0, 0, 0, 0 }
@@ -328,7 +335,7 @@ main (int argc, char *const *argv)
   /* [Is the order of the option letters significant?  If not, they should be
       alphabetized, like the long_options.  The only thing I know for sure is
       that the options with required arguments must be followed by a ':'.
-      -- Dan Harkless <dan-wget@dilvish.speed.net>] */
+      -- Dan Harkless <wget@harkless.org>] */
   while ((c = getopt_long (argc, argv, "\
 hpVqvdkKsxmNWrHSLcFbEY:G:g:T:U:O:l:n:i:o:a:t:D:A:R:P:B:e:Q:X:I:w:",
                           long_options, (int *)0)) != EOF)
@@ -505,6 +512,14 @@ GNU General Public License for more details.\n"));
        case 129:
          setval ("referer", optarg);
          break;
+#ifdef HAVE_SSL
+       case 132:
+         setval ("sslcertfile", optarg);
+         break;
+       case 133:
+         setval ("sslcertkey", optarg);
+         break;
+#endif /* HAVE_SSL */
        case 'A':
          setval ("accept", optarg);
          break;
@@ -726,12 +741,15 @@ Can't timestamp and not clobber old files at the same time.\n"));
        opt.dfp = stdout;
       else
        {
+         struct stat st;
          opt.dfp = fopen (opt.output_document, "wb");
          if (opt.dfp == NULL)
            {
              perror (opt.output_document);
              exit (1);
            }
+         if (fstat (fileno (opt.dfp), &st) == 0 && S_ISREG (st.st_mode))
+           opt.od_known_regular = 1;
        }
     }
 
@@ -803,7 +821,7 @@ Can't timestamp and not clobber old files at the same time.\n"));
                   _("Download quota (%s bytes) EXCEEDED!\n"),
                   legible (opt.quota));
     }
-  if (opt.convert_links & !opt.delete_after)
+  if (opt.convert_links && !opt.delete_after)
     {
       convert_all_links ();
     }