Просмотр исходного кода

curl: Honor OPENSSL_NO_SSL2

Some OpenSSL distributions have dropped support for the ancient SSLv2
protocol completely.  Port changes from upstream curl to recognize this
case and avoid using it.
Brad King 13 лет назад
Родитель
Сommit
8b51762426
3 измененных файлов с 10 добавлено и 2 удалено
  1. 1 1
      Utilities/cmcurl/curl/curl.h
  2. 5 0
      Utilities/cmcurl/ssluse.c
  3. 4 1
      Utilities/cmcurl/strerror.c

+ 1 - 1
Utilities/cmcurl/curl/curl.h

@@ -312,7 +312,7 @@ typedef enum {
   CURLE_UNSUPPORTED_PROTOCOL,    /* 1 */
   CURLE_FAILED_INIT,             /* 2 */
   CURLE_URL_MALFORMAT,           /* 3 */
-  CURLE_URL_MALFORMAT_USER,      /* 4 - NOT USED */
+  CURLE_NOT_BUILT_IN,            /* 4 */
   CURLE_COULDNT_RESOLVE_PROXY,   /* 5 */
   CURLE_COULDNT_RESOLVE_HOST,    /* 6 */
   CURLE_COULDNT_CONNECT,         /* 7 */

+ 5 - 0
Utilities/cmcurl/ssluse.c

@@ -1285,8 +1285,13 @@ Curl_ossl_connect_step1(struct connectdata *conn,
     req_method = TLSv1_client_method();
     break;
   case CURL_SSLVERSION_SSLv2:
+#ifdef OPENSSL_NO_SSL2
+    failf(data, "OpenSSL was built without SSLv2 support");
+    return CURLE_NOT_BUILT_IN;
+#else
     req_method = SSLv2_client_method();
     break;
+#endif
   case CURL_SSLVERSION_SSLv3:
     req_method = SSLv3_client_method();
     break;

+ 4 - 1
Utilities/cmcurl/strerror.c

@@ -69,6 +69,10 @@ curl_easy_strerror(CURLcode error)
   case CURLE_URL_MALFORMAT:
     return "URL using bad/illegal format or missing URL";
 
+  case CURLE_NOT_BUILT_IN:
+    return "A requested feature, protocol or option was not found built-in in"
+      " this libcurl due to a build-time decision.";
+
   case CURLE_COULDNT_RESOLVE_PROXY:
     return "couldn't resolve proxy name";
 
@@ -287,7 +291,6 @@ curl_easy_strerror(CURLcode error)
     return "Error in the SSH layer";
 
     /* error codes not used by current libcurl */
-  case CURLE_URL_MALFORMAT_USER:
   case CURLE_FTP_USER_PASSWORD_INCORRECT:
   case CURLE_MALFORMAT_USER:
   case CURLE_BAD_CALLING_ORDER: