On Thu, May 15, 2003, Philip Hazel wrote:
> > Possibly the person who made the initial wish-list request might know?
>
> Indeed, but I don't have a record of who it was. It may be possible to
> find the original discussion on the mailing list, but I suspect seaching
> on "exchange" may throw up rather too many hits...
I believe I just found the thread:
http://www.exim.org/pipermail/exim-users/Week-of-Mon-20030224/thread.html#50246
And I while I believe that while the onus is on MS to provide a fix
at some point, unfortunately I can't be sure when that point in time is!
My "vote" is for an option to work around this problem.
Below is a little patch which adds a "tls_remember_esmtp" option,
which defaults to FALSE.
I've quickly tested this and it seems to work just fine...
Keep in mind I'm no C guru, and I might not have followed naming
convention too well :)
Seeing as it's such a small patch, I can't see this being an
incredibly useful patch for you -- I'm sure you could write this in
your sleep. :)
Thanks,
Eric
diff -ur exim-4.20/src/globals.c exim-4.20-modified/src/globals.c
--- exim-4.20/src/globals.c Thu May 15 12:03:30 2003
+++ exim-4.20-modified/src/globals.c Thu May 15 12:29:03 2003
@@ -97,6 +97,7 @@
uschar *tls_dhparam = NULL;
BOOL tls_offered = FALSE;
BOOL tls_on_connect = FALSE;
+BOOL tls_remember_esmtp = FALSE;
uschar *tls_privatekey = NULL;
uschar *tls_try_verify_hosts = NULL;
uschar *tls_verify_certificates= NULL;
diff -ur exim-4.20/src/globals.h exim-4.20-modified/src/globals.h
--- exim-4.20/src/globals.h Thu May 15 12:03:30 2003
+++ exim-4.20-modified/src/globals.h Thu May 15 12:28:25 2003
@@ -62,6 +62,7 @@
extern BOOL tls_offered; /* Server offered TLS */
extern BOOL tls_on_connect; /* For older MTAs that don't
STARTTLS */
extern uschar *tls_privatekey; /* Private key file */
+extern BOOL tls_remember_esmtp; /* Don't forget state of esmtp */
extern uschar *tls_try_verify_hosts; /* Optional client verification */
extern uschar *tls_verify_certificates;/* Path for certificates to check */
extern uschar *tls_verify_hosts; /* Mandatory client verification */
diff -ur exim-4.20/src/readconf.c exim-4.20-modified/src/readconf.c
--- exim-4.20/src/readconf.c Thu May 15 12:03:30 2003
+++ exim-4.20-modified/src/readconf.c Thu May 15 12:24:15 2003
@@ -356,6 +356,7 @@
{ "tls_certificate", opt_stringptr, &tls_certificate },
{ "tls_dhparam", opt_stringptr, &tls_dhparam },
{ "tls_privatekey", opt_stringptr, &tls_privatekey },
+ { "tls_remember_esmtp", opt_bool, &tls_remember_esmtp },
{ "tls_try_verify_hosts", opt_stringptr, &tls_try_verify_hosts },
{ "tls_verify_certificates", opt_stringptr,
&tls_verify_certificates },
{ "tls_verify_hosts", opt_stringptr, &tls_verify_hosts },
diff -ur exim-4.20/src/smtp_in.c exim-4.20-modified/src/smtp_in.c
--- exim-4.20/src/smtp_in.c Mon May 12 06:39:22 2003
+++ exim-4.20-modified/src/smtp_in.c Thu May 15 12:34:21 2003
@@ -2843,7 +2843,10 @@
if ((rc = tls_server_start()) == OK)
{
- helo_seen = esmtp= FALSE;
+ if (tls_remember_esmtp == FALSE)
+ {
+ helo_seen = esmtp= FALSE;
+ }
cmd_list[CMD_LIST_EHLO].is_mail_cmd = TRUE;
cmd_list[CMD_LIST_AUTH].is_mail_cmd = TRUE;
if (sender_helo_name != NULL)