@@ -246,6 +246,32 @@ static void nss_print_error_message(struct Curl_easy *data, PRUint32 err)
246
246
failf (data , "%s" , PR_ErrorToString (err , PR_LANGUAGE_I_DEFAULT ));
247
247
}
248
248
249
+ static char * nss_sslver_to_name (PRUint16 nssver )
250
+ {
251
+ switch (nssver ) {
252
+ case SSL_LIBRARY_VERSION_2 :
253
+ return strdup ("SSLv2" );
254
+ case SSL_LIBRARY_VERSION_3_0 :
255
+ return strdup ("SSLv3" );
256
+ case SSL_LIBRARY_VERSION_TLS_1_0 :
257
+ return strdup ("TLSv1.0" );
258
+ #ifdef SSL_LIBRARY_VERSION_TLS_1_1
259
+ case SSL_LIBRARY_VERSION_TLS_1_1 :
260
+ return strdup ("TLSv1.1" );
261
+ #endif
262
+ #ifdef SSL_LIBRARY_VERSION_TLS_1_2
263
+ case SSL_LIBRARY_VERSION_TLS_1_2 :
264
+ return strdup ("TLSv1.2" );
265
+ #endif
266
+ #ifdef SSL_LIBRARY_VERSION_TLS_1_3
267
+ case SSL_LIBRARY_VERSION_TLS_1_3 :
268
+ return strdup ("TLSv1.3" );
269
+ #endif
270
+ default :
271
+ return curl_maprintf ("0x%04x" , nssver );
272
+ }
273
+ }
274
+
249
275
static SECStatus set_ciphers (struct Curl_easy * data , PRFileDesc * model ,
250
276
char * cipher_list )
251
277
{
@@ -1837,8 +1863,14 @@ static CURLcode nss_setup_connect(struct connectdata *conn, int sockindex)
1837
1863
& sslver_supported ) != SECSuccess )
1838
1864
goto error ;
1839
1865
if (sslver_supported .max < sslver .max && sslver_supported .max >= sslver .min ) {
1840
- infof (data , "Falling back (from %d) to max supported SSL version (%d)\n" ,
1841
- sslver .max , sslver_supported .max );
1866
+ char * sslver_req_str , * sslver_supp_str ;
1867
+ sslver_req_str = nss_sslver_to_name (sslver .max );
1868
+ sslver_supp_str = nss_sslver_to_name (sslver_supported .max );
1869
+ if (sslver_req_str && sslver_supp_str )
1870
+ infof (data , "Falling back from %s to max supported SSL version (%s)\n" ,
1871
+ sslver_req_str , sslver_supp_str );
1872
+ free (sslver_req_str );
1873
+ free (sslver_supp_str );
1842
1874
sslver .max = sslver_supported .max ;
1843
1875
}
1844
1876
if (SSL_VersionRangeSet (model , & sslver ) != SECSuccess )
0 commit comments