138032SpeterMessage-Id: <199309031900.OAA19417@ignatz.acs.depaul.edu>
238032SpeterTo: bug-mh@ics.uci.edu
338032Spetercc: mh-users@ics.uci.edu, eric@cs.berkeley.edu
438032SpeterSubject: MH-6.8.1/Sendmail 8.X (MH patch) updated
538032SpeterDate: Fri, 03 Sep 1993 14:00:46 -0500
638032SpeterFrom: Dave Nelson <dcn@ignatz.acs.depaul.edu>
738032Speter
838032Speter
938032Speter	This patch will fix the "X-auth..." warnings from the newer
1038032SpeterSendmails (8.X) while continuing to work with the old sendmails.
1138032Speter
1238032Speter	I think the following patch will make everyone happy.
1338032Speter
1438032Speter	1)  Anybody with MH-6.8.1 can install this.  It doesn't matter
1538032Speter	    what version of sendmail you're running.  It doesn't matter
1638032Speter	    if you're not running sendmail (but it won't fix anything
1738032Speter	    for you).
1838032Speter
1938032Speter	2)  No configuration file hacks. If the -client switch is
2038032Speter	    absent (the default), the new sendmails will get an EHLO 
2138032Speter	    using what LocalName() returns as the hostname.  On my systems, 
2238032Speter	    this returns the FQDN.  If the EHLO fails with a result between 
2338032Speter	    500 and 599  and the -client switch is not set, we give up on 
2438032Speter	    sending EHLO/HELO and just go deliver the mail.
2538032Speter
2638032Speter	3)  No new configuration options.
2738032Speter
2838032Speter	4)  Retains the undocumented -client switch.  One warning:  it
2938032Speter	    is possible using the -client switch to cause the old sendmails
3038032Speter	    to return "I refuse to talk to myself".  You could do this under
3138032Speter	    the old code as well.  This will happen if you claim to be the
3238032Speter	    same system as the sendmail you're sending to is running on.  
3338032Speter	    That's pointless, but possible.  If you do this, just like under
3438032Speter	    the old code, you will get an error.
3538032Speter
3638032Speter	5)  If you're running a site with both old and new sendmails, you only
3738032Speter	    have to build MH once.  The code's the same; works with them
3838032Speter	    both.
3938032Speter
4038032Speter	If you decide to install this, make sure that you look the patch
4138032Speterover and that you agree with what it is doing.  It works for me, but I
4238032Spetercan't test it on every possible combination.  Make sure that it works
4338032Speterbefore you really install it for your users, if any.  No promises.
4438032Speter
4538032Speter	To install this, save this to a file in the mts/sendmail directory.
4638032SpeterFeed it to patch.  Patch will ignore the non-patch stuff.  You should have
4738032Speter"mts sendmail/smtp" in your configuration file.  This works with old and
4838032Speternew sendmails.  Using "mts sendmail"  will cause the new sendmails to
4938032Speterprint an "X-auth..." warning about who owns the process piping the mail 
5038032Spetermessage.  I don't know of anyway of getting rid of these.
5138032Speter
5238032Speter	mh-config (if necessary), make, make inst-all.
5338032Speter
5438032Speter
5538032SpeterI hope this helps people.
5638032Speter	
5738032Speter/dcn
5838032Speter
5938032SpeterDave Nelson
6038032SpeterAcademic Computer Services
6138032SpeterDePaul University, Chicago
6238032Speter
6338032Speter*** smail.c	Fri Sep  3 11:58:05 1993
6438032Speter--- smail.c	Fri Sep  3 11:57:27 1993
6538032Speter***************
6638032Speter*** 239,261 ****
6738032Speter  		    return RP_RPLY;
6838032Speter  	    }
6938032Speter  
7038032Speter! 	    if (client && *client) {
7138032Speter! 		doingEHLO = 1;
7238032Speter! 		result = smtalk (SM_HELO, "EHLO %s", client);
7338032Speter! 		doingEHLO = 0;
7438032Speter  
7538032Speter! 		if (500 <= result && result <= 599)
7638032Speter  		    result = smtalk (SM_HELO, "HELO %s", client);
7738032Speter! 
7838032Speter! 		switch (result) {
7938032Speter  		    case 250:
8038032Speter! 		        break;
8138032Speter  
8238032Speter  		    default:
8338032Speter  			(void) sm_end (NOTOK);
8438032Speter  			return RP_RPLY;
8538032Speter  		}
8638032Speter  	    }
8738032Speter  
8838032Speter  #ifndef	ZMAILER
8938032Speter  	    if (onex)
9038032Speter--- 239,276 ----
9138032Speter  		    return RP_RPLY;
9238032Speter  	    }
9338032Speter  
9438032Speter! 	    doingEHLO = 1;
9538032Speter! 	    result = smtalk (SM_HELO, "EHLO %s", 
9638032Speter! 			     (client && *client) ? client : LocalName());
9738032Speter! 	    doingEHLO = 0;
9838032Speter! 
9938032Speter! 	    switch (result)
10038032Speter! 	    {
10138032Speter! 	    case 250:
10238032Speter! 		break;
10338032Speter  
10438032Speter! 	    default:
10538032Speter! 		if (!(500 <= result && result <= 599))
10638032Speter! 		{
10738032Speter! 		    (void) sm_end (NOTOK);
10838032Speter! 		    return RP_RPLY;
10938032Speter! 		}
11038032Speter! 		
11138032Speter! 		if (client && *client)
11238032Speter! 		{
11338032Speter  		    result = smtalk (SM_HELO, "HELO %s", client);
11438032Speter! 		    switch (result)
11538032Speter! 		    {
11638032Speter  		    case 250:
11738032Speter! 			break;
11838032Speter  
11938032Speter  		    default:
12038032Speter  			(void) sm_end (NOTOK);
12138032Speter  			return RP_RPLY;
12238032Speter+ 		    }
12338032Speter  		}
12438032Speter  	    }
12538032Speter+ 	    
12638032Speter  
12738032Speter  #ifndef	ZMAILER
12838032Speter  	    if (onex)
12938032Speter***************
13038032Speter*** 357,380 ****
13138032Speter  	    return RP_RPLY;
13238032Speter      }
13338032Speter  
13438032Speter!     if (client && *client) {
13538032Speter! 	doingEHLO = 1;
13638032Speter! 	result = smtalk (SM_HELO, "EHLO %s", client);
13738032Speter! 	doingEHLO = 0;
13838032Speter  
13938032Speter! 	if (500 <= result && result <= 599)
14038032Speter  	    result = smtalk (SM_HELO, "HELO %s", client);
14138032Speter! 
14238032Speter! 	switch (result) {
14338032Speter! 	    case 250: 
14438032Speter  		break;
14538032Speter  
14638032Speter! 	    default: 
14738032Speter  		(void) sm_end (NOTOK);
14838032Speter  		return RP_RPLY;
14938032Speter  	}
15038032Speter      }
15138032Speter! 
15238032Speter  send_options: ;
15338032Speter      if (watch && EHLOset ("XVRB"))
15438032Speter  	(void) smtalk (SM_HELO, "VERB on");
15538032Speter--- 372,409 ----
15638032Speter  	    return RP_RPLY;
15738032Speter      }
15838032Speter  
15938032Speter!     doingEHLO = 1;
16038032Speter!     result = smtalk (SM_HELO, "EHLO %s", 
16138032Speter! 		     (client && *client) ? client : LocalName());
16238032Speter!     doingEHLO = 0;
16338032Speter! 
16438032Speter!     switch (result)
16538032Speter!     {
16638032Speter!     case 250:
16738032Speter! 	break;
16838032Speter! 
16938032Speter!     default:
17038032Speter! 	if (!(500 <= result && result <= 599))
17138032Speter! 	{
17238032Speter! 	    (void) sm_end (NOTOK);
17338032Speter! 	    return RP_RPLY;
17438032Speter! 	}
17538032Speter  
17638032Speter! 	if (client && *client)
17738032Speter! 	{
17838032Speter  	    result = smtalk (SM_HELO, "HELO %s", client);
17938032Speter! 	    switch (result)
18038032Speter! 	    {
18138032Speter! 	    case 250:
18238032Speter  		break;
18338032Speter  
18438032Speter! 	    default:
18538032Speter  		(void) sm_end (NOTOK);
18638032Speter  		return RP_RPLY;
18738032Speter+ 	    }
18838032Speter  	}
18938032Speter      }
19038032Speter!     
19138032Speter  send_options: ;
19238032Speter      if (watch && EHLOset ("XVRB"))
19338032Speter  	(void) smtalk (SM_HELO, "VERB on");
194