mirror of
https://github.com/netsurf-browser/netsurf
synced 2024-11-22 14:31:20 +03:00
Use curl API (versions after 7.56.0) to determine if openssl is in use
This commit is contained in:
parent
0a3786fed2
commit
c9296f79a8
@ -1592,6 +1592,18 @@ nserror fetch_curl_register(void)
|
|||||||
.finalise = fetch_curl_finalise
|
.finalise = fetch_curl_finalise
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if LIBCURL_VERSION_NUM >= 0x073800
|
||||||
|
/* version 7.56.0 can select which SSL backend to use */
|
||||||
|
CURLsslset setres;
|
||||||
|
|
||||||
|
setres = curl_global_sslset(CURLSSLBACKEND_OPENSSL, NULL, NULL);
|
||||||
|
if (setres == CURLSSLSET_OK) {
|
||||||
|
curl_with_openssl = true;
|
||||||
|
} else {
|
||||||
|
curl_with_openssl = false;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
NSLOG(netsurf, INFO, "curl_version %s", curl_version());
|
NSLOG(netsurf, INFO, "curl_version %s", curl_version());
|
||||||
|
|
||||||
code = curl_global_init(CURL_GLOBAL_ALL);
|
code = curl_global_init(CURL_GLOBAL_ALL);
|
||||||
@ -1673,17 +1685,24 @@ nserror fetch_curl_register(void)
|
|||||||
SETOPT(CURLOPT_CAPATH, nsoption_charp(ca_path));
|
SETOPT(CURLOPT_CAPATH, nsoption_charp(ca_path));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Detect whether the SSL CTX function API works */
|
#if LIBCURL_VERSION_NUM < 0x073800
|
||||||
code = curl_easy_setopt(fetch_blank_curl,
|
/*
|
||||||
CURLOPT_SSL_CTX_FUNCTION, NULL);
|
* before 7.56.0 Detect openssl from whether the SSL CTX
|
||||||
|
* function API works
|
||||||
|
*/
|
||||||
|
code = curl_easy_setopt(fetch_blank_curl, CURLOPT_SSL_CTX_FUNCTION, NULL);
|
||||||
if (code != CURLE_OK) {
|
if (code != CURLE_OK) {
|
||||||
curl_with_openssl = false;
|
curl_with_openssl = false;
|
||||||
} else {
|
} else {
|
||||||
|
curl_with_openssl = true;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (curl_with_openssl) {
|
||||||
/* only set the cipher list with openssl otherwise the
|
/* only set the cipher list with openssl otherwise the
|
||||||
* fetch fails with "Unknown cipher in list"
|
* fetch fails with "Unknown cipher in list"
|
||||||
*/
|
*/
|
||||||
SETOPT(CURLOPT_SSL_CIPHER_LIST, CIPHER_LIST);
|
SETOPT(CURLOPT_SSL_CIPHER_LIST, CIPHER_LIST);
|
||||||
curl_with_openssl = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
NSLOG(netsurf, INFO, "cURL %slinked against openssl",
|
NSLOG(netsurf, INFO, "cURL %slinked against openssl",
|
||||||
|
Loading…
Reference in New Issue
Block a user