aboutsummaryrefslogtreecommitdiff
path: root/mail/sendmail812/files
diff options
context:
space:
mode:
Diffstat (limited to 'mail/sendmail812/files')
-rw-r--r--mail/sendmail812/files/CONNECTION_RATE_CONTROL167
-rw-r--r--mail/sendmail812/files/CYRUS_LOOKUP80
-rw-r--r--mail/sendmail812/files/cyruslookup.patch119
-rw-r--r--mail/sendmail812/files/patch-aa237
-rw-r--r--mail/sendmail812/files/pkg-milter43
-rw-r--r--mail/sendmail812/files/sendmail.sh58
-rw-r--r--mail/sendmail812/files/site.config.m48
-rw-r--r--mail/sendmail812/files/site.config.m4.ipv62
-rw-r--r--mail/sendmail812/files/site.config.m4.ldap25
-rw-r--r--mail/sendmail812/files/site.config.m4.milter2
-rw-r--r--mail/sendmail812/files/site.config.m4.pre43
-rw-r--r--mail/sendmail812/files/site.config.m4.sasl4
-rw-r--r--mail/sendmail812/files/site.config.m4.sasl24
-rw-r--r--mail/sendmail812/files/site.config.m4.ssl3
-rw-r--r--mail/sendmail812/files/site.config.m4.tls4
-rw-r--r--mail/sendmail812/files/sm-client.sh31
-rw-r--r--mail/sendmail812/files/socketmap.patch798
-rw-r--r--mail/sendmail812/files/tls-install.sh92
18 files changed, 0 insertions, 1680 deletions
diff --git a/mail/sendmail812/files/CONNECTION_RATE_CONTROL b/mail/sendmail812/files/CONNECTION_RATE_CONTROL
deleted file mode 100644
index 4b6a87fa276a..000000000000
--- a/mail/sendmail812/files/CONNECTION_RATE_CONTROL
+++ /dev/null
@@ -1,167 +0,0 @@
-
- CONNECTION RATE CONTROL FOR SENDMAIL
- ------------------------------------
-
-This patch adds connection rate control feature to sendmail.
-
-This means :
-
-- sendmail counts on a sliding window the number of connections
- for each smtp client, and if it exceeds maximum configured
- value, connection is refused with a TEMPFAIL result.
-
-- you may surely want to exclude some hosts/networks from this
- control (local networks, trusted networks, ...). You may
- indicate the list of trusted servers (by ip address) at
- some configuration file.
-
-This file Table of Contents :
-
- 1. Remarks
- 2. Changes and History
- 3. Getting the stuff
- 4. Stuff Contents
- 5. Installing
-
-******************************************************************
-
-REMARKS :
----------
-
-* This feature will be integrated into sendmail in a future version.
-
-* This feature is experimental. Some details on the way it works
- or its interface may change in the future.
-
-* The contents of this stuff is valid for sendmail 8.12.9
-
- All feedback, comments and questions about this stuff are welcome :
- Jose-Marcio.Martins@ensmp.fr (the maintainer)
- with CC to
- sendmail@sendmail.org
-
-CHANGES AND HISTORY :
----------------------
-
-2003/06/11 - Jose Marcio Martins da Cruz - First Release
-
-2003/07/03 - Jose Marcio Martins da Cruz
- Two macros were defined :
- - {client_rate} : connection rate of the client
- - {server_rate} : connection rate of the server
-
-GETTING THE STUFF :
--------------------
-
-You can download all you need at :
-
- http://j-chkmail.ensmp.fr/sm
-
-You need the two patches you'll find there.
-
-STUFF CONTENTS :
-----------------
-
-This stuff contains two patches :
-
-- ratectrl.src.patch : this patch shall be used to modify
- /PATH_TO_SRC/sendmail-8.12.9/sendmail - sendmail C source
- files
-
-- ratectrl.cf.patch : this patch shall be used to modify
- /PATH_TO_SRC/sendmail-8.12.9/cf - m4 configuration kit
- for sendmail
-
-- rate.mc : this is an example of configuration file to be
- used with this stuff, if you want to do connection rate
- control with rulesets. To use it, you shall define the
- variable :
- D{RuleRateMaxClient}5
- This contribution comes from Stephane Lentz
- Stephane.Lentz@ansf.alcatel.fr
-
-
-INSTALLING :
-------------
-
-1. Copy the patches :
-
- cd /PATH_TO/sendmail-8.12.9
- cp /elsewhere/ratectrl.src.patch .
- cp /elsewhere/ratectrl.cf.patch .
-
-2. Eventually save original source code :
-
- cp -pr sendmail sendmail.org
- cp -pr cf cf.org
-
-3. Apply the patches
-
- cd sendmail
- patch < ../ratectrl.src.patch
- cd ../cf
- patch < ../ratectrl.cf.patch
-
-4. Inform sendmail Build system that you want to use this stuff
-
- Add the following line to the file devtools/Site/site.config.m4 :
-
-APPENDDEF(`confENVDEF',`-D_FFR_CONNECTION_RATE_CONTROL')
-
-5. Rebuild sendmail and install
-
- cd /PATH_TO/sendmail-8.12.9
- ./Build -c
- su
- ./Build install
-
-6. Modify your configuration file (sendmail.mc for your site)
-
-You may add the following lines :
-
- FEATURE(rate_control)
-
-This will create the following lines at your sendmail.cf file :
-
------
-
-O CheckConnectionRate=True
-
-F{rate_exclude} -o /etc/mail/rate-control-exclude
-
-# maximum server connection rate (connections / minute)
-#O MaxConnectionRate=600
-
-# maximum connection rate per client (connections / minute)
-#O MaxClientConnectionRate=5
-
-# Width of the window
-#O ConnectionRateWindowSize=60
-
-----
-
-Configuration parameters you may define at your mc file
-
-confRATE_EXCLUDE_FILE The name of the file defining class {rate_exclude}.
- Access to the server will be granted to IP hosts
- networks matching this class without connection
- rate control.
- Default Value : /etc/mail/rate-control-exclude
-
-confMAX_CLIENT_CONNECTION_RATE : Maximum connections per minute allowed
- for hosts/networks not matching {rate_exclude}
- class.
- Default Value : 5 connections / minute.
-
-confMAX_CONNECTION_RATE : Maximum connections per minute for the server.
- Default Value : 600 connections / minute.
-
-confCONNECTION_RATE_WINDOW_SIZE : Width of the measuring sliding window.
- The value used to do rate control is the mean
- of the number of connections inside this window.
- Default Value : 60 (1 minute)
-
-
-
-
-
diff --git a/mail/sendmail812/files/CYRUS_LOOKUP b/mail/sendmail812/files/CYRUS_LOOKUP
deleted file mode 100644
index a1a685bf97a3..000000000000
--- a/mail/sendmail812/files/CYRUS_LOOKUP
+++ /dev/null
@@ -1,80 +0,0 @@
-
- CYRUS MAILBOX LOOKUP FOR SENDMAIL
- ---------------------------------
-
-You have enabled modifications for sendmail for looking up
-whether a cyrus (2.2.3+) mailbox exists and is under quota
-before accepting any mail to be relayed to cyrus.
-
-They are based on the idea and work by
-
-Andrzej Filip
-
-published at
-
-http://anfi.homeunix.net/sendmail/rtcyrus2.html.
-
-Please, use this url to learn all configuration details
-(although a quick recipe is provided below) and may be to give
-credits to the author.
-
-******************************************************************
-
-HOW TO :
----------
-
-0. Build the `mail/sendmail' sendmail port with
- SENDMAIL_WITH_SOCKETMAP=yes SENDMAIL_WITH_CYRUSLOOKUP=yes
- This is what you've just obviously done, unless you are just browsing the
- ports tree. To stick with these settings, you can place something like
- the following in your `/etc/make.conf'.
-
-PORTSDIR?= /usr/ports
-.if ${.CURDIR} == ${PORTSDIR}/mail/sendmail
-SENDMAIL_WITH_CYRUSLOOKUP= yes
-SENDMAIL_WITH_SOCKETMAP= yes
-# possibly other sendmail knobs here too.
-.endif
-
- You should have also installed and configured Cyrus IMAP server,
- version 2.2.3 or higher. Not the worst idea is to utilize the
- `mail/cyrus-imapd22' port.
-
-1. Insert the following lines to the SERVICES sections of `cyrus.conf'.
- By default, the port installs it to `/usr/local/etc'.
-
- # Sendmail socket map smmapd(8)
- smmap cmd="smmapd" listen="/var/imap/socket/smmapd" prefork=0
-
- A SIGHUP would make the Cyrus master(8) process catch this change
- on-the-fly. Please, also note, that if sendmail and cyrus run on
- separate machines, you will obviously need to modify this line
- and a couple of others.
-
-2. As per the `install-configure' from Cyrus IMAP server's documentation,
- in the simplest case, you add:
-
- define(`confLOCAL_MAILER', `cyrusv2')dnl
- MAILER(`cyrusv2')dnl
-
- to your sendmail's .mc file to make local delivery to Cyrus mailboxes.
- Per the instructions, provided by Andrzej Filip (see the above URL),
- these lines should become:
-
- define(`LOCAL_RELAY',`mrs_cyrus_user:stripdom')dnl
- FEATURE(`mrs')dnl
- FEATURE(`mrs_cyrus')dnl
- MODIFY_MAILER_FLAGS(`CYRUSV2',`-A5')dnl
- MAILER(`cyrusv2')dnl
-
- for sendmail to start rejecting local addresses for nonexisting and
- full mailboxes. Rebuild your sendmail.cf, restart sendmail, and enjoy!
-
- If your configuration is more complicated than the above two lines,
- read Andrzej's article. It contains more examples.
-
-******************************************************************
-
-2004, April 8th
-Michael O. Boev,
-mike@tric.ru.
diff --git a/mail/sendmail812/files/cyruslookup.patch b/mail/sendmail812/files/cyruslookup.patch
deleted file mode 100644
index bb1fa6f03f01..000000000000
--- a/mail/sendmail812/files/cyruslookup.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-*** cf/m4/proto.m4 2004/03/09 15:49:38 1.1
---- cf/m4/proto.m4 2004/03/10 20:29:48
-***************
-*** 1299,1304 ****
---- 1299,1307 ----
- R< error : $- : $+ > $* $#error $@ $(dequote $1 $) $: $2
- R< error : $+ > $* $#error $: $1
- R< local : $* > $* $>CanonLocal < $1 > $2
-+ ifdef(`_MRS_RELAY_',`dnl
-+ R< $={MRS} : $* > $* $@ $> $1 < $2 > $3
-+ dnl')
- dnl it is $~[ instead of $- to avoid matches on IPv6 addresses
- R< $~[ : $+ @ $+ > $*<$*>$* $# $1 $@ $3 $: $2<@$3> use literal user
- R< $~[ : $+ > $* $# $1 $@ $2 $: $3 try qualified mailer
---- /dev/null Wed Apr 7 20:03:20 2004
-+++ cf/feature/mrs.m4 Tue Mar 23 14:00:30 2004
-@@ -0,0 +1,25 @@
-+divert(-1)
-+dnl
-+dnl Updates: http://anfi.webhop.net/sendmail/mrs.html
-+dnl
-+dnl By using this file, you agree to the terms and conditions set
-+dnl forth in the LICENSE file which can be found at the top level of
-+dnl the sendmail distribution (sendmail-8.12).
-+dnl
-+dnl Contributed by Andrzej Filip
-+dnl
-+dnl THE FEATURE REQUIRES PATCHING cf/m4/proto.m4
-+dnl SEE THE LINK AFTER "Updates:"
-+dnl
-+dnl $Log: mrs.m4,v $
-+dnl Revision 8.3 2004/03/18 21:39:22 anfi
-+dnl Changed comments prefixes to dnl to avoid m4 expansions
-+dnl
-+dnl Revision 8.2 2004/03/15 09:14:28 anfi
-+dnl Added "Updates:" web link.
-+dnl
-+divert(0)
-+VERSIONID(`$Id: mrs.m4,v 8.3 2004/03/18 21:39:22 anfi Exp $')
-+divert(-1)
-+
-+define(`_MRS_RELAY_', `')
---- /dev/null Thu Apr 8 15:55:21 2004
-+++ cf/feature/mrs_cyrus.m4 Thu Apr 1 21:37:05 2004
-@@ -0,0 +1,74 @@
-+divert(-1)
-+dnl
-+dnl Updates: http://anfi.webhop.net/sendmail/rtcyrus2.html
-+dnl
-+dnl By using this file, you agree to the terms and conditions set
-+dnl forth in the LICENSE file which can be found at the top level of
-+dnl the sendmail distribution (sendmail-8.12).
-+dnl
-+dnl Contributed by Andrzej Filip
-+dnl
-+dnl $Log: mrs_cyrus.m4,v $
-+dnl Revision 8.7 2004/04/01 14:29:50 anfi
-+dnl Added "stripdom" handling in mrs_cyrus_user.
-+dnl Fully defined error mailer details.
-+dnl
-+dnl Revision 8.6 2004/03/18 23:17:57 anfi
-+dnl Fundamental rewrite.
-+dnl
-+ifdef(`_MRS_RELAY_',`',
-+ `errprint(`*** ERROR: FEATURE(mrs_cyrus) requires FEATURE(mrs)
-+')')
-+ifdef(`_MRS_CYRUS_',
-+ `errprint(`*** ERROR: There can be only one FEATURE(mrs_cyrus*)
-+')')
-+define(`_MRS_CYRUS_',`')
-+
-+divert(0)
-+VERSIONID(`$Id: mrs_cyrus.m4,v 8.7 2004/04/01 14:29:50 anfi Exp $')
-+divert(-1)
-+define(`CYRUS_SMMAPD_SOCKET',
-+ ifelse(len(X`'_ARG_), `1', `/var/imap/socket/smmapd', _ARG_))
-+define(`CYRUS_SMMAPD_SOCKET_TYPE',
-+ ifelse(len(X`'_ARG2_), `1', `local', _ARG2_))
-+LOCAL_CONFIG
-+# Add 3 mrs_cyrus rule sets to list of valid mrs rule sets
-+C{MRS}mrs_cyrus_user mrs_cyrus_mailertable mrs_cyrus_stickyhub
-+# map for checking cyrus imap mailbox existence
-+Kcyrus socket -a<OK> -T<TMPF> CYRUS_SMMAPD_SOCKET_TYPE:CYRUS_SMMAPD_SOCKET
-+
-+LOCAL_RULESETS
-+######################################################################
-+### feature mrs_cyrus rulesets to be used by feature mrs
-+######################################################################
-+
-+Smrs_cyrus_user
-+R<$*> $+ <@$+.> $: <$1> $2 <@ $3 >
-+R<$*> $+ <@$*> $: <$1> $2 <@$3> $| $(cyrus $2 $: $)
-+R<$*> $+ <@$*> $| $* <TMPF> $# error $@ 4.3.0 $: "451 Temporary system failure. Please try again later."
-+R<$*> $+ <@$*> $| $* <OK> $# cyrusv2 $@ dummy $: $4
-+R<$*> $+ <@$*> $| $* $: <$1> $2 <@$3>
-+R<stripdom> $+ <@stripdom> $@ $1
-+R< $~[ : $* > $* $>MailerToTriple < $1 : $2 > $3
-+R< $+ > $* $>MailerToTriple < $1 > $2
-+R< > $* $# error $@ 5.1.1 $: "550 User unknown"
-+
-+Smrs_cyrus_mailertable
-+R<$*> $+ <@$+.> $: <$1> $2 <@ $3 >
-+R<$*> $+ <@$+> $: <$1> $2 <@$3> $| $(cyrus $2@$3 $: $)
-+R<$*> $+ <@$+> $| $* <TMPF> $# error $@ 4.3.0 $: "451 Temporary system failure. Please try again later."
-+R<$*> $+ <@$+> $| $* <OK> $# cyrusv2d $@ dummy $: $2 <@$3>
-+R<$*> $+ <@$*> $| $* $: <$1> $2 <@$3>
-+R< $~[ : $* > $* $>MailerToTriple < $1 : $2 > $3
-+R< $+ > $* $>MailerToTriple < $1 > $2
-+R< > $* $# error $@ 5.1.1 $: "550 User unknown"
-+
-+Smrs_cyrus_stickyhub
-+R<dummy> $+ <@$+.> $: <dummy> $1 <@ $2 >
-+R<dummy> $* <@dummy> $@ $1
-+R<dummy> $+ <@$={VirtCyrus}> $: <dummy> $1 <@$2> $| $(cyrus $1@$2 $: $)
-+R<dummy> $+ <@$={VirtCyrus}> $| $* <TMPF> $# error $@ 4.3.0 $: "451 Temporary system failure. Please try again later."
-+R<dummy> $+ <@$={VirtCyrus}> $| $* <OK> $# cyrusv2d $@ dummy $: $1 <@$2>
-+R<dummy> $+ <@$={VirtCyrus}> $| $* $# error $@ 5.1.1 $: "550 User unknown"
-+R<dummy> $=L <@$*> $# ifdef(`confLOCAL_MAILER',confLOCAL_MAILER,`local') $: @$1
-+R<dummy> $* <@$*> $# ifdef(`confLOCAL_MAILER',confLOCAL_MAILER,`local') $: $1
diff --git a/mail/sendmail812/files/patch-aa b/mail/sendmail812/files/patch-aa
deleted file mode 100644
index c353c5ad932f..000000000000
--- a/mail/sendmail812/files/patch-aa
+++ /dev/null
@@ -1,237 +0,0 @@
-diff -ur cf/m4/cfhead.m4.orig cf/m4/cfhead.m4
---- cf/m4/cfhead.m4.orig Sun Jun 10 03:45:13 2001
-+++ cf/m4/cfhead.m4 Fri Jun 15 06:47:34 2001
-@@ -260,7 +261,8 @@
- define(`_REC_FULL_AUTH_', `$.$?{auth_type}(authenticated as ${auth_authen} $?{auth_author}for ${auth_author} $.with ${auth_type}')
- define(`_REC_HDR_', `$?sfrom $s $.$?_($?s$|from $.$_)')
- define(`_REC_END_', `for $u; $|;
-- $.$b')
-+ $.$b$?g
-+ (envelope-from $g)$.')
- define(`_REC_TLS_', `(version=${tls_version} cipher=${cipher} bits=${cipher_bits} verify=${verify})$.$?u')
- define(`_REC_BY_', `$.by $j ($v/$Z)$?r with $r$. id $i$?{tls_version}')
- define(`confRECEIVED_HEADER', `_REC_HDR_
-diff -ur cf/ostype/bsd4.4.m4 src/contrib/sendmail/cf/ostype/bsd4.4.m4
---- cf/ostype/bsd4.4.m4 Sun Apr 25 22:00:56 1999
-+++ src/contrib/sendmail/cf/ostype/bsd4.4.m4 Wed Oct 4 23:19:29 2000
-@@ -16,5 +16,6 @@
- divert(0)
- VERSIONID(`$Id: bsd4.4.m4,v 8.14 1999/04/24 05:37:40 gshapiro Exp $')
- ifdef(`STATUS_FILE',, `define(`STATUS_FILE', `/var/log/sendmail.st')')dnl
- ifdef(`LOCAL_MAILER_PATH',, `define(`LOCAL_MAILER_PATH', /usr/libexec/mail.local)')dnl
-+ifdef(`LOCAL_MAILER_ARGS',, `define(`LOCAL_MAILER_ARGS', `mail $u')')dnl
- ifdef(`UUCP_MAILER_ARGS',, `define(`UUCP_MAILER_ARGS', `uux - -r -z -a$g $h!rmail ($u)')')dnl
-diff -ur cf/sh/makeinfo.sh src/contrib/sendmail/cf/sh/makeinfo.sh
---- cf/sh/makeinfo.sh Sun Feb 7 08:26:25 1999
-+++ src/contrib/sendmail/cf/sh/makeinfo.sh Wed Oct 4 23:19:29 2000
-@@ -52,7 +54,7 @@
- else
- host=`uname -n`
- fi
--echo '#####' built by $user@$host on `date`
-+echo '#####' built by $user@$host on `LC_TIME=C date`
- echo '#####' in `pwd` | sed 's/\/tmp_mnt//'
- echo '#####' using $1 as configuration include directory | sed 's/\/tmp_mnt//'
- echo "define(\`__HOST__', $host)dnl"
-diff -ur include/sendmail/pathnames.h.orig include/sendmail/pathnames.h
---- include/sendmail/pathnames.h.orig Fri Mar 23 23:09:44 2001
-+++ include/sendmail/pathnames.h Mon May 7 08:32:45 2001
-@@ -41,7 +41,7 @@
- # endif /* ! _PATH_MAILDIR */
-
- # ifndef _PATH_LOCTMP
--# define _PATH_LOCTMP "/tmp/local.XXXXXX"
-+# define _PATH_LOCTMP "/var/tmp/local.XXXXXX"
- # endif /* ! _PATH_LOCTMP */
-
- # ifndef _PATH_HOSTS
-diff -ur mail.local/mail.local.8.orig mail.local/mail.local.8
---- mail.local/mail.local.8.orig Fri Apr 6 01:27:35 2001
-+++ mail.local/mail.local.8 Thu May 31 07:36:03 2001
-@@ -16,9 +16,9 @@
- \- store mail in a mailbox
- .SH SYNOPSIS
- .B mail.local
--.RB [ \-7 "] [" \-b "] [" \-d "] [" \-D
-+.RB [ \-7 "] [" \-b "] [" \-B "] [" \-d "] [" \-D
- .IR mbdb ]
--.RB [ \-l "] [" \-f
-+.RB [ \-l "] [" \-s "] [" \-f
- \fIfrom\fR|\fB\-r\fR
- .IR from ]
- .RB [ \-h
-@@ -38,6 +41,11 @@
- .B \-7
- Do not advertise 8BITMIME support in LMTP mode.
- .TP
-+.B \-B
-+Turn off the attempts to notify the
-+.Dq biff
-+service.
-+.TP
- .B \-b
- Return a permanent error instead of a temporary error
- if a mailbox exceeds quota.
-@@ -56,6 +64,13 @@
- .TP
- .B \-l
- Turn on LMTP mode.
-+.TP
-+.B \-s
-+Turn off the
-+.Xr fsync 2
-+call that forces the mailbox to be committed to disk before returning a
-+.Dq success
-+status.
- .TP
- .BI \-r " from"
- Specify the sender's name (for backward compatibility).
-@@ -97,7 +112,7 @@
- .SH FILES
- .PD 0.2v
- .TP 2.2i
--/tmp/local.XXXXXX
-+/var/tmp/local.XXXXXX
- temporary files
- .TP
- /var/mail/user
-@@ -108,7 +123,6 @@
- .PD
- .SH SEE ALSO
- mail(1),
--xsend(1),
- flock(2),
- getservbyname(3),
- comsat(8),
-diff -ur mail.local/mail.local.c.orig mail.local/mail.local.c
---- mail.local/mail.local.c.orig Thu May 10 02:58:31 2001
-+++ mail.local/mail.local.c Thu May 31 07:39:04 2001
-@@ -130,6 +132,8 @@
- bool HoldErrs = false; /* Hold errors in ErrBuf */
- bool LMTPMode = false;
- bool BounceQuota = false; /* permanent error when over quota */
-+bool NoBiff = false;
-+bool NoFsync = false;
- char *HomeMailFile = NULL; /* store mail in homedir */
-
- void deliver __P((int, char *));
-@@ -172,7 +176,7 @@
- # endif /* LOG_MAIL */
-
- from = NULL;
-- while ((ch = getopt(argc, argv, "7bdD:f:h:r:l")) != -1)
-+ while ((ch = getopt(argc, argv, "7bBdD:f:h:r:ls")) != -1)
- {
- switch(ch)
- {
-@@ -180,6 +184,10 @@
- EightBitMime = false;
- break;
-
-+ case 'B':
-+ NoBiff = true;
-+ break;
-+
- case 'b': /* bounce mail when over quota. */
- BounceQuota = true;
- break;
-@@ -215,6 +223,10 @@
- LMTPMode = true;
- break;
-
-+ case 's':
-+ NoFsync = true;
-+ break;
-+
- case '?':
- default:
- usage();
-@@ -224,7 +236,8 @@
- argv += optind;
-
- /* initialize biff structures */
-- notifybiff(NULL);
-+ if (!NoBiff)
-+ notifybiff(NULL);
-
- err = sm_mbdb_initialize(mbdbname);
- if (err != EX_OK)
-@@ -1128,6 +1141,7 @@
-
- /* Get the starting offset of the new message for biff. */
- curoff = lseek(mbfd, (off_t) 0, SEEK_END);
-+ if (!NoBiff)
- (void) sm_snprintf(biffmsg, sizeof(biffmsg), "%s@%lld\n",
- name, (LONGLONG_T) curoff);
-
-@@ -1190,7 +1204,7 @@
- }
-
- /* Flush to disk, don't wait for update. */
-- if (fsync(mbfd) < 0)
-+ if (!NoFsync && fsync(mbfd) < 0)
- {
- mailerr("450 4.2.0", "%s: %s", path, sm_errstring(errno));
- err3:
-@@ -1216,7 +1230,7 @@
- mailerr(errcode, "%s: %s", path, sm_errstring(errno));
- (void) truncate(path, curoff);
- }
-- else
-+ else if (!NoBiff)
- notifybiff(biffmsg);
-
- if (setreuid(0, 0) < 0)
-@@ -1395,7 +1409,8 @@
- usage()
- {
- ExitVal = EX_USAGE;
-- mailerr(NULL, "usage: mail.local [-7] [-b] [-d] [-l] [-f from|-r from] [-h filename] user ...");
-+ mailerr(NULL, "usage: mail.local [-7] [-b] [-B] [-d] [-l] [-s] [-f from|-r from] [-h filename] user ...");
-+
- exit(ExitVal);
- }
-
-diff -ur rmail/rmail.c src/contrib/sendmail/rmail/rmail.c
---- rmail/rmail.c Sun Sep 17 00:20:25 2000
-+++ src/contrib/sendmail/rmail/rmail.c Mon Nov 6 11:23:42 2000
-@@ -318,7 +320,11 @@
- args[i++] = _PATH_SENDMAIL; /* Build sendmail's argument list. */
- args[i++] = "-G"; /* relay submission */
- args[i++] = "-oee"; /* No errors, just status. */
-+#ifdef QUEUE_ONLY
- args[i++] = "-odq"; /* Queue it, don't try to deliver. */
-+#else
-+ args[i++] = "-odi"; /* Deliver in foreground. */
-+#endif
- args[i++] = "-oi"; /* Ignore '.' on a line by itself. */
-
- /* set from system and protocol used */
-diff -ur smrsh/smrsh.8.orig smrsh/smrsh.8
---- smrsh/smrsh.8.orig Wed Jan 24 01:40:47 2001
-+++ smrsh/smrsh.8 Mon May 7 08:32:45 2001
-@@ -39,7 +41,7 @@
- .I smrsh
- limits programs to be in a single directory,
- by default
--/usr/adm/sm.bin,
-+/usr/libexec/sm.bin,
- allowing the system administrator to choose the set of acceptable commands,
- and to the shell builtin commands ``exec'', ``exit'', and ``echo''.
- It also rejects any commands with the characters
-@@ -50,13 +52,12 @@
- ``"|exec /usr/local/bin/procmail -f- /etc/procmailrcs/user || exit 75"''
- .PP
- Initial pathnames on programs are stripped,
--so forwarding to ``/usr/ucb/vacation'',
--``/usr/bin/vacation'',
-+so forwarding to ``/usr/bin/vacation'',
- ``/home/server/mydir/bin/vacation'',
- and
- ``vacation''
- all actually forward to
--``/usr/adm/sm.bin/vacation''.
-+``/usr/libexec/sm.bin/vacation''.
- .PP
- System administrators should be conservative about populating
- the sm.bin directory.
diff --git a/mail/sendmail812/files/pkg-milter b/mail/sendmail812/files/pkg-milter
deleted file mode 100644
index 374de6278e90..000000000000
--- a/mail/sendmail812/files/pkg-milter
+++ /dev/null
@@ -1,43 +0,0 @@
-include/libmilter/mfapi.h
-include/libmilter/mfdef.h
-lib/libmilter.a
-@dirrm include/libmilter
-%%PORTDOCS%%share/doc/sendmail/MILTER
-%%PORTDOCS%%share/doc/sendmail/libmilter/api.html
-%%PORTDOCS%%share/doc/sendmail/libmilter/design.html
-%%PORTDOCS%%share/doc/sendmail/libmilter/figure1.fig
-%%PORTDOCS%%share/doc/sendmail/libmilter/figure1.jpg
-%%PORTDOCS%%share/doc/sendmail/libmilter/figure1.ps
-%%PORTDOCS%%share/doc/sendmail/libmilter/figure2.fig
-%%PORTDOCS%%share/doc/sendmail/libmilter/figure2.jpg
-%%PORTDOCS%%share/doc/sendmail/libmilter/figure2.ps
-%%PORTDOCS%%share/doc/sendmail/libmilter/index.html
-%%PORTDOCS%%share/doc/sendmail/libmilter/installation.html
-%%PORTDOCS%%share/doc/sendmail/libmilter/other.html
-%%PORTDOCS%%share/doc/sendmail/libmilter/overview.html
-%%PORTDOCS%%share/doc/sendmail/libmilter/sample.html
-%%PORTDOCS%%share/doc/sendmail/libmilter/smfi_addheader.html
-%%PORTDOCS%%share/doc/sendmail/libmilter/smfi_addrcpt.html
-%%PORTDOCS%%share/doc/sendmail/libmilter/smfi_chgheader.html
-%%PORTDOCS%%share/doc/sendmail/libmilter/smfi_delrcpt.html
-%%PORTDOCS%%share/doc/sendmail/libmilter/smfi_getpriv.html
-%%PORTDOCS%%share/doc/sendmail/libmilter/smfi_getsymval.html
-%%PORTDOCS%%share/doc/sendmail/libmilter/smfi_main.html
-%%PORTDOCS%%share/doc/sendmail/libmilter/smfi_register.html
-%%PORTDOCS%%share/doc/sendmail/libmilter/smfi_replacebody.html
-%%PORTDOCS%%share/doc/sendmail/libmilter/smfi_setbacklog.html
-%%PORTDOCS%%share/doc/sendmail/libmilter/smfi_setconn.html
-%%PORTDOCS%%share/doc/sendmail/libmilter/smfi_setpriv.html
-%%PORTDOCS%%share/doc/sendmail/libmilter/smfi_setreply.html
-%%PORTDOCS%%share/doc/sendmail/libmilter/smfi_settimeout.html
-%%PORTDOCS%%share/doc/sendmail/libmilter/xxfi_abort.html
-%%PORTDOCS%%share/doc/sendmail/libmilter/xxfi_body.html
-%%PORTDOCS%%share/doc/sendmail/libmilter/xxfi_close.html
-%%PORTDOCS%%share/doc/sendmail/libmilter/xxfi_connect.html
-%%PORTDOCS%%share/doc/sendmail/libmilter/xxfi_envfrom.html
-%%PORTDOCS%%share/doc/sendmail/libmilter/xxfi_envrcpt.html
-%%PORTDOCS%%share/doc/sendmail/libmilter/xxfi_eoh.html
-%%PORTDOCS%%share/doc/sendmail/libmilter/xxfi_eom.html
-%%PORTDOCS%%share/doc/sendmail/libmilter/xxfi_header.html
-%%PORTDOCS%%share/doc/sendmail/libmilter/xxfi_helo.html
-%%PORTDOCS%%@dirrm share/doc/sendmail/libmilter
diff --git a/mail/sendmail812/files/sendmail.sh b/mail/sendmail812/files/sendmail.sh
deleted file mode 100644
index a63031b87bd1..000000000000
--- a/mail/sendmail812/files/sendmail.sh
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/bin/sh
-#
-# $FreeBSD$
-#
-if ! test -x %%PREFIX%%/sbin/sendmail
-then
- exit 0
-fi
-#
-case "$1" in
-start)
- # If there is a global system configuration file, suck it in.
- #
- if [ -r /etc/defaults/rc.conf ]; then
- . /etc/defaults/rc.conf
- source_rc_confs
- elif [ -r /etc/rc.conf ]; then
- . /etc/rc.conf
- fi
-
- # Flags to sendmail (as a server)
- sendmail_flags="${sendmail_flags--L sm-mta -bd -q30m}"
- # Flags for sendmail_msp_queue daemon.
- sendmail_msp_queue_flags="
- ${sendmail_msp_queue_flags--L sm-msp-queue -Ac -q30m}"
- #
- %%PREFIX%%/sbin/sendmail ${sendmail_flags} &&
- echo -n ' sendmail'
- %%PREFIX%%/sbin/sendmail ${sendmail_msp_queue_flags} &&
- echo -n ' sm-msp-queue'
- ;;
-stop)
- if test -e /var/run/sendmail.pid
- then
- kill `head -1 /var/run/sendmail.pid`
- rm -f /var/run/sendmail.pid
- fi
- if test -e /var/spool/clientmqueue/sm-client.pid
- then
- kill `head -1 /var/spool/clientmqueue/sm-client.pid`
- rm -f /var/spool/clientmqueue/sm-client.pid
- fi
- ;;
-restart)
- if test -e /var/run/sendmail.pid
- then
- kill -1 `head -1 /var/run/sendmail.pid`
- fi
- if test -e /var/spool/clientmqueue/sm-client.pid
- then
- kill -1 `head -1 /var/spool/clientmqueue/sm-client.pid`
- fi
- ;;
-*)
- echo "Usage: ${0##*/}: { start | stop | restart }" >&2
- exit 64
- ;;
-esac
diff --git a/mail/sendmail812/files/site.config.m4 b/mail/sendmail812/files/site.config.m4
deleted file mode 100644
index adc2b11bf108..000000000000
--- a/mail/sendmail812/files/site.config.m4
+++ /dev/null
@@ -1,8 +0,0 @@
-define(`confEBINDIR',`%%PREFIX%%/libexec')
-define(`confMANROOT',`%%PREFIX%%/man/cat')
-define(`confMANROOTMAN',`%%PREFIX%%/man/man')
-define(`confMBINDIR',`%%PREFIX%%/sbin')
-define(`confSBINDIR',`%%PREFIX%%/sbin')
-define(`confUBINDIR',`%%PREFIX%%/bin')
-APPENDDEF(`conf_sendmail_ENVDEF', `-DTCPWRAPPERS')
-APPENDDEF(`conf_sendmail_LIBS', `-lwrap')"
diff --git a/mail/sendmail812/files/site.config.m4.ipv6 b/mail/sendmail812/files/site.config.m4.ipv6
deleted file mode 100644
index 41f0cccf3a1d..000000000000
--- a/mail/sendmail812/files/site.config.m4.ipv6
+++ /dev/null
@@ -1,2 +0,0 @@
-APPENDDEF(`conf_sendmail_ENVDEF', `-DNETINET6')
-APPENDDEF(`conf_libmilter_ENVDEF', `-DNETINET6')
diff --git a/mail/sendmail812/files/site.config.m4.ldap b/mail/sendmail812/files/site.config.m4.ldap
deleted file mode 100644
index 0a67a5a29d35..000000000000
--- a/mail/sendmail812/files/site.config.m4.ldap
+++ /dev/null
@@ -1,25 +0,0 @@
-APPENDDEF(`confLIBDIRS', `-L%%LOCALBASE%%/lib')
-APPENDDEF(`conf_libsm_ENVDEF', `-I%%LOCALBASE%%/include')
-APPENDDEF(`conf_libsm_ENVDEF', `-DLDAPMAP')
-APPENDDEF(`conf_libsm_LIBS', `-lldap')
-APPENDDEF(`conf_libsm_LIBS', `-llber')
-APPENDDEF(`conf_sendmail_ENVDEF', `-I%%LOCALBASE%%/include')
-APPENDDEF(`conf_sendmail_ENVDEF', `-DLDAPMAP')
-APPENDDEF(`conf_sendmail_LIBS', `-lldap')
-APPENDDEF(`conf_sendmail_LIBS', `-llber')
-APPENDDEF(`conf_editmap_LIBS', `-lldap')
-APPENDDEF(`conf_editmap_LIBS', `-llber')
-APPENDDEF(`conf_mail_local_LIBS', `-lldap')
-APPENDDEF(`conf_mail_local_LIBS', `-llber')
-APPENDDEF(`conf_mailstats_LIBS', `-lldap')
-APPENDDEF(`conf_mailstats_LIBS', `-llber')
-APPENDDEF(`conf_makemap_LIBS', `-lldap')
-APPENDDEF(`conf_makemap_LIBS', `-llber')
-APPENDDEF(`conf_praliases_LIBS', `-lldap')
-APPENDDEF(`conf_praliases_LIBS', `-llber')
-APPENDDEF(`conf_rmail_LIBS', `-lldap')
-APPENDDEF(`conf_rmail_LIBS', `-llber')
-APPENDDEF(`conf_smrsh_LIBS', `-lldap')
-APPENDDEF(`conf_smrsh_LIBS', `-llber')
-APPENDDEF(`conf_vacation_LIBS', `-lldap')
-APPENDDEF(`conf_vacation_LIBS', `-llber')
diff --git a/mail/sendmail812/files/site.config.m4.milter b/mail/sendmail812/files/site.config.m4.milter
deleted file mode 100644
index de11295aa6f3..000000000000
--- a/mail/sendmail812/files/site.config.m4.milter
+++ /dev/null
@@ -1,2 +0,0 @@
-APPENDDEF(`conf_libmilter_ENVDEF', `-DMILTER')
-APPENDDEF(`conf_sendmail_ENVDEF', `-DMILTER')
diff --git a/mail/sendmail812/files/site.config.m4.pre4 b/mail/sendmail812/files/site.config.m4.pre4
deleted file mode 100644
index 384a8ec2334e..000000000000
--- a/mail/sendmail812/files/site.config.m4.pre4
+++ /dev/null
@@ -1,3 +0,0 @@
-APPENDDEF(`conf_mail_local_ENVDEF', `-DQUEUE_ONLY')
-APPENDDEF(`conf_smrsh_ENVDEF', `-DCMDDIR="\"%%PREFIX%%/libexec/sm.bin\""')
-APPENDDEF(`conf_smrsh_ENVDEF', `-DPATH="\"/bin:/usr/bin\""')
diff --git a/mail/sendmail812/files/site.config.m4.sasl b/mail/sendmail812/files/site.config.m4.sasl
deleted file mode 100644
index 5c7e9ee0fac4..000000000000
--- a/mail/sendmail812/files/site.config.m4.sasl
+++ /dev/null
@@ -1,4 +0,0 @@
-APPENDDEF(`conf_sendmail_ENVDEF', `-I%%LOCALBASE%%/include/sasl1')
-APPENDDEF(`conf_sendmail_ENVDEF', `-DSASL')
-APPENDDEF(`confLIBDIRS', `-L%%LOCALBASE%%/lib')
-APPENDDEF(`conf_sendmail_LIBS', `-lsasl')
diff --git a/mail/sendmail812/files/site.config.m4.sasl2 b/mail/sendmail812/files/site.config.m4.sasl2
deleted file mode 100644
index bf1d85f38035..000000000000
--- a/mail/sendmail812/files/site.config.m4.sasl2
+++ /dev/null
@@ -1,4 +0,0 @@
-APPENDDEF(`conf_sendmail_ENVDEF', `-I%%LOCALBASE%%/include')
-APPENDDEF(`conf_sendmail_ENVDEF', `-DSASL=2')
-APPENDDEF(`confLIBDIRS', `-L%%LOCALBASE%%/lib')
-APPENDDEF(`conf_sendmail_LIBS', `-lsasl2')
diff --git a/mail/sendmail812/files/site.config.m4.ssl b/mail/sendmail812/files/site.config.m4.ssl
deleted file mode 100644
index 801030866543..000000000000
--- a/mail/sendmail812/files/site.config.m4.ssl
+++ /dev/null
@@ -1,3 +0,0 @@
-APPENDDEF(`confLIBDIRS', `-L%%LOCALBASE%%/lib' -rpath=%%LOCALBASE%%/lib )
-APPENDDEF(`confINCDIRS', `-I%%LOCALBASE%%/include')
-APPENDDEF(`conf_sendmail_ENVDEF', `-DHASSRANDOMDEV')
diff --git a/mail/sendmail812/files/site.config.m4.tls b/mail/sendmail812/files/site.config.m4.tls
deleted file mode 100644
index 16e2e2b2301a..000000000000
--- a/mail/sendmail812/files/site.config.m4.tls
+++ /dev/null
@@ -1,4 +0,0 @@
-APPENDDEF(`conf_sendmail_ENVDEF', `-DSTARTTLS')
-APPENDDEF(`conf_sendmail_ENVDEF', `-D_FFR_TLS_1')
-APPENDDEF(`conf_sendmail_ENVDEF', `-D_FFR_SSL')
-APPENDDEF(`conf_sendmail_LIBS', `-lssl -lcrypto')
diff --git a/mail/sendmail812/files/sm-client.sh b/mail/sendmail812/files/sm-client.sh
deleted file mode 100644
index 0182815ea86d..000000000000
--- a/mail/sendmail812/files/sm-client.sh
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/sh
-#
-# $FreeBSD: /tmp/pcvs/ports/mail/sendmail812/files/Attic/sm-client.sh,v 1.4 2003-12-04 03:24:09 dinoex Exp $
-#
-if ! test -x %%PREFIX%%/sbin/sendmail
-then
- exit 0
-fi
-case "$1" in
-start)
- %%PREFIX%%/sbin/sendmail -L sm-msp-queue -Ac -q30m
- echo -n ' sm-msp-queue'
- ;;
-stop)
- if test -e /var/spool/clientmqueue/sm-client.pid
- then
- kill `head -1 /var/spool/clientmqueue/sm-client.pid`
- rm -f /var/spool/clientmqueue/sm-client.pid
- fi
- ;;
-restart)
- if test -e /var/spool/clientmqueue/sm-client.pid
- then
- kill -1 `head -1 /var/spool/clientmqueue/sm-client.pid`
- fi
- ;;
-*)
- echo "Usage: ${0##*/}: { start | stop | restart }" >&2
- exit 64
- ;;
-esac
diff --git a/mail/sendmail812/files/socketmap.patch b/mail/sendmail812/files/socketmap.patch
deleted file mode 100644
index ea128dbace71..000000000000
--- a/mail/sendmail812/files/socketmap.patch
+++ /dev/null
@@ -1,798 +0,0 @@
-Index: sendmail/sendmail/sendmail/README
-diff -u sendmail/sendmail/sendmail/README:1.1.1.2 sendmail/sendmail/sendmail/README:1.3
---- sendmail/README Thu Jan 23 11:50:26 2003
-+++ sendmail/README Tue Jan 28 16:55:41 2003
-@@ -127,6 +127,8 @@
- PH_MAP PH map support. You will need the libphclient library from
- the nph package (http://www-dev.cso.uiuc.edu/ph/nph/).
- MAP_NSD nsd map support (IRIX 6.5 and later).
-+SOCKETMAP Support for a trivial query protocol over UNIX domain or TCP
-+ sockets.
-
- >>> NOTE WELL for NEWDB support: If you want to get ndbm support, for
- >>> Berkeley DB versions under 2.0, it is CRITICAL that you remove
-@@ -180,6 +182,50 @@
- check_* rule-set, you can block a certain range of addresses that would
- otherwise be considered valid.
-
-+The socket map uses a simple request/reply protocol over TCP or UNIX domain
-+sockets to query an external server. Both requests and replies are text
-+based and encoded as D.J. Bernsteins netstrings. E.g., a string
-+"hello there" becomes:
-+11:hello there,
-+
-+NB. neither requests nor replies end with CRLF.
-+
-+The request consists of the database map name and the lookup key separated
-+by a space character:
-+
-+<mapname> ' ' <key>
-+
-+The server responds with a status indicator and the result (if any):
-+
-+<status> ' ' <result> <LF>
-+
-+The status indicator is one of the following upper case words:
-+OK (the key was found, result contains the looked up value)
-+NOTFOUND (the key was not found, the result is empty)
-+TEMP (a temporary failure occured)
-+TIMEOUT (a timeout occured on the server side)
-+PERM (a permanent failure occured)
-+
-+In case of errors (status TEMP, TIMEOUT or PERM) the result fied may
-+contain an explanatory message.
-+
-+Example replies:
-+30:OK resolved.addess@example.com,
-+
-+in case of a successful lookup, or:
-+7:NOTFOUND,
-+
-+in case the key was not found, or:
-+54:TEMP this text explains that we had a temporary failure,
-+
-+in case of a failure.
-+
-+The socket map uses the same syntax as milters the specify the remote
-+endpoint. E.g.:
-+Ksocket mySocketMap inet:12345@127.0.0.1
-+
-+If multiple socket maps define the same remote endpoint, they will share
-+a single connection to this endpoint.
-
- +---------------+
- | COMPILE FLAGS |
-Index: sendmail/sendmail/sendmail/conf.c
-diff -u sendmail/sendmail/sendmail/conf.c:1.1.1.2 sendmail/sendmail/sendmail/conf.c:1.6
---- sendmail/conf.c Thu Jan 23 11:50:27 2003
-+++ sendmail/conf.c Fri Jan 24 15:31:59 2003
-@@ -622,6 +622,13 @@
- dequote_init, null_map_open, null_map_close,
- arith_map_lookup, null_map_store);
-
-+#if SOCKETMAP
-+ /* arbitrary daemons */
-+ MAPDEF("socket", NULL, MCF_ALIASOK,
-+ map_parseargs, socket_map_open, socket_map_close,
-+ socket_map_lookup, null_map_store);
-+#endif /* SOCKETMAP */
-+
- if (tTd(38, 2))
- {
- /* bogus map -- always return tempfail */
-Index: sendmail/sendmail/sendmail/map.c
-diff -u sendmail/sendmail/sendmail/map.c:1.1.1.2 sendmail/sendmail/sendmail/map.c:1.25
---- sendmail/map.c Thu Jan 23 11:50:27 2003
-+++ sendmail/map.c Tue Feb 25 14:57:14 2003
-@@ -66,6 +66,9 @@
- static bool ni_getcanonname __P((char *, int, int *));
- #endif /* NETINFO */
- static bool text_getcanonname __P((char *, int, int *));
-+#ifdef SOCKETMAP
-+static STAB * socket_map_findconn __P((const char*));
-+#endif /* SOCKETMAP */
-
- /* default error message for trying to open a map in write mode */
- #ifdef ENOSYS
-@@ -7395,3 +7398,646 @@
- *statp = EX_CONFIG;
- return NULL;
- }
-+
-+#ifdef SOCKETMAP
-+
-+# if NETINET || NETINET6
-+# include <arpa/inet.h>
-+# endif /* NETINET || NETINET6 */
-+
-+#define socket_map_next map_stack[0]
-+#define socket_map_previous map_stack[1]
-+
-+/*
-+** SOCKET_MAP_OPEN -- open socket table
-+*/
-+
-+bool
-+socket_map_open(map, mode)
-+ MAP *map;
-+ int mode;
-+{
-+ STAB *s;
-+
-+ int sock = 0;
-+ SOCKADDR_LEN_T addrlen = 0;
-+ int addrno = 0;
-+ int save_errno;
-+ char *p;
-+ char *colon;
-+ char *at;
-+ struct hostent *hp = NULL;
-+ SOCKADDR addr;
-+
-+ if (tTd(38, 2))
-+ sm_dprintf("socket_map_open(%s, %s, %d)\n",
-+ map->map_mname, map->map_file, mode);
-+
-+ mode &= O_ACCMODE;
-+
-+ /* sendmail doesn't have the ability to write to SOCKET (yet) */
-+ if (mode != O_RDONLY)
-+ {
-+ /* issue a pseudo-error message */
-+ errno = SM_EMAPCANTWRITE;
-+ return false;
-+ }
-+
-+ if (*map->map_file == '\0')
-+ {
-+ syserr("socket map \"%s\": empty or missing socket information",
-+ map->map_mname);
-+ return false;
-+ }
-+
-+ s = socket_map_findconn(map->map_file);
-+ if (s->s_socketmap != NULL)
-+ {
-+ /* Copy open connection */
-+ map->map_db1 = s->s_socketmap->map_db1;
-+
-+ /* Add this map as head of linked list */
-+ map->socket_map_next = s->s_socketmap;
-+ s->s_socketmap = map;
-+
-+ if (tTd(38, 2))
-+ sm_dprintf("using cached connection\n");
-+ return true;
-+ }
-+
-+ if (tTd(38, 2))
-+ sm_dprintf("opening new connection\n");
-+
-+
-+
-+ /* following code is ripped from milter.c */
-+
-+ /* protocol:filename or protocol:port@host */
-+ memset(&addr, '\0', sizeof addr);
-+ p = map->map_file;
-+ colon = strchr(p, ':');
-+ if (colon != NULL)
-+ {
-+ *colon = '\0';
-+
-+ if (*p == '\0')
-+ {
-+# if NETUNIX
-+ /* default to AF_UNIX */
-+ addr.sa.sa_family = AF_UNIX;
-+# else /* NETUNIX */
-+# if NETINET
-+ /* default to AF_INET */
-+ addr.sa.sa_family = AF_INET;
-+# else /* NETINET */
-+# if NETINET6
-+ /* default to AF_INET6 */
-+ addr.sa.sa_family = AF_INET6;
-+# else /* NETINET6 */
-+ /* no protocols available */
-+ syserr("socket map \"%s\": no valid socket protocols available",
-+ map->map_mname);
-+ return false;
-+# endif /* NETINET6 */
-+# endif /* NETINET */
-+# endif /* NETUNIX */
-+ }
-+# if NETUNIX
-+ else if (sm_strcasecmp(p, "unix") == 0 ||
-+ sm_strcasecmp(p, "local") == 0)
-+ addr.sa.sa_family = AF_UNIX;
-+# endif /* NETUNIX */
-+# if NETINET
-+ else if (sm_strcasecmp(p, "inet") == 0)
-+ addr.sa.sa_family = AF_INET;
-+# endif /* NETINET */
-+# if NETINET6
-+ else if (sm_strcasecmp(p, "inet6") == 0)
-+ addr.sa.sa_family = AF_INET6;
-+# endif /* NETINET6 */
-+ else
-+ {
-+# ifdef EPROTONOSUPPORT
-+ errno = EPROTONOSUPPORT;
-+# else /* EPROTONOSUPPORT */
-+ errno = EINVAL;
-+# endif /* EPROTONOSUPPORT */
-+ syserr("socket map \"%s\": unknown socket type %s",
-+ map->map_mname, p);
-+ return false;
-+ }
-+ *colon++ = ':';
-+ }
-+ else
-+ {
-+ /* default to AF_UNIX */
-+ addr.sa.sa_family = AF_UNIX;
-+ colon = p;
-+ }
-+
-+# if NETUNIX
-+ if (addr.sa.sa_family == AF_UNIX)
-+ {
-+ long sff = SFF_SAFEDIRPATH|SFF_OPENASROOT|SFF_NOLINK|SFF_EXECOK;
-+
-+ at = colon;
-+ if (strlen(colon) >= sizeof addr.sunix.sun_path)
-+ {
-+ syserr("socket map \"%s\": local socket name %s too long",
-+ map->map_mname, colon);
-+ return false;
-+ }
-+ errno = safefile(colon, RunAsUid, RunAsGid, RunAsUserName, sff,
-+ S_IRUSR|S_IWUSR, NULL);
-+
-+ if (errno != 0)
-+ {
-+ /* if not safe, don't create */
-+ syserr("socket map \"%s\": local socket name %s unsafe",
-+ map->map_mname, colon);
-+ return false;
-+ }
-+
-+ (void) sm_strlcpy(addr.sunix.sun_path, colon,
-+ sizeof addr.sunix.sun_path);
-+ addrlen = sizeof (struct sockaddr_un);
-+ }
-+ else
-+# endif /* NETUNIX */
-+# if NETINET || NETINET6
-+ if (false
-+# if NETINET
-+ || addr.sa.sa_family == AF_INET
-+# endif /* NETINET */
-+# if NETINET6
-+ || addr.sa.sa_family == AF_INET6
-+# endif /* NETINET6 */
-+ )
-+ {
-+ unsigned short port;
-+
-+ /* Parse port@host */
-+ at = strchr(colon, '@');
-+ if (at == NULL)
-+ {
-+ syserr("socket map \"%s\": bad address %s (expected port@host)",
-+ map->map_mname, colon);
-+ return false;
-+ }
-+ *at = '\0';
-+ if (isascii(*colon) && isdigit(*colon))
-+ port = htons((unsigned short) atoi(colon));
-+ else
-+ {
-+# ifdef NO_GETSERVBYNAME
-+ syserr("socket map \"%s\": invalid port number %s",
-+ map->map_mname, colon);
-+ return false;
-+# else /* NO_GETSERVBYNAME */
-+ register struct servent *sp;
-+
-+ sp = getservbyname(colon, "tcp");
-+ if (sp == NULL)
-+ {
-+ syserr("socket map \"%s\": unknown port name %s",
-+ map->map_mname, colon);
-+ return false;
-+ }
-+ port = sp->s_port;
-+# endif /* NO_GETSERVBYNAME */
-+ }
-+ *at++ = '@';
-+ if (*at == '[')
-+ {
-+ char *end;
-+
-+ end = strchr(at, ']');
-+ if (end != NULL)
-+ {
-+ bool found = false;
-+# if NETINET
-+ unsigned long hid = INADDR_NONE;
-+# endif /* NETINET */
-+# if NETINET6
-+ struct sockaddr_in6 hid6;
-+# endif /* NETINET6 */
-+
-+ *end = '\0';
-+# if NETINET
-+ if (addr.sa.sa_family == AF_INET &&
-+ (hid = inet_addr(&at[1])) != INADDR_NONE)
-+ {
-+ addr.sin.sin_addr.s_addr = hid;
-+ addr.sin.sin_port = port;
-+ found = true;
-+ }
-+# endif /* NETINET */
-+# if NETINET6
-+ (void) memset(&hid6, '\0', sizeof hid6);
-+ if (addr.sa.sa_family == AF_INET6 &&
-+ anynet_pton(AF_INET6, &at[1],
-+ &hid6.sin6_addr) == 1)
-+ {
-+ addr.sin6.sin6_addr = hid6.sin6_addr;
-+ addr.sin6.sin6_port = port;
-+ found = true;
-+ }
-+# endif /* NETINET6 */
-+ *end = ']';
-+ if (!found)
-+ {
-+ syserr("socket map \"%s\": Invalid numeric domain spec \"%s\"",
-+ map->map_mname, at);
-+ return false;
-+ }
-+ }
-+ else
-+ {
-+ syserr("socket map \"%s\": Invalid numeric domain spec \"%s\"",
-+ map->map_mname, at);
-+ return false;
-+ }
-+ }
-+ else
-+ {
-+ hp = sm_gethostbyname(at, addr.sa.sa_family);
-+ if (hp == NULL)
-+ {
-+ syserr("socket map \"%s\": Unknown host name %s",
-+ map->map_mname, at);
-+ return false;
-+ }
-+ addr.sa.sa_family = hp->h_addrtype;
-+ switch (hp->h_addrtype)
-+ {
-+# if NETINET
-+ case AF_INET:
-+ memmove(&addr.sin.sin_addr,
-+ hp->h_addr, INADDRSZ);
-+ addr.sin.sin_port = port;
-+ addrlen = sizeof (struct sockaddr_in);
-+ addrno = 1;
-+ break;
-+# endif /* NETINET */
-+
-+# if NETINET6
-+ case AF_INET6:
-+ memmove(&addr.sin6.sin6_addr,
-+ hp->h_addr, IN6ADDRSZ);
-+ addr.sin6.sin6_port = port;
-+ addrlen = sizeof (struct sockaddr_in6);
-+ addrno = 1;
-+ break;
-+# endif /* NETINET6 */
-+
-+ default:
-+ syserr("socket map \"%s\": Unknown protocol for %s (%d)",
-+ map->map_mname, at, hp->h_addrtype);
-+# if NETINET6
-+ freehostent(hp);
-+# endif /* NETINET6 */
-+ return false;
-+ }
-+ }
-+ }
-+ else
-+# endif /* NETINET || NETINET6 */
-+ {
-+ syserr("socket map \"%s\": unknown socket protocol", map->map_mname);
-+ return false;
-+ }
-+
-+ /* nope, actually connecting */
-+ for (;;)
-+ {
-+ sock = socket(addr.sa.sa_family, SOCK_STREAM, 0);
-+ if (sock < 0)
-+ {
-+ save_errno = errno;
-+ if (tTd(38, 5))
-+ sm_dprintf("socket map \"%s\": error creating socket: %s\n",
-+ map->map_mname,
-+ sm_errstring(save_errno));
-+# if NETINET6
-+ if (hp != NULL)
-+ freehostent(hp);
-+# endif /* NETINET6 */
-+ return false;
-+ }
-+
-+ if (connect(sock, (struct sockaddr *) &addr, addrlen) >= 0)
-+ break;
-+
-+ /* couldn't connect.... try next address */
-+ save_errno = errno;
-+ p = CurHostName;
-+ CurHostName = at;
-+ if (tTd(38, 5))
-+ sm_dprintf("socket_open (%s): open %s failed: %s\n",
-+ map->map_mname, at, sm_errstring(save_errno));
-+ CurHostName = p;
-+ (void) close(sock);
-+
-+ /* try next address */
-+ if (hp != NULL && hp->h_addr_list[addrno] != NULL)
-+ {
-+ switch (addr.sa.sa_family)
-+ {
-+# if NETINET
-+ case AF_INET:
-+ memmove(&addr.sin.sin_addr,
-+ hp->h_addr_list[addrno++],
-+ INADDRSZ);
-+ break;
-+# endif /* NETINET */
-+
-+# if NETINET6
-+ case AF_INET6:
-+ memmove(&addr.sin6.sin6_addr,
-+ hp->h_addr_list[addrno++],
-+ IN6ADDRSZ);
-+ break;
-+# endif /* NETINET6 */
-+
-+ default:
-+ if (tTd(38, 5))
-+ sm_dprintf("socket map \"%s\": Unknown protocol for %s (%d)\n",
-+ map->map_mname, at,
-+ hp->h_addrtype);
-+# if NETINET6
-+ freehostent(hp);
-+# endif /* NETINET6 */
-+ return false;
-+ }
-+ continue;
-+ }
-+ p = CurHostName;
-+ CurHostName = at;
-+ if (tTd(38, 5))
-+ sm_dprintf("socket map \"%s\": error connecting to socket map: %s\n",
-+ map->map_mname, sm_errstring(save_errno));
-+ CurHostName = p;
-+# if NETINET6
-+ if (hp != NULL)
-+ freehostent(hp);
-+# endif /* NETINET6 */
-+ return false;
-+ }
-+# if NETINET6
-+ if (hp != NULL)
-+ {
-+ freehostent(hp);
-+ hp = NULL;
-+ }
-+# endif /* NETINET6 */
-+ if ((map->map_db1 = (ARBPTR_T) sm_io_open(SmFtStdiofd,
-+ SM_TIME_DEFAULT,
-+ (void *) &sock,
-+ SM_IO_RDWR,
-+ NULL)) == NULL)
-+ {
-+ close(sock);
-+ if (tTd(38, 2))
-+ sm_dprintf("socket_open (%s): failed to create stream: %s\n",
-+ map->map_mname, sm_errstring(errno));
-+ return false;
-+ }
-+
-+ /* Save connection for reuse */
-+ s->s_socketmap = map;
-+ return true;
-+}
-+
-+/*
-+** SOCKET_MAP_FINDCONN -- find a SOCKET connection to the server
-+**
-+** Cache SOCKET connections based on the connection specifier
-+** and PID so we don't have multiple connections open to
-+** the same server for different maps. Need a separate connection
-+** per PID since a parent process may close the map before the
-+** child is done with it.
-+**
-+** Parameters:
-+** conn -- SOCKET map connection specifier
-+**
-+** Returns:
-+** Symbol table entry for the SOCKET connection.
-+*/
-+
-+static STAB *
-+socket_map_findconn(conn)
-+ const char *conn;
-+{
-+ char *format;
-+ char *nbuf;
-+ STAB *SM_NONVOLATILE s = NULL;
-+
-+ format = "%s%c%d";
-+ nbuf = sm_stringf_x(format,
-+ conn,
-+ CONDELSE,
-+ (int) CurrentPid);
-+ if (tTd(38, 20))
-+ sm_dprintf("socket_find_conn '%s'\n", nbuf);
-+ SM_TRY
-+ s = stab(nbuf, ST_SOCKETMAP, ST_ENTER);
-+ SM_FINALLY
-+ sm_free(nbuf);
-+ SM_END_TRY
-+ return s;
-+}
-+
-+/*
-+** SOCKET_MAP_CLOSE -- close the socket
-+*/
-+
-+void
-+socket_map_close(map)
-+ MAP *map;
-+{
-+ STAB *s;
-+ MAP *smap;
-+
-+ if (tTd(38, 20))
-+ sm_dprintf("socket_map_close(%s), pid=%d\n", map->map_file,(int) CurrentPid);
-+
-+ /* Check if already closed */
-+ if (!map->map_db1)
-+ {
-+ if (tTd(38, 20))
-+ sm_dprintf("socket_map_close(%s) already closed\n", map->map_file);
-+ return;
-+ }
-+
-+ sm_io_close((SM_FILE_T *)map->map_db1, SM_TIME_DEFAULT);
-+
-+ /* Mark all the maps that share the connection as closed */
-+ s = socket_map_findconn(map->map_file);
-+
-+ smap = s->s_socketmap;
-+
-+ while (smap != NULL)
-+ {
-+ MAP *next;
-+
-+ if (tTd(38, 2) && smap != map)
-+ sm_dprintf("socket_map_close(%s): closed %s (shared SOCKET connection)\n",
-+ map->map_mname, smap->map_mname);
-+
-+ smap->map_mflags &= ~(MF_OPEN|MF_WRITABLE);
-+ smap->map_db1 = NULL;
-+ next = smap->socket_map_next;
-+ smap->socket_map_next = NULL;
-+ smap = next;
-+ }
-+
-+ s->s_socketmap = NULL;
-+}
-+
-+/*
-+** SOCKET_MAP_LOOKUP -- look up a datum in a SOCKET table
-+*/
-+
-+char *
-+socket_map_lookup(map, name, av, statp)
-+ MAP *map;
-+ char *name;
-+ char **av;
-+ int *statp;
-+{
-+ size_t nettolen;
-+ char *rval = NULL;
-+ SM_FILE_T *f = (SM_FILE_T *)map->map_db1;
-+
-+ if (tTd(38, 20))
-+ sm_dprintf("socket_map_lookup(%s, %s) %s\n",
-+ map->map_mname, name, map->map_file);
-+
-+ nettolen = strlen(map->map_mname) + 1 + strlen(name);
-+ if ((sm_io_fprintf(f, SM_TIME_DEFAULT, "%u:%s %s,",
-+ nettolen, map->map_mname, name) == SM_IO_EOF) || (sm_io_flush(f, SM_TIME_DEFAULT) != 0) ||
-+ (sm_io_error(f)))
-+ {
-+ syserr("socket_map_lookup(%s): failed to send lookup request",
-+ map->map_mname);
-+ *statp = EX_TEMPFAIL;
-+ socket_map_close(map);
-+ }
-+ else
-+ {
-+ size_t replylen;
-+
-+ if (sm_io_fscanf(f, SM_TIME_DEFAULT, "%9u", &replylen) != 1)
-+ {
-+ syserr("socket_map_lookup(%s): failed to read length parameter of reply",
-+ map->map_mname);
-+ *statp = EX_TEMPFAIL;
-+ socket_map_close(map);
-+ }
-+ else
-+ {
-+ /* XXX arbitrary limit for sanity */
-+ if (replylen > 1000000)
-+ {
-+ syserr("socket_map_lookup(%s): reply too long: %u",
-+ map->map_mname, replylen);
-+ /* *statp = EX_PROTOCOL; */
-+ *statp = EX_TEMPFAIL;
-+ socket_map_close(map);
-+ }
-+ else
-+ {
-+ if (sm_io_getc(f, SM_TIME_DEFAULT) != ':')
-+ {
-+ syserr("socket_map_lookup(%s): missing ':' in reply",
-+ map->map_mname);
-+ /* *statp = EX_PROTOCOL; */
-+ *statp = EX_TEMPFAIL;
-+ }
-+ else
-+ {
-+ size_t recvlen;
-+ char *replybuf = (char *) sm_malloc(replylen + 1);
-+ recvlen = sm_io_read(f, SM_TIME_DEFAULT,
-+ replybuf, replylen);
-+ if (recvlen < replylen)
-+ {
-+ syserr("socket_map_lookup(%s): received only %u of %u reply characters",
-+ map->map_mname, recvlen, replylen);
-+ *statp = EX_TEMPFAIL;
-+ socket_map_close(map);
-+ }
-+ else
-+ {
-+ if (sm_io_getc(f, SM_TIME_DEFAULT) != ',')
-+ {
-+ syserr("socket_map_lookup(%s): missing ',' in reply",
-+ map->map_mname);
-+ /* *statp = EX_PROTOCOL; */
-+ *statp = EX_TEMPFAIL;
-+ socket_map_close(map);
-+ }
-+ else
-+ {
-+ char *value;
-+ char *status = replybuf;
-+
-+ replybuf[recvlen] = '\0';
-+ value = strchr(replybuf, ' ');
-+ if (value != NULL)
-+ {
-+ *value = '\0';
-+ value++;
-+ }
-+
-+ if (strcmp(status, "OK") == 0)
-+ {
-+ *statp = EX_OK;
-+
-+ /* collect the return value */
-+ if (bitset(MF_MATCHONLY, map->map_mflags))
-+ rval = map_rewrite(map, name, strlen(name), NULL);
-+ else
-+ rval = map_rewrite(map, value, strlen(value), av);
-+ }
-+ else if(strcmp(status, "NOTFOUND") == 0)
-+ {
-+ *statp = EX_NOTFOUND;
-+ if (tTd(38, 20))
-+ sm_dprintf("socket_map_lookup(%s): %s not found\n",
-+ map->map_mname, name);
-+ }
-+ else
-+ {
-+ if (tTd(38, 5))
-+ sm_dprintf("socket_map_lookup(%s, %s): server returned error: type=%s, reason=%s\n",
-+ map->map_mname, name, status,
-+ value ? value : "");
-+ if ((strcmp(status, "TEMP") == 0) ||
-+ (strcmp(status, "TIMEOUT") == 0))
-+ {
-+ *statp = EX_TEMPFAIL;
-+ }
-+ else if(strcmp(status, "PERM") == 0)
-+ {
-+ *statp = EX_UNAVAILABLE;
-+ }
-+ else
-+ {
-+ *statp = EX_PROTOCOL;
-+ }
-+ }
-+ }
-+ }
-+
-+ sm_free(replybuf);
-+ }
-+ }
-+ }
-+ }
-+
-+ return rval;
-+}
-+
-+
-+#endif /* SOCKETMAP */
-Index: sendmail/sendmail/sendmail/sendmail.h
-diff -u sendmail/sendmail/sendmail/sendmail.h:1.1.1.2 sendmail/sendmail/sendmail/sendmail.h:1.3
---- sendmail/sendmail.h Thu Jan 23 11:50:27 2003
-+++ sendmail/sendmail.h Thu Jan 23 11:51:38 2003
-@@ -1382,6 +1382,9 @@
- #if LDAPMAP
- MAP *sv_lmap; /* Maps for LDAP connection */
- #endif /* LDAPMAP */
-+#if SOCKETMAP
-+ MAP *sv_socketmap; /* Maps for SOCKET connection */
-+#endif /* SOCKETMAP */
- #if MILTER
- struct milter *sv_milter; /* milter filter name */
- #endif /* MILTER */
-@@ -1413,8 +1416,12 @@
- #endif /* MILTER */
- #define ST_QUEUE 15 /* a queue entry */
-
-+#if SOCKETMAP
-+# define ST_SOCKETMAP 16 /* List head of maps for SOCKET connection */
-+#endif /* SOCKETMAP */
-+
- /* This entry must be last */
--#define ST_MCI 16 /* mailer connection info (offset) */
-+#define ST_MCI 17 /* mailer connection info (offset) */
-
- #define s_class s_value.sv_class
- #define s_address s_value.sv_addr
-@@ -1432,6 +1439,9 @@
- #if LDAPMAP
- # define s_lmap s_value.sv_lmap
- #endif /* LDAPMAP */
-+#if SOCKETMAP
-+# define s_socketmap s_value.sv_socketmap
-+#endif /* SOCKETMAP */
- #if MILTER
- # define s_milter s_value.sv_milter
- #endif /* MILTER */
-Index: sendmail/sendmail/sendmail/stab.c
-diff -u sendmail/sendmail/sendmail/stab.c:1.1.1.1 sendmail/sendmail/sendmail/stab.c:1.2
---- sendmail/stab.c Fri Oct 11 14:44:04 2002
-+++ sendmail/stab.c Wed Jan 22 18:57:22 2003
-@@ -173,6 +173,12 @@
- len = sizeof s->s_quegrp;
- break;
-
-+#if SOCKETMAP
-+ case ST_SOCKETMAP:
-+ len = sizeof s->s_socketmap;
-+ break;
-+#endif /* SOCKETMAP */
-+
- default:
- /*
- ** Each mailer has its own MCI stab entry:
diff --git a/mail/sendmail812/files/tls-install.sh b/mail/sendmail812/files/tls-install.sh
deleted file mode 100644
index 1efa8c570a16..000000000000
--- a/mail/sendmail812/files/tls-install.sh
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/bin/sh
-#
-CADIR="${CADIR-${DESTDIR}/etc/mail/certs/CA}"
-FILSEDIR="${FILESDIR-/usr/ports/mail/sendmail/files}"
-REALM=`hostname`
-
-echo "creating: ${CADIR} on ${REALM}"
-for i in certs crl newcerts private ../private
-do
- if test ! -d "${CADIR}/${i}"
- then
- mkdir -p "${CADIR}/${i}"
- fi
-done
-chmod 0700 "${CADIR}/private" "${CADIR}/../private"
-cd "${CADIR}" || exit 65
-
-if test ! -f openssl.cnf
-then
- echo "generating: openssl.cnf"
- sed -e "s=./demoCA=${CADIR}=" /etc/ssl/openssl.cnf > "openssl.cnf"
-fi
-
-if test ! -f "serial"
-then
- echo "generating: serial"
- umask 0022
- echo "01" > "serial"
-fi
-
-if test ! -f "index.txt"
-then
- echo "generating: index.txt"
- umask 0022
- cp /dev/null "index.txt"
-fi
-
-if test ! -f "cacert.pem"
-then
- echo "generating CA"
- umask 0077
- openssl req -new -x509 -config openssl.cnf \
- -keyout private/cakey.pem \
- -out cacert.pem
-fi
-
-if test ! -f "../sendmailcert.pem"
-then
- if test ! -f "../private/sendmailkey.pem"
- then
- echo "creating cert signing request"
- umask 0066
- openssl req -nodes -new -x509 -config openssl.cnf \
- -keyout ../private/sendmailkey.pem \
- -out ../private/sendmailkey.pem
- fi
- if test ! -f "newcsr.pem"
- then
- echo "self signing cert"
- umask 0066
- openssl x509 -x509toreq \
- -in ../private/sendmailkey.pem \
- -signkey ../private/sendmailkey.pem \
- -out newcsr.pem
- fi
- if test ! -f "sendmailcert.pem"
- then
- echo "signing cert"
- openssl ca -config openssl.cnf -policy policy_anything \
- -out ../sendmailcert.pem \
- -infiles newcsr.pem
- rm -f newcsr.pem
- fi
-fi
-
-sed 's/^X//' << 'END-of-files/tls.m4'
-X# links:
-X# http://www.sendmail.org/~gshapiro/
-X# http://www.sendmail.org/~ca/email/starttls.html
-X# http://www.ofb.net/~jheiss/sendmail/tlsandrelay.shtml
-X#
-X# You may need to add this to your sendmail.mc file:
-X
-Xdefine(`confCACERT_PATH', `MAIL_SETTINGS_DIR`'certs')dnl
-Xdefine(`confCACERT', `confCACERT_PATH/CA/cacert.pem')dnl
-Xdefine(`confSERVER_CERT', `confCACERT_PATH/sendmailcert.pem')dnl
-Xdefine(`confSERVER_KEY', `confCACERT_PATH/private/sendmailkey.pem')dnl
-Xdefine(`confCLIENT_CERT', `confCACERT_PATH/sendmailcert.pem')dnl
-Xdefine(`confCLIENT_KEY', `confCACERT_PATH/private/sendmailkey.pem')dnl
-X
-END-of-files/tls.m4
-exit