Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!think!harvard!seismo!brl-tgr!tgr!stanonik@nprdc.arpa From: stanonik@nprdc.arpa (Ron Stanonik) Newsgroups: net.unix Subject: Re: sendmail config file question Message-ID: <2024@brl-tgr.ARPA> Date: Wed, 29-Jan-86 08:14:47 EST Article-I.D.: brl-tgr.2024 Posted: Wed Jan 29 08:14:47 1986 Date-Received: Sat, 1-Feb-86 00:48:14 EST Sender: news@brl-tgr.ARPA Lines: 77 A sendmail class is a set of tokens delimited by the operators (macro o), which includes ".". After removing "." from the operators we still had problems because sendmail could not bear to let two ATMs get by without a "." between them. So, we also modified parseaddr.c revision 1.2 date: 85/08/29 08:48:50; author: root; state: Exp; lines added/del: 0/4 no longer insert a SpaceSub "." between tokens if both are ATMs. now if "." is not a delimiter, $w.$D becomes nprdc.arpa, rather than nprdc..arpa. --- parseaddr.c *************** *** 830,838 sz -= 2; while (*pvp != NULL && (i = strlen(*pvp)) < sz) { - natomtok = (toktype(**pvp) == ATM); - if (oatomtok && natomtok) - *p++ = SpaceSub; (void) strcpy(p, *pvp); oatomtok = natomtok; p += i; --- 830,835 ----- sz -= 2; while (*pvp != NULL && (i = strlen(*pvp)) < sz) { (void) strcpy(p, *pvp); p += i; sz -= i + 1; *************** *** 834,840 if (oatomtok && natomtok) *p++ = SpaceSub; (void) strcpy(p, *pvp); - oatomtok = natomtok; p += i; sz -= i + 1; pvp++; --- 831,836 ----- while (*pvp != NULL && (i = strlen(*pvp)) < sz) { (void) strcpy(p, *pvp); p += i; sz -= i + 1; pvp++; We also had the problem of silently disappearing mail. For us it turned out to be a sendmail bug which causes smtp senders to be dropped from the recipient list. revision 1.3 date: 84/12/17 08:47:10; author: root; state: Exp; lines added/del: 1/0 fix alias expansion/lost mail problems for mail from smtp. now smtp recipients are treated the same as sendmail arguments; ie, flagged QPRIMARY. --- srvrsmtp.c *************** *** 231,236 a = parseaddr(p, (ADDRESS *) NULL, 1); if (a == NULL) break; a = recipient(a, &CurEnv->e_sendqueue); if (Errors != 0) break; --- 231,237 ----- a = parseaddr(p, (ADDRESS *) NULL, 1); if (a == NULL) break; + a->q_flags |= QPRIMARY; a = recipient(a, &CurEnv->e_sendqueue); if (Errors != 0) break;