[comp.mail.sendmail] sendmail.cf - help matching a class of domain names

mwg8908@ultb.isc.rit.edu (M.W. Goheen) (11/23/89)

I (and a few other sendmail.cf newcomers) spent a good deal of yesterday
bashing a config file senseless trying to get a rule that would strip
off all the possible addresses that were local to our site.  The list is
something like:

	ultb.isc.rit.edu
	isc.rit.edu
	ultb.rit.edu
	rit.edu
	ultb

I tried putting those in a class and matching them, but that didn't work,
I think probably because the tokens like "rit.edu" don't match the
broken apart form that sendmail generates (i.e. < "@" "rit" "." "edu" > ).
I ended up using a brute force kludge (generate a line for EACH possible
name).  We also tried used the $=w class, but couldn't seem to get
anywhere with that either (perhaps the same problem?).

Any tips/help would be greatly appreciated!


					Matt Goheen
					mwg8908@ultb.isc.rit.edu

viktor@fine.Princeton.EDU (Viktor Dukhovni) (11/25/89)

mwg8908@ultb.isc.rit.edu (M.W. Goheen) writes:

>I (and a few other sendmail.cf newcomers) spent a good deal of yesterday
>bashing a config file senseless trying to get a rule that would strip
>off all the possible addresses that were local to our site.  The list is
>something like:

>	ultb.isc.rit.edu
>	isc.rit.edu
>	ultb.rit.edu
>	rit.edu
>	ultb

>...

>Any tips/help would be greatly appreciated!


	$=C can only match a single(!) token,  rit.edu (e.g.) is two
tokens,  and will never be matched by a Class C containing rit.edu
You should make sure the name is properly cannonical before the strip.
	If you have a DNS capable mailer (5.61),  just use $[domain$]
to obtain the cannonical name.  Presumably the list would shrink
considerably.  IF your mailer does not support $[$],  you should fake
it by hand!  In any case the first step in ruleset zero is always to obtain
a cannonical name.

	Presumably after that you will be facing only one name
for utlb,  and possibly a small list of domains,  though ideally the
nameserver should return either a 
utlb.rit.edu	IN CNAME rit.edu.
or
rit.du		IN CNAME utlb.rit.edu
	assuming you want to cannocalize to the rit.edu and not
	foo.rit.edu domain.  

	In any case the idea is make the domain and gateway to
acquire the same cannonical name.

--
	Viktor Dukhovni <viktor@math.princeton.edu>

nowicki@legato (Bill Nowicki) (12/01/89)

In article <11720@phoenix.Princeton.EDU> viktor@fine.Princeton.EDU (Viktor Dukhovni) writes:
>
>	$=C can only match a single(!) token,  rit.edu (e.g.) is two
>tokens,  and will never be matched by a Class C containing rit.edu

Note that one of the "IDA Enhancements" that was adopted by Sun
eliminates the above restriction.  That is, in SunOS 4.x sendmail,
class matches do work with any number of tokens, not just a single
atom.  This was an essential feature to make the same subsidiary .cf
file work for any number of levels in the domain name.

	-- WIN

sow@cad.luth.se (Sven-Ove Westberg) (12/01/89)

In article <1091@legato.LEGATO.COM> nowicki@legato (Bill Nowicki) writes:
|In article <11720@phoenix.Princeton.EDU> viktor@fine.Princeton.EDU (Viktor Dukhovni) writes:
|>
|>	$=C can only match a single(!) token,  rit.edu (e.g.) is two
|>tokens,  and will never be matched by a Class C containing rit.edu
|
|Note that one of the "IDA Enhancements" that was adopted by Sun
|eliminates the above restriction.  That is, in SunOS 4.x sendmail,
|class matches do work with any number of tokens, not just a single
|atom.  This was an essential feature to make the same subsidiary .cf
|file work for any number of levels in the domain name.
|

This is only partly true in the "IDA Enhancements". The feature
is only implemented in match (eg $=C ) not in the negoation (eg $~C ).

Has some one fixed this flaw in the "IDA Enhancements"? 

Sven-Ove Westberg, CAD, University of Lulea, S-951 87 Lulea, Sweden.