Annotation of 43BSD/usr.lib/sendmail/cf.hosttable/base.m4, revision 1.1.1.1

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: #      @(#)base.m4     5.7 (Berkeley) 10/21/85
                     12: #
                     13: divert(0)
                     14: ############################################################
                     15: #
                     16: #      General configuration information
                     17: #
                     18: #      This information is basically just "boiler-plate"; it must be
                     19: #      there, but is essentially constant.
                     20: #
                     21: #      Information in this file should be independent of location --
                     22: #      i.e., although there are some policy decisions made, they are
                     23: #      not specific to Berkeley per se.
                     24: #
                     25: ############################################################
                     26: 
                     27: include(version.m4)
                     28: 
                     29: ##########################
                     30: ###   Special macros   ###
                     31: ##########################
                     32: 
                     33: # my name
                     34: DnMAILER-DAEMON
                     35: # UNIX header format
                     36: DlFrom $g  $d
                     37: # delimiter (operator) characters
                     38: Do.:%@!^=/[]
                     39: # format of a total name
                     40: Dq$g$?x ($x)$.
                     41: # SMTP login message
                     42: De$j Sendmail $v/$Z ready at $b
                     43: 
                     44: # forwarding host -- redefine this if you can't talk to the relay directly
                     45: DF$R
                     46: 
                     47: ###################
                     48: ###   Options   ###
                     49: ###################
                     50: 
                     51: # location of alias file
                     52: OA/usr/lib/aliases
                     53: # wait up to ten minutes for alias file rebuild
                     54: Oa10
                     55: # substitution for space (blank) characters
                     56: OB.
                     57: # (don't) connect to "expensive" mailers
                     58: #Oc
                     59: # default delivery mode (deliver in background)
                     60: Odbackground
                     61: # temporary file mode
                     62: OF0600
                     63: # default GID
                     64: Og1
                     65: # location of help file
                     66: OH/usr/lib/sendmail.hf
                     67: # log level
                     68: OL9
                     69: # default network name
                     70: ONARPA
                     71: # default messages to old style
                     72: Oo
                     73: # queue directory
                     74: OQ/usr/spool/mqueue
                     75: # read timeout -- violates protocols
                     76: Or2h
                     77: # status file
                     78: OS/usr/lib/sendmail.st
                     79: # queue up everything before starting transmission
                     80: Os
                     81: # default timeout interval
                     82: OT3d
                     83: # time zone names (V6 only)
                     84: OtPST,PDT
                     85: # default UID
                     86: Ou1
                     87: # wizard's password
                     88: OW*
                     89: # load average at which we just queue messages
                     90: Ox8
                     91: # load average at which we refuse connections
                     92: OX12
                     93: 
                     94: ###############################
                     95: ###   Message precedences   ###
                     96: ###############################
                     97: 
                     98: Pfirst-class=0
                     99: Pspecial-delivery=100
                    100: Pbulk=-60
                    101: Pjunk=-100
                    102: 
                    103: #########################
                    104: ###   Trusted users   ###
                    105: #########################
                    106: 
                    107: Troot
                    108: Tdaemon
                    109: Tuucp
                    110: Teric
                    111: Tnetwork
                    112: 
                    113: #############################
                    114: ###   Format of headers   ###
                    115: #############################
                    116: 
                    117: H?P?Return-Path: <$g>
                    118: HReceived: $?sfrom $s $.by $j ($v/$Z)
                    119:        id $i; $b
                    120: H?D?Resent-Date: $a
                    121: H?D?Date: $a
                    122: H?F?Resent-From: $q
                    123: H?F?From: $q
                    124: H?x?Full-Name: $x
                    125: HSubject:
                    126: # HPosted-Date: $a
                    127: # H?l?Received-Date: $b
                    128: H?M?Resent-Message-Id: <$t.$i@$j>
                    129: H?M?Message-Id: <$t.$i@$j>
                    130: 
                    131: ###########################
                    132: ###   Rewriting rules   ###
                    133: ###########################
                    134: 
                    135: 
                    136: ################################
                    137: #  Sender Field Pre-rewriting  #
                    138: ################################
                    139: S1
                    140: #R$*<$*>$*             $1$2$3                          defocus
                    141: 
                    142: ###################################
                    143: #  Recipient Field Pre-rewriting  #
                    144: ###################################
                    145: S2
                    146: #R$*<$*>$*             $1$2$3                          defocus
                    147: 
                    148: #################################
                    149: #  Final Output Post-rewriting  #
                    150: #################################
                    151: S4
                    152: 
                    153: R@                     $@                              handle <> error addr
                    154: 
                    155: # externalize local domain info
                    156: R$*<$*LOCAL>$*         $1<$2$D>$3                      change local info
                    157: R$*<$*LOCAL.ARPA>$*    $1<$2$D>$3                      change local info
                    158: R$*<$*.CC>$*           $1$2$3                          strip .CC
                    159: R$*<$+>$*              $1$2$3                          defocus
                    160: R@$+:@$+:$+            @$1,@$2:$3                      <route-addr> canonical
                    161: 
                    162: # UUCP must always be presented in old form
                    163: R$+@$-.UUCP            $2!$1                           [email protected] => h!u
                    164: 
                    165: # delete duplicate local names -- mostly for arpaproto.mc
                    166: R$+%$=w@$=w            $1@$3                           u%UCB@UCB => u@UCB
                    167: R$+%$=w@$=w.ARPA       $1@$3.ARPA                      u%UCB@UCB => u@UCB
                    168: 
                    169: ###########################
                    170: #  Name Canonicalization  #
                    171: ###########################
                    172: S3
                    173: 
                    174: # handle "from:<>" special case
                    175: R<>                    $@@                             turn into magic token
                    176: 
                    177: # basic textual canonicalization -- note RFC733 heuristic here
                    178: R$*<$*<$*<$+>$*>$*>$*  $4                              3-level <> nesting
                    179: R$*<$*<$+>$*>$*                $3                              2-level <> nesting
                    180: R$*<$+>$*              $2                              basic RFC821/822 parsing
                    181: R$+ at $+              $1@$2                           "at" -> "@" for RFC 822
                    182: 
                    183: # make sure <@a,@b,@c:user@d> syntax is easy to parse -- undone later
                    184: R@$+,$+                        @$1:$2                          change all "," to ":"
                    185: 
                    186: # localize and dispose of route-based addresses
                    187: R@$+:$+                        $@$>6<@$1>:$2                   handle <route-addr>
                    188: 
                    189: # more miscellaneous cleanup
                    190: R$+                    $:$>8$1                         host dependent cleanup
                    191: R$+:$*;@$+             $@$1:$2;@$3                     list syntax
                    192: R$+:$*;                        $@$1:$2;                        list syntax
                    193: R$+@$+                 $:$1<@$2>                       focus on domain
                    194: R$+<$+@$+>             $1$2<@$3>                       move gaze right
                    195: R$+<@$+>               $@$>6$1<@$2>                    already canonical
                    196: 
                    197: # convert old-style addresses to a domain-based address
                    198: R$-:$+                 $@$>6$2<@$1>                    host:user
                    199: R$+^$+                 $1!$2                           convert ^ to !
                    200: R$-.$+!$+              $@$>6$3<@$1.$2>                 host.domain!user
                    201: R$-!$+                 $@$>6$2<@$1.UUCP>               host!user (uucp)
                    202: R$+%$+                 $@$>6$1<@$2>                    user%host
                    203: R$-=$+                 $@$>6$2<@$1.BITNET>             host=user (bitnet)
                    204: R$-.$+                 $@$>6$2<@$1>                    host.user
                    205: 
                    206: # always include local and tcp mailers (tcp for [w.x.y.z]-style addrs)
                    207: include(localm.m4)
                    208: include(tcpm.m4)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.