]> granicus.if.org Git - curl/commitdiff
nss: Improve info message when falling back SSL protocol
authorPaul Howarth <paul@city-fan.org>
Tue, 4 Dec 2018 10:48:32 +0000 (10:48 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Wed, 5 Dec 2018 14:24:32 +0000 (15:24 +0100)
Use descriptive text strings rather than decimal numbers.

lib/vtls/nss.c

index 946c6971796bf5e4b797b07b83d328da37d3283f..79437a284f15b487dc57c575d2e9fe52540a7777 100644 (file)
@@ -246,6 +246,32 @@ static void nss_print_error_message(struct Curl_easy *data, PRUint32 err)
   failf(data, "%s", PR_ErrorToString(err, PR_LANGUAGE_I_DEFAULT));
 }
 
+static char *nss_sslver_to_name(PRUint16 nssver)
+{
+  switch(nssver) {
+  case SSL_LIBRARY_VERSION_2:
+    return strdup("SSLv2");
+  case SSL_LIBRARY_VERSION_3_0:
+    return strdup("SSLv3");
+  case SSL_LIBRARY_VERSION_TLS_1_0:
+    return strdup("TLSv1.0");
+#ifdef SSL_LIBRARY_VERSION_TLS_1_1
+  case SSL_LIBRARY_VERSION_TLS_1_1:
+    return strdup("TLSv1.1");
+#endif
+#ifdef SSL_LIBRARY_VERSION_TLS_1_2
+  case SSL_LIBRARY_VERSION_TLS_1_2:
+    return strdup("TLSv1.2");
+#endif
+#ifdef SSL_LIBRARY_VERSION_TLS_1_3
+  case SSL_LIBRARY_VERSION_TLS_1_3:
+    return strdup("TLSv1.3");
+#endif
+  default:
+    return curl_maprintf("0x%04x", nssver);
+  }
+}
+
 static SECStatus set_ciphers(struct Curl_easy *data, PRFileDesc * model,
                              char *cipher_list)
 {
@@ -1837,8 +1863,14 @@ static CURLcode nss_setup_connect(struct connectdata *conn, int sockindex)
                                   &sslver_supported) != SECSuccess)
     goto error;
   if(sslver_supported.max < sslver.max && sslver_supported.max >= sslver.min) {
-    infof(data, "Falling back (from %d) to max supported SSL version (%d)\n",
-                sslver.max, sslver_supported.max);
+    char *sslver_req_str, *sslver_supp_str;
+    sslver_req_str = nss_sslver_to_name(sslver.max);
+    sslver_supp_str = nss_sslver_to_name(sslver_supported.max);
+    if(sslver_req_str && sslver_supp_str)
+      infof(data, "Falling back from %s to max supported SSL version (%s)\n",
+                  sslver_req_str, sslver_supp_str);
+    free(sslver_req_str);
+    free(sslver_supp_str);
     sslver.max = sslver_supported.max;
   }
   if(SSL_VersionRangeSet(model, &sslver) != SECSuccess)