1Message-Id: <199309031900.OAA19417@ignatz.acs.depaul.edu> 2To: bug-mh@ics.uci.edu 3cc: mh-users@ics.uci.edu, eric@cs.berkeley.edu 4Subject: MH-6.8.1/Sendmail 8.X (MH patch) updated 5Date: Fri, 03 Sep 1993 14:00:46 -0500 6From: Dave Nelson <dcn@ignatz.acs.depaul.edu> 7 8 9 This patch will fix the "X-auth..." warnings from the newer 10Sendmails (8.X) while continuing to work with the old sendmails. 11 12 I think the following patch will make everyone happy. 13 14 1) Anybody with MH-6.8.1 can install this. It doesn't matter 15 what version of sendmail you're running. It doesn't matter 16 if you're not running sendmail (but it won't fix anything 17 for you). 18 19 2) No configuration file hacks. If the -client switch is 20 absent (the default), the new sendmails will get an EHLO 21 using what LocalName() returns as the hostname. On my systems, 22 this returns the FQDN. If the EHLO fails with a result between 23 500 and 599 and the -client switch is not set, we give up on 24 sending EHLO/HELO and just go deliver the mail. 25 26 3) No new configuration options. 27 28 4) Retains the undocumented -client switch. One warning: it 29 is possible using the -client switch to cause the old sendmails 30 to return "I refuse to talk to myself". You could do this under 31 the old code as well. This will happen if you claim to be the 32 same system as the sendmail you're sending to is running on. 33 That's pointless, but possible. If you do this, just like under 34 the old code, you will get an error. 35 36 5) If you're running a site with both old and new sendmails, you only 37 have to build MH once. The code's the same; works with them 38 both. 39 40 If you decide to install this, make sure that you look the patch 41over and that you agree with what it is doing. It works for me, but I 42can't test it on every possible combination. Make sure that it works 43before you really install it for your users, if any. No promises. 44 45 To install this, save this to a file in the mts/sendmail directory. 46Feed it to patch. Patch will ignore the non-patch stuff. You should have 47"mts sendmail/smtp" in your configuration file. This works with old and 48new sendmails. Using "mts sendmail" will cause the new sendmails to 49print an "X-auth..." warning about who owns the process piping the mail 50message. I don't know of anyway of getting rid of these. 51 52 mh-config (if necessary), make, make inst-all. 53 54 55I hope this helps people. 56 57/dcn 58 59Dave Nelson 60Academic Computer Services 61DePaul University, Chicago 62 63*** smail.c Fri Sep 3 11:58:05 1993 64--- smail.c Fri Sep 3 11:57:27 1993 65*************** 66*** 239,261 **** 67 return RP_RPLY; 68 } 69 70! if (client && *client) { 71! doingEHLO = 1; 72! result = smtalk (SM_HELO, "EHLO %s", client); 73! doingEHLO = 0; 74 75! if (500 <= result && result <= 599) 76 result = smtalk (SM_HELO, "HELO %s", client); 77! 78! switch (result) { 79 case 250: 80! break; 81 82 default: 83 (void) sm_end (NOTOK); 84 return RP_RPLY; 85 } 86 } 87 88 #ifndef ZMAILER 89 if (onex) 90--- 239,276 ---- 91 return RP_RPLY; 92 } 93 94! doingEHLO = 1; 95! result = smtalk (SM_HELO, "EHLO %s", 96! (client && *client) ? client : LocalName()); 97! doingEHLO = 0; 98! 99! switch (result) 100! { 101! case 250: 102! break; 103 104! default: 105! if (!(500 <= result && result <= 599)) 106! { 107! (void) sm_end (NOTOK); 108! return RP_RPLY; 109! } 110! 111! if (client && *client) 112! { 113 result = smtalk (SM_HELO, "HELO %s", client); 114! switch (result) 115! { 116 case 250: 117! break; 118 119 default: 120 (void) sm_end (NOTOK); 121 return RP_RPLY; 122+ } 123 } 124 } 125+ 126 127 #ifndef ZMAILER 128 if (onex) 129*************** 130*** 357,380 **** 131 return RP_RPLY; 132 } 133 134! if (client && *client) { 135! doingEHLO = 1; 136! result = smtalk (SM_HELO, "EHLO %s", client); 137! doingEHLO = 0; 138 139! if (500 <= result && result <= 599) 140 result = smtalk (SM_HELO, "HELO %s", client); 141! 142! switch (result) { 143! case 250: 144 break; 145 146! default: 147 (void) sm_end (NOTOK); 148 return RP_RPLY; 149 } 150 } 151! 152 send_options: ; 153 if (watch && EHLOset ("XVRB")) 154 (void) smtalk (SM_HELO, "VERB on"); 155--- 372,409 ---- 156 return RP_RPLY; 157 } 158 159! doingEHLO = 1; 160! result = smtalk (SM_HELO, "EHLO %s", 161! (client && *client) ? client : LocalName()); 162! doingEHLO = 0; 163! 164! switch (result) 165! { 166! case 250: 167! break; 168! 169! default: 170! if (!(500 <= result && result <= 599)) 171! { 172! (void) sm_end (NOTOK); 173! return RP_RPLY; 174! } 175 176! if (client && *client) 177! { 178 result = smtalk (SM_HELO, "HELO %s", client); 179! switch (result) 180! { 181! case 250: 182 break; 183 184! default: 185 (void) sm_end (NOTOK); 186 return RP_RPLY; 187+ } 188 } 189 } 190! 191 send_options: ; 192 if (watch && EHLOset ("XVRB")) 193 (void) smtalk (SM_HELO, "VERB on"); 194