sendmail config file question

Ron Stanonik stanonik at nprdc.arpa
Wed Jan 29 23:14:47 AEST 1986


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;



More information about the Comp.unix mailing list