From ce6912dfe8e7976fc178e6fce82c2d6a784bd2ba Mon Sep 17 00:00:00 2001 From: "William F. Jolitz" Date: Wed, 25 Jan 1989 11:48:01 -0800 Subject: [PATCH] 386BSD 0.1 development Work on file usr/src/usr.sbin/sendmail/cf/cf/cad.cf Work on file usr/src/usr.sbin/sendmail/cf/cf/cadgroup.cf Work on file usr/src/usr.sbin/sendmail/cf/cf/cogsci.cf Work on file usr/src/usr.sbin/sendmail/cf/cf/okeeffe.cf Work on file usr/src/usr.sbin/sendmail/cf/cf/ucbarpa.cf Work on file usr/src/usr.sbin/sendmail/cf/cf/ucbvax.cf Work on file usr/src/usr.sbin/sendmail/cf/cf/cc.cf Work on file usr/src/usr.sbin/sendmail/cf/cf/cchem.cf Work on file usr/src/usr.sbin/sendmail/cf/cf/ic.cf Work on file usr/src/usr.sbin/sendmail/cf/cf/ucbtcp.cf Co-Authored-By: Lynne Greer Jolitz Synthesized-from: 386BSD-0.1 --- usr/src/usr.sbin/sendmail/cf/cf/cad.cf | 627 +++++++++++++++ usr/src/usr.sbin/sendmail/cf/cf/cadgroup.cf | 547 +++++++++++++ usr/src/usr.sbin/sendmail/cf/cf/cc.cf | 547 +++++++++++++ usr/src/usr.sbin/sendmail/cf/cf/cchem.cf | 547 +++++++++++++ usr/src/usr.sbin/sendmail/cf/cf/cogsci.cf | 610 ++++++++++++++ usr/src/usr.sbin/sendmail/cf/cf/ic.cf | 603 ++++++++++++++ usr/src/usr.sbin/sendmail/cf/cf/okeeffe.cf | 606 ++++++++++++++ usr/src/usr.sbin/sendmail/cf/cf/ucbarpa.cf | 607 ++++++++++++++ usr/src/usr.sbin/sendmail/cf/cf/ucbtcp.cf | 547 +++++++++++++ usr/src/usr.sbin/sendmail/cf/cf/ucbvax.cf | 837 ++++++++++++++++++++ 10 files changed, 6078 insertions(+) create mode 100644 usr/src/usr.sbin/sendmail/cf/cf/cad.cf create mode 100644 usr/src/usr.sbin/sendmail/cf/cf/cadgroup.cf create mode 100644 usr/src/usr.sbin/sendmail/cf/cf/cc.cf create mode 100644 usr/src/usr.sbin/sendmail/cf/cf/cchem.cf create mode 100644 usr/src/usr.sbin/sendmail/cf/cf/cogsci.cf create mode 100644 usr/src/usr.sbin/sendmail/cf/cf/ic.cf create mode 100644 usr/src/usr.sbin/sendmail/cf/cf/okeeffe.cf create mode 100644 usr/src/usr.sbin/sendmail/cf/cf/ucbarpa.cf create mode 100644 usr/src/usr.sbin/sendmail/cf/cf/ucbtcp.cf create mode 100644 usr/src/usr.sbin/sendmail/cf/cf/ucbvax.cf diff --git a/usr/src/usr.sbin/sendmail/cf/cf/cad.cf b/usr/src/usr.sbin/sendmail/cf/cf/cad.cf new file mode 100644 index 0000000000..91697096e2 --- /dev/null +++ b/usr/src/usr.sbin/sendmail/cf/cf/cad.cf @@ -0,0 +1,627 @@ +# +# Sendmail +# Copyright (c) 1983 Eric P. Allman +# Berkeley, California +# +# Copyright (c) 1983 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)cad.mc 1.11 (Berkeley) 1/24/89 +# @(#)proto.mc 1.20 (Berkeley) 1/25/89 +# +# built by phil on Wed Jan 25 11:46:36 PST 1989 +# in /usr/src/local/nettables/sendmail.cf/cf on monet.Berkeley.EDU +# +############################################################ +############################################################ +##### +##### SENDMAIL CONFIGURATION FILE +##### +############################################################ +############################################################ + + +################## +# local info # +################## + +# file containing our internet aliases +Fw/usr/lib/sendmail.cw + +# uucp hostnames +DUucbcad +CUucbcad + +# local UUCP connections +CV a +CV ames +CV analog +CV ardent dana +CV arthur +CV biosys +CV black +CV boulder +CV evans +CV harpo +CV harris +CV hpda +CV hpsrla +CV island +CV jupiter +CV masscomp masscom +CV nsc +CV oakhill +CV octal +CV sda +CV stellar +CV teklds +CV tektronix tektron +CV binky tonto +CV toshiba tsb0 +CV ucbcad +CV ucbvax +CV voder +CV vogon + + +############################# +### Setup Information ### +############################# + + +###################### +# General Macros # +###################### + +# local domain name +DDBerkeley.EDU + + + +# UUCP relay host +DRucbvax.Berkeley.EDU + +# csnet relay host +DCrelay.cs.net + +# bitnet relay host +DBjade.Berkeley.EDU + +# my official hostname +Dj$w + + + +############### +# Classes # +############### + +# Internal ("fake") domains that we use in rewriting +CIUUCP BITNET CSNET + + + + +###################### +# Version Number # +###################### + +DZ1.34 + + +###################### +# Special macros # +###################### + +# my name +DnMAILER-DAEMON +# UNIX header format +DlFrom $g $d +# delimiter (operator) characters +Do.:%@!^=/[] +# format of a total name +Dq$g$?x ($x)$. +# SMTP login message +De$j Sendmail $v/$Z ready at $b + +############### +# Options # +############### + +# location of alias file +OA/usr/lib/aliases +# wait up to ten minutes for alias file rebuild +Oa10 +# substitution for space (blank) characters +OB. +# (don't) connect to "expensive" mailers +#Oc +# default delivery mode (deliver in background) +Odbackground +# temporary file mode +OF0600 +# default GID +Og1 +# location of help file +OH/usr/lib/sendmail.hf +# log level +OL9 +# default network name +ONARPA +# default messages to old style +Oo +# queue directory +OQ/usr/spool/mqueue +# read timeout -- violates protocols +Or2h +# status file +OS/usr/lib/sendmail.st +# queue up everything before starting transmission +Os +# default timeout interval +OT3d +# time zone names (V6 only) +OtPST,PDT +# default UID +Ou1 +# wizard's password +OW* +# load average at which we just queue messages +Ox8 +# load average at which we refuse connections +OX12 + +########################### +# Message precedences # +########################### + +Pfirst-class=0 +Pspecial-delivery=100 +Pbulk=-60 +Pjunk=-100 + +##################### +# Trusted users # +##################### + +Troot +Tdaemon +Tuucp + +######################### +# Format of headers # +######################### + +H?P?Return-Path: <$g> +HReceived: $?sfrom $s $.by $j ($v/$Z) + id $i; $b +H?D?Resent-Date: $a +H?D?Date: $a +H?F?Resent-From: $q +H?F?From: $q +H?x?Full-Name: $x +HSubject: +# HPosted-Date: $a +# H?l?Received-Date: $b +H?M?Resent-Message-Id: <$t.$i@$j> +H?M?Message-Id: <$t.$i@$j> + + + +########################### +### Rewriting Rules ### +########################### + + +################################ +# Sender Field Pre-rewriting # +################################ +S1 +#R$*<$*>$* $1$2$3 defocus + +################################### +# Recipient Field Pre-rewriting # +################################### +S2 +#R$*<$*>$* $1$2$3 defocus + + + +################################# +# Final Output Post-rewriting # +################################# +S4 + +R@ $@ handle <> error addr + +# resolve numeric addresses to name if possible +R$*<@[$+]>$* $:$1<@$[[$2]$]>$3 lookup numeric internet addr + +# externalize local domain info +R$*<$+>$* $1$2$3 defocus +R@$+:@$+:$+ @$1,@$2:$3 canonical + +# UUCP must always be presented in old form +R$+@$-.UUCP $2!$1 u@h.UUCP => h!u + +# delete duplicate local names +R$+%$=w@$=w $1@$w u%host@host => u@host +R$+%$=w@$=w.$D $1@$w u%host@host => u@host + + +########################### +# Name Canonicalization # +########################### +S3 + +# handle "from:<>" special case +R$*<>$* $@@ turn into magic token + +# basic textual canonicalization -- note RFC733 heuristic here +R$*<$*<$*<$+>$*>$*>$* $4 3-level <> nesting +R$*<$*<$+>$*>$* $3 2-level <> nesting +R$*<$+>$* $2 basic RFC821/822 parsing + +# make sure <@a,@b,@c:user@d> syntax is easy to parse -- undone later +R@$+,$+ @$1:$2 change all "," to ":" + +# localize and dispose of route-based addresses +R@$+:$+ $@$>6<@$1>:$2 handle + +# more miscellaneous cleanup +R$+ $:$>8$1 host dependent cleanup +R$+:$*;@$+ $@$1:$2;@$3 list syntax +R$+:$*; $@$1:$2; list syntax +R$+@$+ $:$1<@$2> focus on domain +R$+<$+@$+> $1$2<@$3> move gaze right +R$+<@$+> $@$>6$1<@$2> already canonical + +# convert old-style addresses to a domain-based address +R$+^$+ $1!$2 convert ^ to ! +R$-!$+ $@$>6$2<@$1.UUCP> resolve uucp names +R$+.$-!$+ $@$>6$3<@$1.$2> domain uucps +R$+!$+ $@$>6$2<@$1.UUCP> uucp subdomains +R$+%$+ $:$>9$1%$2 user%host +R$+<@$+> $@$>6$1<@$2> already canonical +R$-.$+ $@$>6$2<@$1> host.user + + +################################# +# special local conversions # +################################# + +S6 +R$*<@$=w>$* $:$1<@$w>$3 get into u@$w form +R$*<@$=w.$D>$* $:$1<@$w>$3 +R$*<@$=U.UUCP>$* $:$1<@$w>$3 + +################################ +# Change rightmost % to @. # +################################ + +S9 +R$*%$* $1@$2 First make them all @'s. +R$*@$*@$* $1%$2@$3 Undo all but the last. +R$*@$* $@$1<@$2> Put back the brackets. + + + +################### +### Mailers ### +################### + + +############################################################ +############################################################ +##### +##### Local and Program Mailer specification +##### +############################################################ +############################################################ + +Mlocal, P=/bin/mail, F=rlsDFMmn, S=10, R=20, A=mail -d $u +Mprog, P=/bin/sh, F=lsDFMe, S=10, R=20, A=sh -c $u + +S10 +R@ $n errors to mailer-daemon + + +############################################################ +############################################################ +##### +##### Local Domain SMTP Mailer specification +##### +##### Messages processed by this specification are assumed to remain +##### the local domain. Hence, they can refer to hosts that are +##### not registered in the NIC host table. +##### +############################################################ +############################################################ + +Mtcpld, P=[IPC], F=mDFMueXLC, S=17, R=27, A=IPC $h, E=\r\n + +S17 + +# cleanup forwarding a bit +R$*<$*>$* $1$2$3 defocus +R$* $:$>3$1 canonicalize +R$*%$*<@$w> $:$>9$1%$2 user%localhost@localdomain + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere +R$*:$* $1.$2 map colons to dots + +# output local host as user@host.domain +R$- $@$1<@$w> user w/o host +R$+<@$w> $@$1<@$w> this host +R$+<@$=w> $@$1<@$w> or an alias +R$+<@$-> $:$1<@$[$2$]> ask nameserver +R$+<@$w> $@$1<@$w> this host +R$+<@$-> $@$1<@$2.$D> if nameserver fails + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# output fake domains as user%fake@relay + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.bitnet +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1<@$w> user@host.UUCP + + +S27 + +# cleanup +R$*<$*>$* $1$2$3 defocus +R$* $:$>3$1 now canonical form +R$*%$*<@$w> $:$>9$1%$2 user%localhost@localdomain + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere +R$*:$* $1.$2 map colons to dots + +# output local host as user@host.domain +R$- $@$1<@$w> user w/o host +R$+<@$w> $@$1<@$w> this host +R$+<@$=w> $@$1<@$w> or an alias +R$+<@$-> $:$1<@$[$2$]> ask nameserver +R$+<@$w> $@$1<@$w> this host +R$+<@$-> $@$1<@$2.$D> if nameserver fails + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# output fake domains as user%fake@relay + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.BITNET +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1 user@host.UUCP + + + +############################################################ +############################################################ +##### +##### Internet SMTP Mailer specification +##### +##### Messages processed by this specification are assumed to leave +##### the local domain -- hence, they must be canonical according to +##### RFC822 etc. This means that machines not registered with +##### the NIC must be hidden behind our Internet relay. +##### +############################################################ +############################################################ + +Mtcp, P=[IPC], F=mDFMueXLC, S=14, R=24, A=IPC $h, E=\r\n + +S14 + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere +R$*:$* $1.$2 map colons to dots + +# output local host in user@host.domain syntax +R$- $1<@$w> user w/o host +R$+<@$=w> $:$1<@$w> this host +R$+<@$-> $:$1<@$[$2$]> canonicalize into dom +R$+<@$-> $:$1<@$2.$D> if nameserver fails +R$+<@$=N.$D> $@$1<@$2.$D> nic-reg hosts are ok +R$+<@$*.$D> $@$1%$2.$D<@$A> else -> u%h@gateway + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# output internal ("fake") domains as "user%host@relay" + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.BITNET +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1<@$w> user@host.UUCP + + +S24 + +# put in <> kludge +R$*<$*>$* $1$2$3 defocus +R$* $:$>3$1 now canonical form + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere..... +R$*:$* $1.$2 map colons to dots + +# output local host in user@host.domain syntax +R$- $1<@$w> user w/o host +R$+<@$=w> $:$1<@$w> this host +R$+<@$-> $:$1<@$[$2$]> canonicalize into dom +R$+<@$-> $:$1<@$2.$D> if nameserver fails +R$+<@$=N.$D> $@$1<@$2.$D> nic-reg hosts are ok +R$+<@$*.$D> $@$1%$2.$D<@$A> else -> u%h@gateway + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# Hide fake domains behind relays + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.BITNET +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1 user@host.UUCP + + + +############################################################ +############################################################ +##### +##### UUCP Mailer specification +##### +############################################################ +############################################################ + + +Muucp, P=/usr/bin/uux, F=DFMhuU, S=13, R=23, M=100000, + A=uux - -r -z -a$f -gC $h!rmail ($u) + +S13 +R$+ $:$>5$1 convert to old style +R$*<@$=w>$* $1<@$w>$2 resolve abbreviations +R$*<@$->$* $1<@$2.$D>$3 resolve abbreviations +R$+<@$+> $2!$1 uucpize (no @'s in addr) +R$w!$+ $1 strip local name +R$+ $:$U!$1 stick on our host name +R$=U!$-%$- $:$1!$2@$3.$D ucbvax!user@host.domain + +S23 +R$+ $:$>5$1 convert to old style +R$*<@$=w>$* $1<@$w>$2 resolve abbreviations +R$*<@$->$* $1<@$2.$D>$3 resolve abbreviations +R$+<@$w> $U!$1 a!b@here -> here!a!b +R$=U!$+ $2 here!a!b -> a!b +# sanity ... should not happen. +R$=U.$D!$+ $2 strip local name.domain + + +############################################################ +############################################################ +##### +##### Provide Backward Compatibility +##### +############################################################ +############################################################ + +##################################################### +# General code to convert back to old style names # +##################################################### +S5 + +R$+<@$w> $1 strip host +R$+<@$-.UUCP> $2!$1 u@host.UUCP => host!u + + +############################################################ +############################################################ +##### +##### SMTP UUCP Mailer specification +##### +##### This mailer sends UUCP traffic over an SMTP connection. +##### Obviously, we only want to do this with UUCP hosts with +##### whom we have SMTP connectivity. The idea here is to +##### avoid having to double queue (once for sendmail, once +##### for UUCP) when there's no need. Since we need to +##### preserve uucp-ness (e.g., bangs), we use the UUCP mailer +##### rewriting rulesets. +##### +############################################################ +############################################################ + +Msmtpuucp, P=[IPC], F=mDFMueXLC, S=13, R=23, A=IPC $h, E=\r\n + + + + +##################### +### Rule Zero ### +##################### + + +############################################################ +############################################################ +##### +##### RULESET ZERO PREAMBLE +##### +##### The beginning of ruleset zero is constant through all +##### configurations. +##### +############################################################ +############################################################ + +S0 + +# first make canonical +R$*<$*>$* $1$2$3 defocus +R$+ $:$>3$1 make canonical + +# handle special cases +R$*<@[$+]>$* $:$1<@$[[$2]$]>$3 numeric internet addr +R$*<@[$+]>$* $#tcp$@[$2]$:$1@[$2]$3 numeric internet spec +R$+ $:$>6$1 +R$-<@$w> $#local$:$1 +R@ $#error$:Invalid address handle <> form + +# canonicalize using the nameserver if not internal domain +R$*<@$*.$~I>$* $:$1<@$[$2.$3$]>$4 +R$*<@$->$* $:$1<@$[$2$]>$3 +R$*<@$->$* $:$1<@$2.$D>$3 if nameserver fails + +# now delete the local info +R<@$w>:$* $@$>0$1 @here:... -> ... +R$*<@$w> $@$>0$1 ...@here -> ... + +################################## +# End of ruleset zero preamble # +################################## + + +############################################### +### Machine dependent part of Rule Zero ### +############################################### + +# resolve SMTP UUCP connections + +R<@ames.uucp>:$+ $#smtpuucp$@ames.arc.nasa.gov$:$2 +R$*<@ames.uucp> $#smtpuucp$@ames.arc.nasa.gov$:$1 +R<@ucbvax.uucp>:$+ $#smtpuucp$@ucbvax.berkeley.edu$:$2 +R$*<@ucbvax.uucp> $#smtpuucp$@ucbvax.berkeley.edu$:$1 + + +# resolve local UUCP connections +R<@$=V.UUCP>:$+ $#uucp$@$1$:$2 @host.UUCP:... +R$+<@$=V.UUCP> $#uucp$@$2$:$1 user@host.UUCP + + +# resolve fake top level domains by forwarding to other hosts +R$*<@$+.BITNET>$* $#tcp$@$B$:$1<@$2.BITNET>$3 user@host.BITNET +R$*<@$+.CSNET>$* $#tcp$@$C$:$1<@$2.CSNET>$3 user@host.CSNET + + +# forward non-local UUCP traffic to our UUCP relay +R$*<@$*.UUCP>$* $#tcpld$@$R$:$1<@$2.UUCP> uucp mail + +# hide behind our internet relay when talking to people in the arpa domain +R$*<@$*.arpa>$* $#tcp$@$2.arpa$:$1<@$2.arpa>$3 user@host.arpa + +# but speak domains to them if they speak domains too +R$*<@$*>$* $#tcpld$@$2$:$1<@$2>$3 user@host.domain + +# remaining names must be local +R$+ $#local$:$1 everything else diff --git a/usr/src/usr.sbin/sendmail/cf/cf/cadgroup.cf b/usr/src/usr.sbin/sendmail/cf/cf/cadgroup.cf new file mode 100644 index 0000000000..0df9fbb62e --- /dev/null +++ b/usr/src/usr.sbin/sendmail/cf/cf/cadgroup.cf @@ -0,0 +1,547 @@ +# +# Sendmail +# Copyright (c) 1983 Eric P. Allman +# Berkeley, California +# +# Copyright (c) 1983 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)cadgroup.mc 1.7 (Berkeley) 1/3/89 +# @(#)proto.mc 1.20 (Berkeley) 1/25/89 +# +# built by phil on Wed Jan 25 11:46:46 PST 1989 +# in /usr/src/local/nettables/sendmail.cf/cf on monet.Berkeley.EDU +# +############################################################ +############################################################ +##### +##### SENDMAIL CONFIGURATION FILE +##### +############################################################ +############################################################ + + +################## +# local info # +################## + +# file containing our internet aliases +Fw/usr/lib/sendmail.cw + + + +############################# +### Setup Information ### +############################# + + +###################### +# General Macros # +###################### + +# local domain name +DDBerkeley.EDU + +# Internet relay host -- machines in our domain that are not +# registered with the NIC will be "hidden" behind this relay machine +# with the % kludge, although SMTP delivery will still be performed +# by the sending machine. Someday this will go away. +DAcad.Berkeley.EDU + +# UUCP relay host +DRcad.Berkeley.EDU + +# csnet relay host +DCrelay.cs.net + +# bitnet relay host +DBjade.Berkeley.EDU + +# my official hostname +Dj$w + + + +############### +# Classes # +############### + +# Internal ("fake") domains that we use in rewriting +CIUUCP BITNET CSNET + + + +############################################################ +############################################################ +##### +##### BERKELEY HOSTS REGISTERED WITH THE NIC +##### +############################################################ +############################################################ + + +CNbach ucbbach +CNbizet ucbbizet +CNcad ucbcad +CNdegas ucbdegas +CNeast ucbeast +CNernie ucbernie +CNesvax ucbesvax +CNjade ucbjade +CNji ucbji +CNmike ucbmike +CNmonet ucbmonet +CNpostgres +CNrenoir ucbrenoir +CNucbarpa +CNucbvax +CNviolet ucbviolet + + +###################### +# Version Number # +###################### + +DZ1.34 + + +###################### +# Special macros # +###################### + +# my name +DnMAILER-DAEMON +# UNIX header format +DlFrom $g $d +# delimiter (operator) characters +Do.:%@!^=/[] +# format of a total name +Dq$g$?x ($x)$. +# SMTP login message +De$j Sendmail $v/$Z ready at $b + +############### +# Options # +############### + +# location of alias file +OA/usr/lib/aliases +# wait up to ten minutes for alias file rebuild +Oa10 +# substitution for space (blank) characters +OB. +# (don't) connect to "expensive" mailers +#Oc +# default delivery mode (deliver in background) +Odbackground +# temporary file mode +OF0600 +# default GID +Og1 +# location of help file +OH/usr/lib/sendmail.hf +# log level +OL9 +# default network name +ONARPA +# default messages to old style +Oo +# queue directory +OQ/usr/spool/mqueue +# read timeout -- violates protocols +Or2h +# status file +OS/usr/lib/sendmail.st +# queue up everything before starting transmission +Os +# default timeout interval +OT3d +# time zone names (V6 only) +OtPST,PDT +# default UID +Ou1 +# wizard's password +OW* +# load average at which we just queue messages +Ox8 +# load average at which we refuse connections +OX12 + +########################### +# Message precedences # +########################### + +Pfirst-class=0 +Pspecial-delivery=100 +Pbulk=-60 +Pjunk=-100 + +##################### +# Trusted users # +##################### + +Troot +Tdaemon +Tuucp + +######################### +# Format of headers # +######################### + +H?P?Return-Path: <$g> +HReceived: $?sfrom $s $.by $j ($v/$Z) + id $i; $b +H?D?Resent-Date: $a +H?D?Date: $a +H?F?Resent-From: $q +H?F?From: $q +H?x?Full-Name: $x +HSubject: +# HPosted-Date: $a +# H?l?Received-Date: $b +H?M?Resent-Message-Id: <$t.$i@$j> +H?M?Message-Id: <$t.$i@$j> + + + +########################### +### Rewriting Rules ### +########################### + + +################################ +# Sender Field Pre-rewriting # +################################ +S1 +#R$*<$*>$* $1$2$3 defocus + +################################### +# Recipient Field Pre-rewriting # +################################### +S2 +#R$*<$*>$* $1$2$3 defocus + + + +################################# +# Final Output Post-rewriting # +################################# +S4 + +R@ $@ handle <> error addr + +# resolve numeric addresses to name if possible +R$*<@[$+]>$* $:$1<@$[[$2]$]>$3 lookup numeric internet addr + +# externalize local domain info +R$*<$+>$* $1$2$3 defocus +R@$+:@$+:$+ @$1,@$2:$3 canonical + +# UUCP must always be presented in old form +R$+@$-.UUCP $2!$1 u@h.UUCP => h!u + +# delete duplicate local names +R$+%$=w@$=w $1@$w u%host@host => u@host +R$+%$=w@$=w.$D $1@$w u%host@host => u@host + + +########################### +# Name Canonicalization # +########################### +S3 + +# handle "from:<>" special case +R$*<>$* $@@ turn into magic token + +# basic textual canonicalization -- note RFC733 heuristic here +R$*<$*<$*<$+>$*>$*>$* $4 3-level <> nesting +R$*<$*<$+>$*>$* $3 2-level <> nesting +R$*<$+>$* $2 basic RFC821/822 parsing + +# make sure <@a,@b,@c:user@d> syntax is easy to parse -- undone later +R@$+,$+ @$1:$2 change all "," to ":" + +# localize and dispose of route-based addresses +R@$+:$+ $@$>6<@$1>:$2 handle + +# more miscellaneous cleanup +R$+ $:$>8$1 host dependent cleanup +R$+:$*;@$+ $@$1:$2;@$3 list syntax +R$+:$*; $@$1:$2; list syntax +R$+@$+ $:$1<@$2> focus on domain +R$+<$+@$+> $1$2<@$3> move gaze right +R$+<@$+> $@$>6$1<@$2> already canonical + +# convert old-style addresses to a domain-based address +R$+^$+ $1!$2 convert ^ to ! +R$-!$+ $@$>6$2<@$1.UUCP> resolve uucp names +R$+.$-!$+ $@$>6$3<@$1.$2> domain uucps +R$+!$+ $@$>6$2<@$1.UUCP> uucp subdomains +R$+%$+ $:$>9$1%$2 user%host +R$+<@$+> $@$>6$1<@$2> already canonical +R$-.$+ $@$>6$2<@$1> host.user + + +################################# +# special local conversions # +################################# + +S6 +R$*<@$=w>$* $:$1<@$w>$3 get into u@$w form +R$*<@$=w.$D>$* $:$1<@$w>$3 +R$*<@$=U.UUCP>$* $:$1<@$w>$3 + +################################ +# Change rightmost % to @. # +################################ + +S9 +R$*%$* $1@$2 First make them all @'s. +R$*@$*@$* $1%$2@$3 Undo all but the last. +R$*@$* $@$1<@$2> Put back the brackets. + + + +################### +### Mailers ### +################### + + +############################################################ +############################################################ +##### +##### Local and Program Mailer specification +##### +############################################################ +############################################################ + +Mlocal, P=/bin/mail, F=rlsDFMmn, S=10, R=20, A=mail -d $u +Mprog, P=/bin/sh, F=lsDFMe, S=10, R=20, A=sh -c $u + +S10 +R@ $n errors to mailer-daemon + + +############################################################ +############################################################ +##### +##### Local Domain SMTP Mailer specification +##### +##### Messages processed by this specification are assumed to remain +##### the local domain. Hence, they can refer to hosts that are +##### not registered in the NIC host table. +##### +############################################################ +############################################################ + +Mtcpld, P=[IPC], F=mDFMueXLC, S=17, R=27, A=IPC $h, E=\r\n + +S17 + +# cleanup forwarding a bit +R$*<$*>$* $1$2$3 defocus +R$* $:$>3$1 canonicalize +R$*%$*<@$w> $:$>9$1%$2 user%localhost@localdomain + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere +R$*:$* $1.$2 map colons to dots + +# output local host as user@host.domain +R$- $@$1<@$w> user w/o host +R$+<@$w> $@$1<@$w> this host +R$+<@$=w> $@$1<@$w> or an alias +R$+<@$-> $:$1<@$[$2$]> ask nameserver +R$+<@$w> $@$1<@$w> this host +R$+<@$-> $@$1<@$2.$D> if nameserver fails + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# output fake domains as user%fake@relay + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.bitnet +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1<@$w> user@host.UUCP + + +S27 + +# cleanup +R$*<$*>$* $1$2$3 defocus +R$* $:$>3$1 now canonical form +R$*%$*<@$w> $:$>9$1%$2 user%localhost@localdomain + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere +R$*:$* $1.$2 map colons to dots + +# output local host as user@host.domain +R$- $@$1<@$w> user w/o host +R$+<@$w> $@$1<@$w> this host +R$+<@$=w> $@$1<@$w> or an alias +R$+<@$-> $:$1<@$[$2$]> ask nameserver +R$+<@$w> $@$1<@$w> this host +R$+<@$-> $@$1<@$2.$D> if nameserver fails + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# output fake domains as user%fake@relay + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.BITNET +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1 user@host.UUCP + + + +############################################################ +############################################################ +##### +##### Internet SMTP Mailer specification +##### +##### Messages processed by this specification are assumed to leave +##### the local domain -- hence, they must be canonical according to +##### RFC822 etc. This means that machines not registered with +##### the NIC must be hidden behind our Internet relay. +##### +############################################################ +############################################################ + +Mtcp, P=[IPC], F=mDFMueXLC, S=14, R=24, A=IPC $h, E=\r\n + +S14 + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere +R$*:$* $1.$2 map colons to dots + +# output local host in user@host.domain syntax +R$- $1<@$w> user w/o host +R$+<@$=w> $:$1<@$w> this host +R$+<@$-> $:$1<@$[$2$]> canonicalize into dom +R$+<@$-> $:$1<@$2.$D> if nameserver fails +R$+<@$=N.$D> $@$1<@$2.$D> nic-reg hosts are ok +R$+<@$*.$D> $@$1%$2.$D<@$A> else -> u%h@gateway + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# output internal ("fake") domains as "user%host@relay" + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.BITNET +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1<@$w> user@host.UUCP + + +S24 + +# put in <> kludge +R$*<$*>$* $1$2$3 defocus +R$* $:$>3$1 now canonical form + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere..... +R$*:$* $1.$2 map colons to dots + +# output local host in user@host.domain syntax +R$- $1<@$w> user w/o host +R$+<@$=w> $:$1<@$w> this host +R$+<@$-> $:$1<@$[$2$]> canonicalize into dom +R$+<@$-> $:$1<@$2.$D> if nameserver fails +R$+<@$=N.$D> $@$1<@$2.$D> nic-reg hosts are ok +R$+<@$*.$D> $@$1%$2.$D<@$A> else -> u%h@gateway + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# Hide fake domains behind relays + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.BITNET +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1 user@host.UUCP + + + + + +##################### +### Rule Zero ### +##################### + + +############################################################ +############################################################ +##### +##### RULESET ZERO PREAMBLE +##### +##### The beginning of ruleset zero is constant through all +##### configurations. +##### +############################################################ +############################################################ + +S0 + +# first make canonical +R$*<$*>$* $1$2$3 defocus +R$+ $:$>3$1 make canonical + +# handle special cases +R$*<@[$+]>$* $:$1<@$[[$2]$]>$3 numeric internet addr +R$*<@[$+]>$* $#tcp$@[$2]$:$1@[$2]$3 numeric internet spec +R$+ $:$>6$1 +R$-<@$w> $#local$:$1 +R@ $#error$:Invalid address handle <> form + +# canonicalize using the nameserver if not internal domain +R$*<@$*.$~I>$* $:$1<@$[$2.$3$]>$4 +R$*<@$->$* $:$1<@$[$2$]>$3 +R$*<@$->$* $:$1<@$2.$D>$3 if nameserver fails + +# now delete the local info +R<@$w>:$* $@$>0$1 @here:... -> ... +R$*<@$w> $@$>0$1 ...@here -> ... + +################################## +# End of ruleset zero preamble # +################################## + + +############################################### +### Machine dependent part of Rule Zero ### +############################################### + + + + + +# resolve fake top level domains by forwarding to other hosts +R$*<@$+.BITNET>$* $#tcp$@$B$:$1<@$2.BITNET>$3 user@host.BITNET +R$*<@$+.CSNET>$* $#tcp$@$C$:$1<@$2.CSNET>$3 user@host.CSNET + + +# forward non-local UUCP traffic to our UUCP relay +R$*<@$*.UUCP>$* $#tcpld$@$R$:$1<@$2.UUCP> uucp mail + +# hide behind our internet relay when talking to people in the arpa domain +R$*<@$*.arpa>$* $#tcp$@$2.arpa$:$1<@$2.arpa>$3 user@host.arpa + +# but speak domains to them if they speak domains too +R$*<@$*>$* $#tcpld$@$2$:$1<@$2>$3 user@host.domain + +# remaining names must be local +R$+ $#local$:$1 everything else diff --git a/usr/src/usr.sbin/sendmail/cf/cf/cc.cf b/usr/src/usr.sbin/sendmail/cf/cf/cc.cf new file mode 100644 index 0000000000..3a3bc3bb3d --- /dev/null +++ b/usr/src/usr.sbin/sendmail/cf/cf/cc.cf @@ -0,0 +1,547 @@ +# +# Sendmail +# Copyright (c) 1983 Eric P. Allman +# Berkeley, California +# +# Copyright (c) 1983 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)cc.mc 1.2 (Berkeley) 1/3/89 +# @(#)proto.mc 1.20 (Berkeley) 1/25/89 +# +# built by phil on Wed Jan 25 11:47:29 PST 1989 +# in /usr/src/local/nettables/sendmail.cf/cf on monet.Berkeley.EDU +# +############################################################ +############################################################ +##### +##### SENDMAIL CONFIGURATION FILE +##### +############################################################ +############################################################ + + +################## +# local info # +################## + +# file containing our internet aliases +Fw/usr/lib/sendmail.cw + + + +############################# +### Setup Information ### +############################# + + +###################### +# General Macros # +###################### + +# local domain name +DDBerkeley.EDU + +# Internet relay host -- machines in our domain that are not +# registered with the NIC will be "hidden" behind this relay machine +# with the % kludge, although SMTP delivery will still be performed +# by the sending machine. Someday this will go away. +DAviolet.Berkeley.EDU + +# UUCP relay host +DRucbvax.Berkeley.EDU + +# csnet relay host +DCrelay.cs.net + +# bitnet relay host +DBjade.Berkeley.EDU + +# my official hostname +Dj$w + + + +############### +# Classes # +############### + +# Internal ("fake") domains that we use in rewriting +CIUUCP BITNET CSNET + + + +############################################################ +############################################################ +##### +##### BERKELEY HOSTS REGISTERED WITH THE NIC +##### +############################################################ +############################################################ + + +CNbach ucbbach +CNbizet ucbbizet +CNcad ucbcad +CNdegas ucbdegas +CNeast ucbeast +CNernie ucbernie +CNesvax ucbesvax +CNjade ucbjade +CNji ucbji +CNmike ucbmike +CNmonet ucbmonet +CNpostgres +CNrenoir ucbrenoir +CNucbarpa +CNucbvax +CNviolet ucbviolet + + +###################### +# Version Number # +###################### + +DZ1.34 + + +###################### +# Special macros # +###################### + +# my name +DnMAILER-DAEMON +# UNIX header format +DlFrom $g $d +# delimiter (operator) characters +Do.:%@!^=/[] +# format of a total name +Dq$g$?x ($x)$. +# SMTP login message +De$j Sendmail $v/$Z ready at $b + +############### +# Options # +############### + +# location of alias file +OA/usr/lib/aliases +# wait up to ten minutes for alias file rebuild +Oa10 +# substitution for space (blank) characters +OB. +# (don't) connect to "expensive" mailers +#Oc +# default delivery mode (deliver in background) +Odbackground +# temporary file mode +OF0600 +# default GID +Og1 +# location of help file +OH/usr/lib/sendmail.hf +# log level +OL9 +# default network name +ONARPA +# default messages to old style +Oo +# queue directory +OQ/usr/spool/mqueue +# read timeout -- violates protocols +Or2h +# status file +OS/usr/lib/sendmail.st +# queue up everything before starting transmission +Os +# default timeout interval +OT3d +# time zone names (V6 only) +OtPST,PDT +# default UID +Ou1 +# wizard's password +OW* +# load average at which we just queue messages +Ox8 +# load average at which we refuse connections +OX12 + +########################### +# Message precedences # +########################### + +Pfirst-class=0 +Pspecial-delivery=100 +Pbulk=-60 +Pjunk=-100 + +##################### +# Trusted users # +##################### + +Troot +Tdaemon +Tuucp + +######################### +# Format of headers # +######################### + +H?P?Return-Path: <$g> +HReceived: $?sfrom $s $.by $j ($v/$Z) + id $i; $b +H?D?Resent-Date: $a +H?D?Date: $a +H?F?Resent-From: $q +H?F?From: $q +H?x?Full-Name: $x +HSubject: +# HPosted-Date: $a +# H?l?Received-Date: $b +H?M?Resent-Message-Id: <$t.$i@$j> +H?M?Message-Id: <$t.$i@$j> + + + +########################### +### Rewriting Rules ### +########################### + + +################################ +# Sender Field Pre-rewriting # +################################ +S1 +#R$*<$*>$* $1$2$3 defocus + +################################### +# Recipient Field Pre-rewriting # +################################### +S2 +#R$*<$*>$* $1$2$3 defocus + + + +################################# +# Final Output Post-rewriting # +################################# +S4 + +R@ $@ handle <> error addr + +# resolve numeric addresses to name if possible +R$*<@[$+]>$* $:$1<@$[[$2]$]>$3 lookup numeric internet addr + +# externalize local domain info +R$*<$+>$* $1$2$3 defocus +R@$+:@$+:$+ @$1,@$2:$3 canonical + +# UUCP must always be presented in old form +R$+@$-.UUCP $2!$1 u@h.UUCP => h!u + +# delete duplicate local names +R$+%$=w@$=w $1@$w u%host@host => u@host +R$+%$=w@$=w.$D $1@$w u%host@host => u@host + + +########################### +# Name Canonicalization # +########################### +S3 + +# handle "from:<>" special case +R$*<>$* $@@ turn into magic token + +# basic textual canonicalization -- note RFC733 heuristic here +R$*<$*<$*<$+>$*>$*>$* $4 3-level <> nesting +R$*<$*<$+>$*>$* $3 2-level <> nesting +R$*<$+>$* $2 basic RFC821/822 parsing + +# make sure <@a,@b,@c:user@d> syntax is easy to parse -- undone later +R@$+,$+ @$1:$2 change all "," to ":" + +# localize and dispose of route-based addresses +R@$+:$+ $@$>6<@$1>:$2 handle + +# more miscellaneous cleanup +R$+ $:$>8$1 host dependent cleanup +R$+:$*;@$+ $@$1:$2;@$3 list syntax +R$+:$*; $@$1:$2; list syntax +R$+@$+ $:$1<@$2> focus on domain +R$+<$+@$+> $1$2<@$3> move gaze right +R$+<@$+> $@$>6$1<@$2> already canonical + +# convert old-style addresses to a domain-based address +R$+^$+ $1!$2 convert ^ to ! +R$-!$+ $@$>6$2<@$1.UUCP> resolve uucp names +R$+.$-!$+ $@$>6$3<@$1.$2> domain uucps +R$+!$+ $@$>6$2<@$1.UUCP> uucp subdomains +R$+%$+ $:$>9$1%$2 user%host +R$+<@$+> $@$>6$1<@$2> already canonical +R$-.$+ $@$>6$2<@$1> host.user + + +################################# +# special local conversions # +################################# + +S6 +R$*<@$=w>$* $:$1<@$w>$3 get into u@$w form +R$*<@$=w.$D>$* $:$1<@$w>$3 +R$*<@$=U.UUCP>$* $:$1<@$w>$3 + +################################ +# Change rightmost % to @. # +################################ + +S9 +R$*%$* $1@$2 First make them all @'s. +R$*@$*@$* $1%$2@$3 Undo all but the last. +R$*@$* $@$1<@$2> Put back the brackets. + + + +################### +### Mailers ### +################### + + +############################################################ +############################################################ +##### +##### Local and Program Mailer specification +##### +############################################################ +############################################################ + +Mlocal, P=/bin/mail, F=rlsDFMmn, S=10, R=20, A=mail -d $u +Mprog, P=/bin/sh, F=lsDFMe, S=10, R=20, A=sh -c $u + +S10 +R@ $n errors to mailer-daemon + + +############################################################ +############################################################ +##### +##### Local Domain SMTP Mailer specification +##### +##### Messages processed by this specification are assumed to remain +##### the local domain. Hence, they can refer to hosts that are +##### not registered in the NIC host table. +##### +############################################################ +############################################################ + +Mtcpld, P=[IPC], F=mDFMueXLC, S=17, R=27, A=IPC $h, E=\r\n + +S17 + +# cleanup forwarding a bit +R$*<$*>$* $1$2$3 defocus +R$* $:$>3$1 canonicalize +R$*%$*<@$w> $:$>9$1%$2 user%localhost@localdomain + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere +R$*:$* $1.$2 map colons to dots + +# output local host as user@host.domain +R$- $@$1<@$w> user w/o host +R$+<@$w> $@$1<@$w> this host +R$+<@$=w> $@$1<@$w> or an alias +R$+<@$-> $:$1<@$[$2$]> ask nameserver +R$+<@$w> $@$1<@$w> this host +R$+<@$-> $@$1<@$2.$D> if nameserver fails + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# output fake domains as user%fake@relay + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.bitnet +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1<@$w> user@host.UUCP + + +S27 + +# cleanup +R$*<$*>$* $1$2$3 defocus +R$* $:$>3$1 now canonical form +R$*%$*<@$w> $:$>9$1%$2 user%localhost@localdomain + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere +R$*:$* $1.$2 map colons to dots + +# output local host as user@host.domain +R$- $@$1<@$w> user w/o host +R$+<@$w> $@$1<@$w> this host +R$+<@$=w> $@$1<@$w> or an alias +R$+<@$-> $:$1<@$[$2$]> ask nameserver +R$+<@$w> $@$1<@$w> this host +R$+<@$-> $@$1<@$2.$D> if nameserver fails + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# output fake domains as user%fake@relay + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.BITNET +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1 user@host.UUCP + + + +############################################################ +############################################################ +##### +##### Internet SMTP Mailer specification +##### +##### Messages processed by this specification are assumed to leave +##### the local domain -- hence, they must be canonical according to +##### RFC822 etc. This means that machines not registered with +##### the NIC must be hidden behind our Internet relay. +##### +############################################################ +############################################################ + +Mtcp, P=[IPC], F=mDFMueXLC, S=14, R=24, A=IPC $h, E=\r\n + +S14 + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere +R$*:$* $1.$2 map colons to dots + +# output local host in user@host.domain syntax +R$- $1<@$w> user w/o host +R$+<@$=w> $:$1<@$w> this host +R$+<@$-> $:$1<@$[$2$]> canonicalize into dom +R$+<@$-> $:$1<@$2.$D> if nameserver fails +R$+<@$=N.$D> $@$1<@$2.$D> nic-reg hosts are ok +R$+<@$*.$D> $@$1%$2.$D<@$A> else -> u%h@gateway + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# output internal ("fake") domains as "user%host@relay" + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.BITNET +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1<@$w> user@host.UUCP + + +S24 + +# put in <> kludge +R$*<$*>$* $1$2$3 defocus +R$* $:$>3$1 now canonical form + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere..... +R$*:$* $1.$2 map colons to dots + +# output local host in user@host.domain syntax +R$- $1<@$w> user w/o host +R$+<@$=w> $:$1<@$w> this host +R$+<@$-> $:$1<@$[$2$]> canonicalize into dom +R$+<@$-> $:$1<@$2.$D> if nameserver fails +R$+<@$=N.$D> $@$1<@$2.$D> nic-reg hosts are ok +R$+<@$*.$D> $@$1%$2.$D<@$A> else -> u%h@gateway + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# Hide fake domains behind relays + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.BITNET +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1 user@host.UUCP + + + + + +##################### +### Rule Zero ### +##################### + + +############################################################ +############################################################ +##### +##### RULESET ZERO PREAMBLE +##### +##### The beginning of ruleset zero is constant through all +##### configurations. +##### +############################################################ +############################################################ + +S0 + +# first make canonical +R$*<$*>$* $1$2$3 defocus +R$+ $:$>3$1 make canonical + +# handle special cases +R$*<@[$+]>$* $:$1<@$[[$2]$]>$3 numeric internet addr +R$*<@[$+]>$* $#tcp$@[$2]$:$1@[$2]$3 numeric internet spec +R$+ $:$>6$1 +R$-<@$w> $#local$:$1 +R@ $#error$:Invalid address handle <> form + +# canonicalize using the nameserver if not internal domain +R$*<@$*.$~I>$* $:$1<@$[$2.$3$]>$4 +R$*<@$->$* $:$1<@$[$2$]>$3 +R$*<@$->$* $:$1<@$2.$D>$3 if nameserver fails + +# now delete the local info +R<@$w>:$* $@$>0$1 @here:... -> ... +R$*<@$w> $@$>0$1 ...@here -> ... + +################################## +# End of ruleset zero preamble # +################################## + + +############################################### +### Machine dependent part of Rule Zero ### +############################################### + + + + + +# resolve fake top level domains by forwarding to other hosts +R$*<@$+.BITNET>$* $#tcp$@$B$:$1<@$2.BITNET>$3 user@host.BITNET +R$*<@$+.CSNET>$* $#tcp$@$C$:$1<@$2.CSNET>$3 user@host.CSNET + + +# forward non-local UUCP traffic to our UUCP relay +R$*<@$*.UUCP>$* $#tcpld$@$R$:$1<@$2.UUCP> uucp mail + +# hide behind our internet relay when talking to people in the arpa domain +R$*<@$*.arpa>$* $#tcp$@$2.arpa$:$1<@$2.arpa>$3 user@host.arpa + +# but speak domains to them if they speak domains too +R$*<@$*>$* $#tcpld$@$2$:$1<@$2>$3 user@host.domain + +# remaining names must be local +R$+ $#local$:$1 everything else diff --git a/usr/src/usr.sbin/sendmail/cf/cf/cchem.cf b/usr/src/usr.sbin/sendmail/cf/cf/cchem.cf new file mode 100644 index 0000000000..34a461ab6d --- /dev/null +++ b/usr/src/usr.sbin/sendmail/cf/cf/cchem.cf @@ -0,0 +1,547 @@ +# +# Sendmail +# Copyright (c) 1983 Eric P. Allman +# Berkeley, California +# +# Copyright (c) 1983 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)cchem.mc 1.2 (Berkeley) 1/3/89 +# @(#)proto.mc 1.20 (Berkeley) 1/25/89 +# +# built by phil on Wed Jan 25 11:47:38 PST 1989 +# in /usr/src/local/nettables/sendmail.cf/cf on monet.Berkeley.EDU +# +############################################################ +############################################################ +##### +##### SENDMAIL CONFIGURATION FILE +##### +############################################################ +############################################################ + + +################## +# local info # +################## + +# file containing our internet aliases +Fw/usr/lib/sendmail.cw + + + +############################# +### Setup Information ### +############################# + + +###################### +# General Macros # +###################### + +# local domain name +DDCChem.Berkeley.EDU + +# Internet relay host -- machines in our domain that are not +# registered with the NIC will be "hidden" behind this relay machine +# with the % kludge, although SMTP delivery will still be performed +# by the sending machine. Someday this will go away. +DAviolet.Berkeley.EDU + +# UUCP relay host +DRucbvax.Berkeley.EDU + +# csnet relay host +DCrelay.cs.net + +# bitnet relay host +DBjade.Berkeley.EDU + +# my official hostname +Dj$w + + + +############### +# Classes # +############### + +# Internal ("fake") domains that we use in rewriting +CIUUCP BITNET CSNET + + + +############################################################ +############################################################ +##### +##### BERKELEY HOSTS REGISTERED WITH THE NIC +##### +############################################################ +############################################################ + + +CNbach ucbbach +CNbizet ucbbizet +CNcad ucbcad +CNdegas ucbdegas +CNeast ucbeast +CNernie ucbernie +CNesvax ucbesvax +CNjade ucbjade +CNji ucbji +CNmike ucbmike +CNmonet ucbmonet +CNpostgres +CNrenoir ucbrenoir +CNucbarpa +CNucbvax +CNviolet ucbviolet + + +###################### +# Version Number # +###################### + +DZ1.34 + + +###################### +# Special macros # +###################### + +# my name +DnMAILER-DAEMON +# UNIX header format +DlFrom $g $d +# delimiter (operator) characters +Do.:%@!^=/[] +# format of a total name +Dq$g$?x ($x)$. +# SMTP login message +De$j Sendmail $v/$Z ready at $b + +############### +# Options # +############### + +# location of alias file +OA/usr/lib/aliases +# wait up to ten minutes for alias file rebuild +Oa10 +# substitution for space (blank) characters +OB. +# (don't) connect to "expensive" mailers +#Oc +# default delivery mode (deliver in background) +Odbackground +# temporary file mode +OF0600 +# default GID +Og1 +# location of help file +OH/usr/lib/sendmail.hf +# log level +OL9 +# default network name +ONARPA +# default messages to old style +Oo +# queue directory +OQ/usr/spool/mqueue +# read timeout -- violates protocols +Or2h +# status file +OS/usr/lib/sendmail.st +# queue up everything before starting transmission +Os +# default timeout interval +OT3d +# time zone names (V6 only) +OtPST,PDT +# default UID +Ou1 +# wizard's password +OW* +# load average at which we just queue messages +Ox8 +# load average at which we refuse connections +OX12 + +########################### +# Message precedences # +########################### + +Pfirst-class=0 +Pspecial-delivery=100 +Pbulk=-60 +Pjunk=-100 + +##################### +# Trusted users # +##################### + +Troot +Tdaemon +Tuucp + +######################### +# Format of headers # +######################### + +H?P?Return-Path: <$g> +HReceived: $?sfrom $s $.by $j ($v/$Z) + id $i; $b +H?D?Resent-Date: $a +H?D?Date: $a +H?F?Resent-From: $q +H?F?From: $q +H?x?Full-Name: $x +HSubject: +# HPosted-Date: $a +# H?l?Received-Date: $b +H?M?Resent-Message-Id: <$t.$i@$j> +H?M?Message-Id: <$t.$i@$j> + + + +########################### +### Rewriting Rules ### +########################### + + +################################ +# Sender Field Pre-rewriting # +################################ +S1 +#R$*<$*>$* $1$2$3 defocus + +################################### +# Recipient Field Pre-rewriting # +################################### +S2 +#R$*<$*>$* $1$2$3 defocus + + + +################################# +# Final Output Post-rewriting # +################################# +S4 + +R@ $@ handle <> error addr + +# resolve numeric addresses to name if possible +R$*<@[$+]>$* $:$1<@$[[$2]$]>$3 lookup numeric internet addr + +# externalize local domain info +R$*<$+>$* $1$2$3 defocus +R@$+:@$+:$+ @$1,@$2:$3 canonical + +# UUCP must always be presented in old form +R$+@$-.UUCP $2!$1 u@h.UUCP => h!u + +# delete duplicate local names +R$+%$=w@$=w $1@$w u%host@host => u@host +R$+%$=w@$=w.$D $1@$w u%host@host => u@host + + +########################### +# Name Canonicalization # +########################### +S3 + +# handle "from:<>" special case +R$*<>$* $@@ turn into magic token + +# basic textual canonicalization -- note RFC733 heuristic here +R$*<$*<$*<$+>$*>$*>$* $4 3-level <> nesting +R$*<$*<$+>$*>$* $3 2-level <> nesting +R$*<$+>$* $2 basic RFC821/822 parsing + +# make sure <@a,@b,@c:user@d> syntax is easy to parse -- undone later +R@$+,$+ @$1:$2 change all "," to ":" + +# localize and dispose of route-based addresses +R@$+:$+ $@$>6<@$1>:$2 handle + +# more miscellaneous cleanup +R$+ $:$>8$1 host dependent cleanup +R$+:$*;@$+ $@$1:$2;@$3 list syntax +R$+:$*; $@$1:$2; list syntax +R$+@$+ $:$1<@$2> focus on domain +R$+<$+@$+> $1$2<@$3> move gaze right +R$+<@$+> $@$>6$1<@$2> already canonical + +# convert old-style addresses to a domain-based address +R$+^$+ $1!$2 convert ^ to ! +R$-!$+ $@$>6$2<@$1.UUCP> resolve uucp names +R$+.$-!$+ $@$>6$3<@$1.$2> domain uucps +R$+!$+ $@$>6$2<@$1.UUCP> uucp subdomains +R$+%$+ $:$>9$1%$2 user%host +R$+<@$+> $@$>6$1<@$2> already canonical +R$-.$+ $@$>6$2<@$1> host.user + + +################################# +# special local conversions # +################################# + +S6 +R$*<@$=w>$* $:$1<@$w>$3 get into u@$w form +R$*<@$=w.$D>$* $:$1<@$w>$3 +R$*<@$=U.UUCP>$* $:$1<@$w>$3 + +################################ +# Change rightmost % to @. # +################################ + +S9 +R$*%$* $1@$2 First make them all @'s. +R$*@$*@$* $1%$2@$3 Undo all but the last. +R$*@$* $@$1<@$2> Put back the brackets. + + + +################### +### Mailers ### +################### + + +############################################################ +############################################################ +##### +##### Local and Program Mailer specification +##### +############################################################ +############################################################ + +Mlocal, P=/bin/mail, F=rlsDFMmn, S=10, R=20, A=mail -d $u +Mprog, P=/bin/sh, F=lsDFMe, S=10, R=20, A=sh -c $u + +S10 +R@ $n errors to mailer-daemon + + +############################################################ +############################################################ +##### +##### Local Domain SMTP Mailer specification +##### +##### Messages processed by this specification are assumed to remain +##### the local domain. Hence, they can refer to hosts that are +##### not registered in the NIC host table. +##### +############################################################ +############################################################ + +Mtcpld, P=[IPC], F=mDFMueXLC, S=17, R=27, A=IPC $h, E=\r\n + +S17 + +# cleanup forwarding a bit +R$*<$*>$* $1$2$3 defocus +R$* $:$>3$1 canonicalize +R$*%$*<@$w> $:$>9$1%$2 user%localhost@localdomain + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere +R$*:$* $1.$2 map colons to dots + +# output local host as user@host.domain +R$- $@$1<@$w> user w/o host +R$+<@$w> $@$1<@$w> this host +R$+<@$=w> $@$1<@$w> or an alias +R$+<@$-> $:$1<@$[$2$]> ask nameserver +R$+<@$w> $@$1<@$w> this host +R$+<@$-> $@$1<@$2.$D> if nameserver fails + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# output fake domains as user%fake@relay + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.bitnet +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1<@$w> user@host.UUCP + + +S27 + +# cleanup +R$*<$*>$* $1$2$3 defocus +R$* $:$>3$1 now canonical form +R$*%$*<@$w> $:$>9$1%$2 user%localhost@localdomain + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere +R$*:$* $1.$2 map colons to dots + +# output local host as user@host.domain +R$- $@$1<@$w> user w/o host +R$+<@$w> $@$1<@$w> this host +R$+<@$=w> $@$1<@$w> or an alias +R$+<@$-> $:$1<@$[$2$]> ask nameserver +R$+<@$w> $@$1<@$w> this host +R$+<@$-> $@$1<@$2.$D> if nameserver fails + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# output fake domains as user%fake@relay + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.BITNET +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1 user@host.UUCP + + + +############################################################ +############################################################ +##### +##### Internet SMTP Mailer specification +##### +##### Messages processed by this specification are assumed to leave +##### the local domain -- hence, they must be canonical according to +##### RFC822 etc. This means that machines not registered with +##### the NIC must be hidden behind our Internet relay. +##### +############################################################ +############################################################ + +Mtcp, P=[IPC], F=mDFMueXLC, S=14, R=24, A=IPC $h, E=\r\n + +S14 + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere +R$*:$* $1.$2 map colons to dots + +# output local host in user@host.domain syntax +R$- $1<@$w> user w/o host +R$+<@$=w> $:$1<@$w> this host +R$+<@$-> $:$1<@$[$2$]> canonicalize into dom +R$+<@$-> $:$1<@$2.$D> if nameserver fails +R$+<@$=N.$D> $@$1<@$2.$D> nic-reg hosts are ok +R$+<@$*.$D> $@$1%$2.$D<@$A> else -> u%h@gateway + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# output internal ("fake") domains as "user%host@relay" + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.BITNET +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1<@$w> user@host.UUCP + + +S24 + +# put in <> kludge +R$*<$*>$* $1$2$3 defocus +R$* $:$>3$1 now canonical form + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere..... +R$*:$* $1.$2 map colons to dots + +# output local host in user@host.domain syntax +R$- $1<@$w> user w/o host +R$+<@$=w> $:$1<@$w> this host +R$+<@$-> $:$1<@$[$2$]> canonicalize into dom +R$+<@$-> $:$1<@$2.$D> if nameserver fails +R$+<@$=N.$D> $@$1<@$2.$D> nic-reg hosts are ok +R$+<@$*.$D> $@$1%$2.$D<@$A> else -> u%h@gateway + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# Hide fake domains behind relays + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.BITNET +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1 user@host.UUCP + + + + + +##################### +### Rule Zero ### +##################### + + +############################################################ +############################################################ +##### +##### RULESET ZERO PREAMBLE +##### +##### The beginning of ruleset zero is constant through all +##### configurations. +##### +############################################################ +############################################################ + +S0 + +# first make canonical +R$*<$*>$* $1$2$3 defocus +R$+ $:$>3$1 make canonical + +# handle special cases +R$*<@[$+]>$* $:$1<@$[[$2]$]>$3 numeric internet addr +R$*<@[$+]>$* $#tcp$@[$2]$:$1@[$2]$3 numeric internet spec +R$+ $:$>6$1 +R$-<@$w> $#local$:$1 +R@ $#error$:Invalid address handle <> form + +# canonicalize using the nameserver if not internal domain +R$*<@$*.$~I>$* $:$1<@$[$2.$3$]>$4 +R$*<@$->$* $:$1<@$[$2$]>$3 +R$*<@$->$* $:$1<@$2.$D>$3 if nameserver fails + +# now delete the local info +R<@$w>:$* $@$>0$1 @here:... -> ... +R$*<@$w> $@$>0$1 ...@here -> ... + +################################## +# End of ruleset zero preamble # +################################## + + +############################################### +### Machine dependent part of Rule Zero ### +############################################### + + + + + +# resolve fake top level domains by forwarding to other hosts +R$*<@$+.BITNET>$* $#tcp$@$B$:$1<@$2.BITNET>$3 user@host.BITNET +R$*<@$+.CSNET>$* $#tcp$@$C$:$1<@$2.CSNET>$3 user@host.CSNET + + +# forward non-local UUCP traffic to our UUCP relay +R$*<@$*.UUCP>$* $#tcpld$@$R$:$1<@$2.UUCP> uucp mail + +# hide behind our internet relay when talking to people in the arpa domain +R$*<@$*.arpa>$* $#tcp$@$2.arpa$:$1<@$2.arpa>$3 user@host.arpa + +# but speak domains to them if they speak domains too +R$*<@$*>$* $#tcpld$@$2$:$1<@$2>$3 user@host.domain + +# remaining names must be local +R$+ $#local$:$1 everything else diff --git a/usr/src/usr.sbin/sendmail/cf/cf/cogsci.cf b/usr/src/usr.sbin/sendmail/cf/cf/cogsci.cf new file mode 100644 index 0000000000..45b6808725 --- /dev/null +++ b/usr/src/usr.sbin/sendmail/cf/cf/cogsci.cf @@ -0,0 +1,610 @@ +# +# Sendmail +# Copyright (c) 1983 Eric P. Allman +# Berkeley, California +# +# Copyright (c) 1983 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)cogsci.mc 1.6 (Berkeley) 1/3/89 +# @(#)proto.mc 1.20 (Berkeley) 1/25/89 +# +# built by phil on Wed Jan 25 11:46:54 PST 1989 +# in /usr/src/local/nettables/sendmail.cf/cf on monet.Berkeley.EDU +# +############################################################ +############################################################ +##### +##### SENDMAIL CONFIGURATION FILE +##### +############################################################ +############################################################ + + +################## +# local info # +################## + +# file containing our internet aliases +Fw/usr/lib/sendmail.cw + +# uucp hostnames +DUcogsci +CUcogsci + +# local UUCP connections +CV capmkt +CV contessa +CV emind +CV hoptoad +CV nkainc +CV well +CV ferdy + + +############################# +### Setup Information ### +############################# + + +###################### +# General Macros # +###################### + +# local domain name +DDBerkeley.EDU + +# Internet relay host -- machines in our domain that are not +# registered with the NIC will be "hidden" behind this relay machine +# with the % kludge, although SMTP delivery will still be performed +# by the sending machine. Someday this will go away. +DAucbvax.Berkeley.EDU + +# UUCP relay host +DRucbvax.Berkeley.EDU + +# csnet relay host +DCrelay.cs.net + +# bitnet relay host +DBjade.Berkeley.EDU + +# my official hostname +Dj$w + + + +############### +# Classes # +############### + +# Internal ("fake") domains that we use in rewriting +CIUUCP BITNET CSNET + + + +############################################################ +############################################################ +##### +##### BERKELEY HOSTS REGISTERED WITH THE NIC +##### +############################################################ +############################################################ + + +CNbach ucbbach +CNbizet ucbbizet +CNcad ucbcad +CNdegas ucbdegas +CNeast ucbeast +CNernie ucbernie +CNesvax ucbesvax +CNjade ucbjade +CNji ucbji +CNmike ucbmike +CNmonet ucbmonet +CNpostgres +CNrenoir ucbrenoir +CNucbarpa +CNucbvax +CNviolet ucbviolet + + +###################### +# Version Number # +###################### + +DZ1.34 + + +###################### +# Special macros # +###################### + +# my name +DnMAILER-DAEMON +# UNIX header format +DlFrom $g $d +# delimiter (operator) characters +Do.:%@!^=/[] +# format of a total name +Dq$g$?x ($x)$. +# SMTP login message +De$j Sendmail $v/$Z ready at $b + +############### +# Options # +############### + +# location of alias file +OA/usr/lib/aliases +# wait up to ten minutes for alias file rebuild +Oa10 +# substitution for space (blank) characters +OB. +# (don't) connect to "expensive" mailers +#Oc +# default delivery mode (deliver in background) +Odbackground +# temporary file mode +OF0600 +# default GID +Og1 +# location of help file +OH/usr/lib/sendmail.hf +# log level +OL9 +# default network name +ONARPA +# default messages to old style +Oo +# queue directory +OQ/usr/spool/mqueue +# read timeout -- violates protocols +Or2h +# status file +OS/usr/lib/sendmail.st +# queue up everything before starting transmission +Os +# default timeout interval +OT3d +# time zone names (V6 only) +OtPST,PDT +# default UID +Ou1 +# wizard's password +OW* +# load average at which we just queue messages +Ox8 +# load average at which we refuse connections +OX12 + +########################### +# Message precedences # +########################### + +Pfirst-class=0 +Pspecial-delivery=100 +Pbulk=-60 +Pjunk=-100 + +##################### +# Trusted users # +##################### + +Troot +Tdaemon +Tuucp + +######################### +# Format of headers # +######################### + +H?P?Return-Path: <$g> +HReceived: $?sfrom $s $.by $j ($v/$Z) + id $i; $b +H?D?Resent-Date: $a +H?D?Date: $a +H?F?Resent-From: $q +H?F?From: $q +H?x?Full-Name: $x +HSubject: +# HPosted-Date: $a +# H?l?Received-Date: $b +H?M?Resent-Message-Id: <$t.$i@$j> +H?M?Message-Id: <$t.$i@$j> + + + +########################### +### Rewriting Rules ### +########################### + + +################################ +# Sender Field Pre-rewriting # +################################ +S1 +#R$*<$*>$* $1$2$3 defocus + +################################### +# Recipient Field Pre-rewriting # +################################### +S2 +#R$*<$*>$* $1$2$3 defocus + + + +################################# +# Final Output Post-rewriting # +################################# +S4 + +R@ $@ handle <> error addr + +# resolve numeric addresses to name if possible +R$*<@[$+]>$* $:$1<@$[[$2]$]>$3 lookup numeric internet addr + +# externalize local domain info +R$*<$+>$* $1$2$3 defocus +R@$+:@$+:$+ @$1,@$2:$3 canonical + +# UUCP must always be presented in old form +R$+@$-.UUCP $2!$1 u@h.UUCP => h!u + +# delete duplicate local names +R$+%$=w@$=w $1@$w u%host@host => u@host +R$+%$=w@$=w.$D $1@$w u%host@host => u@host + + +########################### +# Name Canonicalization # +########################### +S3 + +# handle "from:<>" special case +R$*<>$* $@@ turn into magic token + +# basic textual canonicalization -- note RFC733 heuristic here +R$*<$*<$*<$+>$*>$*>$* $4 3-level <> nesting +R$*<$*<$+>$*>$* $3 2-level <> nesting +R$*<$+>$* $2 basic RFC821/822 parsing + +# make sure <@a,@b,@c:user@d> syntax is easy to parse -- undone later +R@$+,$+ @$1:$2 change all "," to ":" + +# localize and dispose of route-based addresses +R@$+:$+ $@$>6<@$1>:$2 handle + +# more miscellaneous cleanup +R$+ $:$>8$1 host dependent cleanup +R$+:$*;@$+ $@$1:$2;@$3 list syntax +R$+:$*; $@$1:$2; list syntax +R$+@$+ $:$1<@$2> focus on domain +R$+<$+@$+> $1$2<@$3> move gaze right +R$+<@$+> $@$>6$1<@$2> already canonical + +# convert old-style addresses to a domain-based address +R$+^$+ $1!$2 convert ^ to ! +R$-!$+ $@$>6$2<@$1.UUCP> resolve uucp names +R$+.$-!$+ $@$>6$3<@$1.$2> domain uucps +R$+!$+ $@$>6$2<@$1.UUCP> uucp subdomains +R$+%$+ $:$>9$1%$2 user%host +R$+<@$+> $@$>6$1<@$2> already canonical +R$-.$+ $@$>6$2<@$1> host.user + + +################################# +# special local conversions # +################################# + +S6 +R$*<@$=w>$* $:$1<@$w>$3 get into u@$w form +R$*<@$=w.$D>$* $:$1<@$w>$3 +R$*<@$=U.UUCP>$* $:$1<@$w>$3 + +################################ +# Change rightmost % to @. # +################################ + +S9 +R$*%$* $1@$2 First make them all @'s. +R$*@$*@$* $1%$2@$3 Undo all but the last. +R$*@$* $@$1<@$2> Put back the brackets. + + + +################### +### Mailers ### +################### + + +############################################################ +############################################################ +##### +##### Local and Program Mailer specification +##### +############################################################ +############################################################ + +Mlocal, P=/bin/mail, F=rlsDFMmn, S=10, R=20, A=mail -d $u +Mprog, P=/bin/sh, F=lsDFMe, S=10, R=20, A=sh -c $u + +S10 +R@ $n errors to mailer-daemon + + +############################################################ +############################################################ +##### +##### Local Domain SMTP Mailer specification +##### +##### Messages processed by this specification are assumed to remain +##### the local domain. Hence, they can refer to hosts that are +##### not registered in the NIC host table. +##### +############################################################ +############################################################ + +Mtcpld, P=[IPC], F=mDFMueXLC, S=17, R=27, A=IPC $h, E=\r\n + +S17 + +# cleanup forwarding a bit +R$*<$*>$* $1$2$3 defocus +R$* $:$>3$1 canonicalize +R$*%$*<@$w> $:$>9$1%$2 user%localhost@localdomain + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere +R$*:$* $1.$2 map colons to dots + +# output local host as user@host.domain +R$- $@$1<@$w> user w/o host +R$+<@$w> $@$1<@$w> this host +R$+<@$=w> $@$1<@$w> or an alias +R$+<@$-> $:$1<@$[$2$]> ask nameserver +R$+<@$w> $@$1<@$w> this host +R$+<@$-> $@$1<@$2.$D> if nameserver fails + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# output fake domains as user%fake@relay + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.bitnet +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1<@$w> user@host.UUCP + + +S27 + +# cleanup +R$*<$*>$* $1$2$3 defocus +R$* $:$>3$1 now canonical form +R$*%$*<@$w> $:$>9$1%$2 user%localhost@localdomain + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere +R$*:$* $1.$2 map colons to dots + +# output local host as user@host.domain +R$- $@$1<@$w> user w/o host +R$+<@$w> $@$1<@$w> this host +R$+<@$=w> $@$1<@$w> or an alias +R$+<@$-> $:$1<@$[$2$]> ask nameserver +R$+<@$w> $@$1<@$w> this host +R$+<@$-> $@$1<@$2.$D> if nameserver fails + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# output fake domains as user%fake@relay + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.BITNET +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1 user@host.UUCP + + + +############################################################ +############################################################ +##### +##### Internet SMTP Mailer specification +##### +##### Messages processed by this specification are assumed to leave +##### the local domain -- hence, they must be canonical according to +##### RFC822 etc. This means that machines not registered with +##### the NIC must be hidden behind our Internet relay. +##### +############################################################ +############################################################ + +Mtcp, P=[IPC], F=mDFMueXLC, S=14, R=24, A=IPC $h, E=\r\n + +S14 + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere +R$*:$* $1.$2 map colons to dots + +# output local host in user@host.domain syntax +R$- $1<@$w> user w/o host +R$+<@$=w> $:$1<@$w> this host +R$+<@$-> $:$1<@$[$2$]> canonicalize into dom +R$+<@$-> $:$1<@$2.$D> if nameserver fails +R$+<@$=N.$D> $@$1<@$2.$D> nic-reg hosts are ok +R$+<@$*.$D> $@$1%$2.$D<@$A> else -> u%h@gateway + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# output internal ("fake") domains as "user%host@relay" + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.BITNET +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1<@$w> user@host.UUCP + + +S24 + +# put in <> kludge +R$*<$*>$* $1$2$3 defocus +R$* $:$>3$1 now canonical form + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere..... +R$*:$* $1.$2 map colons to dots + +# output local host in user@host.domain syntax +R$- $1<@$w> user w/o host +R$+<@$=w> $:$1<@$w> this host +R$+<@$-> $:$1<@$[$2$]> canonicalize into dom +R$+<@$-> $:$1<@$2.$D> if nameserver fails +R$+<@$=N.$D> $@$1<@$2.$D> nic-reg hosts are ok +R$+<@$*.$D> $@$1%$2.$D<@$A> else -> u%h@gateway + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# Hide fake domains behind relays + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.BITNET +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1 user@host.UUCP + + + +############################################################ +############################################################ +##### +##### UUCP Mailer specification +##### +############################################################ +############################################################ + + +Muucp, P=/usr/bin/uux, F=DFMhuU, S=13, R=23, M=100000, + A=uux - -r -z -a$f -gC $h!rmail ($u) + +S13 +R$+ $:$>5$1 convert to old style +R$*<@$=w>$* $1<@$w>$2 resolve abbreviations +R$*<@$->$* $1<@$2.$D>$3 resolve abbreviations +R$+<@$+> $2!$1 uucpize (no @'s in addr) +R$w!$+ $1 strip local name +R$+ $:$U!$1 stick on our host name +R$=U!$-%$- $:$1!$2@$3.$D ucbvax!user@host.domain + +S23 +R$+ $:$>5$1 convert to old style +R$*<@$=w>$* $1<@$w>$2 resolve abbreviations +R$*<@$->$* $1<@$2.$D>$3 resolve abbreviations +R$+<@$w> $U!$1 a!b@here -> here!a!b +R$=U!$+ $2 here!a!b -> a!b +# sanity ... should not happen. +R$=U.$D!$+ $2 strip local name.domain + + +############################################################ +############################################################ +##### +##### Provide Backward Compatibility +##### +############################################################ +############################################################ + +##################################################### +# General code to convert back to old style names # +##################################################### +S5 + +R$+<@$w> $1 strip host +R$+<@$-.UUCP> $2!$1 u@host.UUCP => host!u + + + +##################### +### Rule Zero ### +##################### + + +############################################################ +############################################################ +##### +##### RULESET ZERO PREAMBLE +##### +##### The beginning of ruleset zero is constant through all +##### configurations. +##### +############################################################ +############################################################ + +S0 + +# first make canonical +R$*<$*>$* $1$2$3 defocus +R$+ $:$>3$1 make canonical + +# handle special cases +R$*<@[$+]>$* $:$1<@$[[$2]$]>$3 numeric internet addr +R$*<@[$+]>$* $#tcp$@[$2]$:$1@[$2]$3 numeric internet spec +R$+ $:$>6$1 +R$-<@$w> $#local$:$1 +R@ $#error$:Invalid address handle <> form + +# canonicalize using the nameserver if not internal domain +R$*<@$*.$~I>$* $:$1<@$[$2.$3$]>$4 +R$*<@$->$* $:$1<@$[$2$]>$3 +R$*<@$->$* $:$1<@$2.$D>$3 if nameserver fails + +# now delete the local info +R<@$w>:$* $@$>0$1 @here:... -> ... +R$*<@$w> $@$>0$1 ...@here -> ... + +################################## +# End of ruleset zero preamble # +################################## + + +############################################### +### Machine dependent part of Rule Zero ### +############################################### + + + +# resolve local UUCP connections +R<@$=V.UUCP>:$+ $#uucp$@$1$:$2 @host.UUCP:... +R$+<@$=V.UUCP> $#uucp$@$2$:$1 user@host.UUCP + + +# resolve fake top level domains by forwarding to other hosts +R$*<@$+.BITNET>$* $#tcp$@$B$:$1<@$2.BITNET>$3 user@host.BITNET +R$*<@$+.CSNET>$* $#tcp$@$C$:$1<@$2.CSNET>$3 user@host.CSNET + + +# forward non-local UUCP traffic to our UUCP relay +R$*<@$*.UUCP>$* $#tcpld$@$R$:$1<@$2.UUCP> uucp mail + +# hide behind our internet relay when talking to people in the arpa domain +R$*<@$*.arpa>$* $#tcp$@$2.arpa$:$1<@$2.arpa>$3 user@host.arpa + +# but speak domains to them if they speak domains too +R$*<@$*>$* $#tcpld$@$2$:$1<@$2>$3 user@host.domain + +# remaining names must be local +R$+ $#local$:$1 everything else + diff --git a/usr/src/usr.sbin/sendmail/cf/cf/ic.cf b/usr/src/usr.sbin/sendmail/cf/cf/ic.cf new file mode 100644 index 0000000000..c9f5e44abb --- /dev/null +++ b/usr/src/usr.sbin/sendmail/cf/cf/ic.cf @@ -0,0 +1,603 @@ +# +# Sendmail +# Copyright (c) 1983 Eric P. Allman +# Berkeley, California +# +# Copyright (c) 1983 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)ic.mc 1.2 (Berkeley) 1/3/89 +# @(#)proto.mc 1.20 (Berkeley) 1/25/89 +# +# built by phil on Wed Jan 25 11:47:46 PST 1989 +# in /usr/src/local/nettables/sendmail.cf/cf on monet.Berkeley.EDU +# +############################################################ +############################################################ +##### +##### SENDMAIL CONFIGURATION FILE +##### +############################################################ +############################################################ + + +################## +# local info # +################## + +# file containing our internet aliases +Fw/usr/lib/sendmail.cw + +# uucp hostnames +DUic +CUic ucbic + +# local UUCP connections +CV foo + + +############################# +### Setup Information ### +############################# + + +###################### +# General Macros # +###################### + +# local domain name +DDBerkeley.EDU + +# Internet relay host -- machines in our domain that are not +# registered with the NIC will be "hidden" behind this relay machine +# with the % kludge, although SMTP delivery will still be performed +# by the sending machine. Someday this will go away. +DAcad.Berkeley.EDU + +# UUCP relay host +DRcad.Berkeley.EDU + +# csnet relay host +DCrelay.cs.net + +# bitnet relay host +DBjade.Berkeley.EDU + +# my official hostname +Dj$w + + + +############### +# Classes # +############### + +# Internal ("fake") domains that we use in rewriting +CIUUCP BITNET CSNET + + + +############################################################ +############################################################ +##### +##### BERKELEY HOSTS REGISTERED WITH THE NIC +##### +############################################################ +############################################################ + + +CNbach ucbbach +CNbizet ucbbizet +CNcad ucbcad +CNdegas ucbdegas +CNeast ucbeast +CNernie ucbernie +CNesvax ucbesvax +CNjade ucbjade +CNji ucbji +CNmike ucbmike +CNmonet ucbmonet +CNpostgres +CNrenoir ucbrenoir +CNucbarpa +CNucbvax +CNviolet ucbviolet + + +###################### +# Version Number # +###################### + +DZ1.34 + + +###################### +# Special macros # +###################### + +# my name +DnMAILER-DAEMON +# UNIX header format +DlFrom $g $d +# delimiter (operator) characters +Do.:%@!^=/[] +# format of a total name +Dq$g$?x ($x)$. +# SMTP login message +De$j Sendmail $v/$Z ready at $b + +############### +# Options # +############### + +# location of alias file +OA/usr/lib/aliases +# wait up to ten minutes for alias file rebuild +Oa10 +# substitution for space (blank) characters +OB. +# (don't) connect to "expensive" mailers +#Oc +# default delivery mode (deliver in background) +Odbackground +# temporary file mode +OF0600 +# default GID +Og1 +# location of help file +OH/usr/lib/sendmail.hf +# log level +OL9 +# default network name +ONARPA +# default messages to old style +Oo +# queue directory +OQ/usr/spool/mqueue +# read timeout -- violates protocols +Or2h +# status file +OS/usr/lib/sendmail.st +# queue up everything before starting transmission +Os +# default timeout interval +OT3d +# time zone names (V6 only) +OtPST,PDT +# default UID +Ou1 +# wizard's password +OW* +# load average at which we just queue messages +Ox8 +# load average at which we refuse connections +OX12 + +########################### +# Message precedences # +########################### + +Pfirst-class=0 +Pspecial-delivery=100 +Pbulk=-60 +Pjunk=-100 + +##################### +# Trusted users # +##################### + +Troot +Tdaemon +Tuucp + +######################### +# Format of headers # +######################### + +H?P?Return-Path: <$g> +HReceived: $?sfrom $s $.by $j ($v/$Z) + id $i; $b +H?D?Resent-Date: $a +H?D?Date: $a +H?F?Resent-From: $q +H?F?From: $q +H?x?Full-Name: $x +HSubject: +# HPosted-Date: $a +# H?l?Received-Date: $b +H?M?Resent-Message-Id: <$t.$i@$j> +H?M?Message-Id: <$t.$i@$j> + + + +########################### +### Rewriting Rules ### +########################### + + +################################ +# Sender Field Pre-rewriting # +################################ +S1 +#R$*<$*>$* $1$2$3 defocus + +################################### +# Recipient Field Pre-rewriting # +################################### +S2 +#R$*<$*>$* $1$2$3 defocus + + + +################################# +# Final Output Post-rewriting # +################################# +S4 + +R@ $@ handle <> error addr + +# resolve numeric addresses to name if possible +R$*<@[$+]>$* $:$1<@$[[$2]$]>$3 lookup numeric internet addr + +# externalize local domain info +R$*<$+>$* $1$2$3 defocus +R@$+:@$+:$+ @$1,@$2:$3 canonical + +# UUCP must always be presented in old form +R$+@$-.UUCP $2!$1 u@h.UUCP => h!u + +# delete duplicate local names +R$+%$=w@$=w $1@$w u%host@host => u@host +R$+%$=w@$=w.$D $1@$w u%host@host => u@host + + +########################### +# Name Canonicalization # +########################### +S3 + +# handle "from:<>" special case +R$*<>$* $@@ turn into magic token + +# basic textual canonicalization -- note RFC733 heuristic here +R$*<$*<$*<$+>$*>$*>$* $4 3-level <> nesting +R$*<$*<$+>$*>$* $3 2-level <> nesting +R$*<$+>$* $2 basic RFC821/822 parsing + +# make sure <@a,@b,@c:user@d> syntax is easy to parse -- undone later +R@$+,$+ @$1:$2 change all "," to ":" + +# localize and dispose of route-based addresses +R@$+:$+ $@$>6<@$1>:$2 handle + +# more miscellaneous cleanup +R$+ $:$>8$1 host dependent cleanup +R$+:$*;@$+ $@$1:$2;@$3 list syntax +R$+:$*; $@$1:$2; list syntax +R$+@$+ $:$1<@$2> focus on domain +R$+<$+@$+> $1$2<@$3> move gaze right +R$+<@$+> $@$>6$1<@$2> already canonical + +# convert old-style addresses to a domain-based address +R$+^$+ $1!$2 convert ^ to ! +R$-!$+ $@$>6$2<@$1.UUCP> resolve uucp names +R$+.$-!$+ $@$>6$3<@$1.$2> domain uucps +R$+!$+ $@$>6$2<@$1.UUCP> uucp subdomains +R$+%$+ $:$>9$1%$2 user%host +R$+<@$+> $@$>6$1<@$2> already canonical +R$-.$+ $@$>6$2<@$1> host.user + + +################################# +# special local conversions # +################################# + +S6 +R$*<@$=w>$* $:$1<@$w>$3 get into u@$w form +R$*<@$=w.$D>$* $:$1<@$w>$3 +R$*<@$=U.UUCP>$* $:$1<@$w>$3 + +################################ +# Change rightmost % to @. # +################################ + +S9 +R$*%$* $1@$2 First make them all @'s. +R$*@$*@$* $1%$2@$3 Undo all but the last. +R$*@$* $@$1<@$2> Put back the brackets. + + + +################### +### Mailers ### +################### + + +############################################################ +############################################################ +##### +##### Local and Program Mailer specification +##### +############################################################ +############################################################ + +Mlocal, P=/bin/mail, F=rlsDFMmn, S=10, R=20, A=mail -d $u +Mprog, P=/bin/sh, F=lsDFMe, S=10, R=20, A=sh -c $u + +S10 +R@ $n errors to mailer-daemon + + +############################################################ +############################################################ +##### +##### Local Domain SMTP Mailer specification +##### +##### Messages processed by this specification are assumed to remain +##### the local domain. Hence, they can refer to hosts that are +##### not registered in the NIC host table. +##### +############################################################ +############################################################ + +Mtcpld, P=[IPC], F=mDFMueXLC, S=17, R=27, A=IPC $h, E=\r\n + +S17 + +# cleanup forwarding a bit +R$*<$*>$* $1$2$3 defocus +R$* $:$>3$1 canonicalize +R$*%$*<@$w> $:$>9$1%$2 user%localhost@localdomain + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere +R$*:$* $1.$2 map colons to dots + +# output local host as user@host.domain +R$- $@$1<@$w> user w/o host +R$+<@$w> $@$1<@$w> this host +R$+<@$=w> $@$1<@$w> or an alias +R$+<@$-> $:$1<@$[$2$]> ask nameserver +R$+<@$w> $@$1<@$w> this host +R$+<@$-> $@$1<@$2.$D> if nameserver fails + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# output fake domains as user%fake@relay + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.bitnet +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1<@$w> user@host.UUCP + + +S27 + +# cleanup +R$*<$*>$* $1$2$3 defocus +R$* $:$>3$1 now canonical form +R$*%$*<@$w> $:$>9$1%$2 user%localhost@localdomain + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere +R$*:$* $1.$2 map colons to dots + +# output local host as user@host.domain +R$- $@$1<@$w> user w/o host +R$+<@$w> $@$1<@$w> this host +R$+<@$=w> $@$1<@$w> or an alias +R$+<@$-> $:$1<@$[$2$]> ask nameserver +R$+<@$w> $@$1<@$w> this host +R$+<@$-> $@$1<@$2.$D> if nameserver fails + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# output fake domains as user%fake@relay + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.BITNET +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1 user@host.UUCP + + + +############################################################ +############################################################ +##### +##### Internet SMTP Mailer specification +##### +##### Messages processed by this specification are assumed to leave +##### the local domain -- hence, they must be canonical according to +##### RFC822 etc. This means that machines not registered with +##### the NIC must be hidden behind our Internet relay. +##### +############################################################ +############################################################ + +Mtcp, P=[IPC], F=mDFMueXLC, S=14, R=24, A=IPC $h, E=\r\n + +S14 + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere +R$*:$* $1.$2 map colons to dots + +# output local host in user@host.domain syntax +R$- $1<@$w> user w/o host +R$+<@$=w> $:$1<@$w> this host +R$+<@$-> $:$1<@$[$2$]> canonicalize into dom +R$+<@$-> $:$1<@$2.$D> if nameserver fails +R$+<@$=N.$D> $@$1<@$2.$D> nic-reg hosts are ok +R$+<@$*.$D> $@$1%$2.$D<@$A> else -> u%h@gateway + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# output internal ("fake") domains as "user%host@relay" + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.BITNET +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1<@$w> user@host.UUCP + + +S24 + +# put in <> kludge +R$*<$*>$* $1$2$3 defocus +R$* $:$>3$1 now canonical form + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere..... +R$*:$* $1.$2 map colons to dots + +# output local host in user@host.domain syntax +R$- $1<@$w> user w/o host +R$+<@$=w> $:$1<@$w> this host +R$+<@$-> $:$1<@$[$2$]> canonicalize into dom +R$+<@$-> $:$1<@$2.$D> if nameserver fails +R$+<@$=N.$D> $@$1<@$2.$D> nic-reg hosts are ok +R$+<@$*.$D> $@$1%$2.$D<@$A> else -> u%h@gateway + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# Hide fake domains behind relays + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.BITNET +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1 user@host.UUCP + + + +############################################################ +############################################################ +##### +##### UUCP Mailer specification +##### +############################################################ +############################################################ + + +Muucp, P=/usr/bin/uux, F=DFMhuU, S=13, R=23, M=100000, + A=uux - -r -z -a$f -gC $h!rmail ($u) + +S13 +R$+ $:$>5$1 convert to old style +R$*<@$=w>$* $1<@$w>$2 resolve abbreviations +R$*<@$->$* $1<@$2.$D>$3 resolve abbreviations +R$+<@$+> $2!$1 uucpize (no @'s in addr) +R$w!$+ $1 strip local name +R$+ $:$U!$1 stick on our host name +R$=U!$-%$- $:$1!$2@$3.$D ucbvax!user@host.domain + +S23 +R$+ $:$>5$1 convert to old style +R$*<@$=w>$* $1<@$w>$2 resolve abbreviations +R$*<@$->$* $1<@$2.$D>$3 resolve abbreviations +R$+<@$w> $U!$1 a!b@here -> here!a!b +R$=U!$+ $2 here!a!b -> a!b +# sanity ... should not happen. +R$=U.$D!$+ $2 strip local name.domain + + +############################################################ +############################################################ +##### +##### Provide Backward Compatibility +##### +############################################################ +############################################################ + +##################################################### +# General code to convert back to old style names # +##################################################### +S5 + +R$+<@$w> $1 strip host +R$+<@$-.UUCP> $2!$1 u@host.UUCP => host!u + + + +##################### +### Rule Zero ### +##################### + + +############################################################ +############################################################ +##### +##### RULESET ZERO PREAMBLE +##### +##### The beginning of ruleset zero is constant through all +##### configurations. +##### +############################################################ +############################################################ + +S0 + +# first make canonical +R$*<$*>$* $1$2$3 defocus +R$+ $:$>3$1 make canonical + +# handle special cases +R$*<@[$+]>$* $:$1<@$[[$2]$]>$3 numeric internet addr +R$*<@[$+]>$* $#tcp$@[$2]$:$1@[$2]$3 numeric internet spec +R$+ $:$>6$1 +R$-<@$w> $#local$:$1 +R@ $#error$:Invalid address handle <> form + +# canonicalize using the nameserver if not internal domain +R$*<@$*.$~I>$* $:$1<@$[$2.$3$]>$4 +R$*<@$->$* $:$1<@$[$2$]>$3 +R$*<@$->$* $:$1<@$2.$D>$3 if nameserver fails + +# now delete the local info +R<@$w>:$* $@$>0$1 @here:... -> ... +R$*<@$w> $@$>0$1 ...@here -> ... + +################################## +# End of ruleset zero preamble # +################################## + + +############################################### +### Machine dependent part of Rule Zero ### +############################################### + + + +# resolve local UUCP connections +R<@$=V.UUCP>:$+ $#uucp$@$1$:$2 @host.UUCP:... +R$+<@$=V.UUCP> $#uucp$@$2$:$1 user@host.UUCP + + +# resolve fake top level domains by forwarding to other hosts +R$*<@$+.BITNET>$* $#tcp$@$B$:$1<@$2.BITNET>$3 user@host.BITNET +R$*<@$+.CSNET>$* $#tcp$@$C$:$1<@$2.CSNET>$3 user@host.CSNET + + +# forward non-local UUCP traffic to our UUCP relay +R$*<@$*.UUCP>$* $#tcpld$@$R$:$1<@$2.UUCP> uucp mail + +# hide behind our internet relay when talking to people in the arpa domain +R$*<@$*.arpa>$* $#tcp$@$2.arpa$:$1<@$2.arpa>$3 user@host.arpa + +# but speak domains to them if they speak domains too +R$*<@$*>$* $#tcpld$@$2$:$1<@$2>$3 user@host.domain + +# remaining names must be local +R$+ $#local$:$1 everything else diff --git a/usr/src/usr.sbin/sendmail/cf/cf/okeeffe.cf b/usr/src/usr.sbin/sendmail/cf/cf/okeeffe.cf new file mode 100644 index 0000000000..e8d3d41379 --- /dev/null +++ b/usr/src/usr.sbin/sendmail/cf/cf/okeeffe.cf @@ -0,0 +1,606 @@ +# +# Sendmail +# Copyright (c) 1983 Eric P. Allman +# Berkeley, California +# +# Copyright (c) 1983 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)okeeffe.mc 1.3 (Berkeley) 1/3/89 +# @(#)proto.mc 1.20 (Berkeley) 1/25/89 +# +# built by phil on Wed Jan 25 11:47:02 PST 1989 +# in /usr/src/local/nettables/sendmail.cf/cf on monet.Berkeley.EDU +# +############################################################ +############################################################ +##### +##### SENDMAIL CONFIGURATION FILE +##### +############################################################ +############################################################ + + +################## +# local info # +################## + +# file containing our internet aliases +Fw/usr/lib/sendmail.cw + +# uucp hostnames +DUokeeffe +CUokeeffe + +# local UUCP connections +CV blia +CV ccicpg +CV mjk +CV pixar +CV zulu + + +############################# +### Setup Information ### +############################# + + +###################### +# General Macros # +###################### + +# local domain name +DDBerkeley.EDU + +# Internet relay host -- machines in our domain that are not +# registered with the NIC will be "hidden" behind this relay machine +# with the % kludge, although SMTP delivery will still be performed +# by the sending machine. Someday this will go away. +DAucbvax.Berkeley.EDU + +# UUCP relay host +DRucbvax.Berkeley.EDU + +# csnet relay host +DCrelay.cs.net + +# bitnet relay host +DBjade.Berkeley.EDU + +# my official hostname +Dj$w + + + +############### +# Classes # +############### + +# Internal ("fake") domains that we use in rewriting +CIUUCP BITNET CSNET + + + +############################################################ +############################################################ +##### +##### BERKELEY HOSTS REGISTERED WITH THE NIC +##### +############################################################ +############################################################ + + +CNbach ucbbach +CNbizet ucbbizet +CNcad ucbcad +CNdegas ucbdegas +CNeast ucbeast +CNernie ucbernie +CNesvax ucbesvax +CNjade ucbjade +CNji ucbji +CNmike ucbmike +CNmonet ucbmonet +CNpostgres +CNrenoir ucbrenoir +CNucbarpa +CNucbvax +CNviolet ucbviolet + + +###################### +# Version Number # +###################### + +DZ1.34 + + +###################### +# Special macros # +###################### + +# my name +DnMAILER-DAEMON +# UNIX header format +DlFrom $g $d +# delimiter (operator) characters +Do.:%@!^=/[] +# format of a total name +Dq$g$?x ($x)$. +# SMTP login message +De$j Sendmail $v/$Z ready at $b + +############### +# Options # +############### + +# location of alias file +OA/usr/lib/aliases +# wait up to ten minutes for alias file rebuild +Oa10 +# substitution for space (blank) characters +OB. +# (don't) connect to "expensive" mailers +#Oc +# default delivery mode (deliver in background) +Odbackground +# temporary file mode +OF0600 +# default GID +Og1 +# location of help file +OH/usr/lib/sendmail.hf +# log level +OL9 +# default network name +ONARPA +# default messages to old style +Oo +# queue directory +OQ/usr/spool/mqueue +# read timeout -- violates protocols +Or2h +# status file +OS/usr/lib/sendmail.st +# queue up everything before starting transmission +Os +# default timeout interval +OT3d +# time zone names (V6 only) +OtPST,PDT +# default UID +Ou1 +# wizard's password +OW* +# load average at which we just queue messages +Ox8 +# load average at which we refuse connections +OX12 + +########################### +# Message precedences # +########################### + +Pfirst-class=0 +Pspecial-delivery=100 +Pbulk=-60 +Pjunk=-100 + +##################### +# Trusted users # +##################### + +Troot +Tdaemon +Tuucp + +######################### +# Format of headers # +######################### + +H?P?Return-Path: <$g> +HReceived: $?sfrom $s $.by $j ($v/$Z) + id $i; $b +H?D?Resent-Date: $a +H?D?Date: $a +H?F?Resent-From: $q +H?F?From: $q +H?x?Full-Name: $x +HSubject: +# HPosted-Date: $a +# H?l?Received-Date: $b +H?M?Resent-Message-Id: <$t.$i@$j> +H?M?Message-Id: <$t.$i@$j> + + + +########################### +### Rewriting Rules ### +########################### + + +################################ +# Sender Field Pre-rewriting # +################################ +S1 +#R$*<$*>$* $1$2$3 defocus + +################################### +# Recipient Field Pre-rewriting # +################################### +S2 +#R$*<$*>$* $1$2$3 defocus + + + +################################# +# Final Output Post-rewriting # +################################# +S4 + +R@ $@ handle <> error addr + +# resolve numeric addresses to name if possible +R$*<@[$+]>$* $:$1<@$[[$2]$]>$3 lookup numeric internet addr + +# externalize local domain info +R$*<$+>$* $1$2$3 defocus +R@$+:@$+:$+ @$1,@$2:$3 canonical + +# UUCP must always be presented in old form +R$+@$-.UUCP $2!$1 u@h.UUCP => h!u + +# delete duplicate local names +R$+%$=w@$=w $1@$w u%host@host => u@host +R$+%$=w@$=w.$D $1@$w u%host@host => u@host + + +########################### +# Name Canonicalization # +########################### +S3 + +# handle "from:<>" special case +R$*<>$* $@@ turn into magic token + +# basic textual canonicalization -- note RFC733 heuristic here +R$*<$*<$*<$+>$*>$*>$* $4 3-level <> nesting +R$*<$*<$+>$*>$* $3 2-level <> nesting +R$*<$+>$* $2 basic RFC821/822 parsing + +# make sure <@a,@b,@c:user@d> syntax is easy to parse -- undone later +R@$+,$+ @$1:$2 change all "," to ":" + +# localize and dispose of route-based addresses +R@$+:$+ $@$>6<@$1>:$2 handle + +# more miscellaneous cleanup +R$+ $:$>8$1 host dependent cleanup +R$+:$*;@$+ $@$1:$2;@$3 list syntax +R$+:$*; $@$1:$2; list syntax +R$+@$+ $:$1<@$2> focus on domain +R$+<$+@$+> $1$2<@$3> move gaze right +R$+<@$+> $@$>6$1<@$2> already canonical + +# convert old-style addresses to a domain-based address +R$+^$+ $1!$2 convert ^ to ! +R$-!$+ $@$>6$2<@$1.UUCP> resolve uucp names +R$+.$-!$+ $@$>6$3<@$1.$2> domain uucps +R$+!$+ $@$>6$2<@$1.UUCP> uucp subdomains +R$+%$+ $:$>9$1%$2 user%host +R$+<@$+> $@$>6$1<@$2> already canonical +R$-.$+ $@$>6$2<@$1> host.user + + +################################# +# special local conversions # +################################# + +S6 +R$*<@$=w>$* $:$1<@$w>$3 get into u@$w form +R$*<@$=w.$D>$* $:$1<@$w>$3 +R$*<@$=U.UUCP>$* $:$1<@$w>$3 + +################################ +# Change rightmost % to @. # +################################ + +S9 +R$*%$* $1@$2 First make them all @'s. +R$*@$*@$* $1%$2@$3 Undo all but the last. +R$*@$* $@$1<@$2> Put back the brackets. + + + +################### +### Mailers ### +################### + + +############################################################ +############################################################ +##### +##### Local and Program Mailer specification +##### +############################################################ +############################################################ + +Mlocal, P=/bin/mail, F=rlsDFMmn, S=10, R=20, A=mail -d $u +Mprog, P=/bin/sh, F=lsDFMe, S=10, R=20, A=sh -c $u + +S10 +R@ $n errors to mailer-daemon + + +############################################################ +############################################################ +##### +##### Local Domain SMTP Mailer specification +##### +##### Messages processed by this specification are assumed to remain +##### the local domain. Hence, they can refer to hosts that are +##### not registered in the NIC host table. +##### +############################################################ +############################################################ + +Mtcpld, P=[IPC], F=mDFMueXLC, S=17, R=27, A=IPC $h, E=\r\n + +S17 + +# cleanup forwarding a bit +R$*<$*>$* $1$2$3 defocus +R$* $:$>3$1 canonicalize +R$*%$*<@$w> $:$>9$1%$2 user%localhost@localdomain + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere +R$*:$* $1.$2 map colons to dots + +# output local host as user@host.domain +R$- $@$1<@$w> user w/o host +R$+<@$w> $@$1<@$w> this host +R$+<@$=w> $@$1<@$w> or an alias +R$+<@$-> $:$1<@$[$2$]> ask nameserver +R$+<@$w> $@$1<@$w> this host +R$+<@$-> $@$1<@$2.$D> if nameserver fails + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# output fake domains as user%fake@relay + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.bitnet +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1<@$w> user@host.UUCP + + +S27 + +# cleanup +R$*<$*>$* $1$2$3 defocus +R$* $:$>3$1 now canonical form +R$*%$*<@$w> $:$>9$1%$2 user%localhost@localdomain + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere +R$*:$* $1.$2 map colons to dots + +# output local host as user@host.domain +R$- $@$1<@$w> user w/o host +R$+<@$w> $@$1<@$w> this host +R$+<@$=w> $@$1<@$w> or an alias +R$+<@$-> $:$1<@$[$2$]> ask nameserver +R$+<@$w> $@$1<@$w> this host +R$+<@$-> $@$1<@$2.$D> if nameserver fails + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# output fake domains as user%fake@relay + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.BITNET +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1 user@host.UUCP + + + +############################################################ +############################################################ +##### +##### Internet SMTP Mailer specification +##### +##### Messages processed by this specification are assumed to leave +##### the local domain -- hence, they must be canonical according to +##### RFC822 etc. This means that machines not registered with +##### the NIC must be hidden behind our Internet relay. +##### +############################################################ +############################################################ + +Mtcp, P=[IPC], F=mDFMueXLC, S=14, R=24, A=IPC $h, E=\r\n + +S14 + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere +R$*:$* $1.$2 map colons to dots + +# output local host in user@host.domain syntax +R$- $1<@$w> user w/o host +R$+<@$=w> $:$1<@$w> this host +R$+<@$-> $:$1<@$[$2$]> canonicalize into dom +R$+<@$-> $:$1<@$2.$D> if nameserver fails +R$+<@$=N.$D> $@$1<@$2.$D> nic-reg hosts are ok +R$+<@$*.$D> $@$1%$2.$D<@$A> else -> u%h@gateway + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# output internal ("fake") domains as "user%host@relay" + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.BITNET +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1<@$w> user@host.UUCP + + +S24 + +# put in <> kludge +R$*<$*>$* $1$2$3 defocus +R$* $:$>3$1 now canonical form + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere..... +R$*:$* $1.$2 map colons to dots + +# output local host in user@host.domain syntax +R$- $1<@$w> user w/o host +R$+<@$=w> $:$1<@$w> this host +R$+<@$-> $:$1<@$[$2$]> canonicalize into dom +R$+<@$-> $:$1<@$2.$D> if nameserver fails +R$+<@$=N.$D> $@$1<@$2.$D> nic-reg hosts are ok +R$+<@$*.$D> $@$1%$2.$D<@$A> else -> u%h@gateway + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# Hide fake domains behind relays + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.BITNET +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1 user@host.UUCP + + + +############################################################ +############################################################ +##### +##### UUCP Mailer specification +##### +############################################################ +############################################################ + + +Muucp, P=/usr/bin/uux, F=DFMhuU, S=13, R=23, M=100000, + A=uux - -r -z -a$f -gC $h!rmail ($u) + +S13 +R$+ $:$>5$1 convert to old style +R$*<@$=w>$* $1<@$w>$2 resolve abbreviations +R$*<@$->$* $1<@$2.$D>$3 resolve abbreviations +R$+<@$+> $2!$1 uucpize (no @'s in addr) +R$w!$+ $1 strip local name +R$+ $:$U!$1 stick on our host name +R$=U!$-%$- $:$1!$2@$3.$D ucbvax!user@host.domain + +S23 +R$+ $:$>5$1 convert to old style +R$*<@$=w>$* $1<@$w>$2 resolve abbreviations +R$*<@$->$* $1<@$2.$D>$3 resolve abbreviations +R$+<@$w> $U!$1 a!b@here -> here!a!b +R$=U!$+ $2 here!a!b -> a!b +# sanity ... should not happen. +R$=U.$D!$+ $2 strip local name.domain + + +############################################################ +############################################################ +##### +##### Provide Backward Compatibility +##### +############################################################ +############################################################ + +##################################################### +# General code to convert back to old style names # +##################################################### +S5 + +R$+<@$w> $1 strip host +R$+<@$-.UUCP> $2!$1 u@host.UUCP => host!u + + + +##################### +### Rule Zero ### +##################### + + +############################################################ +############################################################ +##### +##### RULESET ZERO PREAMBLE +##### +##### The beginning of ruleset zero is constant through all +##### configurations. +##### +############################################################ +############################################################ + +S0 + +# first make canonical +R$*<$*>$* $1$2$3 defocus +R$+ $:$>3$1 make canonical + +# handle special cases +R$*<@[$+]>$* $:$1<@$[[$2]$]>$3 numeric internet addr +R$*<@[$+]>$* $#tcp$@[$2]$:$1@[$2]$3 numeric internet spec +R$+ $:$>6$1 +R$-<@$w> $#local$:$1 +R@ $#error$:Invalid address handle <> form + +# canonicalize using the nameserver if not internal domain +R$*<@$*.$~I>$* $:$1<@$[$2.$3$]>$4 +R$*<@$->$* $:$1<@$[$2$]>$3 +R$*<@$->$* $:$1<@$2.$D>$3 if nameserver fails + +# now delete the local info +R<@$w>:$* $@$>0$1 @here:... -> ... +R$*<@$w> $@$>0$1 ...@here -> ... + +################################## +# End of ruleset zero preamble # +################################## + + +############################################### +### Machine dependent part of Rule Zero ### +############################################### + + + +# resolve local UUCP connections +R<@$=V.UUCP>:$+ $#uucp$@$1$:$2 @host.UUCP:... +R$+<@$=V.UUCP> $#uucp$@$2$:$1 user@host.UUCP + + +# resolve fake top level domains by forwarding to other hosts +R$*<@$+.BITNET>$* $#tcp$@$B$:$1<@$2.BITNET>$3 user@host.BITNET +R$*<@$+.CSNET>$* $#tcp$@$C$:$1<@$2.CSNET>$3 user@host.CSNET + + +# forward non-local UUCP traffic to our UUCP relay +R$*<@$*.UUCP>$* $#tcpld$@$R$:$1<@$2.UUCP> uucp mail + +# resolve SMTP traffic +R$*<@$*.$D>$* $#tcpld$@$2.$D$:$1<@$2.$D>$3 user@host.ourdomain +R$*<@$+>$* $#tcp$@$2$:$1<@$2>$3 user@host.ourdomain + +# remaining names must be local +R$+ $#local$:$1 everything else + diff --git a/usr/src/usr.sbin/sendmail/cf/cf/ucbarpa.cf b/usr/src/usr.sbin/sendmail/cf/cf/ucbarpa.cf new file mode 100644 index 0000000000..d5a41fc39b --- /dev/null +++ b/usr/src/usr.sbin/sendmail/cf/cf/ucbarpa.cf @@ -0,0 +1,607 @@ +# +# Sendmail +# Copyright (c) 1983 Eric P. Allman +# Berkeley, California +# +# Copyright (c) 1983 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)ucbarpa.mc 1.3 (Berkeley) 1/3/89 +# @(#)proto.mc 1.20 (Berkeley) 1/25/89 +# +# built by phil on Wed Jan 25 11:47:11 PST 1989 +# in /usr/src/local/nettables/sendmail.cf/cf on monet.Berkeley.EDU +# +############################################################ +############################################################ +##### +##### SENDMAIL CONFIGURATION FILE +##### +############################################################ +############################################################ + + +################## +# local info # +################## + +# file containing our internet aliases +Fw/usr/lib/sendmail.cw + +# uucp hostnames +DUucbarpa +CUucbarpa + +# local UUCP connections +CV endotsew +CV fateman +CV franz +CV interlan +CV metron + + +############################# +### Setup Information ### +############################# + + +###################### +# General Macros # +###################### + +# local domain name +DDBerkeley.EDU + +# Internet relay host -- machines in our domain that are not +# registered with the NIC will be "hidden" behind this relay machine +# with the % kludge, although SMTP delivery will still be performed +# by the sending machine. Someday this will go away. +DAucbvax.Berkeley.EDU + +# UUCP relay host +DRucbvax.Berkeley.EDU + +# csnet relay host +DCrelay.cs.net + +# bitnet relay host +DBjade.Berkeley.EDU + +# my official hostname +Dj$w + + + +############### +# Classes # +############### + +# Internal ("fake") domains that we use in rewriting +CIUUCP BITNET CSNET + + + +############################################################ +############################################################ +##### +##### BERKELEY HOSTS REGISTERED WITH THE NIC +##### +############################################################ +############################################################ + + +CNbach ucbbach +CNbizet ucbbizet +CNcad ucbcad +CNdegas ucbdegas +CNeast ucbeast +CNernie ucbernie +CNesvax ucbesvax +CNjade ucbjade +CNji ucbji +CNmike ucbmike +CNmonet ucbmonet +CNpostgres +CNrenoir ucbrenoir +CNucbarpa +CNucbvax +CNviolet ucbviolet + + +###################### +# Version Number # +###################### + +DZ1.34 + + +###################### +# Special macros # +###################### + +# my name +DnMAILER-DAEMON +# UNIX header format +DlFrom $g $d +# delimiter (operator) characters +Do.:%@!^=/[] +# format of a total name +Dq$g$?x ($x)$. +# SMTP login message +De$j Sendmail $v/$Z ready at $b + +############### +# Options # +############### + +# location of alias file +OA/usr/lib/aliases +# wait up to ten minutes for alias file rebuild +Oa10 +# substitution for space (blank) characters +OB. +# (don't) connect to "expensive" mailers +#Oc +# default delivery mode (deliver in background) +Odbackground +# temporary file mode +OF0600 +# default GID +Og1 +# location of help file +OH/usr/lib/sendmail.hf +# log level +OL9 +# default network name +ONARPA +# default messages to old style +Oo +# queue directory +OQ/usr/spool/mqueue +# read timeout -- violates protocols +Or2h +# status file +OS/usr/lib/sendmail.st +# queue up everything before starting transmission +Os +# default timeout interval +OT3d +# time zone names (V6 only) +OtPST,PDT +# default UID +Ou1 +# wizard's password +OW* +# load average at which we just queue messages +Ox8 +# load average at which we refuse connections +OX12 + +########################### +# Message precedences # +########################### + +Pfirst-class=0 +Pspecial-delivery=100 +Pbulk=-60 +Pjunk=-100 + +##################### +# Trusted users # +##################### + +Troot +Tdaemon +Tuucp + +######################### +# Format of headers # +######################### + +H?P?Return-Path: <$g> +HReceived: $?sfrom $s $.by $j ($v/$Z) + id $i; $b +H?D?Resent-Date: $a +H?D?Date: $a +H?F?Resent-From: $q +H?F?From: $q +H?x?Full-Name: $x +HSubject: +# HPosted-Date: $a +# H?l?Received-Date: $b +H?M?Resent-Message-Id: <$t.$i@$j> +H?M?Message-Id: <$t.$i@$j> + + + +########################### +### Rewriting Rules ### +########################### + + +################################ +# Sender Field Pre-rewriting # +################################ +S1 +#R$*<$*>$* $1$2$3 defocus + +################################### +# Recipient Field Pre-rewriting # +################################### +S2 +#R$*<$*>$* $1$2$3 defocus + + + +################################# +# Final Output Post-rewriting # +################################# +S4 + +R@ $@ handle <> error addr + +# resolve numeric addresses to name if possible +R$*<@[$+]>$* $:$1<@$[[$2]$]>$3 lookup numeric internet addr + +# externalize local domain info +R$*<$+>$* $1$2$3 defocus +R@$+:@$+:$+ @$1,@$2:$3 canonical + +# UUCP must always be presented in old form +R$+@$-.UUCP $2!$1 u@h.UUCP => h!u + +# delete duplicate local names +R$+%$=w@$=w $1@$w u%host@host => u@host +R$+%$=w@$=w.$D $1@$w u%host@host => u@host + + +########################### +# Name Canonicalization # +########################### +S3 + +# handle "from:<>" special case +R$*<>$* $@@ turn into magic token + +# basic textual canonicalization -- note RFC733 heuristic here +R$*<$*<$*<$+>$*>$*>$* $4 3-level <> nesting +R$*<$*<$+>$*>$* $3 2-level <> nesting +R$*<$+>$* $2 basic RFC821/822 parsing + +# make sure <@a,@b,@c:user@d> syntax is easy to parse -- undone later +R@$+,$+ @$1:$2 change all "," to ":" + +# localize and dispose of route-based addresses +R@$+:$+ $@$>6<@$1>:$2 handle + +# more miscellaneous cleanup +R$+ $:$>8$1 host dependent cleanup +R$+:$*;@$+ $@$1:$2;@$3 list syntax +R$+:$*; $@$1:$2; list syntax +R$+@$+ $:$1<@$2> focus on domain +R$+<$+@$+> $1$2<@$3> move gaze right +R$+<@$+> $@$>6$1<@$2> already canonical + +# convert old-style addresses to a domain-based address +R$+^$+ $1!$2 convert ^ to ! +R$-!$+ $@$>6$2<@$1.UUCP> resolve uucp names +R$+.$-!$+ $@$>6$3<@$1.$2> domain uucps +R$+!$+ $@$>6$2<@$1.UUCP> uucp subdomains +R$+%$+ $:$>9$1%$2 user%host +R$+<@$+> $@$>6$1<@$2> already canonical +R$-.$+ $@$>6$2<@$1> host.user + + +################################# +# special local conversions # +################################# + +S6 +R$*<@$=w>$* $:$1<@$w>$3 get into u@$w form +R$*<@$=w.$D>$* $:$1<@$w>$3 +R$*<@$=U.UUCP>$* $:$1<@$w>$3 + +################################ +# Change rightmost % to @. # +################################ + +S9 +R$*%$* $1@$2 First make them all @'s. +R$*@$*@$* $1%$2@$3 Undo all but the last. +R$*@$* $@$1<@$2> Put back the brackets. + + + +################### +### Mailers ### +################### + + +############################################################ +############################################################ +##### +##### Local and Program Mailer specification +##### +############################################################ +############################################################ + +Mlocal, P=/bin/mail, F=rlsDFMmn, S=10, R=20, A=mail -d $u +Mprog, P=/bin/sh, F=lsDFMe, S=10, R=20, A=sh -c $u + +S10 +R@ $n errors to mailer-daemon + + +############################################################ +############################################################ +##### +##### Local Domain SMTP Mailer specification +##### +##### Messages processed by this specification are assumed to remain +##### the local domain. Hence, they can refer to hosts that are +##### not registered in the NIC host table. +##### +############################################################ +############################################################ + +Mtcpld, P=[IPC], F=mDFMueXLC, S=17, R=27, A=IPC $h, E=\r\n + +S17 + +# cleanup forwarding a bit +R$*<$*>$* $1$2$3 defocus +R$* $:$>3$1 canonicalize +R$*%$*<@$w> $:$>9$1%$2 user%localhost@localdomain + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere +R$*:$* $1.$2 map colons to dots + +# output local host as user@host.domain +R$- $@$1<@$w> user w/o host +R$+<@$w> $@$1<@$w> this host +R$+<@$=w> $@$1<@$w> or an alias +R$+<@$-> $:$1<@$[$2$]> ask nameserver +R$+<@$w> $@$1<@$w> this host +R$+<@$-> $@$1<@$2.$D> if nameserver fails + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# output fake domains as user%fake@relay + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.bitnet +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1<@$w> user@host.UUCP + + +S27 + +# cleanup +R$*<$*>$* $1$2$3 defocus +R$* $:$>3$1 now canonical form +R$*%$*<@$w> $:$>9$1%$2 user%localhost@localdomain + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere +R$*:$* $1.$2 map colons to dots + +# output local host as user@host.domain +R$- $@$1<@$w> user w/o host +R$+<@$w> $@$1<@$w> this host +R$+<@$=w> $@$1<@$w> or an alias +R$+<@$-> $:$1<@$[$2$]> ask nameserver +R$+<@$w> $@$1<@$w> this host +R$+<@$-> $@$1<@$2.$D> if nameserver fails + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# output fake domains as user%fake@relay + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.BITNET +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1 user@host.UUCP + + + +############################################################ +############################################################ +##### +##### Internet SMTP Mailer specification +##### +##### Messages processed by this specification are assumed to leave +##### the local domain -- hence, they must be canonical according to +##### RFC822 etc. This means that machines not registered with +##### the NIC must be hidden behind our Internet relay. +##### +############################################################ +############################################################ + +Mtcp, P=[IPC], F=mDFMueXLC, S=14, R=24, A=IPC $h, E=\r\n + +S14 + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere +R$*:$* $1.$2 map colons to dots + +# output local host in user@host.domain syntax +R$- $1<@$w> user w/o host +R$+<@$=w> $:$1<@$w> this host +R$+<@$-> $:$1<@$[$2$]> canonicalize into dom +R$+<@$-> $:$1<@$2.$D> if nameserver fails +R$+<@$=N.$D> $@$1<@$2.$D> nic-reg hosts are ok +R$+<@$*.$D> $@$1%$2.$D<@$A> else -> u%h@gateway + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# output internal ("fake") domains as "user%host@relay" + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.BITNET +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1<@$w> user@host.UUCP + + +S24 + +# put in <> kludge +R$*<$*>$* $1$2$3 defocus +R$* $:$>3$1 now canonical form + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere..... +R$*:$* $1.$2 map colons to dots + +# output local host in user@host.domain syntax +R$- $1<@$w> user w/o host +R$+<@$=w> $:$1<@$w> this host +R$+<@$-> $:$1<@$[$2$]> canonicalize into dom +R$+<@$-> $:$1<@$2.$D> if nameserver fails +R$+<@$=N.$D> $@$1<@$2.$D> nic-reg hosts are ok +R$+<@$*.$D> $@$1%$2.$D<@$A> else -> u%h@gateway + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# Hide fake domains behind relays + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.BITNET +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1 user@host.UUCP + + + +############################################################ +############################################################ +##### +##### UUCP Mailer specification +##### +############################################################ +############################################################ + + +Muucp, P=/usr/bin/uux, F=DFMhuU, S=13, R=23, M=100000, + A=uux - -r -z -a$f -gC $h!rmail ($u) + +S13 +R$+ $:$>5$1 convert to old style +R$*<@$=w>$* $1<@$w>$2 resolve abbreviations +R$*<@$->$* $1<@$2.$D>$3 resolve abbreviations +R$+<@$+> $2!$1 uucpize (no @'s in addr) +R$w!$+ $1 strip local name +R$+ $:$U!$1 stick on our host name +R$=U!$-%$- $:$1!$2@$3.$D ucbvax!user@host.domain + +S23 +R$+ $:$>5$1 convert to old style +R$*<@$=w>$* $1<@$w>$2 resolve abbreviations +R$*<@$->$* $1<@$2.$D>$3 resolve abbreviations +R$+<@$w> $U!$1 a!b@here -> here!a!b +R$=U!$+ $2 here!a!b -> a!b +# sanity ... should not happen. +R$=U.$D!$+ $2 strip local name.domain + + +############################################################ +############################################################ +##### +##### Provide Backward Compatibility +##### +############################################################ +############################################################ + +##################################################### +# General code to convert back to old style names # +##################################################### +S5 + +R$+<@$w> $1 strip host +R$+<@$-.UUCP> $2!$1 u@host.UUCP => host!u + + + +##################### +### Rule Zero ### +##################### + + +############################################################ +############################################################ +##### +##### RULESET ZERO PREAMBLE +##### +##### The beginning of ruleset zero is constant through all +##### configurations. +##### +############################################################ +############################################################ + +S0 + +# first make canonical +R$*<$*>$* $1$2$3 defocus +R$+ $:$>3$1 make canonical + +# handle special cases +R$*<@[$+]>$* $:$1<@$[[$2]$]>$3 numeric internet addr +R$*<@[$+]>$* $#tcp$@[$2]$:$1@[$2]$3 numeric internet spec +R$+ $:$>6$1 +R$-<@$w> $#local$:$1 +R@ $#error$:Invalid address handle <> form + +# canonicalize using the nameserver if not internal domain +R$*<@$*.$~I>$* $:$1<@$[$2.$3$]>$4 +R$*<@$->$* $:$1<@$[$2$]>$3 +R$*<@$->$* $:$1<@$2.$D>$3 if nameserver fails + +# now delete the local info +R<@$w>:$* $@$>0$1 @here:... -> ... +R$*<@$w> $@$>0$1 ...@here -> ... + +################################## +# End of ruleset zero preamble # +################################## + + +############################################### +### Machine dependent part of Rule Zero ### +############################################### + + + +# resolve local UUCP connections +R<@$=V.UUCP>:$+ $#uucp$@$1$:$2 @host.UUCP:... +R$+<@$=V.UUCP> $#uucp$@$2$:$1 user@host.UUCP + + +# resolve fake top level domains by forwarding to other hosts +R$*<@$+.BITNET>$* $#tcp$@$B$:$1<@$2.BITNET>$3 user@host.BITNET +R$*<@$+.CSNET>$* $#tcp$@$C$:$1<@$2.CSNET>$3 user@host.CSNET + + +# forward non-local UUCP traffic to our UUCP relay +R$*<@$*.UUCP>$* $#tcpld$@$R$:$1<@$2.UUCP> uucp mail + +# hide behind our internet relay when talking to people in the arpa domain +R$*<@$*.arpa>$* $#tcp$@$2.arpa$:$1<@$2.arpa>$3 user@host.arpa + +# but speak domains to them if they speak domains too +R$*<@$*>$* $#tcpld$@$2$:$1<@$2>$3 user@host.domain + +# remaining names must be local +R$+ $#local$:$1 everything else diff --git a/usr/src/usr.sbin/sendmail/cf/cf/ucbtcp.cf b/usr/src/usr.sbin/sendmail/cf/cf/ucbtcp.cf new file mode 100644 index 0000000000..a6d6cb097c --- /dev/null +++ b/usr/src/usr.sbin/sendmail/cf/cf/ucbtcp.cf @@ -0,0 +1,547 @@ +# +# Sendmail +# Copyright (c) 1983 Eric P. Allman +# Berkeley, California +# +# Copyright (c) 1983 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)ucbtcp.mc 1.3 (Berkeley) 1/3/89 +# @(#)proto.mc 1.20 (Berkeley) 1/25/89 +# +# built by phil on Wed Jan 25 11:47:55 PST 1989 +# in /usr/src/local/nettables/sendmail.cf/cf on monet.Berkeley.EDU +# +############################################################ +############################################################ +##### +##### SENDMAIL CONFIGURATION FILE +##### +############################################################ +############################################################ + + +################## +# local info # +################## + +# file containing our internet aliases +Fw/usr/lib/sendmail.cw + + + +############################# +### Setup Information ### +############################# + + +###################### +# General Macros # +###################### + +# local domain name +DDBerkeley.EDU + +# Internet relay host -- machines in our domain that are not +# registered with the NIC will be "hidden" behind this relay machine +# with the % kludge, although SMTP delivery will still be performed +# by the sending machine. Someday this will go away. +DAucbvax.Berkeley.EDU + +# UUCP relay host +DRucbvax.Berkeley.EDU + +# csnet relay host +DCrelay.cs.net + +# bitnet relay host +DBjade.Berkeley.EDU + +# my official hostname +Dj$w + + + +############### +# Classes # +############### + +# Internal ("fake") domains that we use in rewriting +CIUUCP BITNET CSNET + + + +############################################################ +############################################################ +##### +##### BERKELEY HOSTS REGISTERED WITH THE NIC +##### +############################################################ +############################################################ + + +CNbach ucbbach +CNbizet ucbbizet +CNcad ucbcad +CNdegas ucbdegas +CNeast ucbeast +CNernie ucbernie +CNesvax ucbesvax +CNjade ucbjade +CNji ucbji +CNmike ucbmike +CNmonet ucbmonet +CNpostgres +CNrenoir ucbrenoir +CNucbarpa +CNucbvax +CNviolet ucbviolet + + +###################### +# Version Number # +###################### + +DZ1.34 + + +###################### +# Special macros # +###################### + +# my name +DnMAILER-DAEMON +# UNIX header format +DlFrom $g $d +# delimiter (operator) characters +Do.:%@!^=/[] +# format of a total name +Dq$g$?x ($x)$. +# SMTP login message +De$j Sendmail $v/$Z ready at $b + +############### +# Options # +############### + +# location of alias file +OA/usr/lib/aliases +# wait up to ten minutes for alias file rebuild +Oa10 +# substitution for space (blank) characters +OB. +# (don't) connect to "expensive" mailers +#Oc +# default delivery mode (deliver in background) +Odbackground +# temporary file mode +OF0600 +# default GID +Og1 +# location of help file +OH/usr/lib/sendmail.hf +# log level +OL9 +# default network name +ONARPA +# default messages to old style +Oo +# queue directory +OQ/usr/spool/mqueue +# read timeout -- violates protocols +Or2h +# status file +OS/usr/lib/sendmail.st +# queue up everything before starting transmission +Os +# default timeout interval +OT3d +# time zone names (V6 only) +OtPST,PDT +# default UID +Ou1 +# wizard's password +OW* +# load average at which we just queue messages +Ox8 +# load average at which we refuse connections +OX12 + +########################### +# Message precedences # +########################### + +Pfirst-class=0 +Pspecial-delivery=100 +Pbulk=-60 +Pjunk=-100 + +##################### +# Trusted users # +##################### + +Troot +Tdaemon +Tuucp + +######################### +# Format of headers # +######################### + +H?P?Return-Path: <$g> +HReceived: $?sfrom $s $.by $j ($v/$Z) + id $i; $b +H?D?Resent-Date: $a +H?D?Date: $a +H?F?Resent-From: $q +H?F?From: $q +H?x?Full-Name: $x +HSubject: +# HPosted-Date: $a +# H?l?Received-Date: $b +H?M?Resent-Message-Id: <$t.$i@$j> +H?M?Message-Id: <$t.$i@$j> + + + +########################### +### Rewriting Rules ### +########################### + + +################################ +# Sender Field Pre-rewriting # +################################ +S1 +#R$*<$*>$* $1$2$3 defocus + +################################### +# Recipient Field Pre-rewriting # +################################### +S2 +#R$*<$*>$* $1$2$3 defocus + + + +################################# +# Final Output Post-rewriting # +################################# +S4 + +R@ $@ handle <> error addr + +# resolve numeric addresses to name if possible +R$*<@[$+]>$* $:$1<@$[[$2]$]>$3 lookup numeric internet addr + +# externalize local domain info +R$*<$+>$* $1$2$3 defocus +R@$+:@$+:$+ @$1,@$2:$3 canonical + +# UUCP must always be presented in old form +R$+@$-.UUCP $2!$1 u@h.UUCP => h!u + +# delete duplicate local names +R$+%$=w@$=w $1@$w u%host@host => u@host +R$+%$=w@$=w.$D $1@$w u%host@host => u@host + + +########################### +# Name Canonicalization # +########################### +S3 + +# handle "from:<>" special case +R$*<>$* $@@ turn into magic token + +# basic textual canonicalization -- note RFC733 heuristic here +R$*<$*<$*<$+>$*>$*>$* $4 3-level <> nesting +R$*<$*<$+>$*>$* $3 2-level <> nesting +R$*<$+>$* $2 basic RFC821/822 parsing + +# make sure <@a,@b,@c:user@d> syntax is easy to parse -- undone later +R@$+,$+ @$1:$2 change all "," to ":" + +# localize and dispose of route-based addresses +R@$+:$+ $@$>6<@$1>:$2 handle + +# more miscellaneous cleanup +R$+ $:$>8$1 host dependent cleanup +R$+:$*;@$+ $@$1:$2;@$3 list syntax +R$+:$*; $@$1:$2; list syntax +R$+@$+ $:$1<@$2> focus on domain +R$+<$+@$+> $1$2<@$3> move gaze right +R$+<@$+> $@$>6$1<@$2> already canonical + +# convert old-style addresses to a domain-based address +R$+^$+ $1!$2 convert ^ to ! +R$-!$+ $@$>6$2<@$1.UUCP> resolve uucp names +R$+.$-!$+ $@$>6$3<@$1.$2> domain uucps +R$+!$+ $@$>6$2<@$1.UUCP> uucp subdomains +R$+%$+ $:$>9$1%$2 user%host +R$+<@$+> $@$>6$1<@$2> already canonical +R$-.$+ $@$>6$2<@$1> host.user + + +################################# +# special local conversions # +################################# + +S6 +R$*<@$=w>$* $:$1<@$w>$3 get into u@$w form +R$*<@$=w.$D>$* $:$1<@$w>$3 +R$*<@$=U.UUCP>$* $:$1<@$w>$3 + +################################ +# Change rightmost % to @. # +################################ + +S9 +R$*%$* $1@$2 First make them all @'s. +R$*@$*@$* $1%$2@$3 Undo all but the last. +R$*@$* $@$1<@$2> Put back the brackets. + + + +################### +### Mailers ### +################### + + +############################################################ +############################################################ +##### +##### Local and Program Mailer specification +##### +############################################################ +############################################################ + +Mlocal, P=/bin/mail, F=rlsDFMmn, S=10, R=20, A=mail -d $u +Mprog, P=/bin/sh, F=lsDFMe, S=10, R=20, A=sh -c $u + +S10 +R@ $n errors to mailer-daemon + + +############################################################ +############################################################ +##### +##### Local Domain SMTP Mailer specification +##### +##### Messages processed by this specification are assumed to remain +##### the local domain. Hence, they can refer to hosts that are +##### not registered in the NIC host table. +##### +############################################################ +############################################################ + +Mtcpld, P=[IPC], F=mDFMueXLC, S=17, R=27, A=IPC $h, E=\r\n + +S17 + +# cleanup forwarding a bit +R$*<$*>$* $1$2$3 defocus +R$* $:$>3$1 canonicalize +R$*%$*<@$w> $:$>9$1%$2 user%localhost@localdomain + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere +R$*:$* $1.$2 map colons to dots + +# output local host as user@host.domain +R$- $@$1<@$w> user w/o host +R$+<@$w> $@$1<@$w> this host +R$+<@$=w> $@$1<@$w> or an alias +R$+<@$-> $:$1<@$[$2$]> ask nameserver +R$+<@$w> $@$1<@$w> this host +R$+<@$-> $@$1<@$2.$D> if nameserver fails + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# output fake domains as user%fake@relay + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.bitnet +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1<@$w> user@host.UUCP + + +S27 + +# cleanup +R$*<$*>$* $1$2$3 defocus +R$* $:$>3$1 now canonical form +R$*%$*<@$w> $:$>9$1%$2 user%localhost@localdomain + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere +R$*:$* $1.$2 map colons to dots + +# output local host as user@host.domain +R$- $@$1<@$w> user w/o host +R$+<@$w> $@$1<@$w> this host +R$+<@$=w> $@$1<@$w> or an alias +R$+<@$-> $:$1<@$[$2$]> ask nameserver +R$+<@$w> $@$1<@$w> this host +R$+<@$-> $@$1<@$2.$D> if nameserver fails + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# output fake domains as user%fake@relay + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.BITNET +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1 user@host.UUCP + + + +############################################################ +############################################################ +##### +##### Internet SMTP Mailer specification +##### +##### Messages processed by this specification are assumed to leave +##### the local domain -- hence, they must be canonical according to +##### RFC822 etc. This means that machines not registered with +##### the NIC must be hidden behind our Internet relay. +##### +############################################################ +############################################################ + +Mtcp, P=[IPC], F=mDFMueXLC, S=14, R=24, A=IPC $h, E=\r\n + +S14 + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere +R$*:$* $1.$2 map colons to dots + +# output local host in user@host.domain syntax +R$- $1<@$w> user w/o host +R$+<@$=w> $:$1<@$w> this host +R$+<@$-> $:$1<@$[$2$]> canonicalize into dom +R$+<@$-> $:$1<@$2.$D> if nameserver fails +R$+<@$=N.$D> $@$1<@$2.$D> nic-reg hosts are ok +R$+<@$*.$D> $@$1%$2.$D<@$A> else -> u%h@gateway + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# output internal ("fake") domains as "user%host@relay" + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.BITNET +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1<@$w> user@host.UUCP + + +S24 + +# put in <> kludge +R$*<$*>$* $1$2$3 defocus +R$* $:$>3$1 now canonical form + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere..... +R$*:$* $1.$2 map colons to dots + +# output local host in user@host.domain syntax +R$- $1<@$w> user w/o host +R$+<@$=w> $:$1<@$w> this host +R$+<@$-> $:$1<@$[$2$]> canonicalize into dom +R$+<@$-> $:$1<@$2.$D> if nameserver fails +R$+<@$=N.$D> $@$1<@$2.$D> nic-reg hosts are ok +R$+<@$*.$D> $@$1%$2.$D<@$A> else -> u%h@gateway + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# Hide fake domains behind relays + +R$+<@$+.BITNET> $@$1%$2.BITNET<@$B> user@host.BITNET +R$+<@$+.CSNET> $@$1%$2.CSNET<@$C> user@host.CSNET +R$+<@$+.UUCP> $@$2!$1 user@host.UUCP + + + + + +##################### +### Rule Zero ### +##################### + + +############################################################ +############################################################ +##### +##### RULESET ZERO PREAMBLE +##### +##### The beginning of ruleset zero is constant through all +##### configurations. +##### +############################################################ +############################################################ + +S0 + +# first make canonical +R$*<$*>$* $1$2$3 defocus +R$+ $:$>3$1 make canonical + +# handle special cases +R$*<@[$+]>$* $:$1<@$[[$2]$]>$3 numeric internet addr +R$*<@[$+]>$* $#tcp$@[$2]$:$1@[$2]$3 numeric internet spec +R$+ $:$>6$1 +R$-<@$w> $#local$:$1 +R@ $#error$:Invalid address handle <> form + +# canonicalize using the nameserver if not internal domain +R$*<@$*.$~I>$* $:$1<@$[$2.$3$]>$4 +R$*<@$->$* $:$1<@$[$2$]>$3 +R$*<@$->$* $:$1<@$2.$D>$3 if nameserver fails + +# now delete the local info +R<@$w>:$* $@$>0$1 @here:... -> ... +R$*<@$w> $@$>0$1 ...@here -> ... + +################################## +# End of ruleset zero preamble # +################################## + + +############################################### +### Machine dependent part of Rule Zero ### +############################################### + + + + + +# resolve fake top level domains by forwarding to other hosts +R$*<@$+.BITNET>$* $#tcp$@$B$:$1<@$2.BITNET>$3 user@host.BITNET +R$*<@$+.CSNET>$* $#tcp$@$C$:$1<@$2.CSNET>$3 user@host.CSNET + + +# forward non-local UUCP traffic to our UUCP relay +R$*<@$*.UUCP>$* $#tcpld$@$R$:$1<@$2.UUCP> uucp mail + +# hide behind our internet relay when talking to people in the arpa domain +R$*<@$*.arpa>$* $#tcp$@$2.arpa$:$1<@$2.arpa>$3 user@host.arpa + +# but speak domains to them if they speak domains too +R$*<@$*>$* $#tcpld$@$2$:$1<@$2>$3 user@host.domain + +# remaining names must be local +R$+ $#local$:$1 everything else diff --git a/usr/src/usr.sbin/sendmail/cf/cf/ucbvax.cf b/usr/src/usr.sbin/sendmail/cf/cf/ucbvax.cf new file mode 100644 index 0000000000..a1cbfb9a47 --- /dev/null +++ b/usr/src/usr.sbin/sendmail/cf/cf/ucbvax.cf @@ -0,0 +1,837 @@ +############################################################ +# +# Sendmail +# Copyright (c) 1983 Eric P. Allman +# Berkeley, California +# +# Copyright (c) 1983 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)ucbvax.mc 1.39 (Berkeley) 1/3/89 +# +# built by phil on Wed Jan 25 11:47:20 PST 1989 +# in /usr/src/local/nettables/sendmail.cf/cf on monet.Berkeley.EDU +# +############################################################ +############################################################ +##### +##### SENDMAIL CONFIGURATION FILE +##### +##### This one is the big daddy. There is no "upstairs" +##### to bounce a message to -- except perhaps the arpanet. +##### +##### +############################################################ +############################################################ + + + +###################### +### local info ### +###################### + +# internet hostnames +Cwucbvax vax k UCB-VAX Berkeley UCB-C70 UCB + +# UUCP hostnames +DUucbvax +CUucbvax + +# local UUCP connections +CV Padova +CV Shasta +CV alice +CV allegra +CV amdcad +CV anlams +CV att +CV attunix +CV avsd +CV bellcore bellcor +CV calma +CV cithep +CV craylab +CV decusj +CV decvax +CV decwrl +CV dssovax +CV eagle +CV ecovax +CV floyd +CV geoff +CV harpo +CV ho3e2 +CV hpda +CV hplabs +CV ibmsupt ibmuupa ibmpa +CV iiasa70 +CV imagen +CV isunix menlo70 +CV kentmth +CV kentvax +CV lbl-csam lbl-csa +CV lime +CV mebazf +CV molbio +CV mothra +CV mseonyx +CV mtxinu +CV nbires +CV pixar +CV pur-ee +CV purdue +CV pwbd +CV research researc +CV sdcarl +CV sdcsvax +CV sftig +CV sgi olympus +CV sii +CV srivisi +CV ssyx +CV sun +CV tektronix tektron +CV tolerant toleran +CV trwrb +CV twg +CV ucbcad +CV ucdavis +CV ucivax +CV ucla-se ucla-cs +CV ucsbcsl ucsbhub +CV ucscc +CV ucsd +CV ucsfcgl +CV ucsfmis +CV ulysses +CV unisoft +CV unmvax +CV usenix +CV uw +CV uwvax +CV vax135 +CV voder +CV wheps +CV whuxle +CV whuxlj +CV xprin +CV zehntel +CV zilog + +# UUCP connections on ucbarpa +DWucbarpa.Berkeley.EDU +CW endotsew +CW fateman +CW franz +CW interlan +CW metron + +# UUCP connections on ucbcad +DXcad.Berkeley.EDU +CX a +CX ames +CX analog +CX ardent dana +CX arthur +CX biosys +CX black +CX boulder +CX evans +CX harpo +CX harris +CX hpda +CX hpsrla +CX island +CX jupiter +CX masscomp masscom +CX nsc +CX oakhill +CX octal +CX sda +CX stellar +CX teklds +CX tektronix tektron +CX binky tonto +CX toshiba tsb0 +CX ucbcad +CX ucbvax +CX voder +CX vogon + +# UUCP connections on cogsci +DYcogsci.Berkeley.EDU +CY capmkt +CY contessa +CY emind +CY hoptoad +CY nkainc +CY well +CY ferdy + +# known uucp connections with a smart uucp +CMdecvax + +# we have full sendmail support here +Oa + +############################# +### Setup Information ### +############################# + + +###################### +# General Macros # +###################### + +# local domain name +# YOUR DOMAIN NAME GOES HERE! +DDYOUR_DOMAIN_NAME + + + + + + + + + +# my official hostname +Dj$w + + + +############### +# Classes # +############### + +# Internal ("fake") domains that we use in rewriting +CIUUCP BITNET CSNET + + + +############################################################ +############################################################ +##### +##### BERKELEY HOSTS REGISTERED WITH THE NIC +##### +############################################################ +############################################################ + + +CNbach ucbbach +CNbizet ucbbizet +CNcad ucbcad +CNdegas ucbdegas +CNeast ucbeast +CNernie ucbernie +CNesvax ucbesvax +CNjade ucbjade +CNji ucbji +CNmike ucbmike +CNmonet ucbmonet +CNpostgres +CNrenoir ucbrenoir +CNucbarpa +CNucbvax +CNviolet ucbviolet + + +###################### +# Version Number # +###################### + +DZ1.34 + + +###################### +# Special macros # +###################### + +# my name +DnMAILER-DAEMON +# UNIX header format +DlFrom $g $d +# delimiter (operator) characters +Do.:%@!^=/[] +# format of a total name +Dq$g$?x ($x)$. +# SMTP login message +De$j Sendmail $v/$Z ready at $b + +############### +# Options # +############### + +# location of alias file +OA/usr/lib/aliases +# wait up to ten minutes for alias file rebuild +Oa10 +# substitution for space (blank) characters +OB. +# (don't) connect to "expensive" mailers +#Oc +# default delivery mode (deliver in background) +Odbackground +# temporary file mode +OF0600 +# default GID +Og1 +# location of help file +OH/usr/lib/sendmail.hf +# log level +OL9 +# default network name +ONARPA +# default messages to old style +Oo +# queue directory +OQ/usr/spool/mqueue +# read timeout -- violates protocols +Or2h +# status file +OS/usr/lib/sendmail.st +# queue up everything before starting transmission +Os +# default timeout interval +OT3d +# time zone names (V6 only) +OtPST,PDT +# default UID +Ou1 +# wizard's password +OW* +# load average at which we just queue messages +Ox8 +# load average at which we refuse connections +OX12 + +########################### +# Message precedences # +########################### + +Pfirst-class=0 +Pspecial-delivery=100 +Pbulk=-60 +Pjunk=-100 + +##################### +# Trusted users # +##################### + +Troot +Tdaemon +Tuucp + +######################### +# Format of headers # +######################### + +H?P?Return-Path: <$g> +HReceived: $?sfrom $s $.by $j ($v/$Z) + id $i; $b +H?D?Resent-Date: $a +H?D?Date: $a +H?F?Resent-From: $q +H?F?From: $q +H?x?Full-Name: $x +HSubject: +# HPosted-Date: $a +# H?l?Received-Date: $b +H?M?Resent-Message-Id: <$t.$i@$j> +H?M?Message-Id: <$t.$i@$j> + + + +########################### +### Rewriting Rules ### +########################### + + +################################ +# Sender Field Pre-rewriting # +################################ +S1 +#R$*<$*>$* $1$2$3 defocus + +################################### +# Recipient Field Pre-rewriting # +################################### +S2 +#R$*<$*>$* $1$2$3 defocus + + + +################################# +# Final Output Post-rewriting # +################################# +S4 + +R@ $@ handle <> error addr + +# resolve numeric addresses to name if possible +R$*<@[$+]>$* $:$1<@$[[$2]$]>$3 lookup numeric internet addr + +# externalize local domain info +R$*<$+>$* $1$2$3 defocus +R@$+:@$+:$+ @$1,@$2:$3 canonical + +# UUCP must always be presented in old form +R$+@$-.UUCP $2!$1 u@h.UUCP => h!u + +# delete duplicate local names +R$+%$=w@$=w $1@$w u%host@host => u@host +R$+%$=w@$=w.$D $1@$w u%host@host => u@host + + +# addition to Post-rewrite Rule +R$+%$=w@$=w.EDU $1@$w u%UCB@UCB.edu => u@UCB.berk.edu +R$+%$=w@$=w.$=w.EDU $1@$w u%UCB@UCB.berk.edu => u@UCB + + +########################### +# Name Canonicalization # +########################### +S3 + +# handle "from:<>" special case +R$*<>$* $@@ turn into magic token + +# basic textual canonicalization -- note RFC733 heuristic here +R$*<$*<$*<$+>$*>$*>$* $4 3-level <> nesting +R$*<$*<$+>$*>$* $3 2-level <> nesting +R$*<$+>$* $2 basic RFC821/822 parsing + +# make sure <@a,@b,@c:user@d> syntax is easy to parse -- undone later +R@$+,$+ @$1:$2 change all "," to ":" + +# localize and dispose of route-based addresses +R@$+:$+ $@$>6<@$1>:$2 handle + +# more miscellaneous cleanup +R$+ $:$>8$1 host dependent cleanup +R$+:$*;@$+ $@$1:$2;@$3 list syntax +R$+:$*; $@$1:$2; list syntax +R$+@$+ $:$1<@$2> focus on domain +R$+<$+@$+> $1$2<@$3> move gaze right +R$+<@$+> $@$>6$1<@$2> already canonical + +# convert old-style addresses to a domain-based address +R$+^$+ $1!$2 convert ^ to ! +R$-!$+ $@$>6$2<@$1.UUCP> resolve uucp names +R$+.$-!$+ $@$>6$3<@$1.$2> domain uucps +R$+!$+ $@$>6$2<@$1.UUCP> uucp subdomains +R$+%$+ $:$>9$1%$2 user%host +R$+<@$+> $@$>6$1<@$2> already canonical +R$-.$+ $@$>6$2<@$1> host.user + + +################################# +# special local conversions # +################################# + +S6 +R$*<@$=w>$* $:$1<@$w>$3 get into u@$w form +R$*<@$=w.$D>$* $:$1<@$w>$3 +R$*<@$=U.UUCP>$* $:$1<@$w>$3 + +################################ +# Change rightmost % to @. # +################################ + +S9 +R$*%$* $1@$2 First make them all @'s. +R$*@$*@$* $1%$2@$3 Undo all but the last. +R$*@$* $@$1<@$2> Put back the brackets. + + + +############################################################ +############################################################ +##### +##### Provide Backward Compatibility +##### +############################################################ +############################################################ + +##################################################### +# General code to convert back to old style names # +##################################################### +S5 + +R$+<@$w> $1 strip host +R$+<@$-.UUCP> $2!$1 u@host.UUCP => host!u + + +################### +### Mailers ### +################### + + +############################################################ +############################################################ +##### +##### Local and Program Mailer specification +##### +############################################################ +############################################################ + +Mlocal, P=/bin/mail, F=rlsDFMmn, S=10, R=20, A=mail -d $u +Mprog, P=/bin/sh, F=lsDFMe, S=10, R=20, A=sh -c $u + +S10 +R@ $n errors to mailer-daemon + + + +############################################################ +############################################################ +##### +##### UUCP Smart Mailer specification +##### (handles multiple recipients) +##### +############################################################ +############################################################ + + + +Msuucp, P=/usr/bin/uux, F=mDFMhuU, S=13, R=23, M=100000, + A=uux - -r $h!rmail ($u) + + + + +############################################################ +############################################################ +##### +##### UUCP Mailer specification +##### +############################################################ +############################################################ + + +Muucp, P=/usr/bin/uux, F=DFMhuU, S=13, R=23, M=100000, + A=uux - -r -z -a$f -gC $h!rmail ($u) + +S13 +R$+ $:$>5$1 convert to old style +R$*<@$=w>$* $1<@$w>$2 resolve abbreviations +R$*<@$->$* $1<@$2.$D>$3 resolve abbreviations +R$+<@$+> $2!$1 uucpize (no @'s in addr) +R$w!$+ $1 strip local name +R$+ $:$U!$1 stick on our host name +R$=U!$-%$- $:$1!$2@$3.$D ucbvax!user@host.domain + +S23 +R$+ $:$>5$1 convert to old style +R$*<@$=w>$* $1<@$w>$2 resolve abbreviations +R$*<@$->$* $1<@$2.$D>$3 resolve abbreviations +R$+<@$w> $U!$1 a!b@here -> here!a!b +R$=U!$+ $2 here!a!b -> a!b +# sanity ... should not happen. +R$=U.$D!$+ $2 strip local name.domain + + +############################################################ +############################################################ +##### +##### SMTP UUCP Mailer specification +##### +##### This mailer sends UUCP traffic over an SMTP connection. +##### Obviously, we only want to do this with UUCP hosts with +##### whom we have SMTP connectivity. The idea here is to +##### avoid having to double queue (once for sendmail, once +##### for UUCP) when there's no need. Since we need to +##### preserve uucp-ness (e.g., bangs), we use the UUCP mailer +##### rewriting rulesets. +##### +############################################################ +############################################################ + +Msmtpuucp, P=[IPC], F=mDFMueXLC, S=13, R=23, A=IPC $h, E=\r\n + + + + +############################################################ +############################################################ +##### +##### Internet SMTP Mailer specification +##### +##### Messages processed by this specification are assumed to leave +##### the local domain -- hence, they must be canonical according to +##### RFC822 etc. This means that machines not registered with +##### the NIC must be hidden behind our Internet relay. +##### +############################################################ +############################################################ + +Mtcp, P=[IPC], F=mDFMueXLC, S=14, R=24, A=IPC $h, E=\r\n + +S14 + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere +R$*:$* $1.$2 map colons to dots + +# output local host in user@host.domain syntax +R$- $1<@$w> user w/o host +R$+<@$=w> $:$1<@$w> this host +R$+<@$-> $:$1<@$[$2$]> canonicalize into dom +R$+<@$-> $:$1<@$2.$D> if nameserver fails +R$+<@$=N.$D> $@$1<@$2.$D> nic-reg hosts are ok +R$+<@$*.$D> $@$1%$2.$D<@$A> else -> u%h@gateway + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# output internal ("fake") domains as "user%host@relay" + + + +R$+<@$+.UUCP> $@$2!$1<@$w> user@host.UUCP + + +S24 + +# put in <> kludge +R$*<$*>$* $1$2$3 defocus +R$* $:$>3$1 now canonical form + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere..... +R$*:$* $1.$2 map colons to dots + +# output local host in user@host.domain syntax +R$- $1<@$w> user w/o host +R$+<@$=w> $:$1<@$w> this host +R$+<@$-> $:$1<@$[$2$]> canonicalize into dom +R$+<@$-> $:$1<@$2.$D> if nameserver fails +R$+<@$=N.$D> $@$1<@$2.$D> nic-reg hosts are ok +R$+<@$*.$D> $@$1%$2.$D<@$A> else -> u%h@gateway + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# Hide fake domains behind relays + + + +R$+<@$+.UUCP> $@$2!$1 user@host.UUCP + + + +############################################################ +############################################################ +##### +##### Local Domain SMTP Mailer specification +##### +##### Messages processed by this specification are assumed to remain +##### the local domain. Hence, they can refer to hosts that are +##### not registered in the NIC host table. +##### +############################################################ +############################################################ + +Mtcpld, P=[IPC], F=mDFMueXLC, S=17, R=27, A=IPC $h, E=\r\n + +S17 + +# cleanup forwarding a bit +R$*<$*>$* $1$2$3 defocus +R$* $:$>3$1 canonicalize +R$*%$*<@$w> $:$>9$1%$2 user%localhost@localdomain + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere +R$*:$* $1.$2 map colons to dots + +# output local host as user@host.domain +R$- $@$1<@$w> user w/o host +R$+<@$w> $@$1<@$w> this host +R$+<@$=w> $@$1<@$w> or an alias +R$+<@$-> $:$1<@$[$2$]> ask nameserver +R$+<@$w> $@$1<@$w> this host +R$+<@$-> $@$1<@$2.$D> if nameserver fails + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# output fake domains as user%fake@relay + + + +R$+<@$+.UUCP> $@$2!$1<@$w> user@host.UUCP + + +S27 + +# cleanup +R$*<$*>$* $1$2$3 defocus +R$* $:$>3$1 now canonical form +R$*%$*<@$w> $:$>9$1%$2 user%localhost@localdomain + +# pass 's through +R<@$+>$* $@<@$[$1$]>$2 resolve + +# map colons to dots everywhere +R$*:$* $1.$2 map colons to dots + +# output local host as user@host.domain +R$- $@$1<@$w> user w/o host +R$+<@$w> $@$1<@$w> this host +R$+<@$=w> $@$1<@$w> or an alias +R$+<@$-> $:$1<@$[$2$]> ask nameserver +R$+<@$w> $@$1<@$w> this host +R$+<@$-> $@$1<@$2.$D> if nameserver fails + +# if not local, and not a "fake" domain, ask the nameserver +R$+<@$+.$~I> $@$1<@$[$2.$3$]> user@host.domain +R$+<@[$+]> $@$1<@[$2]> already ok + +# output fake domains as user%fake@relay + + + +R$+<@$+.UUCP> $@$2!$1 user@host.UUCP + + + +##################### +### Rule Zero ### +##################### + + +############################################################ +############################################################ +##### +##### RULESET ZERO PREAMBLE +##### +##### The beginning of ruleset zero is constant through all +##### configurations. +##### +############################################################ +############################################################ + +S0 + +# first make canonical +R$*<$*>$* $1$2$3 defocus +R$+ $:$>3$1 make canonical + +# handle special cases +R$*<@[$+]>$* $:$1<@$[[$2]$]>$3 numeric internet addr +R$*<@[$+]>$* $#tcp$@[$2]$:$1@[$2]$3 numeric internet spec +R$+ $:$>6$1 +R$-<@$w> $#local$:$1 +R@ $#error$:Invalid address handle <> form + +# canonicalize using the nameserver if not internal domain +R$*<@$*.$~I>$* $:$1<@$[$2.$3$]>$4 +R$*<@$->$* $:$1<@$[$2$]>$3 +R$*<@$->$* $:$1<@$2.$D>$3 if nameserver fails + +# now delete the local info +R<@$w>:$* $@$>0$1 @here:... -> ... +R$*<@$w> $@$>0$1 ...@here -> ... + +################################## +# End of ruleset zero preamble # +################################## + + +################################################ +### Machine dependent part of ruleset zero ### +################################################ + +# resolve SMTP UUCP connections + +R<@bellcore.uucp>:$+ $#smtpuucp$@bellcore.com$:$2 +R$*<@bellcore.uucp> $#smtpuucp$@bellcore.com$:$1 +R<@decvax.uucp>:$+ $#smtpuucp$@decvax.dec.com$:$2 +R$*<@decvax.uucp> $#smtpuucp$@decvax.dec.com$:$1 +R<@decwrl.uucp>:$+ $#smtpuucp$@decwrl.dec.com$:$2 +R$*<@decwrl.uucp> $#smtpuucp$@decwrl.dec.com$:$1 +R<@hplabs.uucp>:$+ $#smtpuucp$@hplabs.hp.com$:$2 +R$*<@hplabs.uucp> $#smtpuucp$@hplabs.hp.com$:$1 +R<@lbl-csam.uucp>:$+ $#smtpuucp$@lbl-csam.arpa$:$2 +R$*<@lbl-csam.uucp> $#smtpuucp$@lbl-csam.arpa$:$1 +R<@pur-ee.uucp>:$+ $#smtpuucp$@ecn.purdue.edu$:$2 +R$*<@pur-ee.uucp> $#smtpuucp$@ecn.purdue.edu$:$1 +R<@purdue.uucp>:$+ $#smtpuucp$@purdue.edu$:$2 +R$*<@purdue.uucp> $#smtpuucp$@purdue.edu$:$1 +R<@sdcarl.uucp>:$+ $#smtpuucp$@sdcarl.ucsd.edu$:$2 +R$*<@sdcarl.uucp> $#smtpuucp$@sdcarl.ucsd.edu$:$1 +R<@sun.uucp>:$+ $#smtpuucp$@sun.com$:$2 +R$*<@sun.uucp> $#smtpuucp$@sun.com$:$1 +R<@ucbcad.uucp>:$+ $#smtpuucp$@cad.berkeley.edu$:$2 +R$*<@ucbcad.uucp> $#smtpuucp$@cad.berkeley.edu$:$1 +R<@ucdavis.uucp>:$+ $#smtpuucp$@ucdavis.ucdavis.edu$:$2 +R$*<@ucdavis.uucp> $#smtpuucp$@ucdavis.ucdavis.edu$:$1 +R<@ucla-se.uucp>:$+ $#smtpuucp$@seas.ucla.edu$:$2 +R$*<@ucla-se.uucp> $#smtpuucp$@seas.ucla.edu$:$1 +R<@ucscc.uucp>:$+ $#smtpuucp$@c.ucsc.edu$:$2 +R$*<@ucscc.uucp> $#smtpuucp$@c.ucsc.edu$:$1 +R<@ucsfcgl.uucp>:$+ $#smtpuucp$@cgl.ucsf.edu$:$2 +R$*<@ucsfcgl.uucp> $#smtpuucp$@cgl.ucsf.edu$:$1 +R<@uwvax.uucp>:$+ $#smtpuucp$@spool.cs.wisc.edu$:$2 +R$*<@uwvax.uucp> $#smtpuucp$@spool.cs.wisc.edu$:$1 + + +# resolve local UUCP links +R<@$=V.UUCP>:$+ $#uucp$@$1$:$1:$2 @host.UUCP: ... +R$+<@$=V.UUCP> $#uucp$@$2$:$1 user@host.UUCP + +# resolve explicit arpanet names (to avoid with machine name "arpa" below) +R$*<@$*$-.ARPA>$* $#tcp$@$3.ARPA$:$1<@$2$3.ARPA>$4 user@domain.ARPA + +# resolve fake top level domains by forwarding to other hosts + + + + +# resolve non-local UUCP links +R$*<@$=W.UUCP>$* $#tcpld$@$W$:$1<@$2.UUCP>$3 user@host.UUCP +R$*<@$=X.UUCP>$* $#tcpld$@$X$:$1<@$2.UUCP>$3 user@host.UUCP +R$*<@$=Y.UUCP>$* $#tcpld$@$Y$:$1<@$2.UUCP>$3 user@host.UUCP + +# this uucp stuff is wrong for domain uucp addresses +# - we should pass the whole "host.domain" to uucp so it can +# find the best route. But that depends on a uucp router +# which doesn't exist here yet, so for now, we'll settle for +# trying to route to the domain (pretending its a host). +# Suitable L.sys entries can make this work. If it doesn't +# then returned mail will just say "dom unknown", which is true .. + +# resolve smart UUCP links +R<@$=M.$-.UUCP>:$+ $#suucp$@$2$:@$1.$2.UUCP:$3 @host.domain.UUCP: ... +R<@$=M.UUCP>:$+ $#suucp$@$1$:$2 @host.UUCP: ... +R$+<@$=M.$-.UUCP> $#suucp$@$3$:$1@$2.$3.UUCP user@host.domain.UUCP +R$+<@$=M.UUCP> $#suucp$@$2$:$1 user@host.UUCP + +# local domain sites +R$*<@$*.$D>$* $#tcpld$@$2.$D$:$1<@$2.$D>$3 user@host.our.domain +R$*<@$->$* $#tcpld$@$2.$D$:$1<@$2.$D>$3 user@host +R$*<@$-.UUCP>$* $#tcpld$@$2.$D$:$1<@$2.$D>$3 user@host.UUCP + +# other non-local names will be kicked upstairs +R$*<@$+>$* $#tcp$@$2$:$1<@$2>$3 user@some.where + +# remaining names must be local +R$+ $#local$:$1 everything else + +######################################## +### Host dependent address cleanup ### +######################################## + +S8 +R$*$=U!$+@$+ $3@$4 drop uucp forward -- 2.20.1