summaryrefslogtreecommitdiff
path: root/usr.sbin/sendmail/cf
diff options
context:
space:
mode:
authorJason Downs <downsj@cvs.openbsd.org>1997-07-15 07:24:22 +0000
committerJason Downs <downsj@cvs.openbsd.org>1997-07-15 07:24:22 +0000
commit789b9a7da3a8e37d7c77250aeaec0d3825d5ffa4 (patch)
tree2f9cab67f55048e2bedf056aa1b3778127876deb /usr.sbin/sendmail/cf
parent28d9c1750d3dfc4ddb8cb9056a18d073679ce6dd (diff)
Sendmail 8.8.6.
Diffstat (limited to 'usr.sbin/sendmail/cf')
-rw-r--r--usr.sbin/sendmail/cf/README93
-rw-r--r--usr.sbin/sendmail/cf/cf/cs-hpux10.mc4
-rw-r--r--usr.sbin/sendmail/cf/cf/cs-hpux9.mc4
-rw-r--r--usr.sbin/sendmail/cf/cf/cs-osf1.mc4
-rw-r--r--usr.sbin/sendmail/cf/cf/cs-solaris2.mc4
-rw-r--r--usr.sbin/sendmail/cf/cf/cs-sunos4.1.mc4
-rw-r--r--usr.sbin/sendmail/cf/cf/cs-ultrix4.mc4
-rw-r--r--usr.sbin/sendmail/cf/cf/knecht.mc45
-rw-r--r--usr.sbin/sendmail/cf/cf/s2k-osf1.mc4
-rw-r--r--usr.sbin/sendmail/cf/cf/s2k-ultrix4.mc4
-rw-r--r--usr.sbin/sendmail/cf/feature/bestmx_is_local.m44
-rw-r--r--usr.sbin/sendmail/cf/m4/nullrelay.m45
-rw-r--r--usr.sbin/sendmail/cf/m4/proto.m461
-rw-r--r--usr.sbin/sendmail/cf/m4/version.m44
-rw-r--r--usr.sbin/sendmail/cf/mailer/mail11.m45
-rw-r--r--usr.sbin/sendmail/cf/mailer/procmail.m48
-rw-r--r--usr.sbin/sendmail/cf/mailer/uucp.m46
17 files changed, 172 insertions, 91 deletions
diff --git a/usr.sbin/sendmail/cf/README b/usr.sbin/sendmail/cf/README
index 6059cb96f8a..e2f21a1feac 100644
--- a/usr.sbin/sendmail/cf/README
+++ b/usr.sbin/sendmail/cf/README
@@ -4,7 +4,7 @@
Eric Allman <eric@CS.Berkeley.EDU>
- @(#)README 8.111 (Berkeley) 1/16/97
+ @(#)README 8.120 (Berkeley) 6/14/97
This document describes the sendmail configuration files being used
@@ -34,7 +34,8 @@ SunOS's /usr/5bin/m4 or BSD-Net/2's m4 both work. GNU m4 version 1.1
or later also works. Unfortunately, I'm told that the M4 on BSDI 1.0
doesn't work -- you'll have to use a Net/2 or GNU version. GNU m4 is
available from ftp://prep.ai.mit.edu/pub/gnu/m4-1.4.tar.gz (check for
-the latest version).
+the latest version). EXCEPTIONS: DEC's m4 on Digital UNIX 4.x is broken
+(3.x is fine). Use GNU m4 on this platform.
IF YOU DON'T HAVE A BERKELEY MAKE, don't despair! Just run
"m4 ../m4/cf.m4 foo.mc > foo.cf" -- that should be all you need.
@@ -120,7 +121,7 @@ Let's examine a typical .mc file:
#
# This is a Berkeley-specific configuration file for HP-UX 9.x.
- # It applies only the the Computer Science Division at Berkeley,
+ # It applies only to the Computer Science Division at Berkeley,
# and should not be used elsewhere. It is provided on the sendmail
# distribution as a sample only. To create your own configuration
# file, create an appropriate domain file in ../domain, change the
@@ -306,11 +307,11 @@ POP_MAILER_FLAGS [Penu] Flags added to POP mailer. Flags "lsDFM"
POP_MAILER_ARGS [pop $u] The arguments passed to the POP mailer.
PROCMAIL_MAILER_PATH [/usr/local/bin/procmail] The path to the procmail
program. This is also used by FEATURE(local_procmail).
-PROCMAIL_MAILER_FLAGS [Shu] Flags added to Procmail mailer. Flags
- ``DFMmn'' are always set. This is NOT used by
+PROCMAIL_MAILER_FLAGS [SPhnu9] Flags added to Procmail mailer. Flags
+ ``DFM'' are always set. This is NOT used by
FEATURE(local_procmail); tweak LOCAL_MAILER_FLAGS
instead.
-PROCMAIL_MAILER_ARGS [procmail -m $h $f $u] The arguments passed to
+PROCMAIL_MAILER_ARGS [procmail -Y -m $h $f $u] The arguments passed to
the Procmail mailer. This is NOT used by
FEATURE(local_procmail); tweak LOCAL_MAILER_ARGS
instead.
@@ -656,7 +657,10 @@ genericstable This feature will cause certain addresses originating in the
The key for this table is either the full address or the
unqualified username (the former is tried first); the
value is the new user address. If the new user address does
- not include a domain, $j is used.
+ not include a domain, $j is used. Note that the address must
+ being looked up must be fully qualified. For local mail, it
+ is necessary to use FEATURE(always_add_domain) for the
+ addresses to be qualified.
virtusertable A domain-specific form of aliasing, allowing multiple
virtual domains to be hosted on one machine. For example,
@@ -669,18 +673,28 @@ virtusertable A domain-specific form of aliasing, allowing multiple
then mail addressed to info@foo.com will be sent to the
address foo-info, mail addressed to info@bar.com will be
delivered to bar-info, and mail addressed to anyone at
- baz.org will be sent to jane@elsewhere.net. All the host
- names on the left hand side (foo.com, bar.com, and baz.org)
- must be in $=w. The default map definition is:
+ baz.org will be sent to jane@elsewhere.net. The username
+ from the original address is passed as %1 allowing:
+
+ @foo.org %1@elsewhere.com
+
+ meaning someone@foo.org will be sent to someone@elsewhere.com.
+
+ All the host names on the left hand side (foo.com, bar.com,
+ and baz.org) must be in $=w. The default map definition is:
hash -o /etc/virtusertable
A new definition can be specified as the second argument of
- the FEATURE macro.
+ the FEATURE macro, such as
+
+ FEATURE(virtusertable, dbm -o /etc/mail/virtusers)
nodns We aren't running DNS at our site (for example,
we are UUCP-only connected). It's hard to consider
this a "feature", but hey, it had to go somewhere.
+ Actually, as of 8.7 this is a no-op -- remove "dns" from
+ the hosts service switch entry instead.
nullclient This is a special case -- it creates a stripped down
configuration file containing nothing but support for
@@ -1062,6 +1076,23 @@ specified with a terminal dot:
note the trailing dot ---^
++--------------------------------+
+| ADDING NEW MAILERS OR RULESETS |
++--------------------------------+
+
+Sometimes you may need to add entirely new mailers or rulesets. They
+should be introduced with the constructs MAILER_DEFINITIONS and
+LOCAL_RULESETS respectively. For example:
+
+ MAILER_DEFINITIONS
+ Mmymailer, ...
+ ...
+
+ LOCAL_RULESETS
+ Scheck_relay
+ ...
+
+
+-------------------------------+
| NON-SMTP BASED CONFIGURATIONS |
+-------------------------------+
@@ -1102,10 +1133,6 @@ use:
That is, send directly only to things you found in your DNS lookup;
anything else goes through SMART_HOST.
-If you are not running DNS at all, it is important to use
-FEATURE(nodns) to avoid having sendmail queue everything waiting
-for the name server to come up.
-
+-----------+
| WHO AM I? |
@@ -1278,7 +1305,7 @@ Sam Leffler's FlexFAX software is still in beta test -- but he expects a
public version out "later this week" [as of 3/1/93]. The following
blurb is direct from Sam:
- $Header: /cvs/OpenBSD/src/usr.sbin/sendmail/cf/Attic/README,v 1.4 1997/01/22 01:06:47 downsj Exp $
+ $Header: /cvs/OpenBSD/src/usr.sbin/sendmail/cf/Attic/README,v 1.5 1997/07/15 07:23:40 downsj Exp $
How To Obtain This Software (in case all you get is this file)
--------------------------------------------------------------
@@ -1522,11 +1549,19 @@ confHOST_STATUS_DIRECTORY HostStatusDirectory
named directory tree. This need not be
a full pathname, in which case it is
interpreted relative to the queue
- directory. This option also
- single-threads connections to each
- host, i.e., prevents multiple
- connections to a single server from
- this client.
+ directory.
+confSINGLE_THREAD_DELIVERY SingleThreadDelivery
+ [False] If this option and the
+ HostStatusDirectory option are both
+ set, single thread deliveries to other
+ hosts. That is, don't allow any two
+ sendmails on this host to connect
+ simultaneously to any other single
+ host. This can slow down delivery in
+ some cases, in particular since a
+ cached but otherwise idle connection
+ to a host will prevent other sendmails
+ from connecting to the other host.
confUSE_ERRORS_TO* UserErrorsTo [False] Use the Errors-To: header to
deliver error messages. This should
not be necessary because of general
@@ -1669,7 +1704,7 @@ confSEPARATE_PROC ForkEachJob [False] Run all deliveries in a separate
confWORK_CLASS_FACTOR ClassFactor [1800] Priority multiplier for class.
confWORK_TIME_FACTOR RetryFactor [90000] Cost of each delivery attempt.
confQUEUE_SORT_ORDER QueueSortOrder [Priority] Queue sort algorithm:
- Priority or Host.
+ Priority, Host, or Time.
confMIN_QUEUE_AGE MinQueueAge [0] The minimum amount of time a job
must sit in the queue between queue
runs. This allows you to set the
@@ -1782,18 +1817,6 @@ confRUN_AS_USER RunAsUser [undefined] If set, become this user
files will be written as this user.
Intended for use only on firewalls
where users do not have accounts.
-confSINGLE_THREAD_DELIVERY SingleThreadDelivery
- [False] If this option and the
- HostStatusDirectory option are both
- set, single thread deliveries to other
- hosts. That is, don't allow any two
- sendmails on this host to connect
- simultaneously to any other single
- host. This can slow down delivery in
- some cases, in particular since a
- cached but otherwise idle connection
- to a host will prevent other sendmails
- from connecting to the other host.
See also the description of OSTYPE for some parameters that can be
tweaked (generally pathnames to mailers).
@@ -1935,7 +1958,7 @@ CLASSES
O operators that indicate network operations (cannot be in local names)
P top level pseudo-domains: BITNET, DECNET, FAX, UUCP, etc.
Q
- R
+ R domains we are willing to relay (pass anti-spam filters)
S
T
U locally connected UUCP hosts
diff --git a/usr.sbin/sendmail/cf/cf/cs-hpux10.mc b/usr.sbin/sendmail/cf/cf/cs-hpux10.mc
index 61155d303cf..898f3605bc5 100644
--- a/usr.sbin/sendmail/cf/cf/cs-hpux10.mc
+++ b/usr.sbin/sendmail/cf/cf/cs-hpux10.mc
@@ -35,7 +35,7 @@ divert(-1)
#
# This is a Berkeley-specific configuration file for HP-UX 9.x.
-# It applies only the the Computer Science Division at Berkeley,
+# It applies only to the Computer Science Division at Berkeley,
# and should not be used elsewhere. It is provided on the sendmail
# distribution as a sample only. To create your own configuration
# file, create an appropriate domain file in ../domain, change the
@@ -44,7 +44,7 @@ divert(-1)
#
divert(0)dnl
-VERSIONID(`@(#)cs-hpux10.mc 8.4 (Berkeley) 3/23/96')
+VERSIONID(`@(#)cs-hpux10.mc 8.5 (Berkeley) 6/3/97')
OSTYPE(hpux10)dnl
DOMAIN(CS.Berkeley.EDU)dnl
define(`MAIL_HUB', mailspool.CS.Berkeley.EDU)dnl
diff --git a/usr.sbin/sendmail/cf/cf/cs-hpux9.mc b/usr.sbin/sendmail/cf/cf/cs-hpux9.mc
index e9e0af8830c..96ff7c84e77 100644
--- a/usr.sbin/sendmail/cf/cf/cs-hpux9.mc
+++ b/usr.sbin/sendmail/cf/cf/cs-hpux9.mc
@@ -35,7 +35,7 @@ divert(-1)
#
# This is a Berkeley-specific configuration file for HP-UX 9.x.
-# It applies only the the Computer Science Division at Berkeley,
+# It applies only to the Computer Science Division at Berkeley,
# and should not be used elsewhere. It is provided on the sendmail
# distribution as a sample only. To create your own configuration
# file, create an appropriate domain file in ../domain, change the
@@ -44,7 +44,7 @@ divert(-1)
#
divert(0)dnl
-VERSIONID(`@(#)cs-hpux9.mc 8.5 (Berkeley) 3/23/96')
+VERSIONID(`@(#)cs-hpux9.mc 8.6 (Berkeley) 6/3/97')
OSTYPE(hpux9)dnl
DOMAIN(CS.Berkeley.EDU)dnl
define(`MAIL_HUB', mailspool.CS.Berkeley.EDU)dnl
diff --git a/usr.sbin/sendmail/cf/cf/cs-osf1.mc b/usr.sbin/sendmail/cf/cf/cs-osf1.mc
index f61b65655d5..95bb7f2ea4a 100644
--- a/usr.sbin/sendmail/cf/cf/cs-osf1.mc
+++ b/usr.sbin/sendmail/cf/cf/cs-osf1.mc
@@ -35,7 +35,7 @@ divert(-1)
#
# This is a Berkeley-specific configuration file for OSF/1.
-# It applies only the the Computer Science Division at Berkeley,
+# It applies only to the Computer Science Division at Berkeley,
# and should not be used elsewhere. It is provided on the sendmail
# distribution as a sample only. To create your own configuration
# file, create an appropriate domain file in ../domain, change the
@@ -44,7 +44,7 @@ divert(-1)
#
divert(0)dnl
-VERSIONID(`@(#)cs-osf1.mc 8.4 (Berkeley) 3/23/96')
+VERSIONID(`@(#)cs-osf1.mc 8.5 (Berkeley) 6/3/97')
OSTYPE(osf1)dnl
DOMAIN(CS.Berkeley.EDU)dnl
MAILER(local)dnl
diff --git a/usr.sbin/sendmail/cf/cf/cs-solaris2.mc b/usr.sbin/sendmail/cf/cf/cs-solaris2.mc
index ae8f420b13e..515dd121599 100644
--- a/usr.sbin/sendmail/cf/cf/cs-solaris2.mc
+++ b/usr.sbin/sendmail/cf/cf/cs-solaris2.mc
@@ -35,7 +35,7 @@ divert(-1)
#
# This is a Berkeley-specific configuration file for Solaris 2.x.
-# It applies only the the Computer Science Division at Berkeley,
+# It applies only to the Computer Science Division at Berkeley,
# and should not be used elsewhere. It is provided on the sendmail
# distribution as a sample only. To create your own configuration
# file, create an appropriate domain file in ../domain, change the
@@ -44,7 +44,7 @@ divert(-1)
#
divert(0)dnl
-VERSIONID(`@(#)cs-solaris2.mc 8.3 (Berkeley) 3/23/96')
+VERSIONID(`@(#)cs-solaris2.mc 8.4 (Berkeley) 6/3/97')
OSTYPE(solaris2)dnl
DOMAIN(CS.Berkeley.EDU)dnl
MAILER(local)dnl
diff --git a/usr.sbin/sendmail/cf/cf/cs-sunos4.1.mc b/usr.sbin/sendmail/cf/cf/cs-sunos4.1.mc
index 754de46010c..70f134fdd3d 100644
--- a/usr.sbin/sendmail/cf/cf/cs-sunos4.1.mc
+++ b/usr.sbin/sendmail/cf/cf/cs-sunos4.1.mc
@@ -35,7 +35,7 @@ divert(-1)
#
# This is a Berkeley-specific configuration file for SunOS 4.1.x.
-# It applies only the the Computer Science Division at Berkeley,
+# It applies only to the Computer Science Division at Berkeley,
# and should not be used elsewhere. It is provided on the sendmail
# distribution as a sample only. To create your own configuration
# file, create an appropriate domain file in ../domain, change the
@@ -44,7 +44,7 @@ divert(-1)
#
divert(0)dnl
-VERSIONID(`@(#)cs-sunos4.1.mc 8.4 (Berkeley) 3/23/96')
+VERSIONID(`@(#)cs-sunos4.1.mc 8.5 (Berkeley) 6/3/97')
OSTYPE(sunos4.1)dnl
DOMAIN(CS.Berkeley.EDU)dnl
MAILER(local)dnl
diff --git a/usr.sbin/sendmail/cf/cf/cs-ultrix4.mc b/usr.sbin/sendmail/cf/cf/cs-ultrix4.mc
index 72735fc5891..8888be7e934 100644
--- a/usr.sbin/sendmail/cf/cf/cs-ultrix4.mc
+++ b/usr.sbin/sendmail/cf/cf/cs-ultrix4.mc
@@ -35,7 +35,7 @@ divert(-1)
#
# This is a Berkeley-specific configuration file for Ultrix 4.x.
-# It applies only the the Computer Science Division at Berkeley,
+# It applies only to the Computer Science Division at Berkeley,
# and should not be used elsewhere. It is provided on the sendmail
# distribution as a sample only. To create your own configuration
# file, create an appropriate domain file in ../domain, change the
@@ -44,7 +44,7 @@ divert(-1)
#
divert(0)dnl
-VERSIONID(`@(#)cs-ultrix4.mc 8.4 (Berkeley) 3/23/96')
+VERSIONID(`@(#)cs-ultrix4.mc 8.5 (Berkeley) 6/3/97')
OSTYPE(ultrix4)dnl
DOMAIN(CS.Berkeley.EDU)dnl
MAILER(local)dnl
diff --git a/usr.sbin/sendmail/cf/cf/knecht.mc b/usr.sbin/sendmail/cf/cf/knecht.mc
index f7d57e3a9f2..648b9709ed2 100644
--- a/usr.sbin/sendmail/cf/cf/knecht.mc
+++ b/usr.sbin/sendmail/cf/cf/knecht.mc
@@ -38,7 +38,7 @@ divert(-1)
#
divert(0)dnl
-VERSIONID(`@(#)knecht.mc 8.4 (Berkeley) 11/24/96')
+VERSIONID(`@(#)knecht.mc 8.11 (Berkeley) 6/12/97')
OSTYPE(bsd4.4)dnl
DOMAIN(generic)dnl
define(`confDEF_USER_ID', `mailnull')dnl
@@ -46,6 +46,49 @@ define(`confHOST_STATUS_DIRECTORY', `.hoststat')dnl
define(`confTO_ICONNECT', `10s')dnl
define(`confCOPY_ERRORS_TO', `Postmaster')dnl
define(`confTO_QUEUEWARN', `8h')dnl
+define(`confPRIVACY_FLAGS', ``authwarnings,noexpn,novrfy'')dnl
FEATURE(virtusertable)dnl
MAILER(local)dnl
MAILER(smtp)dnl
+
+LOCAL_CONFIG
+# domains that are not us but which we will relay
+FR-o /etc/sendmail.cR
+
+# domain override table to accept unresolvable/reject resolvable domains
+Kdomaincheck hash -o /etc/domaincheck
+
+
+LOCAL_RULESETS
+
+# reject bogus return addresses
+Scheck_mail
+R<> $@ <OK>
+R$* $: <?> $>Parse0 $>3 $1 make domain canonical
+R<?> $* < @ $+ . > $* $: < $( domaincheck $2 $: OK $) > $1 < @ $2 . > $3
+ tag resolved names
+R<?> $* < @ $+ > $* $: < $( domaincheck $2 $: ? $) > $1 < @ $2 > $3
+ check for overrides
+R<OK> $* $@ <OK>
+R<?> $* < @ $+ > $* $#error $: 451 Sender domain must resolve
+R<?> $* $: < ? $&{client_name} > $1 no @domain on address...
+R<?> $* $@ <OK> ...local unqualed ok
+R<? $+> $* $#error $: 551 Domain name required
+ ...remote is not
+R<$+> $* $#error $: $1 error from domaincheck
+
+# disallow relaying
+Scheck_rcpt
+# anything terminating locally is ok
+R$* $: $>Parse0 $>3 $1 strip local crud
+R$+ < @ $=w . > $@ OK
+R$+ < @ $* $=R . > $@ OK
+
+# anything originating locally is ok
+R$* $: $(dequote "" $&{client_name} $)
+R$=w $@ OK
+R$=R $@ OK
+R$@ $@ OK
+
+# anything else is bogus
+R$* $#error $: "550 Relaying Denied"
diff --git a/usr.sbin/sendmail/cf/cf/s2k-osf1.mc b/usr.sbin/sendmail/cf/cf/s2k-osf1.mc
index eb195ccf155..ed2d4887fb8 100644
--- a/usr.sbin/sendmail/cf/cf/s2k-osf1.mc
+++ b/usr.sbin/sendmail/cf/cf/s2k-osf1.mc
@@ -35,7 +35,7 @@ divert(-1)
#
# This is a Berkeley-specific configuration file for OSF/1.
-# It applies only the the Sequoia 2000 Project at Berkeley,
+# It applies only to the Sequoia 2000 Project at Berkeley,
# and should not be used elsewhere. It is provided on the sendmail
# distribution as a sample only. To create your own configuration
# file, create an appropriate domain file in ../domain, change the
@@ -44,7 +44,7 @@ divert(-1)
#
divert(0)dnl
-VERSIONID(`@(#)s2k-osf1.mc 8.4 (Berkeley) 3/23/96')
+VERSIONID(`@(#)s2k-osf1.mc 8.5 (Berkeley) 6/3/97')
OSTYPE(osf1)dnl
DOMAIN(S2K.Berkeley.EDU)dnl
MAILER(local)dnl
diff --git a/usr.sbin/sendmail/cf/cf/s2k-ultrix4.mc b/usr.sbin/sendmail/cf/cf/s2k-ultrix4.mc
index 37df422edb1..12fb9602462 100644
--- a/usr.sbin/sendmail/cf/cf/s2k-ultrix4.mc
+++ b/usr.sbin/sendmail/cf/cf/s2k-ultrix4.mc
@@ -35,7 +35,7 @@ divert(-1)
#
# This is a Berkeley-specific configuration file for Ultrix 4.x.
-# It applies only the the Sequoia 2000 Project at Berkeley,
+# It applies only to the Sequoia 2000 Project at Berkeley,
# and should not be used elsewhere. It is provided on the sendmail
# distribution as a sample only. To create your own configuration
# file, create an appropriate domain file in ../domain, change the
@@ -44,7 +44,7 @@ divert(-1)
#
divert(0)dnl
-VERSIONID(`@(#)s2k-ultrix4.mc 8.4 (Berkeley) 3/23/96')
+VERSIONID(`@(#)s2k-ultrix4.mc 8.5 (Berkeley) 6/3/97')
OSTYPE(ultrix4)dnl
DOMAIN(S2K.Berkeley.EDU)dnl
MAILER(local)dnl
diff --git a/usr.sbin/sendmail/cf/feature/bestmx_is_local.m4 b/usr.sbin/sendmail/cf/feature/bestmx_is_local.m4
index 1b96aa13f8d..3849623f051 100644
--- a/usr.sbin/sendmail/cf/feature/bestmx_is_local.m4
+++ b/usr.sbin/sendmail/cf/feature/bestmx_is_local.m4
@@ -34,7 +34,7 @@ divert(-1)
#
divert(0)
-VERSIONID(`@(#)bestmx_is_local.m4 8.4 (Berkeley) 10/23/96')
+VERSIONID(`@(#)bestmx_is_local.m4 8.5 (Berkeley) 3/28/97')
divert(-1)
LOCAL_CONFIG
@@ -60,7 +60,7 @@ LOCAL_NET_CONFIG
ifelse(_ARG_, `', `', `#')dnl unlimited bestmx
R$* < @ $* > $* $: $1 < @ $2 @@ $(bestmx $2 $) > $3
ifelse(_ARG_, `', `#', `')dnl limit bestmx to $=B
-R$* < @ $* $=B > $* $: $1 < @ $2 $3 @@ $(bestmx $2 $3 $) > $4
+R$* < @ $* $=B . > $* $: $1 < @ $2 $3 . @@ $(bestmx $2 $3 . $) > $4
R$* $=O $* < @ $* @@ $=w . > $* $@ $>97 $1 $2 $3
R$* < @ $* @@ $=w . > $* $#local $: $1
R$* < @ $* @@ $* > $* $: $1 < @ $2 > $4
diff --git a/usr.sbin/sendmail/cf/m4/nullrelay.m4 b/usr.sbin/sendmail/cf/m4/nullrelay.m4
index 86c0356e2c5..e8f96772660 100644
--- a/usr.sbin/sendmail/cf/m4/nullrelay.m4
+++ b/usr.sbin/sendmail/cf/m4/nullrelay.m4
@@ -34,7 +34,7 @@ divert(-1)
#
divert(0)
-VERSIONID(`@(#)nullrelay.m4 8.12 (Berkeley) 10/12/96')
+VERSIONID(`@(#)nullrelay.m4 8.13 (Berkeley) 4/30/97')
#
# This configuration applies only to relay-only hosts. They send
@@ -68,7 +68,8 @@ R$* :: $* <@> $: $1 :: $2 unmark node::addr
R:`include': $* <@> $: :`include': $1 unmark :`include':...
R$* : $* <@> $: $2 strip colon if marked
R$* <@> $: $1 unmark
-R$* ; $: $1 strip trailing semi
+R$* ; $1 strip trailing semi
+R$* < $* ; > $1 < $2 > bogus bracketed semi
# null input now results from list:; syntax
R$@ $@ :; <@>
diff --git a/usr.sbin/sendmail/cf/m4/proto.m4 b/usr.sbin/sendmail/cf/m4/proto.m4
index fc09fe0246a..dd085b53178 100644
--- a/usr.sbin/sendmail/cf/m4/proto.m4
+++ b/usr.sbin/sendmail/cf/m4/proto.m4
@@ -34,7 +34,7 @@ divert(-1)
#
divert(0)
-VERSIONID(`@(#)proto.m4 8.139 (Berkeley) 12/31/96')
+VERSIONID(`@(#)proto.m4 8.149 (Berkeley) 4/30/97')
MAILER(local)dnl
@@ -505,7 +505,8 @@ R$* [ $* : $* ] <@> $: $1 [ $2 : $3 ] unmark IPv6 addrs
R$* : $* [ $* ] $: $1 : $2 [ $3 ] <@> remark if leading colon
R$* : $* <@> $: $2 strip colon if marked
R$* <@> $: $1 unmark
-R$* ; $: $1 strip trailing semi
+R$* ; $1 strip trailing semi
+R$* < $* ; > $1 < $2 > bogus bracketed semi
# null input now results from list:; syntax
R$@ $@ :; <@>
@@ -593,9 +594,11 @@ ifdef(`_CLASS_X_',
ifdef(`_CLASS_Y_',
`R$* < @ $=Y . UUCP > $* $@ $1 < @ $2 . UUCP . > $3', `dnl')
+define(`X', ifdef(`_NO_CANONIFY_', `#', `'))dnl
# try UUCP traffic as a local address
-R$* < @ $+ . UUCP > $* $: $1 < @ $[ $2 $] . UUCP . > $3
-R$* < @ $+ . . UUCP . > $* $@ $1 < @ $2 . > $3')
+X`'R$* < @ $+ . UUCP > $* $: $1 < @ $[ $2 $] . UUCP . > $3
+X`'R$* < @ $+ . . UUCP . > $* $@ $1 < @ $2 . > $3')
+undefine(`X')dnl
')
# pass to name server to make hostname canonical
ifdef(`_NO_CANONIFY_', `#')dnl
@@ -604,7 +607,9 @@ R$* < @ $* $~P > $* $: $1 < @ $[ $2 $3 $] > $4
# local host aliases and pseudo-domains are always canonical
R$* < @ $=w > $* $: $1 < @ $2 . > $3
R$* < @ $j > $* $: $1 < @ $j . > $2
-R$* < @ $* $=M > $* $: $1 < @ $2 $3 . > $4
+ifdef(`_MASQUERADE_ENTIRE_DOMAIN_',
+`R$* < @ $* $=M > $* $: $1 < @ $2 $3 . > $4',
+`R$* < @ $=M > $* $: $1 < @ $2 . > $3')
R$* < @ $* $=P > $* $: $1 < @ $2 $3 . > $4
R$* < @ $* . . > $* $1 < @ $2 . > $3
@@ -656,6 +661,11 @@ R$* $@ $>0 $1
S0
+R$* $: $>Parse0 $1 initial parsing
+R$* $: $>98 $1 handle local hacks
+R$* $: $>Parse1 $1 final parsing
+
+SParse0
R<@> $#_LOCAL_ $: <@> special case error msgs
R$* : $* ; <@> $#error $@ 5.1.3 $: "list:; syntax illegal for recipient addresses"
R<@ $+> $#error $@ 5.1.1 $: "user address required"
@@ -664,6 +674,7 @@ R<> $* < @ [ $+ ] > $* $1 < @ [ $2 ] > $3
R<> $* <$* : $* > $* $#error $@ 5.1.1 $: "colon illegal in host name part"
R<> $* $1
R$* < @ . $* > $* $#error $@ 5.1.2 $: "invalid host name"
+R$* < @ $* .. $* > $* $#error $@ 5.1.2 $: "invalid host name"
ifdef(`_MAILER_smtp_',
`# handle numeric address spec
@@ -672,20 +683,22 @@ R$* < @ [ $+ ] > $* $#_SMTP_ $@ [$2] $: $1 < @ [$2] > $3 still numeric: send',
`dnl')
# now delete the local info -- note $=O to find characters that cause forwarding
-R$* < @ > $* $@ $>97 $1 user@ => user
-R< @ $=w . > : $* $@ $>97 $2 @here:... -> ...
+R$* < @ > $* $@ $>Parse0 $>3 $1 user@ => user
+R< @ $=w . > : $* $@ $>Parse0 $>3 $2 @here:... -> ...
R$- < @ $=w . > $: $(dequote $1 $) < @ $2 . > dequote "foo"@here
R< @ $+ > $#error $@ 5.1.1 $: "user address required"
-R$* $=O $* < @ $=w . > $@ $>97 $1 $2 $3 ...@here -> ...
-
-# handle local hacks
-R$* $: $>98 $1
+R$* $=O $* < @ $=w . > $@ $>Parse0 $>3 $1 $2 $3 ...@here -> ...
+SParse1
# handle virtual users
define(`X', ifdef(`VIRTUSER_TABLE', `', `#'))dnl
X`'R$+ < @ $=w . > $: < $(virtuser $1 @ $2 $@ $1 $: @ $) > $1 < @ $2 . >
-X`'R< @ > $+ < @ $+ . > $: < $(virtuser @ $2 $@ $1 $: @ $) > $1 < @ $2 . >
-X`'R< @ > $+ $: $1
+X`'R<@> $+ + $* < @ $* . >
+ $: < $(virtuser $1 + * @ $3 $@ $1 $: @ $) > $1 + $2 < @ $3 . >
+X`'R<@> $+ + $* < @ $* . >
+ $: < $(virtuser $1 @ $3 $@ $1 $: @ $) > $1 + $2 < @ $3 . >
+X`'R<@> $+ < @ $+ . > $: < $(virtuser @ $2 $@ $1 $: @ $) > $1 < @ $2 . >
+X`'R<@> $+ $: $1
X`'R< error : $- $+ > $* $#error $@ $( dequote $1 $) $: $2
X`'R< $+ > $+ < @ $+ > $: $>97 $1
undefine(`X')dnl
@@ -779,26 +792,26 @@ S5
# deal with plussed users so aliases work nicely
R$+ + * $#_LOCAL_ $@ $&h $: $1
-R$+ + $* $#_LOCAL_ $@ $2 $: $1 + *
+R$+ + $* $#_LOCAL_ $@ + $2 $: $1 + *
# prepend an empty "forward host" on the front
R$+ $: <> $1
define(`X', ifdef(`LUSER_RELAY', `', `#'))dnl
# send unrecognized local users to a relay host
-X`'R< > $+ + $* $: < $L . > $( user $1 $) + $2
X`'R< > $+ $: < $L . > $( user $1 $) look up user
X`'R< $* > $+ <> $* $: < > $2 $3 found; strip $L
X`'R< $* . > $+ $: < $1 > $2 strip extra dot
undefine(`X')dnl
-# handle plussed local names
-R< > $+ + $* $#_LOCAL_ $@ $2 $: $1
-
# see if we have a relay or a hub
R< > $+ $: < $H > $1 try hub
R< > $+ $: < $R > $1 try relay
-R< > $+ $@ $1 nope, give up
+R< > $+ $: < > < $1 $(dequote "" $&h $) > nope, restore +detail
+R< > < $+ + $* > $* < > < $1 > + $2 $3 find the user part
+R< > < $+ > + $* $#_LOCAL_ $@ $2 $: @ $1 strip the extra +
+R< > < $+ > $@ $1 no +detail
+R$+ $: $1 $(dequote "" $&h $) add +detail back in
R< local : $* > $* $: $>95 < local : $1 > $2 no host extension
R< error : $* > $* $: $>95 < error : $1 > $2 no host extension
R< $- : $+ > $+ $: $>95 < $1 : $2 > $3 < @ $2 >
@@ -840,15 +853,15 @@ SCanonLocal
R< $* > $* < @ $* . > $: < $1 > $2 < @ $3 >
# handle local: syntax -- use old user, either with or without host
-R< > $* < @ $* > $* $#local $@ $1@$2 $: $1
-R< > $+ $#local $@ $1 $: $1
+R< > $* < @ $* > $* $#_LOCAL_ $@ $1@$2 $: $1
+R< > $+ $#_LOCAL_ $@ $1 $: $1
# handle local:user@host syntax -- ignore host part
-R< $+ @ $+ > $* $: < $1 > $3
+R< $+ @ $+ > $* < @ $* > $: < $1 > $3 < @ $4 >
# handle local:user syntax
-R< $+ > $* <@ $* > $* $#local $@ $2@$3 $: $1
-R< $+ > $* $#local $@ $2 $: $1
+R< $+ > $* <@ $* > $* $#_LOCAL_ $@ $2@$3 $: $1
+R< $+ > $* $#_LOCAL_ $@ $2 $: $1
###################################################################
### Ruleset 93 -- convert header names to masqueraded form ###
diff --git a/usr.sbin/sendmail/cf/m4/version.m4 b/usr.sbin/sendmail/cf/m4/version.m4
index 1837c222c36..c9b3228d110 100644
--- a/usr.sbin/sendmail/cf/m4/version.m4
+++ b/usr.sbin/sendmail/cf/m4/version.m4
@@ -32,8 +32,8 @@ divert(-1)
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
-VERSIONID(`@(#)version.m4 8.8.5.3 (Berkeley) 1/21/97')
+VERSIONID(`@(#)version.m4 8.8.6.1 (Berkeley) 6/14/97')
#
divert(0)
# Configuration version number
-DZ8.8.5`'ifdef(`confCF_VERSION', `/confCF_VERSION')
+DZ8.8.6`'ifdef(`confCF_VERSION', `/confCF_VERSION')
diff --git a/usr.sbin/sendmail/cf/mailer/mail11.m4 b/usr.sbin/sendmail/cf/mailer/mail11.m4
index 21e05dd19fd..a8781cf8686 100644
--- a/usr.sbin/sendmail/cf/mailer/mail11.m4
+++ b/usr.sbin/sendmail/cf/mailer/mail11.m4
@@ -15,12 +15,13 @@ ifdef(`MAIL11_MAILER_PATH',, `define(`MAIL11_MAILER_PATH', /usr/etc/mail11)')
ifdef(`MAIL11_MAILER_FLAGS',, `define(`MAIL11_MAILER_FLAGS', nsFx)')
ifdef(`MAIL11_MAILER_ARGS',, `define(`MAIL11_MAILER_ARGS', mail11 $g $x $h $u)')
define(`_USE_DECNET_SYNTAX_')
+define(`_LOCAL_', ifdef(`confLOCAL_MAILER', confLOCAL_MAILER, `local'))
POPDIVERT
PUSHDIVERT(3)
# DECNET delivery
-R$* < @ $=w .DECNET. > $#local $: $1 local DECnet
+R$* < @ $=w .DECNET. > $#_LOCAL_ $: $1 local DECnet
R$+ < @ $+ .DECNET. > $#mail11 $@ $2 $: $1 DECnet user
POPDIVERT
@@ -32,7 +33,7 @@ POPDIVERT
### UTK-MAIL11 Mailer specification ###
###########################################
-VERSIONID(`@(#)mail11.m4 8.1 (Berkeley) 5/23/95')
+VERSIONID(`@(#)mail11.m4 8.4 (Berkeley) 3/18/97')
Mmail11, P=MAIL11_MAILER_PATH, F=MAIL11_MAILER_FLAGS, S=15, R=25,
A=MAIL11_MAILER_ARGS
diff --git a/usr.sbin/sendmail/cf/mailer/procmail.m4 b/usr.sbin/sendmail/cf/mailer/procmail.m4
index a170e58a471..0ea0717caa1 100644
--- a/usr.sbin/sendmail/cf/mailer/procmail.m4
+++ b/usr.sbin/sendmail/cf/mailer/procmail.m4
@@ -38,9 +38,9 @@ ifdef(`PROCMAIL_MAILER_PATH',,
`define(`PROCMAIL_MAILER_PATH', PROCMAIL_PATH)',
`define(`PROCMAIL_MAILER_PATH', /usr/local/bin/procmail)')')
ifdef(`PROCMAIL_MAILER_FLAGS',,
- `define(`PROCMAIL_MAILER_FLAGS', `Shu')')
+ `define(`PROCMAIL_MAILER_FLAGS', `SPhnu9')')
ifdef(`PROCMAIL_MAILER_ARGS',,
- `define(`PROCMAIL_MAILER_ARGS', `procmail -m $h $f $u')')
+ `define(`PROCMAIL_MAILER_ARGS', `procmail -Y -m $h $f $u')')
POPDIVERT
@@ -48,7 +48,7 @@ POPDIVERT
### PROCMAIL Mailer specification ###
##################*****##################
-VERSIONID(`@(#)procmail.m4 8.5 (Berkeley) 12/28/95')
+VERSIONID(`@(#)procmail.m4 8.6 (Berkeley) 4/30/97')
-Mprocmail, P=PROCMAIL_MAILER_PATH, F=CONCAT(`DFMm', PROCMAIL_MAILER_FLAGS), S=11/31, R=21/31, T=DNS/RFC822/X-Unix,
+Mprocmail, P=PROCMAIL_MAILER_PATH, F=CONCAT(`DFM', PROCMAIL_MAILER_FLAGS), S=11/31, R=21/31, T=DNS/RFC822/X-Unix,
ifdef(`PROCMAIL_MAILER_MAX', `M=PROCMAIL_MAILER_MAX, ')A=PROCMAIL_MAILER_ARGS
diff --git a/usr.sbin/sendmail/cf/mailer/uucp.m4 b/usr.sbin/sendmail/cf/mailer/uucp.m4
index 0b6594971d0..023982f9b93 100644
--- a/usr.sbin/sendmail/cf/mailer/uucp.m4
+++ b/usr.sbin/sendmail/cf/mailer/uucp.m4
@@ -44,7 +44,7 @@ POPDIVERT
### UUCP Mailer specification ###
#####################################
-VERSIONID(`@(#)uucp.m4 8.24 (Berkeley) 9/5/95')
+VERSIONID(`@(#)uucp.m4 8.25 (Berkeley) 3/16/97')
#
# There are innumerable variations on the UUCP mailer. It really
@@ -110,7 +110,7 @@ S22
R:; <@> $@
R$* < @ $* . > $* $1 < @ $2 > $3 strip trailing dots
-R$* < @ $j > $1 strip local name
+R$* < @ $=w > $1 strip local name
R<@ $- . UUCP > : $+ $1 ! $2 convert to UUCP format
R<@ $+ > : $+ $1 ! $2 convert to UUCP format
R$* < @ $- . UUCP > $2 ! $1 convert to UUCP format
@@ -125,7 +125,7 @@ S42
R:; <@> $@
R$* < @ $* . > $* $1 < @ $2 > $3 strip trailing dots
-R$* < @ $j > $1 strip local name
+R$* < @ $=w > $1 strip local name
R<@ $- . UUCP > : $+ $1 ! $2 convert to UUCP format
R<@ $+ > : $+ $1 ! $2 convert to UUCP format
R$* < @ $- . UUCP > $2 ! $1 convert to UUCP format