[net.unix] sendmail config file question

stanonik@nprdc.arpa (Ron Stanonik) (01/29/86)

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;

stanonik@nprdc.arpa (01/29/86)

Oh yes, be warned that if you remove "." from the operators
you probably need to do some serious rewriting of the reset
of your config file.

Ron