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