Fix build with older TLS library versions
[exim.git] / src / src / tls-openssl.c
index 5353d2ce711c99bc0ebb294cff23610f10fcaf11..689af87b1690467c8cd7d58e55dc48b27c2a3a35 100644 (file)
@@ -70,6 +70,7 @@ change this guard and punt the issue for a while longer. */
 #  define EXIM_HAVE_OPENSSL_CHECKHOST
 #  define EXIM_HAVE_OPENSSL_DH_BITS
 #  define EXIM_HAVE_OPENSSL_TLS_METHOD
+#  define EXIM_HAVE_OPENSSL_KEYLOG
 # else
 #  define EXIM_NEED_OPENSSL_INIT
 # endif
@@ -2305,18 +2306,21 @@ peer_cert(server_ssl, &tls_in, peerdn, sizeof(peerdn));
 DEBUG(D_tls)
   {
   uschar buf[2048];
-  BIO * bp = BIO_new(BIO_s_mem());
-  uschar * s;
-  int len;
-
   if (SSL_get_shared_ciphers(server_ssl, CS buf, sizeof(buf)) != NULL)
     debug_printf("Shared ciphers: %s\n", buf);
 
+#ifdef EXIM_HAVE_OPENSSL_KEYLOG
+  {
+  BIO * bp = BIO_new(BIO_s_mem());
+  uschar * s;
+  int len;
   SSL_SESSION_print_keylog(bp, SSL_get_session(server_ssl));
   len = (int) BIO_get_mem_data(bp, CSS &s);
   debug_printf("%.*s", len, s);
   BIO_free(bp);
   }
+#endif
+  }
 
 construct_cipher_name(server_ssl, cipherbuf, sizeof(cipherbuf), &tls_in.bits);
 tls_in.cipher = cipherbuf;
@@ -2689,15 +2693,19 @@ if (rc <= 0)
 
 DEBUG(D_tls)
   {
-  BIO * bp = BIO_new_fp(debug_file, BIO_NOCLOSE);
+  debug_printf("SSL_connect succeeded\n");
+#ifdef EXIM_HAVE_OPENSSL_KEYLOG
+  {
+  BIO * bp = BIO_new(BIO_s_mem());
   uschar * s;
   int len;
-  debug_printf("SSL_connect succeeded\n");
-  SSL_SESSION_print_keylog(bp, SSL_get_session(exim_client_ctx->ssl));
+  SSL_SESSION_print_keylog(bp, SSL_get_session(server_ssl));
   len = (int) BIO_get_mem_data(bp, CSS &s);
   debug_printf("%.*s", len, s);
   BIO_free(bp);
   }
+#endif
+  }
 
 peer_cert(exim_client_ctx->ssl, tlsp, peerdn, sizeof(peerdn));