aboutsummaryrefslogtreecommitdiff
path: root/lib/vtls/openssl.c
diff options
context:
space:
mode:
authorJohannes Schindelin <johannes.schindelin@gmx.de>2017-06-23 16:05:26 +0200
committerDaniel Stenberg <daniel@haxx.se>2017-08-28 14:56:57 +0200
commit69039fd1fa3e65e2f5737b2a4044dcb8fbabb76d (patch)
tree45490b3472aea76af548851766c1a26aa98b5d22 /lib/vtls/openssl.c
parent118b074fba6ac9d8128410ce14cd05d46ad6dfa5 (diff)
getinfo: access SSL internals via Curl_ssl
In the ongoing endeavor to abstract out all SSL backend-specific functionality, this is the next step: Instead of hard-coding how the different SSL backends access their internal data in getinfo.c, let's implement backend-specific functions to do that task. This will also allow for switching SSL backends as a runtime option. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Diffstat (limited to 'lib/vtls/openssl.c')
-rw-r--r--lib/vtls/openssl.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/vtls/openssl.c b/lib/vtls/openssl.c
index fcd4539d5..40bd8ee86 100644
--- a/lib/vtls/openssl.c
+++ b/lib/vtls/openssl.c
@@ -3394,6 +3394,14 @@ static bool Curl_ossl_cert_status_request(void)
#endif
}
+static void *Curl_ossl_get_internals(struct ssl_connect_data *connssl,
+ CURLINFO info)
+{
+ /* Legacy: CURLINFO_TLS_SESSION must return an SSL_CTX pointer. */
+ return info == CURLINFO_TLS_SESSION ?
+ (void *)connssl->ctx : (void *)connssl->handle;
+}
+
const struct Curl_ssl Curl_ssl_openssl = {
"openssl", /* name */
@@ -3413,6 +3421,7 @@ const struct Curl_ssl Curl_ssl_openssl = {
Curl_ossl_cert_status_request, /* cert_status_request */
Curl_ossl_connect, /* connect */
Curl_ossl_connect_nonblocking, /* connect_nonblocking */
+ Curl_ossl_get_internals, /* get_internals */
Curl_ossl_close, /* close */
Curl_ossl_close_all, /* close_all */
Curl_ossl_session_free, /* session_free */