wget: emit a message that certificate verification is not implemented
authorDenys Vlasenko <vda.linux@googlemail.com>
Mon, 28 May 2018 12:36:26 +0000 (14:36 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Mon, 28 May 2018 12:36:26 +0000 (14:36 +0200)
function                                             old     new   delta
spawn_ssl_client                                     185     209     +24

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
networking/wget.c

index 30c3392441885106d615ff99372f03116a5bb3a8..8103aacee74c7135c7c1d3a6745bf89d6e9f016e 100644 (file)
 //usage:       "Retrieve files via HTTP or FTP\n"
 //usage:       IF_FEATURE_WGET_LONG_OPTIONS(
 //usage:     "\n       --spider        Only check URL existence: $? is 0 if exists"
+///////:     "\n       --no-check-certificate  Don't validate the server's certificate"
 //usage:       )
 //usage:     "\n       -c              Continue retrieval of aborted transfer"
 //usage:     "\n       -q              Quiet"
@@ -271,6 +272,7 @@ enum {
        WGET_OPT_HEADER     = (1 << 10) * ENABLE_FEATURE_WGET_LONG_OPTIONS,
        WGET_OPT_POST_DATA  = (1 << 11) * ENABLE_FEATURE_WGET_LONG_OPTIONS,
        WGET_OPT_SPIDER     = (1 << 12) * ENABLE_FEATURE_WGET_LONG_OPTIONS,
+       WGET_OPT_NO_CHECK_CERT = (1 << 13) * ENABLE_FEATURE_WGET_LONG_OPTIONS,
 };
 
 enum {
@@ -714,6 +716,9 @@ static void spawn_ssl_client(const char *host, int network_fd, int flags)
        int pid;
        char *servername, *p;
 
+       if (!(option_mask32 & WGET_OPT_NO_CHECK_CERT))
+               bb_error_msg("note: TLS certificate validation not implemented");
+
        servername = xstrdup(host);
        p = strrchr(servername, ':');
        if (p) *p = '\0';
@@ -1402,10 +1407,9 @@ IF_DESKTOP(      "tries\0"            Required_argument "t")
                "header\0"           Required_argument "\xff"
                "post-data\0"        Required_argument "\xfe"
                "spider\0"           No_argument       "\xfd"
+               "no-check-certificate\0" No_argument   "\xfc"
                /* Ignored (we always use PASV): */
 IF_DESKTOP(    "passive-ftp\0"      No_argument       "\xf0")
-               /* Ignored (we don't do ssl) */
-IF_DESKTOP(    "no-check-certificate\0" No_argument   "\xf0")
                /* Ignored (we don't support caching) */
 IF_DESKTOP(    "no-cache\0"         No_argument       "\xf0")
 IF_DESKTOP(    "no-verbose\0"       No_argument       "\xf0")
@@ -1465,6 +1469,7 @@ IF_DESKTOP(       "no-parent\0"        No_argument       "\xf0")
        if (option_mask32 & WGET_OPT_HEADER) bb_error_msg("--header");
        if (option_mask32 & WGET_OPT_POST_DATA) bb_error_msg("--post-data");
        if (option_mask32 & WGET_OPT_SPIDER) bb_error_msg("--spider");
+       if (option_mask32 & WGET_OPT_NO_CHECK_CERT) bb_error_msg("--no-check-certificate");
        exit(0);
 #endif
        argv += optind;