Re: [Exim] Problem receiving from MS Exchange 2000 w/TLS

Startseite
Nachricht löschen
Nachricht beantworten
Autor: Eric Parusel
Datum:  
To: Philip Hazel
CC: exim-users
Betreff: Re: [Exim] Problem receiving from MS Exchange 2000 w/TLS

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)