[TUHS] Upas rewrite little language

William Cheswick ches at cheswick.com
Sat Dec 1 01:05:42 AEST 2018


Whoa! I hadn’t realized that I have in my archives mail configuration files from no later that 1993.  Here is one rewrite file from “research”, as in “research!dmr":

more rewrite 
# local mail
[^!@%.=]+               translate       "exec /v/lib/upas/translate '&'"
local!([^!@]+)          >>              /usr/spool/mail/\1
\l!(.+)                 alias           \1
research\.att\.com!(.+) alias           \1
research\.research\.att\.com!(.+)       alias           \1
plan9\.research\.att\.com!(.+)  alias   \1

league\.att\.com!(.+)   alias           league!\1
league\.research\.att\.com!(.+) alias   league!\1
league!(.+)             alias   \1


# convert @ format to ! format
([^!]+)@([^!@]+)        alias   \2!\1

# convert % addresses for us only.
([^!]+)%([^!%]+)        alias   \2!\1

# network gateways

uucp!(.+)               alias   \1
bitnet!(.+)             alias   inet!bitnet!\1
uunet!(.+)              alias   inet!uunet.uu.net!\1
.*tempo\.att\.com!.*    | "exec /v/lib/upas/route '\s' allegra.att.com" "'&'"
vax135!(.*)             | "exec /v/lib/upas/route '\s' big.l1135.att.com" "\1"
\[([^!]+)\]!(.+)        |       "exec /v/lib/upas/route.ip '\s' '\1'" "'\2'"
([^!]+\.att\.com)!(.+)  |       "exec /v/lib/upas/route '\s' '\1'" "'\2'"
[^!]+\..*               |       "exec /v/lib/upas/route '\s' inet" "'&'"
([^!]+)!(.+)            |       "exec /v/lib/upas/route '\s' '\1'" "'\2’"


====

and here is the rewrite file for the mail application gateway no later than 1998:

#  get rid of the .att.com domain part of the name.
#  It's not used internally.
([^%!@.]+)\.att\.com!(.+)		alias	\1!\2

# the following must change: we don't really want these used.
att\.com!(.+)				alias	\1
att\.arpa!(.+)				alias	\1
(arpa|att-gw|gate)(\.arpa)?!(.+)	alias	\3

# rerouting:
uunet!(.+)		alias	uunet.uu.net!\1
mcvax!(.+)		alias	uunet.uu.net!mcvax!\1
local!(.+)		>>	/usr/spool/mail/\1
#tempo!(.+)		alias	research!tempo!\1
sola!(.+)		alias	jones!\1

# a very common mistake
.*!			|	"echo Bad address: '&'; exit 1"
# a problem at cunyvm.
cunyvm\.cuny\.edu!(cunyvm\.cuny\.edu)!(.+)	alias	\1!\2

# gateways
uucp!(.+)		alias	\1
csnet!(.+)		alias	relay.cs.net!\1
bitnet!([^!]+)!(.+)	alias	CUNYVM.CUNY.EDU!\1.BITNET!\2
bitnet!([^!]+)@([^!]+)	alias	CUNYVM.CUNY.EDU!\2.BITNET!\1
mailnet!([^!]+)!(.+)	alias	mit-multics.arpa!\1.MAILNET!\2
acsnet!(.+)		alias	research!&
attmail!(.+)		auth	false
# attmail!(.+)		alias	attbl!attmail!\1

# convert @ format to ! format always (so locals can use @ format)
(.+)@([^!@]+)			alias	\2!_pct_!\1

# convert % format only if the first hop isn't on the internet.
([^!]+)%([^!%]+)			alias	\2!\1
([^!.]+)!(.+!)?_pct_!(.+)%([^!%]+)	alias	\1!\2\4!_pct_!\3
([^!.]+)!(.+)%([^!%]+)			alias	\1!\3!_pct_!\2

# get rid of our _pct_ tag
((.+)!)?_pct_!(.+)			alias	\1\3

# don't route through research just to get to another machine
# this MUST follow the %@ conversion
research!([^!]+)!(.+)			alias   \1!\2
research!([^!]+)			alias	inet!\1

# at this point, anything without a "."  in the first component
inet!(.+)               	|       "exec /usr/lib/upas/route.inet '\s' inet" "'\1'"
(att|coma|alice|allegra)!(.+)	|       "exec /usr/lib/upas/route.toatt '\s' \1" "'\2'"
([^.!]+)!(.+)           	|       "exec /usr/lib/upas/route.toatt '\s' att" "'&'"

#	Only local or Internet Domain addresses below this line.

# various semi-official domain addresses
([^!]+)\.(csnet|bitnet|acsnet|mailnet|uucp)!(.*) alias	\2!\1!\3

# Domain routings - arranged with the other AT&T postmasters
sf\.att\.com!(.+)				alias	attunix!\1
([^!.]+)\.sf\.att\.com!(.+)			alias	attunix!\1!\2
([^!.]+)\.(astro|mercury|phone|div111)\.nj\.att\.com!(.+)	alias   \1!\2
([^!]*\.)?mis\.oh\.att\.com!.+			alias	att!&
([^!]*\.)?dptg\.att\.com!.+			alias	dptg!&
([^!]*\.)?garage(\.nj)?\.att\.com!.+		alias	garage!&
([^!]*)\.tempo(\.nj)?\.att\.com!(.+)		alias	\1!\3
([^!]*\.)?homer\.nj\.att\.com!.+		alias	ulysses!&
([^!]+)\.aloft\.att\.com!(.+)			alias	aloft!&
(([^!]*\.)?uso\.att\.com)!(.+)  |  "smtpqer -n -d .att.com -H att.att.com '\s' '\1'" "'\3'"
([^!]+)\.att\.com(\.)?!(.+)	| "echo 'Unknown AT\&T domain:' '&' >\&2; exit 1"

# Ready to send Internet mail.
([^!]+)!(.+)            |  "smtpqer -n -d .att.com -H att.att.com '\s' '\1'" "'\2'"

#	carefully selected local translates

postmaster		alias		coma!postmaster
[^!@%]*[._]+[^!@%]*	translate	\
	"exec /usr/lib/post/post -o '%^25name  %20ema  %^city, %+state ' -x -- '&'"
[^!@%]+			translate	"exec translate '&'"
[^!@%]+			>>		/usr/spool/mail/&

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20181130/49b5cb24/attachment.html>


More information about the TUHS mailing list