diff --git a/CMakeLists.txt b/CMakeLists.txt index cf4f3c5799..4badbe996b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -372,28 +372,29 @@ if(CMAKE_USE_DARWINSSL) message(FATAL_ERROR "The cmake option CMAKE_USE_DARWINSSL was renamed to CMAKE_USE_SECTRANSP.") endif() -if(CMAKE_USE_SECTRANSP) +if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") find_library(COREFOUNDATION_FRAMEWORK "CoreFoundation") if(NOT COREFOUNDATION_FRAMEWORK) message(FATAL_ERROR "CoreFoundation framework not found") endif() - find_library(SECURITY_FRAMEWORK "Security") - if(NOT SECURITY_FRAMEWORK) - message(FATAL_ERROR "Security framework not found") - endif() - - set(SSL_ENABLED ON) - set(USE_SECTRANSP ON) - list(APPEND CURL_LIBS "-framework CoreFoundation" "-framework Security") -endif() - -if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") find_library(SYSTEMCONFIGURATION_FRAMEWORK "SystemConfiguration") if(NOT SYSTEMCONFIGURATION_FRAMEWORK) message(FATAL_ERROR "SystemConfiguration framework not found") endif() - list(APPEND CURL_LIBS "-framework SystemConfiguration") + + list(APPEND CURL_LIBS "-framework CoreFoundation" "-framework SystemConfiguration") + + if(CMAKE_USE_SECTRANSP) + find_library(SECURITY_FRAMEWORK "Security") + if(NOT SECURITY_FRAMEWORK) + message(FATAL_ERROR "Security framework not found") + endif() + + set(SSL_ENABLED ON) + set(USE_SECTRANSP ON) + list(APPEND CURL_LIBS "-framework Security") + endif() endif() if(CMAKE_USE_OPENSSL) diff --git a/lib/hostip.c b/lib/hostip.c index 2d6f500c66..737a2a7844 100644 --- a/lib/hostip.c +++ b/lib/hostip.c @@ -579,7 +579,6 @@ enum resolve_t Curl_resolv(struct Curl_easy *data, CURLcode result; enum resolve_t rc = CURLRESOLV_ERROR; /* default to failure */ struct connectdata *conn = data->conn; - *entry = NULL; conn->bits.doh = FALSE; /* default is not */ @@ -626,16 +625,20 @@ enum resolve_t Curl_resolv(struct Curl_easy *data, } #if defined(ENABLE_IPV6) && defined(CURL_OSX_CALL_COPYPROXIES) - /* - * The automagic conversion from IPv4 literals to IPv6 literals only works - * if the SCDynamicStoreCopyProxies system function gets called first. As - * Curl currently doesn't support system-wide HTTP proxies, we therefore - * don't use any value this function might return. - * - * This function is only available on a macOS and is not needed for - * IPv4-only builds, hence the conditions above. - */ - SCDynamicStoreCopyProxies(NULL); + { + /* + * The automagic conversion from IPv4 literals to IPv6 literals only + * works if the SCDynamicStoreCopyProxies system function gets called + * first. As Curl currently doesn't support system-wide HTTP proxies, we + * therefore don't use any value this function might return. + * + * This function is only available on a macOS and is not needed for + * IPv4-only builds, hence the conditions above. + */ + CFDictionaryRef dict = SCDynamicStoreCopyProxies(NULL); + if(dict) + CFRelease(dict); + } #endif #ifndef USE_RESOLVE_ON_IPS diff --git a/m4/curl-sysconfig.m4 b/m4/curl-sysconfig.m4 index 0f6462fabf..0af96ba937 100644 --- a/m4/curl-sysconfig.m4 +++ b/m4/curl-sysconfig.m4 @@ -21,7 +21,7 @@ #*************************************************************************** AC_DEFUN([CURL_DARWIN_SYSTEMCONFIGURATION], [ -AC_MSG_CHECKING([whether to link macOS SystemConfiguration framework]) +AC_MSG_CHECKING([whether to link macOS CoreFoundation and SystemConfiguration framework]) case $host_os in darwin*) AC_COMPILE_IFELSE([ @@ -41,7 +41,7 @@ case $host_os in ]) if test "x$build_for_macos" != xno; then AC_MSG_RESULT(yes) - LDFLAGS="$LDFLAGS -framework SystemConfiguration" + LDFLAGS="$LDFLAGS -framework CoreFoundation -framework SystemConfiguration" else AC_MSG_RESULT(no) fi