|
|
1.1 root 1: divert(10)
2: #
3: # Sendmail
4: # Copyright (c) 1983 Eric P. Allman
5: # Berkeley, California
6: #
7: # Copyright (c) 1983 Regents of the University of California.
8: # All rights reserved. The Berkeley software License Agreement
9: # specifies the terms and conditions for redistribution.
10: #
11: # @(#)rule3.m4 1.11 (Berkeley) 5/1/86
12: #
13: divert(0)
14: ###########################
15: # Name Canonicalization #
16: ###########################
17: S3
18:
19: # handle "from:<>" special case
20: R<> $@@ turn into magic token
21:
22: # basic textual canonicalization -- note RFC733 heuristic here
23: R$*<$*<$*<$+>$*>$*>$* $4 3-level <> nesting
24: R$*<$*<$+>$*>$* $3 2-level <> nesting
25: R$*<$+>$* $2 basic RFC821/822 parsing
26: R$+ at $+ $1@$2 "at" -> "@" for RFC 822
27:
28: # make sure <@a,@b,@c:user@d> syntax is easy to parse -- undone later
29: R@$+,$+ @$1:$2 change all "," to ":"
30:
31: # localize and dispose of route-based addresses
32: R@$+:$+ $@$>6<@$1>:$2 handle <route-addr>
33:
34: # more miscellaneous cleanup
35: R$+ $:$>8$1 host dependent cleanup
36: R$+:$*;@$+ $@$1:$2;@$3 list syntax
37: R$+:$*; $@$1:$2; list syntax
38: R$+@$+ $:$1<@$2> focus on domain
39: R$+<$+@$+> $1$2<@$3> move gaze right
40: R$+<@$+> $@$>6$1<@$2> already canonical
41:
42: # convert old-style addresses to a domain-based address
43: R$+^$+ $1!$2 convert ^ to !
44: R$-!$+ $@$>6$2<@$1.UUCP> resolve uucp names
45: R$+.$-!$+ $@$>6$3<@$1.$2> domain uucps
46: R$+!$+ $@$>6$2<@$1.UUCP> uucp subdomains
47: R$-:$+ $@$>6$2<@$1> host:user
48: R$-=$+ $@$>6$2<@$1.BITNET> resolve bitnet names
49: R$+%$+ $:$>9$1%$2 user%host
50: R$+<@$+> $@$>6$1<@$2> already canonical
51: R$-.$+ $@$>6$2<@$1> host.user
52:
53:
54: #################################
55: # special local conversions #
56: #################################
57:
58: S6
59: R$*<@$=w>$* $:$1<@LOCAL>$3
60: R$*<@$=w.$=D>$* $1<@$2.LOCAL>$4 convert local domain
61: R$*<@$=w.ARPA>$* $1<@$2.LOCAL>$3
62: R$*<@$=w.EDU>$* $1<@$2.LOCAL>$3
63: R$*<@$=w.$=D.ARPA>$* $1<@$2.LOCAL>$4
64: R$*<@$=w.$=D.EDU>$* $1<@$2.LOCAL>$4
65: R$+<@LOCAL> $@$1<@LOCAL>
66: R$+<@$=w.LOCAL> $@$1<@LOCAL>
67: R<@$=w.LOCAL>:$+ $@$>3$2
68: R$+<@$*.LOCAL>$* $1<@$2>$3
69: R$*<@$+.$=T.$=T>$* $1<@$2.$3>$5 make UUCP top level
70: R$*<@$+.CC>$* $1<@$2.$D>$3
71: R$*<@ucsfcgl.UUCP>$* $1<@cgl.ucsf.edu>$2 ucsfcgl now on Internet
72:
73: ################################
74: # Change rightmost % to @. #
75: ################################
76:
77: S9
78: R$*%$* $1@$2 First make them all @'s.
79: R$*@$*@$* $1%$2@$3 Undo all but the last.
80: R$*@$* $@$1<@$2> Put back the brackets.
81:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.