Browse Source

Merge branch 'backport-macos-curl-backend' into macos-curl-backend

Brad King 6 months ago
parent
commit
5d3f931956

+ 1 - 2
Source/CTest/cmCTestCurl.cxx

@@ -24,9 +24,8 @@ cmCTestCurl::cmCTestCurl(cmCTest* ctest)
   , CurlOpts(ctest)
 {
   this->SetProxyType();
-  cmCurlInitOnce();
   // In windows, this will init the winsock stuff
-  ::curl_global_init(CURL_GLOBAL_ALL);
+  cm_curl_global_init(CURL_GLOBAL_ALL);
   this->Curl = cm_curl_easy_init();
 }
 

+ 1 - 2
Source/CTest/cmCTestSubmitHandler.cxx

@@ -146,9 +146,8 @@ bool cmCTestSubmitHandler::SubmitUsingHTTP(
     headers = ::curl_slist_append(headers, h.c_str());
   }
 
-  cmCurlInitOnce();
   /* In windows, this will init the winsock stuff */
-  ::curl_global_init(CURL_GLOBAL_ALL);
+  cm_curl_global_init(CURL_GLOBAL_ALL);
   cmCTestCurlOpts curlOpts(this->CTest);
   for (std::string const& file : files) {
     /* get a curl handle */

+ 2 - 7
Source/cmCurl.cxx

@@ -53,17 +53,11 @@ static_assert(CURL_SSLVERSION_LAST == 8,
               "A new CURL_SSLVERSION_ may be available!");
 #endif
 
-void cmCurlInitOnce()
+::CURLcode cm_curl_global_init(long flags)
 {
   // curl 7.56.0 introduced curl_global_sslset.
 #if defined(__APPLE__) && defined(CMAKE_USE_SYSTEM_CURL) &&                   \
   defined(LIBCURL_VERSION_NUM) && LIBCURL_VERSION_NUM >= 0x073800
-  static bool initialized = false;
-  if (initialized) {
-    return;
-  }
-  initialized = true;
-
   cm::optional<std::string> curl_ssl_backend =
     cmSystemTools::GetEnvVar("CURL_SSL_BACKEND");
   if (!curl_ssl_backend || curl_ssl_backend->empty()) {
@@ -75,6 +69,7 @@ void cmCurlInitOnce()
     }
   }
 #endif
+  return ::curl_global_init(flags);
 }
 
 cm::optional<int> cmCurlParseTLSVersion(cm::string_view tls_version)

+ 1 - 1
Source/cmCurl.h

@@ -16,7 +16,6 @@
 #  define CURL_WRITEFUNC_ERROR 0xFFFFFFFF
 #endif
 
-void cmCurlInitOnce();
 cm::optional<int> cmCurlParseTLSVersion(cm::string_view tls_version);
 cm::optional<std::string> cmCurlPrintTLSVersion(int curl_tls_version);
 std::string cmCurlSetCAInfo(::CURL* curl, std::string const& cafile = {});
@@ -24,4 +23,5 @@ std::string cmCurlSetNETRCOption(::CURL* curl, std::string const& netrc_level,
                                  std::string const& netrc_file);
 std::string cmCurlFixFileURL(std::string url);
 
+::CURLcode cm_curl_global_init(long flags);
 ::CURL* cm_curl_easy_init();

+ 2 - 4
Source/cmFileCommand.cxx

@@ -2140,8 +2140,7 @@ bool HandleDownloadCommand(std::vector<std::string> const& args,
   url = cmCurlFixFileURL(url);
 
   ::CURL* curl;
-  cmCurlInitOnce();
-  ::curl_global_init(CURL_GLOBAL_DEFAULT);
+  cm_curl_global_init(CURL_GLOBAL_DEFAULT);
   curl = cm_curl_easy_init();
   if (!curl) {
     status.SetError("DOWNLOAD error initializing curl.");
@@ -2541,8 +2540,7 @@ bool HandleUploadCommand(std::vector<std::string> const& args,
   url = cmCurlFixFileURL(url);
 
   ::CURL* curl;
-  cmCurlInitOnce();
-  ::curl_global_init(CURL_GLOBAL_DEFAULT);
+  cm_curl_global_init(CURL_GLOBAL_DEFAULT);
   curl = cm_curl_easy_init();
   if (!curl) {
     status.SetError("UPLOAD error initializing curl.");