]> granicus.if.org Git - curl/commitdiff
CURLINFO_TLS_SESSION: always return backend info
authorDaniel Stenberg <daniel@haxx.se>
Tue, 22 Sep 2015 15:21:37 +0000 (17:21 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Tue, 22 Sep 2015 15:21:37 +0000 (17:21 +0200)
... even for those that don't support providing anything in the
'internals' struct member since it offers a convenient way for
applications to figure this out.

docs/libcurl/opts/CURLINFO_TLS_SESSION.3
lib/getinfo.c

index 52dd8ad486a9a371538cda2873effa14b726c5ea..868ba73d83ec9cb59ee94ce7841af11c1078f0f8 100644 (file)
@@ -38,8 +38,8 @@ internal TLS session structure of this underlying SSL library.
 This may then be used to extract certificate information in a format
 convenient for further processing, such as manual validation. NOTE: this
 option may not be available for all SSL backends; unsupported SSL backends
-will return 'CURLSSLBACKEND_NONE' to indicate that they are not supported;
-this does not mean that no SSL backend was used.
+will always return NULL in the \fIinternals\fP pointer to indicate that they
+are not supported.
 
 .nf
 struct curl_tlssessioninfo {
@@ -48,6 +48,14 @@ struct curl_tlssessioninfo {
 };
 .fi
 
+The \fIbackend\fP struct member is one of the defines in the CURLSSLBACKEND_*
+series: CURLSSLBACKEND_NONE (when built without TLS support),
+CURLSSLBACKEND_OPENSSL, CURLSSLBACKEND_GNUTLS, CURLSSLBACKEND_NSS,
+CURLSSLBACKEND_GSKIT, CURLSSLBACKEND_POLARSSL, CURLSSLBACKEND_CYASSL,
+CURLSSLBACKEND_SCHANNEL, CURLSSLBACKEND_DARWINSSL or
+CURLSSLBACKEND_AXTLS. (Note that the OpenSSL forks are all reported as just
+OpenSSL here.)
+
 The \fIinternals\fP struct member will point to a TLS library specific pointer
 with the following underlying types:
 .RS
index 90ea454247e0c81404fbb5fc5bfbaeaf9df25954..00873f6fb309a8ff6c4ddcc73ffc4e77029f060d 100644 (file)
@@ -290,7 +290,7 @@ static CURLcode getinfo_slist(struct SessionHandle *data, CURLINFO info,
       void *internals = NULL;
 
       *tsip = tsi;
-      tsi->backend = CURLSSLBACKEND_NONE;
+      tsi->backend = Curl_ssl_backend();
       tsi->internals = NULL;
 
       if(!conn)
@@ -318,13 +318,11 @@ static CURLcode getinfo_slist(struct SessionHandle *data, CURLINFO info,
       internals = conn->ssl[sockindex].handle;
 #endif
       if(internals) {
-        tsi->backend = Curl_ssl_backend();
         tsi->internals = internals;
       }
       /* NOTE: For other SSL backends, it is not immediately clear what data
-         to return from 'struct ssl_connect_data'; thus, for now we keep the
-         backend as CURLSSLBACKEND_NONE in those cases, which should be
-         interpreted as "not supported" */
+         to return from 'struct ssl_connect_data'; thus we keep 'internals' to
+         NULL which should be interpreted as "not supported" */
     }
     break;
   default: