]> sjero.net Git - wget/blobdiff - src/http.c
[svn] Add the --user, --password, --ftp-user and --ftp-password options.
[wget] / src / http.c
index ae68c6fb7e5c4fb74485f50abda27c7ec67b970a..ed027a99a920f9eb056589fc46331a4e6e3c9291 100644 (file)
@@ -64,7 +64,7 @@ extern int errno;
 #include "connect.h"
 #include "netrc.h"
 #ifdef HAVE_SSL
-# include "gen_sslfunc.h"
+# include "ssl.h"
 #endif
 #ifdef ENABLE_NTLM
 # include "http-ntlm.h"
@@ -1187,29 +1187,12 @@ gethttp (struct url *u, struct http_stat *hs, int *dt, struct url *proxy)
     {
       /* Initialize the SSL context.  After this has once been done,
         it becomes a no-op.  */
-      switch (ssl_init ())
+      if (!ssl_init ())
        {
-       case SSLERRCTXCREATE:
-         /* this is fatal */
-         logprintf (LOG_NOTQUIET, _("Failed to set up an SSL context\n"));
-         return SSLERRCTXCREATE;
-       case SSLERRCERTFILE:
-         /* try without certfile */
+         scheme_disable (SCHEME_HTTPS);
          logprintf (LOG_NOTQUIET,
-                    _("Failed to load certificates from %s\n"),
-                    opt.cert_file);
-         logprintf (LOG_NOTQUIET,
-                    _("Trying without the specified certificate\n"));
-         break;
-       case SSLERRCERTKEY:
-         logprintf (LOG_NOTQUIET,
-                    _("Failed to get certificate key from %s\n"),
-                    opt.cert_key);
-         logprintf (LOG_NOTQUIET,
-                    _("Trying without the specified certificate\n"));
-         break;
-       default:
-         break;
+                    _("Disabling SSL due to encountered errors.\n"));
+         return SSLINITFAILED;
        }
     }
 #endif /* HAVE_SSL */
@@ -1260,8 +1243,8 @@ gethttp (struct url *u, struct http_stat *hs, int *dt, struct url *proxy)
   user = u->user;
   passwd = u->passwd;
   search_netrc (u->host, (const char **)&user, (const char **)&passwd, 0);
-  user = user ? user : opt.http_user;
-  passwd = passwd ? passwd : opt.http_passwd;
+  user = user ? user : (opt.http_user ? opt.http_user : opt.user);
+  passwd = passwd ? passwd : (opt.http_passwd ? opt.http_passwd : opt.passwd);
 
   if (user && passwd)
     {
@@ -2232,7 +2215,7 @@ File `%s' already there, will not retrieve.\n"), *hstat.local_file);
          continue;
          break;
        case HOSTERR: case CONIMPOSSIBLE: case PROXERR: case AUTHFAILED: 
-       case SSLERRCTXCREATE: case CONTNOTSUPPORTED:
+       case SSLINITFAILED: case CONTNOTSUPPORTED:
          /* Fatal errors just return from the function.  */
          free_hstat (&hstat);
          xfree_null (dummy);