OpenSSL: Revert the disabling of the session-cache. Bug 2255
authorJeremy Harris <jgh146exb@wizmail.org>
Sun, 8 Apr 2018 21:45:39 +0000 (22:45 +0100)
committerJeremy Harris <jgh146exb@wizmail.org>
Sun, 8 Apr 2018 21:50:49 +0000 (22:50 +0100)
Session cacheing is never useful, as we use a new context for every TLS startup.
However, removing the support triggers odd behaviour from Outlook Express (only
when there is an IMAP server on the same machine as Exim): an initial connect
from the OE client fails, the immediate retry works.

doc/doc-txt/ChangeLog
src/src/tls-openssl.c

index 903840a6bb1e43b496aca1ff49c0e0df09c5cdbf..5e9d2afb7da0ff4cbc1514cf72bd262c60d56bf8 100644 (file)
@@ -200,6 +200,9 @@ JH/36 Fix reinitialisation of DKIM logging variable between messages.
       Previously it was possible to log spurious information in receive log
       lines.
 
       Previously it was possible to log spurious information in receive log
       lines.
 
+JH/37 Bug 2255: Revert the disable of the OpenSSL session caching.  This
+      triggered odd behaviour from Outlook Express clients.
+
 
 Exim version 4.90
 -----------------
 
 Exim version 4.90
 -----------------
index c142bd05926dcab759a61484eeba75886c570187..bfdfe211fcfde663f84b6c24895a65239b5c37cb 100644 (file)
@@ -1601,9 +1601,15 @@ if (init_options)
 else
   DEBUG(D_tls) debug_printf("no SSL CTX options to set\n");
 
 else
   DEBUG(D_tls) debug_printf("no SSL CTX options to set\n");
 
-/* Disable session cache unconditionally */
-
+/* We'd like to disable session cache unconditionally, but foolish Outlook
+Express clients then give up the first TLS connection and make a second one
+(which works).  Only when there is an IMAP service on the same machine.
+Presumably OE is trying to use the cache for A on B.  Leave it enabled for
+now, until we work out a decent way of presenting control to the config.  It
+will never be used because we use a new context every time. */
+#ifdef notdef
 (void) SSL_CTX_set_session_cache_mode(ctx, SSL_SESS_CACHE_OFF);
 (void) SSL_CTX_set_session_cache_mode(ctx, SSL_SESS_CACHE_OFF);
+#endif
 
 /* Initialize with DH parameters if supplied */
 /* Initialize ECDH temp key parameter selection */
 
 /* Initialize with DH parameters if supplied */
 /* Initialize ECDH temp key parameter selection */