Path: utzoo!mnetor!uunet!lll-winken!lll-tis!ames!amdcad!rpw3 From: rpw3@amdcad.AMD.COM (Rob Warnock) Newsgroups: comp.mail.headers Subject: Re: ! and @ -- which RFC ? Message-ID: <21169@amdcad.AMD.COM> Date: 15 Apr 88 04:59:39 GMT References: <1121@cblpf.ATT.COM> <4634@chinet.UUCP> <472@splut.UUCP> Reply-To: rpw3@amdcad.UUCP (Rob Warnock) Distribution: na Organization: [Consultant] San Mateo, CA Lines: 85 In article <472@splut.UUCP> jay@splut.UUCP (Jay Maynard) writes: +--------------- | This is the reason I haven't installed smail on splut yet. I don't want to | maintain a humongous database ... and I have not one but two well-connected | neighbors and one fairly-well-connected neighbor... I want stuff that | can go through ihnp4 to the destination machine but not through uunet | easily to go via tness1, while I want stuff that can go directly through | uunet to go via nuchat...) | (Anyone with a solution to this one will earn my undying thanks!) +--------------- I had exactly the same need when the first "smail" came out, and came up with a one-line hack that fixed it all for me. I haven't upgraded to smail2.5 on that machine yet, so can't tell you how to do it to the current source, but it should be easy from the description below. (It may be that the "partial resolution" added in smail 2.5 makes this moot.) It was well worth it. The "paths" file on that machine is now ~4 Kbytes, rather than 400K+. In (original) smail, there is a place where a match has been found, and smail is about to rewrite the address. The hack is this: If the "right-hand-side" (what we are about to substitute for the "host" or "domain") starts with an asterisk "*", the RHS (minus the asterisk) is PREPENDED to the original host/domain, rather than replacing it. That's it! The effective benefit of the hack is to allow you multiple "smart-hosts", selected by domain. This means you can default any of your traffic at one level to one host, but at a lower level can selectively route some sub-domains to other links. For example, if you wanted to (say) default ".COM" to go through "uunet" (via "nuchat"), but knew that AT&T sites would be better served by "ihnp4" (through "tness1"), you paths file could look like: .att.com *tness1!ihnp4!%s .com *nuchat!uunet!%s .il43c.att.com some!special!path!to!ATT!site!il43c!%s The last path is thrown in to show a non-"*" path that overrides even the ".att.com" default. (Remember, smail will try the most specific domain first, only going to the more general if it fails to find a match.) To "compress" your paths file, you start with a full paths file built by pathalias for your host (as noted elsewhere, this can be done on another system), then replace any path which includes a known "smart host" with a "*"-path which stops at the smart-host. For example, you can change all paths like: .foo.com nuchat!uunet!some!funky!path!...!foo!%s to .foo.com *nuchat!uunet!%s (Note: This DOESN'T assume "nuchat" is smart, but that uunet is.) Now when you've done that, you'll notice an awful lot of domains that now have the same right hand side. All of those can be collapsed into a single entry. So that: .alpha.foo.com nuchat!uunet!some!funky!path!...!alpha!%s .beta.foo.com nuchat!uunet!some!other!weird!path!...!beta!%s .gamma.foo.com nuchat!uunet!still!a!third!strange!path!gamma!%s can be collapsed to .foo.com *nuchat!uunet!%s So you end up with a default (primary) route for each top-level domain (.com, .edu, &c.), and a few special routes for broad classes you know how to route better. Yes, this costs manual work, but for a really small site it's worth it, for two reasons: (1) The paths file is *MUCH* smaller, and (2) since you only store the best outgoing stub path to the nearest smart host (for that particular (sub)domain), the paths data tends to change MUCH less frequently. (The path from uunet to a random host may change, but the path from you to uunet is much more stable.) Hope this helps... Rob Warnock Systems Architecture Consultant UUCP: {amdcad,fortune,sun,attmail}!redwood!rpw3 ATTmail: !rpw3 DDD: (415)572-2607 USPS: 627 26th Ave, San Mateo, CA 94403