+++ /dev/null
-#!/bin/sh
-
-# Copyright (c) 1999 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-# $Sendmail: Build,v 8.3 1999/09/23 21:31:12 ca Exp $
-
-exec make OPTIONS="$*"
the answers, is posted to comp.mail.sendmail on the 10th and 25th
of each month.
-$Revision: 1.1.1.1 $, Last updated $Date: 2000/04/02 19:05:36 $
+$Revision: 1.2 $, Last updated $Date: 2000/04/02 19:48:09 $
+++ /dev/null
-
- Installing sendmail
-
-Note: as of sendmail 8.9, a new build architecture is in place that allows
-you to use the "Build" shell script in any of the program directories.
-On many environments this will do everything for you, no fuss, no muss.
-
-1. Read all the README files noted in the INTRODUCTION section of the README
- file in this top-level directory.
-
-2. Create any necessary site configuration build files, as noted in
- devtools/Site/README.
-
-3. In the sendmail/ directory, run "sh Build" (see sendmail/README for
- details).
-
-4. In the cf/cf/ directory (that's not a typo), copy whichever .mc file
- best matches your environment to config.mc, where config can be any
- name. Next, tailor it as explained in cf/README. Then run
- "sh Build config.cf".
-
-5. Back up your current /etc/mail/sendmail.cf and the sendmail binary (whose
- location varies from operating system to operating system, but is usually
- in /usr/sbin or /usr/lib).
-
-6. Install config.cf as /etc/mail/sendmail.cf and install the sendmail binary
- built in step 3 by cd-ing back to sendmail/ and running "sh Build install".
-
-7. For each of the associated sendmail utilities (makemap, mailstats, etc.),
- read the README in the utility's directory. When you are ready to install
- it, back up your installed version and type "sh Build install".
-
-$Revision: 1.1.1.1 $, Last updated $Date: 2000/04/02 19:05:36 $
state. This option and it's use is deprecated and will be removed from a
future version of sendmail.
-$Revision: 1.1.1.1 $, Last updated $Date: 2000/04/02 19:05:36 $
+$Revision: 1.2 $, Last updated $Date: 2000/04/02 19:48:09 $
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-$Revision: 1.1.1.1 $, Last updated $Date: 2000/04/02 19:05:36 $
+$Revision: 1.2 $, Last updated $Date: 2000/04/02 19:48:09 $
-# $Sendmail: Makefile.dist,v 8.9 1999/09/27 21:39:11 gshapiro Exp $
+# $OpenBSD: Makefile,v 1.2 2000/04/02 19:48:09 millert Exp $
-SHELL= /bin/sh
-SUBDIRS= libsmutil libsmdb sendmail mail.local mailstats makemap \
- praliases rmail smrsh vacation
-BUILD= ./Build
-OPTIONS= $(CONFIG) $(FLAGS)
+SUBDIR= libsmutil libsmdb sendmail mailstats makemap praliases smrsh cf/cf
+#SUBDIR+= libmilter mail.local rmail vacation
+.if make(install)
+SUBDIR+= doc/op cf
+.endif
-all: FRC
- @for x in $(SUBDIRS); \
- do \
- (cd $$x; echo Making $@ in:; pwd; \
- $(SHELL) $(BUILD) $(OPTIONS)); \
- done
-
-clean: FRC
- @for x in $(SUBDIRS); \
- do \
- (cd $$x; echo Making $@ in:; pwd; \
- $(SHELL) $(BUILD) $(OPTIONS) $@); \
- done
-
-install: FRC
- @for x in $(SUBDIRS); \
- do \
- (cd $$x; echo Making $@ in:; pwd; \
- $(SHELL) $(BUILD) $(OPTIONS) $@); \
- done
-
-fresh: FRC
- @for x in $(SUBDIRS); \
- do \
- (cd $$x; echo Making $@ in:; pwd; \
- $(SHELL) $(BUILD) $(OPTIONS) -c); \
- done
-
-$(SUBDIRS): FRC
- @cd $@; pwd; \
- $(SHELL) $(BUILD) $(OPTIONS)
-
-FRC:
+.include <bsd.subdir.mk>
--- /dev/null
+# $OpenBSD: Makefile.inc,v 1.1 2000/04/02 19:48:09 millert Exp $
+
+.include <bsd.own.mk>
+.include <bsd.obj.mk>
+
+ENVDEF= -DNEWDB -DMAP_REGEX
+# XXX - adding IPv6 support seems to break IPv4 support in OpenBSD
+#ENVDEF+= -DNETINET6 -DNEEDSGETIPNODE
+.if (${YP} == "yes")
+ENVDEF+=-DNIS
+.endif
+
+.if defined(WANT_LIBWRAP)
+.if (${TCP_WRAPPERS} == "yes")
+ENVDEF+=-DTCPWRAPPERS
+DPADD+= ${LIBWRAP}
+LDADD+= -lwrap
+.endif
+.endif
+
+.if defined(WANT_LIBSMDB)
+LDADD+= -lsmdb
+.if exists(${.CURDIR}/../libsmdb/${__objdir})
+DPADD+= ${.CURDIR}/../libsmdb/${__objdir}/libsmdb.a
+LDFLAGS+=-L${.CURDIR}/../libsmdb/${__objdir}
+.else
+DPADD+= ${.CURDIR}/../libsmdb/libsmdb.a
+LDFLAGS+=-L${.CURDIR}/../libsmdb
+.endif
+.endif
+
+.if defined(WANT_LIBSMUTIL)
+LDADD+= -lsmutil
+.if exists(${.CURDIR}/../libsmutil/${__objdir})
+DPADD+= ${.CURDIR}/../libsmutil/${__objdir}/libsmutil.a
+LDFLAGS+=-L${.CURDIR}/../libsmutil/${__objdir}
+.else
+DPADD+= ${.CURDIR}/../libsmutil/libsmutil.a
+LDFLAGS+=-L${.CURDIR}/../libsmutil
+.endif
+.endif
+
+CFLAGS+=${ENVDEF} -I${.CURDIR}/../sendmail -I${.CURDIR}/../include
+++ /dev/null
-This file contains the PGP keys used to sign the various versions of
-sendmail. You can add them to your PGP keyring using:
-
-PGP 2.X: pgp -ka PGPKEYS
-PGP 5.X: pgpk -a PGPKEYS
-
-Other versions of PGP may require you to separate each key into a
-separate file and add them one at a time.
-
-Type Bits KeyID Created Expires Algorithm Use
-pub 1024 0x16F4CCE9 1999-06-23 ---------- RSA Sign & Encrypt
-f16 Fingerprint16 = 18 A4 51 78 CA 72 D4 A7 ED 80 BA 8A C4 98 71 1D
-uid Sendmail Security <sendmail-security@sendmail.org>
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: PGPfreeware 5.0 for non-commercial use
-
-mQCNAzdxaGsAAAEEALq7JPrdyXCm3DdJEKR9miP8/B9vrferOBoNimPFceDEqCpm
-0RiJtnGhUJwt/HZZhiGDWPYTIa7VajfxiEzJ7LZH+/uXgQFVN27fPwoNKCI+7sr3
-FnRs3Xapojn3d3LZSHagTh+VTuG5LxbP/m//sj2Rw1MMPw1b7sApykAW9MzpAAUR
-tDJTZW5kbWFpbCBTZWN1cml0eSA8c2VuZG1haWwtc2VjdXJpdHlAc2VuZG1haWwu
-b3JnPokAlQMFEDdxaGvAKcpAFvTM6QEB1bsD/jj+vTodXqoJphCrBLwFmwymopZp
-/HHu8o8FURlL6jQ6ihCruCw6PxNMzSdgmnOgyXxyRZIVO1pUyWf/RnS/r09tPLlq
-nZxdAPquhB2pkawvFp+Y///lb92SgfbS3/dtSDDAJ8FO+CDUKS5dKuZ6vSDU6ezH
-BDYjhd6pPYVd5hz3iQCVAwUQN3Fv9XxLZ22gDhVjAQH4BQQAuCNG977A4v0xjQi8
-AJsJmlS5mKMqn/Lw+sl1h4yQwF2vzNDdxhNWjZVziK3lUIUPh86u8m5CSdN2BB1Y
-1RawLvyfpl4b9KtyXxF4fh2BYmygJ4iG+WxhpaT5RS0eFvsSefO7/w13bx5U0Z7A
-YfHMt7+CKHm7bAx3l17g3I9aCMCJAJUDBRA3cXDdzx61AyIyegEBAeZmA/4zCJxF
-aathJ0soRJOcyRDzHKbAqlShF+Mx0tzcwbE3hAZrIqJ3TRK2MbrsBNnkFHPuPF0e
-eKr7TQsXOa+ig57wlHsCOc/fd9jLITjSYKxrQuZz3CrNefPKvv6v6Ctc6TT4GwhC
-zHglLC9Bfy9zgbv2wHswRvQBmRlCaERH3HLb1okAlQMFEDd41z8j5GLUv3ukIQEB
-9WcD/iFFF2kfSTyD+IfcLl4WCaYSeD/q/fAplpOOZWnC9PB1x3YrMHn/H8zd3S5B
-05D8+MR/QL8n8/5P+pyHa4VNRbeX8g8E34ocZf48y6FeqGi8qmcTBJDgqUTO5yMu
-t+b57G2pAIzasGcoZDqC3aJnFKwPjGRxnUFJaxlogrbUYCNOiQCVAwUQN3jwKW9S
-k9ijm6ZVAQEtugP/ewRrMCdhCbWsSUOrYn1a/pfN2KiJbhs0YyOyWbU6RvJiSFY1
-0BNAxYTbymHDOn2UhUhCrUpqatmgCuxmUsoH2Y4AAFC/94/oltwDUfnw6muqqn2K
-7AelRBbJ5wUs65pHu8kfzVB5wJh8eDacKFkK0lqgtRQCE0suhqCSFUfvtzuJAJUD
-BRA3fTCCXx7Ib4gMnlUBAWddA/oD0RKLIkLspmJC3ccmkncviMSv0rME4vY0NIfm
-IC0zsYITlU/E6H/CqVmU4Hmr5hmr5GUNNtrVZ0oLH1PUjobmZcTITJZbQSS2nY02
-N6JZT5BSAwQBfUfSMwURISRQBUOfi1kLqYk3f6UTee37/+Ig2kb388T6ClcXCv82
-FrZuwIkAPwMFEDd9MMTU3njYeCkb2BEC7QAAn2sVWl+Q9a+4a34v827M0O6HpMrL
-AJ9bLmUFO/+pyIRb3brK/v1RtERawIkAlQMFEDd9O7oA8tkJ67sbQQEBipcD/2rE
-vofXLeEeujkhI13qbDL5dEqPHY19eboF29xBCY1kR9Xqbu6G4Q8pgIHUDg/TRK+w
-RdBUjQlDspQEhrM3XEtZ+QJalfk2IoV1Z9uuQM8voYPINnpPe7Q/seibHirMdp4f
-J/xLPs3d5gApNtarxwdFOBY3YkHkkoqza1BxmB2YiQA/AwUQN32KFYMCoaE+3wLq
-EQK1IwCfR+jVCbESixyB0XR6zDsGf8n4GPoAoM3OjreUcSFSl/4kgaV8DbPNLTVn
-iQCVAwUQN32XGgD83u1ILnWNAQGa+AP+KUsOgU8tvJwSiulcU/pXS2gS1N6W54B5
-C3JKioPdgH6lKNO1cOoV6c1ZoG7SFlvsHm2DjRherLEwRhBWkmHlyjLpKW6mYXZ/
-MGLrf74UeTG4bKb0R4As8mLG0z2vqlPNtfyt+8SUoQ2JT0MFRc2FGQChxizenGZS
-B7T1MccjIM+JAHUDBRA3fa3dcslC2OpaI3kBAQhhAv9BkSO1zWkxiWc7uLQjO9lf
-+YhF9f/SX7/6Od6hKo/YRubK8fcozKXlJ64CJ+iGSMrRIZGXKBIyXyRx5Qed14jK
-fGCYzqGv1IpMHIWJPLxJl5Xyi9jIna8yTc6FRWm8aYCJAD8DBRA3gbAczsKIjL9q
-TKERAhdDAJwKqcVkm9TBCmutXxwVTcffjINlBgCgrMqc6UOHlUtZps33xWZLgZh4
-awiJAJUDBRA3g9C+TCpm+b/C9j0BAaJMBACskZxjnZbvDgm0qdvESy5+jcluxTh5
-fUeHDpnkfOP0AUAe8Ykwt8syWOQZ+3Midez8JqTAu+uvNbUckuR5XL8nMYpN06og
-jg1TCgjLito6IptqYUZgWFvGDCdDgC+m8vw7pUbqh59mDTe0X5Q/x9Cu5JxfhxnX
-TNBQ+pI8lLAmsYkAlQMFEDeD0Jt3HZKuiXLHwQEBMZoD/2FaLFJ03tEAfNQhLmSg
-unWVakXz8udE+pY7IWi6LJGu5iwtIDJ/r0nCrJ6/aqzu9JLpGhfTnhPPCXlz4Nfh
-riRz12cv2Rlg+gI3Y0Fiju5eo5TWnu+qB36vQsv73xpfQ7oCmoVY2ZntQVBaf8dy
-FrAdFBf1y33xWo58zRsg2u2h
-=g1qL
------END PGP PUBLIC KEY BLOCK-----
-
-Type Bits KeyID Created Expires Algorithm Use
-pub 1024 0xA39BA655 1999-01-04 ---------- RSA Sign & Encrypt
-f16 Fingerprint16 = 25 73 4C 8E 94 B1 E8 EA EA 9B A4 D6 00 51 C3 71
-uid Sendmail Signing Key/1999 <sendmail@Sendmail.ORG>
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.3a
-
-mQCNAzaRMIoAAAEEAMWVJpGkwKWD6GFDUHtV6AUDzwSAXiWc6UinY7EpCLwFdYu9
-Le06VwQt8H9Xtb/2jrXDV61Wu0IDJub6g7PZxWxU8WHVnMX4aBT5WOCBpwFRme3u
-idwCAbHuEJs12FQ3Tf+4CZ3R9uxlAovRaY6g3fJ7gtAc9HAjMW9Sk9ijm6ZVAAUR
-tDFTZW5kbWFpbCBTaWduaW5nIEtleS8xOTk5IDxzZW5kbWFpbEBTZW5kbWFpbC5P
-Ukc+iQCVAwUQNpEwi29Sk9ijm6ZVAQF3LQQAgpuD3UA69w5FjCAfY1iYBsaGJ31V
-1IyFQbo5fAnVo8PMQzioqbsn2U1y1rRkf//gt8T5oVo6Q3e5oWQF/vcruEP2WUSZ
-1BkV7zDWLsa6octYIEt4Rdr6gBxokzP0/Z7Ck0WOfSxEAGXbHZ6NpbcfNdIZAxhZ
-WPqcem3zEwoK/l2JAJUDBRA2kTK271iWZNQy4Z0BAQltA/9b1Xtp6Sqr8LtBAUax
-ziRYYmlIENgkYJGPrF5iB17d1M+aMyJ1IzdjKHaoa2+WpWYhzT7RalcxkrvXZEN7
-hTC5XqsmkGXeg2oiwJPCVTUoJY0goJKiMXI/zYcLGAxTnYr3rUevr+vOQyXPx6Ld
-AUCXcsD8LFQWR9iQTgTOBVSOhYkAlQMFEDaRMloj5GLUv3ukIQEBjh4D/RbqKENF
-51C6DrwE5IJrpIZ227mQwFzu3olcF3v0sOoHv9Iqw0iebEM8D9z2t6XiGNSgfmQy
-EUhQ2gTLfbkz9lSUjUaH+ziN10SXSd0x63n2xqrk9XaG8YCWJOcMe+N5Gh7UGniS
-UD9XQNBLoqnOL1FpScAC3F+KsH4kCKLQD1KJiQCVAwUQNpEwwXxLZ22gDhVjAQEC
-GAP8Cle48mxG5TcrAglAXs25YBLhHK21tnSWrd8j0PdID7+9AKongjZOKxyAnFkZ
-RNXDArmG+FVA0DAJatiFXikqpgyHAM/QKSCSjBEOru3Og+3qV/oFQjAVPfLQbFPb
-6i1TIWzvYTp9L4TlzqUM3OF51Mx07W1S+qCciozA/0GqFGiJAJUDBRA2kTthAPLZ
-Ceu7G0EBARPzBACbuAlTHMobN3Lw3YvsOUgwWHFLqKXLNTu59ozZUL4da/E+Aszj
-MgE8343pV9Nwm/aHGXRNiAEOftrb+DdU1jcaFgwsrWnXK9NmnpAYbMkoOb8Om1Nx
-E/5u0dIxypXO8ziyQIfkElsOVzhPzct9wZKh4qt2uLGcVWXeFnf23VRb4IkAlAMF
-EDaRU60Gfl7Yv7VlaQEB46QD+IGxaViR7rQv6r1sAZJzxC6vMpMK5tgk/47gC6jm
-8STb2DYvz/5KNYTkUDRB/85Uy8jY8jabkalWBNN6z/Cpod9ysSjSOKNBQ+6MMhXc
-qXWKakxZIa0rIVNEYaRTAbVU4J1aXRdh7BtC2nEqf3SQD3c9HDLA3p1W8g8ZyHwr
-QXqJAJUDBRA2kVJAXx7Ib4gMnlUBAX7IA/4mKF8EGahmbNXA8wcH4K2r6LzRLXsE
-f444U7hWQRW1fCxDJz4DOodUO3aENzzWjfxL8BtoosuDTJeKGXoa+5S9bCmtaksm
-86G20UuDx/vt1Ol+hZFW8q+bSS2bsAKLvXZVDnURtDu6nzdNR6Lt61ahsUDo4nLw
-iiKUZeMdE2S+H4kAdQMFEDaRV+is4VzBBNt7HQEBLbMC/2wuZQqaLrLUm5raynph
-rllKT+mQQSTedTACKjnpT4LE65YYGGFDrIMS151lQ1OVvu0DpGzmQ5b9kFNGp0GZ
-giXndPbvmwPpOn4ONmCo/zZFWryNQKuqPn2EN4rPhngjRokAPwMFEDaRbhPU3njY
-eCkb2BECLnMAn3t8IsH2yr+vd+1IWstXMCUwzBZnAKCtq5l+00/EYeH8PXhrhIIS
-9EquTokAdQMFEDaRvApyyULY6lojeQEBQa8DALEmw8SIvCjwo55yu9p26czt/ohn
-D1IdJPepf1H5X+QY99kUpsxb+Csnz5VSfNz7dSJxvhwsB0gJityk/YX8uOcEfvsK
-NsABSN/fcLCnzlwO0SNGDPJc4KHTFXHfVy4SgA==
-=f3oA
------END PGP PUBLIC KEY BLOCK-----
-
-Type Bits KeyID Created Expires Algorithm Use
-pub 1024 0xD432E19D 1998-03-14 ---------- RSA Sign & Encrypt
-f16 Fingerprint16 = F9 32 40 A1 3B 3A B6 DE B2 98 6A 70 AF 54 9D 26
-uid Sendmail Signing Key/1998 <sendmail@Sendmail.ORG>
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: PGP for Personal Privacy 5.0
-
-mQCNAzUKkdIAAAEEAKvdxY+iy7eLqxP5StbpZuxYNPWLye98bXA8oKwrEm1vy7Xq
-LBg3uNXjlMtwcNW/r+oFu5A++2R+1qC7w/0867C+52D2zkfGRH3hn9Lh6YaA5uIP
-LPbMGB3Tepbtj/lAtOJb7JKdybF7fkxkEUmwhuA5kAo1rKKWNu9YlmTUMuGdAAUT
-tDFTZW5kbWFpbCBTaWduaW5nIEtleS8xOTk4IDxzZW5kbWFpbEBTZW5kbWFpbC5P
-Ukc+iQCVAwUQNQqUqXxLZ22gDhVjAQHaYQQAiFITCRAEKhLlgjcFlehTDmVMFb92
-1jiclN6377xe+A2zEtq4p3R8IwwiVTGeBzs0Zmnrlo+fAdVFYBjIYCtwKVTwd72U
-v6kxX40CjNkx6q264hUjILOumQ2P85/Aqg7wmnK9vM85CkmhKwu7b1OHsY+EFAlo
-U9CWyVjwSQqzHnaJAJUDBRA1CpJ4I+Ri1L97pCEBAcRtA/0czuj3hK7YiVL3zZaV
-EUnqw30auexjm0D+LhPpsHN7OM3im3z4+/4Pv2O2CH7nZhAsgRN9N+qdf3fCVGHq
-Y/ULkdsxKNbPEjSEWI+dqUWj6EyMSewKvBo7Zvljii6tBsM48ohtkWTo4B1/SuJb
-FM5TgXu2PMTgWHsT2DFb82wb/YkAlQMFEDUKkmfBnB0lEtNGHQEBmCwEALZgc6V1
-mvRL/dqtGwdt38Uuw430cdM1Nk0FlkQsGXVWY49A1yrLAcuPQi8wzx4GS0LhtIeo
-vmrQ91DBaKxvxkboqM4orYf7PB5exSS9RQlTN2ezaf6IT9hVJHtXoYxU51Iny7hp
-r5t8L7od0gue9SNsLWjW9PZH1eKz83/g5VJZiQCVAwUQNQqSVu9YlmTUMuGdAQEv
-nwP9GvBao9wPX0r1aplZgkUItDwWGBbF8qQLgX5rM8b8IAxvHboIp8fbCkzhVxI7
-v0IdYc0u1hrY3YfCNNbELu09JEcvtsl3hhmXnalOxCEdjoMUiHSb5f04sTBNOhD6
-IWQqixDizoVzW5XljHBvgxWJhBus/dPJ6hdZPahioVd0oLiJAJUDBRA1CqZRAPLZ
-Ceu7G0EBAYlJBACumnB7zeAOpuj0y9h0Cgh0DleNWnqpHzTus4lbt3vw/cMpKmXt
-nGxMb4HE9rp6CHuuy3NumH9JHa9lwgb0T6bc0Zbc+LX1j0tKMC4BIsfEbFiOMSXU
-P+meyMUGY67VysVEeTqCgG4FqK7yOhnJsxjwDxJTIlrMoYwSSmsF4/R8Y4kAlQMF
-EDULPLgGfl7Yv7VlaQEBWZ0EALAGPhQbVEPTp2Hfm76ZRWjYJ8iDn98znfsHRYhS
-A/yIXF17eDtSkYU/ANOPNT8g5fOCWKjfLTJX4Al78rbHeGeKS+eO21WQCh8AF7Bv
-vZZWJZ0CyNnO++hzyamsOG1Z5Lrt/WQQPK4Jv5ZyqK3f2nGDufHuyQuIXxsdd+BX
-oqp3iQEVAwUQNQwe/ReiaPz3pQGjAQFowAgAk2fARyp4iyRl89ZZHGY09HpRbwQS
-4jeDIEkBPBpSCBXIELgR7UonSoTwHD0nGHuwgdil5Zjl3PAlQJdo47Sh+hLCMoN/
-mg0aI0vSnOxnnVgIcAigzlEAe03R12frWp32SjXJE1GdeFQWlzkk/6BoujKybvI1
-oRr8OeAb8WzwmUr0c4VITEdb/J5c85yriHIuWpqYWIq5gb7evdj6JTKXly3gFp9R
-bwwd2tjlHYu6O7dHuEsmm4n4iK3rEglILvWIoS4kVV80v6IUE3xgLAVf7tnF5iNc
-nXcA386xUBB17zNvJDiUrciX17TuZsIVvIQnB519NN/ZVr1KpHSbLgMyZokBFQMF
-EDUMH1shtWni44zO8QEBGOEH+gKn6blq8L2AJ7Q2Pcw26Do4J9xlRPFKrDgAgy6y
-U9x509y4BeAZ6yn9RV0iGwhgzbdd57QrUpgcYNKGXSC/tJZZj2h3CZ06m1zaGtJ0
-ig0dN7MU9gqZZMLy9f1EZmCwXeZHXL8t8lUMv8KEoq8+vvghCRvDNUgyQpkwcIOh
-rSu9yJ+OeJ8SpucL0ebJE3MmP2JYmqBCBg3pbr8bWvzjZ2Ny40OiyRnuXFP/jC2f
-ll6oMi8rOpWhjTTuHyrWEG9AxI8xeI5WsEOrJHH6stlmXJM1NtlJQ0D3qCdLn81M
-vitLgTPb/xUepRkFdBhZESG5BPDwT5hm1w7m7yhVohcH8AOJAJUDBRA1C3M0THwE
-EmD/AfUBAbzlA/9nDPPyBD9T1ygEHBsS2ZztO7enSk9DaYmt2jsqQ413UnpbhybR
-zZiuHXpqgG1p5GkYjP2Cw1DtT/dHu2nrD6Mf9j/4QYaRi0sdWLMTKVFPDlT+j1G0
-Ag7/yCMhPv2xr3JOLPppCFiYPkdqRfmKnCWdCtrXmBvu4EiLTj1IXtc1WIkAlQMF
-EDUMLbdfHshviAyeVQEBQOUD/0QsDaDnzgcQHbtvJvDM0x+JYuejbvQEXh6k/cDP
-dLIC8XLZMd0uuAWE12SL1pm6J0q6+csKELascFKyOWTRoNrkWC5m1ltgRuyfXq3z
-Ur9SfL0KlfWFLXRsmGRd5V37u5H9kRjeTRlyiOeAcAMzaLunI9dK8sWet4p03GLy
-GOHQiQCVAwUQNQrIVW2DN4pRurLtAQG7gQP6AxTbsJ3Az+bwEgymYYo7EWADJGoB
-e1r48/0YjocxddhcXJSGL5dRNqY8NURSyvw/dDtjH81mVIbRlZR0QS4D2Jp94Q5/
-mrWyqBW6Ah1EFtihncY3o/g1sxEC0hIj0/CklQmNttxeIGt1rRVyKxHa0tYkDtNW
-w+y5xZQSkE0yin2JAJUDBRA1CrJtdMsnjUUcGpkBAQ11A/4rp8Oy2cVbkrHHIxxM
-2dML/tqNOgOGaB5tEISgtpv9xy1sVuEEA5T6rQJefeC0K00M3Mb3Sy4uumSaX3Io
-yTQr3XD3FZ4Q0n0AWR0ppRBvepqINfn/yeNF7268SDIMstQjlD9GzyCobqrR+VLT
-pxF7wXqyHcLyfqQjRiM9ZNTzAokAlQMFEDUKyAd3HZKuiXLHwQEB0+cEAJ308jCg
-rgWPcSstZH8Q8AoQajdxYMqImoQaqxC8zWjX7BK57pEFLelI3uXqkeEyqIGH0Yqc
-SvHQSSe2vLe3DohfGraCL2VK+b3Dw9IOaff4+ZFlxLVsqNiq13Z6aqRuKJ5uNjhI
-0q9PPBZ8xzOMGfa3cMmW18INJvrVyTu3ENXUiQCVAgUQNQqcZHfUAfkkYu7tAQFr
-tAQA45cSUfYgq3d0RGx3RLUL0H+Bku5xMH2YuRJfpEI/Oc0Z1l/G7AfoR0pTqo9p
-uCu21glCUWm4TvUEaGJjT7q2pmcoLO3LCavNVAZHNTPQvjJgu/Z8+290yR9Ln/f8
-4F1/zcRe4Gakq2weDM+h3gH914vXW7FoGJePc1X+azQ7pYCJARUDBRA1DBz15mc5
-PORZW/UBATL3B/0aknENUHmJ6+axITL1ZODUe/KqFmLRgvCl2g///FtMHlMCUyWy
-q+MkyiHyjbgh1eN6gsCHUSHiROQdXMRRSxZm4FVsjznisjybCqzd93lBQQyKJ6XX
-KWu9SjJq/b6yg83byTgHZRW6kwjmDal97kVyHtV1WZBGDJ+v9nCY2tSvqujtNQbJ
-LWrHp447BSIXBBpMkF/J+cbl7yZLiUN8I1SnLYYttmKOtfD33eL41oKT2LK+j8sI
-kCd4XbcGoMJ+DExDVhFeiwwXWzomvTP42Wv0b8DYI+xeuE+AyARxJ5AVbGUBl4sZ
-qVuNMDZWhc0GLpT10RUeJ5HJVAGIWB2fLIsE
-=ljft
------END PGP PUBLIC KEY BLOCK-----
-
-Type Bits KeyID Created Expires Algorithm Use
-pub 1024 0x12D3461D 1997-05-07 ---------- RSA Sign & Encrypt
-f16 Fingerprint16 = CA AE F2 94 3B 1D 41 3C 94 7B 72 5F AE 0B 6A 11
-uid Sendmail Signing Key/1997 <sendmail@Sendmail.ORG>
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: PGP for Personal Privacy 5.0
-
-mQCNAzNwqnIAAAEEAL1KqbRgVm9kp9OHLkKGb1tbT8rwEIeeh8KKSKJyDFiV6lZG
-wbEa8OC5vokXvjsJtJvvhMfrG5OYc1Q1sLzPXXBYzenzXFrPaXDO8F9DE8B5VTuy
-yY7g3LVr0VZYfi+ZsNdOFGNLdwLz6a8GHBHdmAn6z+FKjMSbdMGcHSUS00YdAAUR
-tDFTZW5kbWFpbCBTaWduaW5nIEtleS8xOTk3IDxzZW5kbWFpbEBTZW5kbWFpbC5P
-Ukc+iQCVAwUQM3D1KcGcHSUS00YdAQGKTgP9E9r2jv1hB+q5yvJKyTWHiIS8oU5W
-eLzdoFlRJUw74M5WBh0/AkcTMfv0BpCDMxu4zskDJ7L+urFRIsf9op5w6YjdsM15
-AvuCtWqgExRkdoac9WRCFNZ77WPQ4ul018k9EIpurIPaojLs5j2Q0+9vOXrtJmXj
-S72Ol9nQFU/hl46JAHUDBRAzcoIxrOFcwQTbex0BAXvAAv4yS5fkL38pJTUJrijI
-XhaHLV1Rq3XfTdQ2HuMG+rF9nxdBCz3a/YCWJSPvE11sINDTSni43BwbsXWqaxvs
-UKD2fqgXB88zueY7rOt8rqi+PRMZ95QUFTgUP0kAN2+U2SmJAJUDBRAzcYIwAPLZ
-Ceu7G0EBAdysBAClk5f+3LazjkjGZiEVRPBKyUYJDqx0j9phgVkqWRje9ot/ya4z
-N+Zm8e+MGyIk6BfMi1QluMJUqPGY1p/mvLPMkiKhwYXHG3kymto8CMSF415mLxIP
-/6P3SwCyRzJeEcBxKgXlwDwelj2joa1fWZH+rC1ZuZ5FCaiiyKvjSCqb5okAlQMF
-EDNx7IPhx4Y6UUEd4QEBrfED/0tP5eMU4G4CDEAyV6susGl8WUSJCkfGjK8Z22V1
-vM4TLiVLSf7cec5tE6iau8IzumBgRV2kQWOz0+q1VBOStUOJQCGfwC81ou+74eTt
-ThL8m9oJ44Y0JrQpztW7iBqU0KYsAgf95BtArvTqKqG2kLTlBVbjwb6PBqkyzm3C
-6ZbMiQCVAwUQM3Gq0iluPWNaXACpAQFikwQAxYQKEPFIzF/5SyMiktsuNNLMYolh
-UsNEUpU63+Yxhr9ofK7dMZFwaTHaEnCZ/zhjRRA6R+BjBOmnkD/W7fG/i94naJRV
-rMejqJhfZhHYqbMN07yxGdjV47neghSoN4zddZdfLq4gEPD+MN3rVTDnO+xpHzLP
-4jxqAda/0eKSFQyJAHUDBRAzcZsLcslC2OpaI3kBAX9cAv9K9QaxgI8kjyVJkVxY
-KJuYE9PPXgjmQvqx7gS+HFm97ZTROEYhhNek7EFD+XJpVQ62KlQxNUaWe4VnNmZN
-2QQyvRhNvE0bPC+rBKoi6np6Vha0NqWDA80xos3oswpj/+iJAJUDBRAzcRiTBn5e
-2L+1ZWkBAY5YBACLvAw9AoqvMqnUVR4aXSkzK+s5aQG9hDDHac2FWsG66HLhh+Ux
-HI5Cvnke7CF+qglNzDU7HpoIdDFovRgQkfGnB/I7Cy6ax1aRJpLc+JNXkwbDDcZw
-9sXnMMymNl4xn0vUOyrnT2GIwLwFL/t5JIUqovm3mZ2SpL3FxKNWyxgDX4kAlQMF
-EDNw+VVfHshviAyeVQEBrtsD/AtwAvvAduNZMFL9du224fvVZ16of9P5vLVB6tF3
-WKvo39FsFjOLr1xgZn5TWc09i1sVK6swi8O+IgcNLq7CLxRYaXpTjObbphktDVnU
-2uWwc3wHzFA7nNAT9ACEa7gDc1GxFrJQ6QyjJVK4f2n3EyJxc9E1rBIoCSNnmBHh
-vqJViQCVAwUQM3D6ZHcdkq6JcsfBAQGNFQP8CeATNOacSrL+x7JaFf2AlANLwZAo
-G68VE/JMcUgGBCZdo6cptg1uBFgzWaOVq+aQU7AKkwLmbyMvCX04PS0tswnkSl5w
-DTLgSmmOH5elIWWrv5J9MXrlsniIzc1MSokENMOaKIEWuC4yCgE00nBj8q2GfDRh
-J816g1ndGU9zErmJAJUDBRAzcZZKH9vgQ8ZSyXEBAT6zBACDaXRCrBqqCmjIZ/xN
-EQcXQF6VKoDFfMUXSgvRaJP0LRuBmbRuWQRZe+OIGA7vKWtvPti40bm3O4b8rESG
-MMAxARn2PS7VPfOhrRNaVGV/s3NX8GkrPxYD+MuFVHoI3QKiKa/fzxDYMX3rTh6X
-4ISe4cS5O/J6VCEKIjPvoVVFF4kAlQMFEDNxljgoffu9cgNgzQEBEyoD/3Ca0oBU
-AuCJUsrPyFYVr5r9FYOWtvOZ/b8IynIXjxD2Lin9AlX2ijLFDJR0lbDoBVPM4IVt
-4rb/yr9D71LU3plxKn+G9JdFpNK9IWJGqsn8iRmbnoERbbVzvZHVx6qA4qvRTt8s
-TJYN+ueKng42DVvZVZQLWZv9mdDUKH9i7r7/iQCVAwUQM3EH4IY/IR3IPsbJAQG+
-pgP7B8mo+OP0lN6KRK83pje5wctThDHF7OMW9tSKXMqGUMEa8+GWrOrazyT+5R30
-cOHUnz3iNkjHaO2/3jLZ7VZTrewYGD7VSg5d5RW9PMCSm+MaJiHLVWKxS3exHHWK
-b62c3mao1zRz5Oj468cRXnHABNaLt3CmMVvKUpAi3d/W7V2JARUDBRAzcQGwIbVp
-4uOMzvEBAZc6B/0eqipGA88c3bxT0NXZoQtePdVen6Ub3BJiR72E3YA2kZx4Bi1B
-pcJIAw/HhRx9vkc3EmwJkPCn1o1pnYnuMZTgGYH3KAV6WFsT/Yqp0KaHYLzHLCJP
-CVKI29DClbI+LOw3sHWuG9ZHK/y26ue3Bd16dJzs7Wa3ryyqeZGi3gWijHbtVcgA
-laNicb0QuWcMXsNYy2E62kP7tZIRR88cv3KVOlbEB/qEOZ8tYbk5UaI6ccZfIO2c
-Oyo2xakKmw92DyqRdbNKbf6yFZLPYJbGZHsJeI89m+MyU+av7iIhh/ky1mSrZW63
-dPnQvE6sw2BpFS6L3hmtArLHWJKBSm8N3vobiQCVAwUQM3D5Rb3aj9Y/6n39AQGw
-owP+Iu/HfZLks9GdaTXata1YEwC42GJFxB3+8Pgy+ZOimffkF/CFlYWBthD9Zwqb
-NEQanNqQGLOtHgCX4JFLia+FktAX2hy92ciTcSFG9sVsaEHrWnjQRfh4OhqJa/D6
-rtud9sPWjx7TY2s+8BDZxjgNnq+gTCDnhRKvpsLHl9BogAyJAJUDBRAzcPU2I+Ri
-1L97pCEBAYxXA/0cleagkyPhJZoZ2PfqtB3iN9/OcFLZCC4HDTdtpdOundLMTZe3
-WtjCdETnLCXQGOMghdf9fnuU6Em5xPDnXRi+xvMo1/WN+m5n/xfui6qZtUBrZp2D
-35OUFjD6Wr2DGthKb1263P0pbdcCUAZkvqgTHasJfMeSDZR9bAcz77o7YYkAlQMF
-EDUKj4B8S2dtoA4VYwEBHSkEAMOsCwolhlXpbhG1tz35lxdMa/dBCB+JokHvGH5B
-JZNEARGpjlA7Q6oEYGtpTuIwj2lRqgiS7d3M/qCKL0HlrlMDOcBbNdjC6JZuVgnA
-LEG2m+r6YZlLratpkK9rI/SeSpwz2AfmrC89PI+C9Pcysj+EH4hV8WyETjcNA0le
-5UANiQA/AwUQNNg0q1F+HqlP3KvBEQIVngCguFDiBO3ZJR9RN9L0Vmg+/yMX7KMA
-n2tSLsf98uStHSQOzboE0KgghjybiQCVAwUQM8wrnM7nzgldNyzFAQFfGAP8DWSO
-R5ELTdPUugVgB26FStcadMS44is1JWwRT8NkRiewBP1cvVwS3c6zS75qdXNoAz3g
-UklXw90/CeviKHNA1wHOupsMCxwPqy91Uo5SOT49vTOuHZ5HQxY17WfTgFXUUFx7
-RQTB+ga9BpGedHq0Fm5kfvH4L4Fdn1vOpEmsakg=
-=9d88
------END PGP PUBLIC KEY BLOCK-----
-
-Type Bits KeyID Created Expires Algorithm Use
-pub 1024 0xBF7BA421 1995-02-23 ---------- RSA Sign & Encrypt
-f16 Fingerprint16 = C0 28 E6 7B 13 5B 29 02 6F 7E 43 3A 48 4F 45 29
-uid Eric P. Allman <eric@Sendmail.ORG>
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: PGP for Personal Privacy 5.0
-
-mQCNAy9MzZsAAAEEAK3o3N9W8Ynb47vNtIqUvdjYYl/nEt/hddhumsDNqt/icanP
-7x9VTS1bCfKmAEQ86DSkWRWZmhIpExbcqmuRtixn/RfDHzJ4hU/wAd6kAzUTVIfY
-wLC5NinszKoaqlBWlQkWKW/2GbryLmYIRhIDOKkIBxSgskpShSPkYtS/e6QhAAUR
-tCVFcmljIFAuIEFsbG1hbiA8ZXJpY0BJblJlZmVyZW5jZS5DT00+iQCVAwUQMv+v
-Pr3aj9Y/6n39AQF3hAQApIJUr5W7b1wvi+WVGVc9iWtmKB3U/O7iddjeqeOWCx+P
-6XgD94rkSanFbfCT4Sq8HQNbtTDtBVYFU0SD6GTH5SZ93FUQ6h0OAW5cueHGnfH6
-s+a2N87pPVKxh/brycLvr08to2TvRTbxbebPkF6UWOlurdPI1Ga4kgLZF0Ppwd6J
-AJUDBRAyWFEdXuWsrmbLc90BAaE6BACqO5uGZQ1rLrFxOi9ljDghYmDRLFI0x1ls
-NWh//FAGduRs3N+NemP715N/8vH4n+nY0u0xfPDMi5UklmD1l4EHJlHxNvrXNnQl
-I7gLkkKxvCly/hjbKiMciDtpnUYGa8dgSy/nru6J8QSpOhXbs+UeMsY8xtPYTZqp
-e5fNjWhVJrQjRXJpYyBQLiBBbGxtYW4gPGVyaWNAUmVmZXJlbmNlLkNPTT6JAJUD
-BRAyHkUOgEp1EPeh9ysBAZxGBACWWXNNwG/3fWmGFhDi0eFVSQXbIPK9nOk6/kSM
-5hKqESarPrLsVNapNu5s2BSac4qi6xrrV+4SCEcEkkfESbG/3nXx6ieuxswLim03
-BTHvsceFjjPUN9X+Hny0LEbHbcwACHPq+yGgQ9kEYLmzMM6/9kaIy+56Iy/PbAyT
-ARKGOrQgRXJpYyBQLiBBbGxtYW4gPGVyaWNAVXNlbml4Lk9SRz60IkVyaWMgUC4g
-QWxsbWFuIDxlcmljQFNlbmRtYWlsLk9SRz6JAD8DBRA0qiAaXtpa2zmNWFARAkMb
-AJ9sSKb6Aj1fwF8QyDH5rArzoWOXYgCgj0OcgAVTjMHV1BaAKDvq+dfASKG0JUVy
-aWMgUC4gQWxsbWFuIDxlcmljQENTLkJlcmtlbGV5LkVEVT6JANUDBRAxPmCOSSSp
-RrHt/oUBAVdpBf9fXDKX23m0mI35fy8GkH2n6p+2j+r5fTCsJr0ShtXA1E8BS3XR
-Z9wPPbi925UoT0uBc8bAZhSwMMX19hVKyvo8tjmy3nRhhjfOZKTprjAGHDOQnfce
-UY2URhmM2ELkKioY3jVYnoTSiL5tLXDUfii/frwEG7ZY31LW1YErCKMl4lqlZucK
-XF7n7gijTPebGAYckU2XP1y0n5YZrNq4WQBv+6wgDD4wqtDiyCG1/O2jh7eJ1UDF
-3FvDOEfdcgKoID2JAJUDBRAvbcy3g3t4fqRAn2UBAW2nBACXg7tSyMU+Jj9NBrjg
-DLnYEoKWV0F++dWHqM0WisDOCwU+v51BUP/VJdqEwWc6CdUrbNbTHCVCG/3D0set
-DuvmkxBKpBsljN7gxDTfUEMciCrdtlEh/jJ5YZ1ofSujxIHjYZ6OJg/4x9AgdJ5O
-EsDUvK2fEI3+dFGRYrw2XUOqeokAVQMFEC9SbfUeUtMXXNLGGQEBz58B/AuGcYU/
-mNixrR5QYndJVmarw/0ewfRJMXzYXCn+9TFYy8gul9K6Mu3/zv3Z2BzB92sdsbVC
-rXlcazNrR/gedMGJAJUDBRAvUm2lI+Ri1L97pCEBAdDhA/9YP8KoUDp/YmSekMBU
-4myhSpFsCW5Fs6I07Cwn84Q/hkZ9myG+rGxUltBry2Z7CMcwQABa9D254FjV/BR6
-eVIgADSBIR2U3DSrEgSP0qGdT5yFCrbP5HOge59/b/0CknBlDvBLLD3HW+OrwOaQ
-cF/4gBUnbMJ01gZEY36IFgXsvokAdQMFEC/gXgxqmwnIWCbPjQEBQwIDAJRi8+tW
-be7gQpW5ZSriDbss6J3/dd/WDspD4WnwnoiNMFKzVDVRbZGAMjsSqsLCJSywdIus
-P7eLs0kayCx0ov7UcF/O6N0MYw/jy6NkFtiSND6TqtJ7Pc2SZcjetbpIkA==
-=StEG
------END PGP PUBLIC KEY BLOCK-----
-
-Type Bits KeyID Created Expires Algorithm Use
-sec+ 1024 0xA00E1563 1998-03-07 ---------- RSA Sign & Encrypt
-f16 Fingerprint16 = 66 39 58 9A 83 5F 52 26 88 E4 59 36 5A 94 D9 48
-uid Gregory Neil Shapiro <gshapiro@sendmail.org>
-uid Gregory Neil Shapiro <gshapiro@sendmail.com>
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: PGP for Personal Privacy 5.0
-
-mQCNAzUB04kAAAEEANHOOWZH9BdsPi8071kHB49qWAWL7OjoUk2NpItw5D9o/sRa
-jZbBwtvPSjx+/cC1Nka+apIuXGccjBzpu71DJFLxIYEk+MW33bSgymI19utPS1b7
-yHetCa6T3ggBsdSH3+gLbyK0bt+suRxxiAC6719HqHvUxuGWnHxLZ22gDhVjAAUR
-tCxHcmVnb3J5IE5laWwgU2hhcGlybyA8Z3NoYXBpcm9Ac2VuZG1haWwub3JnPokA
-lQMFEDUB04l8S2dtoA4VYwEBL7gEAIcDsmzwlzI5+KYILkeUmoOWeoOunDZ7ZRv9
-KvATWccEJdcdjGk4VPKtAGYWgPJBweLAaeZBHo5+cB/w4Ho+sPavHJoaXqk20u5T
-AtIv/DUKcPcE6MVvOYuWUsnHGuWDeSke/KKA1uRw7KEn8vDlBYktUres8ifHLGy0
-JM+aEs26iQCVAwUQNQnbcr3aj9Y/6n39AQGzkgQAhcwsoDO9Rl2oQSUYZpvcxUHF
-rroqSQFejRRfTCT2a3ejQDckeFTqT2VcLGv+QH+7sQFnRAlJrTWU6U/BoLsf3qnu
-dSijd2DiiCTQ5F88SBQjlRyxvXpQXOWGlmemmkV6kry/px4MaFAyF/35HCo0Rzd9
-S0brLFgrCiTzAS7/wRCJAJUDBRA1Cd2jI+Ri1L97pCEBAYw4BACh5m75gsGcClEX
-LUcxIOaANG2YNSr9r1lmHxcDq0V3Gpv02IauADL1+DX6o3sD+dX+WJxyAM7F8QBC
-up2ZtADL1uxiGz+AarDT4qzXyUeQnB47tkhPTnlcO60srtgkRKNex+lAuzzbWSAT
-vZpS4C90ZJASwMGr+M73V/66cwKA/4kAlQMFEDUVydtfHshviAyeVQEBwUMD/AoR
-E9p0DSgbPpSdojFok7BEe8fHLwJR31fBWetLOk5nsHuAHWBCasO9bmjgG8vls8YS
-iTkoJAMxXN03i1bRNL5X3F5Ex1HzrkjEsn51Fcx4Jyp3blXlf4yOBN2t+2DM8DfR
-vy1yVrvKtZ1TEhjM0zoG1DqjN8zf/hG23t+1rGZ3iQEVAwUQNRXjouNaWM2W6V8r
-AQEHowf/ZTBh0jzRC+oJHb/uewa/vnufEFeWoGZt5U9KZoKooUcZZ82RyZhzJzC2
-/5zQQQI9vY+Gh/bL+o7Eaj8+FlbXN9N31E/BhxTtR/v2FTr0HHn/kXKriG/Wjwpr
-Rj2hF9fu5HTVD0Bp3A/uQ4bUO9xT7edKGtQWgXEN77/xbD+LGrZ8CTFSohA+WIyr
-tgwL214ASBDv8j++V4lpTkzyJSjuFTL019hsjkeE4FvCXbELfvsVX0SOZK9Q45I+
-sgvsAZ0BBpasfaY47WShYGhTvvp2r/Z8xgy2erw4vhKz3jJCVmkK1cmAM0IvhwFn
-LSYfxI/T/1zEUj+56XTMc4C3dltXfYkAlQMFEDUV9Q08YShHTKshIQEBY7cD/2Rw
-Bu6ZJAoJaGKzbBOwEQG2JV3/o5W0Z/Tfy9x3kUDecgqEKN2M0b9zCkzCprotGNhJ
-3KXvva3XL2H9AlJd5aorcmvNSph38rPlP35Tt3xWXMBrB1CNR79WMZU+Wx1TlJMf
-i8EFURUkjD9WXRsn5P9ncPPKBGcCJ3MfA4LQvvvqiQCVAwUQNRZkreTJ6ktPts0d
-AQGsMwP/beohoVn7bcp9kkYW0d3mAlbZyrDzbi6Q+C0lS9s67g4k/QzWLY8vZAYc
-ywC2KDQjoc1mnw1bJ+S6u5WmMTnfrmXs8vUMpmM3no+ZIlk8FB6tdkKcIu3yuAd9
-CFz62uxnekRRCoIFnWadeZSyxOmdxtO99MUaM9D8Ob1fOH6vPWOJAJUDBRA1GUPT
-vFYqkcU0pUkBAXQVA/42rM5+DyOA2VoCCkYa0VgIuA5ECROFnwigcY8mxQx9D/Xv
-30Z0ePR4Bigur/eXqCC0Tt0cy213SUpED38xsXtmchK2lpCH5RlIwbr2SZKNWGSZ
-jGlSCRbLT2xo+WYxvXcUL0q4NYgG5gXG4lXUf8yyuo/MztQlBkPsoO2SLLX3MIkA
-dQMFEDVqLI6s4VzBBNt7HQEB/asC/igF9ebzNWnIlug1gienj8d31znRL1YKcn0h
-e5b5N2XPIXQ3cOBQxlufuHVZKL0Cir5MSozxnEsavqKSGhGQuEnvv6lbYh0/OJgo
-eB40EDPnPGjv6kcexzOB4rUOYr46w4kAlQMFEDVq3TUpbj1jWlwAqQEBqKQEAL9n
-C6RFsBFabbAw0ScsmW9ir/0Zz28pBmxMkUY8RL9Kk6jEkwCa3phztMao3qGajqXd
-iw5hzfAOdY+eWPXq/sqE2f81uU2TaFCsVq++rAcDqxhZ1p47xfGcBtVBTpgAl+9s
-8h33IsggglCumuhBkyCwOBFZ2JiN+BUAv6LbUvBWiQCVAwUQNYgrcJqnRzvJFyx1
-AQGiCgP+LLh7c6FxqVQbgm3qpwgReYryaQQx8sdksX1gZ6jIEC5gYTDh+vHmUJdi
-16I7Pz02e9R2yOsKU6e+zhCTauHtSM0CGYn9OdLx96WpJv6nul/KI8eztyV6Dl4k
-T8rFbuo0qs8Ib9exDmkdRh78Ihbask69R1w/OwLIlKesOiLo04eJAJUDBRA1x/fK
-P2UweumbYhUBAZCzA/0UQ5AB890HbWnvVHP9PdDT8KpIQYg7wm5aStpinY2/jfwA
-zl+kvaAwL6nTsTJiWNLfZj4rLn0JsG8176/lyl4Lk6QLkbGyBD+/u8tD6yL0NzYW
-lLIBwhxL8W8Fw889OKci72b6rrTcQNNEw2eZiSeTGJBQdZ4quDQZOthwtMEEe4kA
-lQMFEDXQKC8offu9cgNgzQEBXYAEAJSZ+CEGKswFmmQqO2t0WaO9SKZxxXtnGe/Z
-+M8emTESQecZ5oC4Sc+M9c6YE8jSH5CgDD4R5EHKeWXsVfFMV8wetcjgB9AicCnl
-ki2hVT38Rf+b1go4lbKpPjKf+V32Xs/s/kblZ3SX11aOF7pkQCV2W1ebkZ+Tnim2
-Ec+pwLKytCxHcmVnb3J5IE5laWwgU2hhcGlybyA8Z3NoYXBpcm9Ac2VuZG1haWwu
-Y29tPokAlQMFEDUUq258S2dtoA4VYwEBrTQD/A8sNe02YWwDwQx1sHMoDeCN3hjV
-9lCdWlPa1Aj4Wsw4Jgf3Q1x+n2lmAUtov20tXVxtXohCjC0dNNyGZlIOKOXN/R8g
-6g3KkdAhENarH9Fibw/XaXC/VTnvvv5QQWNT3VGUDp9lMj/rUu8LjrxNwANWcSfU
-5mjUg0d0CFmYTqxqiQCVAwUQNRSr6L3aj9Y/6n39AQH0rAP/U8iMjZuwXGr280uC
-FtEpEkSqlNvxFW+C4K+89jluK2o+6zhUu/N73nJM7HHt7kA40FaH9TJfxnTR3VDR
-KbkpmZ1zPfrkgf+fE/rQgKn8enk8fWCMBdEDTjiCjXIoNNLK1Pyv0/x0yWt+n8kY
-RaS4GV/d5nilK7lFx/uISOZmQ3uJARUDBRA1FePa41pYzZbpXysBAYYMCACIMf6P
-Og0RgQS1QVpFrlUR2zQCEIv/ioWNGdXD43FDWkuyPmOGjOY8jpIYi7I2HBLtpbXR
-WNl00ignGWcMhGzdZqK+K55cyDTIC14vGFc7SUKMcQUOEVfyMtytMYvNr+95EBGM
-qlfUYxhoqfkguC3ZCmZvu2exdGndSXuxDA8d0KcjxDRAuIqfh7gekQTEkILf5Xkf
-nSwsEdFwthW/vAWXYSNNF/L8Q5SXVi35ez0qqMJTa1rSzoRGkBKcxplJZ7YQfnBu
-zp25LaeiF66UT9/6tAggKOfkqD/r7UwfVHYGK86HuzAdfepOv+hIrhouZZiXhkFQ
-4ypAkFgaXj1AOgFTiQCVAwUQNRZkweTJ6ktPts0dAQHMqgP8DwJsWJUP7yELDOxc
-x8Zh2EY78w1J94CTcYQPqF8+xaVpFdAt1tw1P6/KW0kjq2arfMW+xleXRhvchB/l
-8kzjmocDIQx6C7x0rf4rwG7ZxulZgqI1NrB8EnIPzPBBeBP4aKdtGOg8S8585iH4
-zrWpW6Z/KOXQcDGge34pdN7JV9uJAJUDBRA1FmuyPGEoR0yrISEBAcsCBAChTZnQ
-nS6PYAYp8OOB7/0evMSug+0PSGkxEzYZVcr/WUgijfsZ+DfVOYtXwKvuL3O+yUeK
-oP3Uqs9wKMTr8tVIv8geoFYoxLuHD3P4EOYxjOI8Yk9/bNRT4E0NoEJQi58OIzwz
-ORBztEhCFLWz/SCBpoXfMpLmplmxEUcHkj0ryokAlQMFEDUZQ9+8ViqRxTSlSQEB
-mKgD/ibbOd/iRJ+cvaGSzns0hsz4nSFJdn2C09Bz4OPlIF6uslaeG7GR/fm7p8Qg
-PPd5907mvMRStaK+gYLv3h50Nz9ckUvPB3erW/Xy7txCk1idI21b2QaAbmAYQ1r1
-HrFQXogDY/Pblj2pMYXC0sX4efQSbc5OTRr6W6ijqxRXNJQkiQCVAwUQNR+ubCPk
-YtS/e6QhAQHiiwQAl9sGXG/TxwGyacjrgG6wTAz/PYhh+0CGDFjyC0wPXQjE/ICI
-6/kjl6fYNhFQdRNPYhfY48TWk9iqIiInpylk5ieLzJD62yrUlXCZH5xx/MA3PzD5
-xczRO74R+4lVxuI/zGXdQMGm+P0ydzAma3gOhyN+85XzzFy/QOtPMihffLeJAHUD
-BRA1aizMrOFcwQTbex0BAZP8Av0d+FY9zxS1okG2rXQFubkDoBREChWnKMSO+y+F
-Kj2rDExoSt7EXn44DQWd8a3nz45u2Csr/JsntN9zr2OjOA3AUEsXyHmHHjDRQlaj
-a5G7aHDRz4zaCDrxGiIMO5d1AfqJAJUDBRA1auWNKW49Y1pcAKkBActRA/4nLsGd
-+N2OAiRhJvCZzLu6xhUEjMHwYJvxtYzcp2R3dFczbtgWKl8BGkeA91Gwm2ESu650
-WOyT5f9GC1T+zSZc8j0voZJOEMBxefrCA4jlwRA51CplYm7nbBaHk1OVER7zUYCB
-olZLkgqCjUA39HvMZ/WhQoIAXpKMpU2zSCtTPYkAlQMFEDWILQyap0c7yRcsdQEB
-TEQEAIElJUWiqoKT9X7TnHHlIHTSDhqVbsQdNjhB9g/hs5Rpl/pgDRCX1o32C2JT
-b1OkjlWMd2RtKFcSCSYTqDKwmnxQfxvo/SgM0Gv3V5dpTlNc35g0gksgJGiozEIO
-/6Hn6GHjrRh4fpRmv8ySHfzeJJq6+JttLy8uRmvywC4FSfp/iQCVAwUQNcf3kD9l
-MHrpm2IVAQGu2AP+MjnlXXhtUH+i1V82j/Az5N+qwWKJbbQK2Qd95oE43BI8ES+8
-0MAuP58oA9XikkcFX6Lqunvv2FRC5hsi+SsSXx67poMsQzk71mqxDR+dY+iCw36O
-BLK2NtITxxAIKQwj79xNqzgsfm3cpti32t+C/kGkYbONonZHz5uhAG+N0jQ=
-=idnw
------END PGP PUBLIC KEY BLOCK-----
-
-$Revision: 1.1.1.1 $, Last updated $Date: 2000/04/02 19:05:36 $
test Some test scripts (currently only for compilation aids).
vacation Source for the vacation program. NOT PART OF SENDMAIL!
-$Revision: 1.1.1.1 $, Last updated $Date: 2000/04/02 19:05:36 $
+$Revision: 1.2 $, Last updated $Date: 2000/04/02 19:48:09 $
--- /dev/null
+# $OpenBSD: Makefile,v 1.1 2000/04/02 19:48:10 millert Exp $
+#
+
+NOOBJ= noobj
+FILES= README
+DIRS= cf domain feature hack m4 mailer ostype sh siteconfig
+
+install:
+ @${INSTALL} -d -o ${BINOWN} -g wheel -m 755 \
+ ${DESTDIR}${SHAREDIR}/sendmail
+ @echo installing ${FILES}
+ @-for i in ${FILES}; do \
+ cmp -s $$i ${DESTDIR}${SHAREDIR}/sendmail/$$i || \
+ ${INSTALL} ${INSTALL_COPY} -o ${BINOWN} -g ${BINGRP} \
+ -m 444 $$i ${DESTDIR}${SHAREDIR}/sendmail/$$i ; \
+ done
+ @echo installing ${DIRS}
+ @-for i in ${DIRS}; do \
+ ${INSTALL} -d -o ${BINOWN} -g wheel -m 755 \
+ ${DESTDIR}${SHAREDIR}/sendmail/$$i; \
+ (cd $$i; for j in *.m[4c] *.sh Makefile; do \
+ if [ -f $$j ]; then \
+ cmp -s $$j ${DESTDIR}${SHAREDIR}/sendmail/$$i/$$j || \
+ ${INSTALL} ${INSTALL_COPY} -o ${BINOWN} -g ${BINGRP} \
+ -m 444 $$j ${DESTDIR}${SHAREDIR}/sendmail/$$i/$$j; \
+ fi; \
+ done); \
+ done
+
+.include <bsd.prog.mk>
8 DNS based blacklists
9 special local rulesets (1 and 2)
-$Revision: 1.1.1.1 $, Last updated $Date: 2000/04/02 19:05:50 $
+$Revision: 1.2 $, Last updated $Date: 2000/04/02 19:48:10 $
+# $OpenBSD: Makefile,v 1.2 2000/04/02 19:48:11 millert Exp $
#
# Makefile for configuration files.
#
#
M4= m4
-CFDIR= ..
+CFDIR= ${.CURDIR}/..
CHMOD= chmod
ROMODE= 444
RM= rm -f
.mc.cf:
$(RM) $@
- $(M4) ${CFDIR}/m4/cf.m4 $*.mc > $@ || ( $(RM) $@ && exit 1 )
+ ( cd ${.CURDIR} && $(M4) ${CFDIR}/m4/cf.m4 ${@:R}.mc > ${.OBJDIR}/$@ )
$(CHMOD) $(ROMODE) $@
-GENERIC=generic-bsd4.4.cf generic-hpux9.cf generic-hpux10.cf \
- generic-linux.cf \
- generic-osf1.cf generic-solaris2.cf \
- generic-sunos4.1.cf generic-ultrix4.cf
-BERKELEY=cs-hpux9.cf cs-osf1.cf cs-solaris2.cf \
- cs-sunos4.1.cf cs-ultrix4.cf \
- s2k-osf1.cf s2k-ultrix4.cf \
- chez.cs.cf huginn.cs.cf mail.cs.cf mail.eecs.cf mailspool.cs.cf \
- python.cs.cf ucbarpa.cf ucbvax.cf vangogh.cs.cf
-OTHER= knecht.cf
-ALL= $(GENERIC) $(BERKELEY) $(OTHER)
+# XXX - need more/better examples!
+ALL= clientproto.cf openbsd-proto.cf courtesan.cf courtesan-nonet.cf \
+ gandalf.cf saruman.cf alatar.cf nettan.cf waldorf.cf lucifier.cf \
+ elbereth.cf corpse.cf knecht.cf
all: $(ALL)
-berkeley: $(BERKELEY)
-generic: $(GENERIC)
-other: $(OTHER)
-
clean cleandir:
$(RM) $(ALL) core
depend install:
+distribution: openbsd-proto.cf
+ ${INSTALL} ${INSTALL_COPY} -o root -g wheel -m 644 openbsd-proto.cf \
+ ${DESTDIR}/etc/mail/sendmail.cf
+
# this is overkill, but....
M4FILES=\
${CFDIR}/domain/Berkeley.EDU.m4 \
${CFDIR}/ostype/uxpds.m4
$(ALL): $(M4FILES)
-$(BERKELEY): $(M4FILES)
-$(GENERIC): $(M4FILES)
-$(OTHER): $(M4FILES)
+
+.include <bsd.prog.mk>
--- /dev/null
+divert(-1)
+#
+# Copyright (c) 1997 SigmaSoft, Th. Lockert
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by SigmaSoft, Th. Lockert
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+VERSIONID(`$OpenBSD: alatar.mc,v 1.1 2000/04/02 19:48:11 millert Exp $')dnl
+OSTYPE(openbsd)dnl
+FEATURE(nullclient, gandalf.$m)dnl
divert(0)dnl
VERSIONID(`$Sendmail: clientproto.mc,v 8.15 1999/02/07 07:26:00 gshapiro Exp $')
-OSTYPE(unknown)
+OSTYPE(openbsd)
FEATURE(nullclient, mailhost.$m)
--- /dev/null
+divert(-1)
+#
+# Copyright (c) 1997 Michael Shalayeff
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by Michael Shalayeff.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+#
+
+VERSIONID(`$OpenBSD: corpse.mc,v 1.1 2000/04/02 19:48:11 millert Exp $')dnl
+
+OSTYPE(openbsd)dnl
+
+define(`confFROM_HEADER', <$g$s>)dnl
+define(`LOCAL_RELAY',`mail.$m')dnl
+define(`_NO_CANONIFY_', 1)dnl
+FEATURE(`always_add_domain')dnl
+FEATURE(`nullclient',`mail.$m')dnl
+
+LOCAL_CONFIG
+S1
+R$- $@ $1@$H user -> user@hub
--- /dev/null
+divert(-1)
+#
+# Sendmail 8 configuration file for lists.courtesan.com.
+#
+
+VERSIONID(`$OpenBSD: courtesan-lists.mc,v 1.1 2000/04/02 19:48:11 millert Exp $')
+OSTYPE(openbsd)
+dnl
+dnl First, we override some default values
+define(`confPRIVACY_FLAGS', `authwarnings, nobodyreturn')dnl
+define(`confTRY_NULL_MX_LIST', `True')dnl
+define(`confSMTP_LOGIN_MSG', `lists.courtesan.com Sendmail $v/$Z/courtesan ready at $b')dnl
+define(`confMAX_HOP', `30')dnl
+define(`confMAX_MIME_HEADER_LENGTH', `256/128')dnl
+dnl
+dnl Next, we define the features we want
+FEATURE(always_add_domain)dnl
+FEATURE(use_cw_file)dnl
+MASQUERADE_AS(courtesan.com)dnl
+FEATURE(masquerade_envelope)dnl
+dnl
+dnl Then, we enumerate which mailers we support
+MAILER(local)
+MAILER(smtp)
+dnl
+dnl Finally, we have the local cf-style goo
+LOCAL_CONFIG
+#
+# Regular expression to reject:
+# * numeric-only localparts from aol.com and msn.com
+# * localparts starting with a digit from juno.com
+# * localparts longer than 20 characters from aol.com
+#
+Kcheckaddress regex -a@MATCH
+ ^([0-9]+<@(aol|msn)\.com|[0-9][^<]*<@juno\.com|.{20}[^<]+<@aol\.com)\.?>
+
+#
+# Names that won't be allowed in a To: line (local-part and domains)
+#
+C{RejectToLocalparts} friend you user
+C{RejectToDomains} public.com the-internet.com
+
+LOCAL_RULESETS
+#
+# Reject some mail based on To: header
+#
+HTo: $>CheckTo
+SCheckTo
+R$={RejectToLocalparts}@$* $#error $: "553 Header error"
+R$*@$={RejectToDomains} $#error $: "553 Header error"
+
+#
+# Enforce valid Message-Id to help stop spammers
+#
+HMessage-Id: $>CheckMessageId
+SCheckMessageId
+R< $+ @ $+ > $@ OK
+R$* $#error $: 553 Header Error
+
+LOCAL_RULESETS
+#
+# Reject mail based on regexp above
+#
+SLocal_check_mail
+R$* $: $>Parse0 $>3 $1
+R$+ $: $(checkaddress $1 $)
+R@MATCH $#error $: "553 Header error"
--- /dev/null
+divert(-1)
+#
+# Sendmail 8 configuration file for a courtesan.com machine in
+# an RFC1597 internal net (ie: no direct connection to outside world).
+#
+
+VERSIONID(`$OpenBSD: courtesan-nonet.mc,v 1.1 2000/04/02 19:48:11 millert Exp $')
+OSTYPE(openbsd)
+dnl
+dnl Pass everything to xerxes.courtesan.com for processing
+FEATURE(nullclient, `xerxes.courtesan.com')dnl
--- /dev/null
+divert(-1)
+#
+# Sendmail 8 configuration file for courtesan.com.
+#
+
+VERSIONID(`$OpenBSD: courtesan.mc,v 1.1 2000/04/02 19:48:11 millert Exp $')
+OSTYPE(openbsd)
+dnl
+dnl First, we override some default values
+define(`confTRY_NULL_MX_LIST', `True')dnl
+define(`confSMTP_LOGIN_MSG', `$m Sendmail $v/$Z/courtesan ready at $b')dnl
+define(`confMAX_HOP', `20')dnl
+define(`confMAX_MIME_HEADER_LENGTH', `256/128')dnl
+dnl
+dnl Next, we define the features we want
+FEATURE(nouucp, `reject')dnl
+FEATURE(always_add_domain)dnl
+FEATURE(use_cw_file)dnl
+FEATURE(redirect)dnl
+MASQUERADE_AS(courtesan.com)dnl
+FEATURE(masquerade_envelope)dnl
+FEATURE(mailnametable)dnl
+FEATURE(access_db)dnl
+FEATURE(blacklist_recipients)dnl
+dnl
+dnl Then, we enumerate which mailers we support
+MAILER(local)
+MAILER(smtp)
+dnl
+dnl Finally, we have the local cf-style goo
+LOCAL_CONFIG
+#
+# Regular expression to reject:
+# * numeric-only localparts from aol.com and msn.com
+# * localparts starting with a digit from juno.com
+# * localparts longer than 20 characters from aol.com
+#
+Kcheckaddress regex -a@MATCH
+ ^([0-9]+<@(aol|msn)\.com|[0-9][^<]*<@juno\.com|.{20}[^<]+<@aol\.com)\.?>
+
+#
+# Names that won't be allowed in a To: line (local-part and domains)
+#
+C{RejectToLocalparts} friend you user
+C{RejectToDomains} public.com the-internet.com
+
+LOCAL_RULESETS
+#
+# Reject some mail based on To: header
+#
+HTo: $>CheckTo
+SCheckTo
+R$={RejectToLocalparts}@$* $#error $: "553 Header error"
+R$*@$={RejectToDomains} $#error $: "553 Header error"
+
+#
+# Enforce valid Message-Id to help stop spammers
+#
+HMessage-Id: $>CheckMessageId
+SCheckMessageId
+R< $+ @ $+ > $@ OK
+R$* $#error $: 553 Header Error
+
+LOCAL_RULESETS
+#
+# Reject mail based on regexp above
+#
+SLocal_check_mail
+R$* $: $>Parse0 $>3 $1
+R$+ $: $(checkaddress $1 $)
+R@MATCH $#error $: "553 Header error"
--- /dev/null
+divert(-1)
+#
+# Copyright (c) 1997 Ken Stailey
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by SigmaSoft, Th. Lockert
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+VERSIONID(`$OpenBSD: elbereth.mc,v 1.1 2000/04/02 19:48:11 millert Exp $')dnl
+OSTYPE(openbsd)dnl
+MASQUERADE_AS(primark.com)dnl
+FEATURE(masquerade_envelope)dnl
+define(`SMART_HOST', `mailhost.disclosure.com')
+MAILER(local)dnl
+MAILER(smtp)dnl
+
+Cw elbereth elbereth.primark.com elbereth.disclosure.com localhost localhost.primark.com localhost.disclosure.com
--- /dev/null
+divert(-1)
+#
+# Copyright (c) 1996 SigmaSoft, Th. Lockert
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by SigmaSoft, Th. Lockert
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+VERSIONID(`$OpenBSD: gandalf.mc,v 1.1 2000/04/02 19:48:11 millert Exp $')dnl
+OSTYPE(openbsd)dnl
+DOMAIN(sigmasoft)dnl
+MASQUERADE_AS(SigmaSoft.COM)dnl
+FEATURE(allmasquerade)dnl
+FEATURE(local_procmail)dnl
+FEATURE(access_db)dnl
+define(`confAUTO_REBUILD', True)dnl
+MAILER(local)dnl
+MAILER(smtp)dnl
+MAILER(procmail)dnl
+
+Cw SigmaSoft.COM
+
+LOCAL_CONFIG
+#
+# Regular expression to reject:
+# * numeric-only localparts from aol.com and msn.com
+# * localparts starting with a digit from juno.com
+# * localparts longer than 10 characters from aol.com
+#
+Kcheckaddress regex -a@MATCH
+ ^([0-9]+<@(aol|msn)\.com|[0-9][^<]*<@juno\.com|.{10}[^<]+<@aol\.com)\.?>
+
+#
+# Names that won't be allowed in a To: line (local-part and domains)
+#
+C{RejectToLocalparts} friend you
+C{RejectToDomains} public.com
+
+LOCAL_RULESETS
+HTo: $>CheckTo
+
+SCheckTo
+R$={RejectToLocalparts}@$* $#error $: "553 Header error"
+R$*@$={RejectToDomains} $#error $: "553 Header error"
+
+HMessage-Id: $>CheckMessageId
+
+SCheckMessageId
+R< $+ @ $+ > $@ OK
+R$* $#error $: "553 Header error"
+
+LOCAL_RULESETS
+SLocal_check_mail
+# check address against various regex checks
+R$* $: $>Parse0 $>3 $1
+R$+ $: $(checkaddress $1 $)
+R@MATCH $#error $: "553 Header error"
+++ /dev/null
-#
-# Copyright (c) 1998-2000 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-# Copyright (c) 1983, 1995 Eric P. Allman. All rights reserved.
-# Copyright (c) 1988, 1993
-# The Regents of the University of California. All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-
-######################################################################
-######################################################################
-#####
-##### SENDMAIL CONFIGURATION FILE
-#####
-##### built by gshapiro@horsey.gshapiro.net on Mon Mar 6 11:41:25 PST 2000
-##### in /usr/local/src/sendmail/devel/OpenSource/sendmail-8.10.0/cf/cf
-##### using ../ as configuration include directory
-#####
-######################################################################
-######################################################################
-
-##### $Id: generic-bsd4.4.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-##### $Id: generic-bsd4.4.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-##### $Id: generic-bsd4.4.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-##### $Id: generic-bsd4.4.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-##### $Id: generic-bsd4.4.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-##### $Id: generic-bsd4.4.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-##### $Id: generic-bsd4.4.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-
-
-##### $Id: generic-bsd4.4.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-
-# level 9 config file format
-V9/Berkeley
-
-# override file safeties - setting this option compromises system security,
-# addressing the actual file configuration problem is preferred
-# need to set this before any file actions are encountered in the cf file
-#O DontBlameSendmail=safe
-
-# default LDAP map specification
-# need to set this now before any LDAP maps are defined
-#O LDAPDefaultSpec=-h localhost
-
-##################
-# local info #
-##################
-
-Cwlocalhost
-# file containing names of hosts for which we receive email
-Fw/etc/mail/local-host-names
-
-# my official domain name
-# ... define this only if sendmail cannot automatically determine your domain
-#Dj$w.Foo.COM
-
-CP.
-
-# "Smart" relay host (may be null)
-DS
-
-
-# operators that cannot be in local usernames (i.e., network indicators)
-CO @ % !
-
-# a class with just dot (for identifying canonical names)
-C..
-
-# a class with just a left bracket (for identifying domain literals)
-C[[
-
-
-# Resolve map (to check if a host exists in check_mail)
-Kresolve host -a<OK> -T<TEMP>
-
-# Hosts that will permit relaying ($=R)
-FR-o /etc/mail/relay-domains
-
-
-# who I send unqualified names to (null means deliver locally)
-DR
-
-# who gets all local email traffic ($R has precedence for unqualified names)
-DH
-
-# dequoting map
-Kdequote dequote
-
-# class E: names that should be exposed as from this host, even if we masquerade
-# class L: names that should be delivered locally, even if we have a relay
-# class M: domains that should be converted to $M
-# class N: domains that should not be converted to $M
-#CL root
-CEroot
-
-# who I masquerade as (null for no masquerading) (see also $=M)
-DM
-
-# my name for error messages
-DnMAILER-DAEMON
-
-
-CPREDIRECT
-
-# Configuration version number
-DZ8.10.0
-
-
-###############
-# Options #
-###############
-
-# strip message body to 7 bits on input?
-O SevenBitInput=False
-
-# 8-bit data handling
-O EightBitMode=pass8
-
-# wait for alias file rebuild (default units: minutes)
-O AliasWait=10
-
-# location of alias file
-O AliasFile=/etc/mail/aliases
-
-# minimum number of free blocks on filesystem
-O MinFreeBlocks=100
-
-# maximum message size
-#O MaxMessageSize=1000000
-
-# substitution for space (blank) characters
-O BlankSub=.
-
-# avoid connecting to "expensive" mailers on initial submission?
-O HoldExpensive=False
-
-# checkpoint queue runs after every N successful deliveries
-#O CheckpointInterval=10
-
-# default delivery mode
-O DeliveryMode=background
-
-# automatically rebuild the alias database?
-# NOTE: There is a potential for a denial of service attack if this is set.
-# This option is deprecated and will be removed from a future version.
-#O AutoRebuildAliases=False
-
-# error message header/file
-#O ErrorHeader=/etc/mail/error-header
-
-# error mode
-#O ErrorMode=print
-
-# save Unix-style "From_" lines at top of header?
-#O SaveFromLine=False
-
-# temporary file mode
-O TempFileMode=0600
-
-# match recipients against GECOS field?
-#O MatchGECOS=False
-
-# maximum hop count
-#O MaxHopCount=17
-
-# location of help file
-O HelpFile=/etc/mail/helpfile
-
-# ignore dots as terminators in incoming messages?
-#O IgnoreDots=False
-
-# name resolver options
-#O ResolverOptions=+AAONLY
-
-# deliver MIME-encapsulated error messages?
-O SendMimeErrors=True
-
-# Forward file search path
-O ForwardPath=$z/.forward.$w+$h:$z/.forward+$h:$z/.forward.$w:$z/.forward
-
-# open connection cache size
-O ConnectionCacheSize=2
-
-# open connection cache timeout
-O ConnectionCacheTimeout=5m
-
-# persistent host status directory
-#O HostStatusDirectory=.hoststat
-
-# single thread deliveries (requires HostStatusDirectory)?
-#O SingleThreadDelivery=False
-
-# use Errors-To: header?
-O UseErrorsTo=False
-
-# log level
-O LogLevel=9
-
-# send to me too, even in an alias expansion?
-#O MeToo=True
-
-# verify RHS in newaliases?
-O CheckAliases=False
-
-# default messages to old style headers if no special punctuation?
-O OldStyleHeaders=True
-
-# SMTP daemon options
-O DaemonPortOptions=Name=MTA
-O DaemonPortOptions=Port=587, Name=MSA, M=E
-
-# SMTP client options
-#O ClientPortOptions=Address=0.0.0.0
-
-# privacy flags
-O PrivacyOptions=authwarnings
-
-# who (if anyone) should get extra copies of error messages
-#O PostmasterCopy=Postmaster
-
-# slope of queue-only function
-#O QueueFactor=600000
-
-# queue directory
-O QueueDirectory=/var/spool/mqueue
-
-# timeouts (many of these)
-#O Timeout.initial=5m
-#O Timeout.connect=5m
-#O Timeout.iconnect=5m
-#O Timeout.helo=5m
-#O Timeout.mail=10m
-#O Timeout.rcpt=1h
-#O Timeout.datainit=5m
-#O Timeout.datablock=1h
-#O Timeout.datafinal=1h
-#O Timeout.rset=5m
-#O Timeout.quit=2m
-#O Timeout.misc=2m
-#O Timeout.command=1h
-#O Timeout.ident=5s
-#O Timeout.fileopen=60s
-#O Timeout.control=2m
-O Timeout.queuereturn=5d
-#O Timeout.queuereturn.normal=5d
-#O Timeout.queuereturn.urgent=2d
-#O Timeout.queuereturn.non-urgent=7d
-O Timeout.queuewarn=4h
-#O Timeout.queuewarn.normal=4h
-#O Timeout.queuewarn.urgent=1h
-#O Timeout.queuewarn.non-urgent=12h
-#O Timeout.hoststatus=30m
-#O Timeout.resolver.retrans=5s
-#O Timeout.resolver.retrans.first=5s
-#O Timeout.resolver.retrans.normal=5s
-#O Timeout.resolver.retry=4
-#O Timeout.resolver.retry.first=4
-#O Timeout.resolver.retry.normal=4
-
-# should we not prune routes in route-addr syntax addresses?
-#O DontPruneRoutes=False
-
-# queue up everything before forking?
-O SuperSafe=True
-
-# status file
-O StatusFile=/var/log/sendmail.st
-
-# time zone handling:
-# if undefined, use system default
-# if defined but null, use TZ envariable passed in
-# if defined and non-null, use that info
-#O TimeZoneSpec=
-
-# default UID (can be username or userid:groupid)
-#O DefaultUser=mailnull
-
-# list of locations of user database file (null means no lookup)
-#O UserDatabaseSpec=/etc/mail/userdb
-
-# fallback MX host
-#O FallbackMXhost=fall.back.host.net
-
-# if we are the best MX host for a site, try it directly instead of config err
-#O TryNullMXList=False
-
-# load average at which we just queue messages
-#O QueueLA=8
-
-# load average at which we refuse connections
-#O RefuseLA=12
-
-# maximum number of children we allow at one time
-#O MaxDaemonChildren=12
-
-# maximum number of new connections per second
-#O ConnectionRateThrottle=3
-
-# work recipient factor
-#O RecipientFactor=30000
-
-# deliver each queued job in a separate process?
-#O ForkEachJob=False
-
-# work class factor
-#O ClassFactor=1800
-
-# work time factor
-#O RetryFactor=90000
-
-# shall we sort the queue by hostname first?
-#O QueueSortOrder=priority
-
-# minimum time in queue before retry
-#O MinQueueAge=30m
-
-# default character set
-#O DefaultCharSet=iso-8859-1
-
-# service switch file (ignored on Solaris, Ultrix, OSF/1, others)
-#O ServiceSwitchFile=/etc/mail/service.switch
-
-# hosts file (normally /etc/hosts)
-#O HostsFile=/etc/hosts
-
-# dialup line delay on connection failure
-#O DialDelay=10s
-
-# action to take if there are no recipients in the message
-#O NoRecipientAction=add-to-undisclosed
-
-# chrooted environment for writing to files
-#O SafeFileEnvironment=/arch
-
-# are colons OK in addresses?
-#O ColonOkInAddr=True
-
-# how many jobs can you process in the queue?
-#O MaxQueueRunSize=10000
-
-# shall I avoid expanding CNAMEs (violates protocols)?
-#O DontExpandCnames=False
-
-# SMTP initial login message (old $e macro)
-O SmtpGreetingMessage=$j Sendmail $v/$Z; $b
-
-# UNIX initial From header format (old $l macro)
-O UnixFromLine=From $g $d
-
-# From: lines that have embedded newlines are unwrapped onto one line
-#O SingleLineFromHeader=False
-
-# Allow HELO SMTP command that does not include a host name
-#O AllowBogusHELO=False
-
-# Characters to be quoted in a full name phrase (@,;:\()[] are automatic)
-#O MustQuoteChars=.
-
-# delimiter (operator) characters (old $o macro)
-O OperatorChars=.:%@!^/[]+
-
-# shall I avoid calling initgroups(3) because of high NIS costs?
-#O DontInitGroups=False
-
-# are group-writable :include: and .forward files (un)trustworthy?
-#O UnsafeGroupWrites=True
-
-# where do errors that occur when sending errors get sent?
-#O DoubleBounceAddress=postmaster
-
-# where to save bounces if all else fails
-#O DeadLetterDrop=/var/tmp/dead.letter
-
-# what user id do we assume for the majority of the processing?
-#O RunAsUser=sendmail
-
-# maximum number of recipients per SMTP envelope
-#O MaxRecipientsPerMessage=100
-
-# shall we get local names from our installed interfaces?
-#O DontProbeInterfaces=False
-
-# Return-Receipt-To: header implies DSN request
-#O RrtImpliesDsn=False
-
-# override connection address (for testing)
-#O ConnectOnlyTo=0.0.0.0
-
-# Trusted user for file ownership and starting the daemon
-#O TrustedUser=root
-
-# Control socket for daemon management
-#O ControlSocketName=/var/spool/mqueue/.control
-
-# Maximum MIME header length to protect MUAs
-#O MaxMimeHeaderLength=0/0
-
-# Maximum length of the sum of all headers
-O MaxHeadersLength=32768
-
-# Maximum depth of alias recursion
-#O MaxAliasRecursion=10
-
-# location of pid file
-#O PidFile=/var/run/sendmail.pid
-
-# Prefix string for the process title shown on 'ps' listings
-#O ProcessTitlePrefix=prefix
-
-# Data file (df) memory-buffer file maximum size
-#O DataFileBufferSize=4096
-
-# Transcript file (xf) memory-buffer file maximum size
-#O XscriptFileBufferSize=4096
-
-# list of authentication mechanisms
-#O AuthMechanisms=GSSAPI KERBEROS_V4 DIGEST-MD5 CRAM-MD5
-
-# default authentication information for outgoing connections
-#O DefaultAuthInfo=/etc/mail/default-auth-info
-
-# try to authenticate? (Try when available/only when Authenticated)
-#O AuthOptions=T
-
-
-
-
-
-
-###########################
-# Message precedences #
-###########################
-
-Pfirst-class=0
-Pspecial-delivery=100
-Plist=-30
-Pbulk=-60
-Pjunk=-100
-
-#####################
-# Trusted users #
-#####################
-
-# this is equivalent to setting class "t"
-#Ft/etc/mail/trusted-users
-Troot
-Tdaemon
-Tuucp
-
-#########################
-# Format of headers #
-#########################
-
-H?P?Return-Path: <$g>
-HReceived: $?sfrom $s $.$?_($?s$|from $.$_)
- $.$?{auth_type}(authenticated)
- $.by $j ($v/$Z)$?r with $r$. id $i$?u
- for $u; $|;
- $.$b
-H?D?Resent-Date: $a
-H?D?Date: $a
-H?F?Resent-From: $?x$x <$g>$|$g$.
-H?F?From: $?x$x <$g>$|$g$.
-H?x?Full-Name: $x
-# HPosted-Date: $a
-# H?l?Received-Date: $b
-H?M?Resent-Message-Id: <$t.$i@$j>
-H?M?Message-Id: <$t.$i@$j>
-
-#\f
-######################################################################
-######################################################################
-#####
-##### REWRITING RULES
-#####
-######################################################################
-######################################################################
-
-############################################
-### Ruleset 3 -- Name Canonicalization ###
-############################################
-Scanonify=3
-
-# handle null input (translate to <@> special case)
-R$@ $@ <@>
-
-# strip group: syntax (not inside angle brackets!) and trailing semicolon
-R$* $: $1 <@> mark addresses
-R$* < $* > $* <@> $: $1 < $2 > $3 unmark <addr>
-R@ $* <@> $: @ $1 unmark @host:...
-R$* :: $* <@> $: $1 :: $2 unmark node::addr
-R:include: $* <@> $: :include: $1 unmark :include:...
-R$* [ IPv6 $- ] <@> $: $1 [ IPv6 $2 ] unmark IPv6 addr
-R$* : $* [ $* ] $: $1 : $2 [ $3 ] <@> remark if leading colon
-R$* : $* <@> $: $2 strip colon if marked
-R$* <@> $: $1 unmark
-R$* ; $1 strip trailing semi
-R$* < $* ; > $1 < $2 > bogus bracketed semi
-
-# null input now results from list:; syntax
-R$@ $@ :; <@>
-
-# strip angle brackets -- note RFC733 heuristic to get innermost item
-R$* $: < $1 > housekeeping <>
-R$+ < $* > < $2 > strip excess on left
-R< $* > $+ < $1 > strip excess on right
-R<> $@ < @ > MAIL FROM:<> case
-R< $+ > $: $1 remove housekeeping <>
-
-# strip route address <@a,@b,@c:user@d> -> <user@d>
-R@ $+ , $+ $2
-R@ $+ : $+ $2
-
-# find focus for list syntax
-R $+ : $* ; @ $+ $@ $>Canonify2 $1 : $2 ; < @ $3 > list syntax
-R $+ : $* ; $@ $1 : $2; list syntax
-
-# find focus for @ syntax addresses
-R$+ @ $+ $: $1 < @ $2 > focus on domain
-R$+ < $+ @ $+ > $1 $2 < @ $3 > move gaze right
-R$+ < @ $+ > $@ $>Canonify2 $1 < @ $2 > already canonical
-
-# do some sanity checking
-R$* < @ $* : $* > $* $1 < @ $2 $3 > $4 nix colons in addrs
-
-# convert old-style addresses to a domain-based address
-R$- ! $+ $@ $>Canonify2 $2 < @ $1 .UUCP > resolve uucp names
-R$+ . $- ! $+ $@ $>Canonify2 $3 < @ $1 . $2 > domain uucps
-R$+ ! $+ $@ $>Canonify2 $2 < @ $1 .UUCP > uucp subdomains
-
-# if we have % signs, take the rightmost one
-R$* % $* $1 @ $2 First make them all @s.
-R$* @ $* @ $* $1 % $2 @ $3 Undo all but the last.
-R$* @ $* $@ $>Canonify2 $1 < @ $2 > Insert < > and finish
-
-# else we must be a local name
-R$* $@ $>Canonify2 $1
-
-
-################################################
-### Ruleset 96 -- bottom half of ruleset 3 ###
-################################################
-
-SCanonify2=96
-
-# handle special cases for local names
-R$* < @ localhost > $* $: $1 < @ $j . > $2 no domain at all
-R$* < @ localhost . $m > $* $: $1 < @ $j . > $2 local domain
-R$* < @ localhost . UUCP > $* $: $1 < @ $j . > $2 .UUCP domain
-
-# check for IPv6 domain literal (save quoted form)
-R$* < @ [ IPv6 $- ] > $* $: $2 $| $1 < @@ [ $(dequote $2 $) ] > $3 mark IPv6 addr
-R$- $| $* < @@ $=w > $* $: $2 < @ $j . > $4 self-literal
-R$- $| $* < @@ [ $+ ] > $* $@ $2 < @ [ IPv6 $1 ] > $4 canon IP addr
-
-# check for IPv4 domain literal
-R$* < @ [ $+ ] > $* $: $1 < @@ [ $2 ] > $3 mark [a.b.c.d]
-R$* < @@ $=w > $* $: $1 < @ $j . > $3 self-literal
-R$* < @@ $+ > $* $@ $1 < @ $2 > $3 canon IP addr
-
-
-
-
-
-# if really UUCP, handle it immediately
-
-# try UUCP traffic as a local address
-R$* < @ $+ . UUCP > $* $: $1 < @ $[ $2 $] . UUCP . > $3
-R$* < @ $+ . . UUCP . > $* $@ $1 < @ $2 . > $3
-
-# hostnames ending in class P are always canonical
-R$* < @ $* $=P > $* $: $1 < @ $2 $3 . > $4
-R$* < @ $* $~P > $* $: $&{daemon_flags} $| $1 < @ $2 $3 > $4
-R$* CC $* $| $* $: $3
-# pass to name server to make hostname canonical
-R$* $| $* < @ $* > $* $: $2 < @ $[ $3 $] > $4
-R$* $| $* $: $2
-
-# local host aliases and pseudo-domains are always canonical
-R$* < @ $=w > $* $: $1 < @ $2 . > $3
-R$* < @ $=M > $* $: $1 < @ $2 . > $3
-R$* < @ $* . . > $* $1 < @ $2 . > $3
-
-
-##################################################
-### Ruleset 4 -- Final Output Post-rewriting ###
-##################################################
-Sfinal=4
-
-R$* <@> $@ handle <> and list:;
-
-# strip trailing dot off possibly canonical name
-R$* < @ $+ . > $* $1 < @ $2 > $3
-
-# eliminate internal code
-R$* < @ *LOCAL* > $* $1 < @ $j > $2
-
-# externalize local domain info
-R$* < $+ > $* $1 $2 $3 defocus
-R@ $+ : @ $+ : $+ @ $1 , @ $2 : $3 <route-addr> canonical
-R@ $* $@ @ $1 ... and exit
-
-# 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 @ $2 u%host@host => u@host
-
-
-
-##############################################################
-### Ruleset 97 -- recanonicalize and call ruleset zero ###
-### (used for recursive calls) ###
-##############################################################
-
-SRecurse=97
-R$* $: $>canonify $1
-R$* $@ $>parse $1
-
-
-######################################
-### Ruleset 0 -- Parse Address ###
-######################################
-
-Sparse=0
-
-R$* $: $>Parse0 $1 initial parsing
-R<@> $#local $: <@> special case error msgs
-R$* $: $>ParseLocal $1 handle local hacks
-R$* $: $>Parse1 $1 final parsing
-
-#
-# Parse0 -- do initial syntax checking and eliminate local addresses.
-# This should either return with the (possibly modified) input
-# or return with a #error mailer. It should not return with a
-# #mailer other than the #error mailer.
-#
-
-SParse0
-R<@> $@ <@> special case error msgs
-R$* : $* ; <@> $#error $@ 5.1.3 $: "553 List:; syntax illegal for recipient addresses"
-R@ <@ $* > < @ $1 > catch "@@host" bogosity
-R<@ $+> $#error $@ 5.1.3 $: "553 User address required"
-R$* $: <> $1
-R<> $* < @ [ $+ ] > $* $1 < @ [ $2 ] > $3
-R<> $* <$* : $* > $* $#error $@ 5.1.3 $: "553 Colon illegal in host name part"
-R<> $* $1
-R$* < @ . $* > $* $#error $@ 5.1.2 $: "553 Invalid host name"
-R$* < @ $* .. $* > $* $#error $@ 5.1.2 $: "553 Invalid host name"
-
-# now delete the local info -- note $=O to find characters that cause forwarding
-R$* < @ > $* $@ $>Parse0 $>canonify $1 user@ => user
-R< @ $=w . > : $* $@ $>Parse0 $>canonify $2 @here:... -> ...
-R$- < @ $=w . > $: $(dequote $1 $) < @ $2 . > dequote "foo"@here
-R< @ $+ > $#error $@ 5.1.3 $: "553 User address required"
-R$* $=O $* < @ $=w . > $@ $>Parse0 $>canonify $1 $2 $3 ...@here -> ...
-R$- $: $(dequote $1 $) < @ *LOCAL* > dequote "foo"
-R< @ *LOCAL* > $#error $@ 5.1.3 $: "553 User address required"
-R$* $=O $* < @ *LOCAL* >
- $@ $>Parse0 $>canonify $1 $2 $3 ...@*LOCAL* -> ...
-R$* < @ *LOCAL* > $: $1
-
-#
-# Parse1 -- the bottom half of ruleset 0.
-#
-
-SParse1
-
-# handle numeric address spec
-R$* < @ [ $+ ] > $* $: $>ParseLocal $1 < @ [ $2 ] > $3 numeric internet spec
-R$* < @ [ $+ ] > $* $1 < @ [ $2 ] : $S > $3 Add smart host to path
-R$* < @ [ IPv6 $- ] : > $*
- $#esmtp $@ [ $(dequote $2 $) ] $: $1 < @ [IPv6 $2 ] > $3 no smarthost: send
-R$* < @ [ $+ ] : > $* $#esmtp $@ [$2] $: $1 < @ [$2] > $3 no smarthost: send
-R$* < @ [ $+ ] : $- : $*> $* $#$3 $@ $4 $: $1 < @ [$2] > $5 smarthost with mailer
-R$* < @ [ $+ ] : $+ > $* $#esmtp $@ $3 $: $1 < @ [$2] > $4 smarthost without mailer
-
-
-# short circuit local delivery so forwarded email works
-R$=L < @ $=w . > $#local $: @ $1 special local names
-R$+ < @ $=w . > $#local $: $1 regular local name
-
-
-# resolve remotely connected UUCP links (if any)
-
-# resolve fake top level domains by forwarding to other hosts
-
-
-
-# pass names that still have a host to a smarthost (if defined)
-R$* < @ $* > $* $: $>MailerToTriple < $S > $1 < @ $2 > $3 glue on smarthost name
-
-# deal with other remote names
-R$* < @$* > $* $#esmtp $@ $2 $: $1 < @ $2 > $3 user@host.domain
-
-# handle locally delivered names
-R$=L $#local $: @ $1 special local names
-R$+ $#local $: $1 regular local names
-
-###########################################################################
-### Ruleset 5 -- special rewriting after aliases have been expanded ###
-###########################################################################
-
-SLocal_localaddr
-Slocaladdr=5
-R$+ $: $1 $| $>"Local_localaddr" $1
-R$+ $| $#$* $#$2
-R$+ $| $* $: $1
-
-# deal with plussed users so aliases work nicely
-R$+ + * $#local $@ $&h $: $1
-R$+ + $* $#local $@ + $2 $: $1 + *
-
-# prepend an empty "forward host" on the front
-R$+ $: <> $1
-
-
-# see if we have a relay or a hub
-R< > $+ $: < $H > $1 try hub
-R< > $+ $: < $R > $1 try relay
-R< > $+ $: < > < $1 <> $&h > nope, restore +detail
-R< > < $+ <> + $* > $: < > < $1 + $2 > check whether +detail
-R< > < $+ <> $* > $: < > < $1 > else discard
-R< > < $+ + $* > $* < > < $1 > + $2 $3 find the user part
-R< > < $+ > + $* $#local $@ $2 $: @ $1 strip the extra +
-R< > < $+ > $@ $1 no +detail
-R$+ $: $1 <> $&h add +detail back in
-R$+ <> + $* $: $1 + $2 check whether +detail
-R$+ <> $* $: $1 else discard
-R< local : $* > $* $: $>MailerToTriple < local : $1 > $2 no host extension
-R< error : $* > $* $: $>MailerToTriple < error : $1 > $2 no host extension
-R< $- : $+ > $+ $: $>MailerToTriple < $1 : $2 > $3 < @ $2 >
-R< $+ > $+ $@ $>MailerToTriple < $1 > $2 < @ $1 >
-
-
-###################################################################
-### Ruleset 95 -- canonify mailer:[user@]host syntax to triple ###
-###################################################################
-
-SMailerToTriple=95
-R< > $* $@ $1 strip off null relay
-R< error : $-.$-.$- : $+ > $* $#error $@ $1.$2.$3 $: $4
-R< error : $- $+ > $* $#error $@ $(dequote $1 $) $: $2
-R< local : $* > $* $>CanonLocal < $1 > $2
-R< $- : $+ @ $+ > $*<$*>$* $# $1 $@ $3 $: $2<@$3> use literal user
-R< $- : $+ > $* $# $1 $@ $2 $: $3 try qualified mailer
-R< $=w > $* $@ $2 delete local host
-R< [ IPv6 $+ ] > $* $#relay $@ $(dequote $1 $) $: $2 use unqualified mailer
-R< $+ > $* $#relay $@ $1 $: $2 use unqualified mailer
-
-###################################################################
-### Ruleset CanonLocal -- canonify local: syntax ###
-###################################################################
-
-SCanonLocal
-# strip local host from routed addresses
-R< $* > < @ $+ > : $+ $@ $>Recurse $3
-R< $* > $+ $=O $+ < @ $+ > $@ $>Recurse $2 $3 $4
-
-# strip trailing dot from any host name that may appear
-R< $* > $* < @ $* . > $: < $1 > $2 < @ $3 >
-
-# handle local: syntax -- use old user, either with or without host
-R< > $* < @ $* > $* $#local $@ $1@$2 $: $1
-R< > $+ $#local $@ $1 $: $1
-
-# handle local:user@host syntax -- ignore host part
-R< $+ @ $+ > $* < @ $* > $: < $1 > $3 < @ $4 >
-
-# handle local:user syntax
-R< $+ > $* <@ $* > $* $#local $@ $2@$3 $: $1
-R< $+ > $* $#local $@ $2 $: $1
-
-###################################################################
-### Ruleset 93 -- convert header names to masqueraded form ###
-###################################################################
-
-SMasqHdr=93
-
-
-# do not masquerade anything in class N
-R$* < @ $* $=N . > $@ $1 < @ $2 $3 . >
-
-# special case the users that should be exposed
-R$=E < @ *LOCAL* > $@ $1 < @ $j . > leave exposed
-R$=E < @ $=M . > $@ $1 < @ $2 . >
-R$=E < @ $=w . > $@ $1 < @ $2 . >
-
-# handle domain-specific masquerading
-R$* < @ $=M . > $* $: $1 < @ $2 . @ $M > $3 convert masqueraded doms
-R$* < @ $=w . > $* $: $1 < @ $2 . @ $M > $3
-R$* < @ *LOCAL* > $* $: $1 < @ $j . @ $M > $2
-R$* < @ $+ @ > $* $: $1 < @ $2 > $3 $M is null
-R$* < @ $+ @ $+ > $* $: $1 < @ $3 . > $4 $M is not null
-
-###################################################################
-### Ruleset 94 -- convert envelope names to masqueraded form ###
-###################################################################
-
-SMasqEnv=94
-R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
-
-###################################################################
-### Ruleset 98 -- local part of ruleset zero (can be null) ###
-###################################################################
-
-SParseLocal=98
-
-# addresses sent to foo@host.REDIRECT will give a 551 error code
-R$* < @ $+ .REDIRECT. > $: $1 < @ $2 . REDIRECT . > < ${opMode} >
-R$* < @ $+ .REDIRECT. > <i> $: $1 < @ $2 . REDIRECT. >
-R$* < @ $+ .REDIRECT. > < $- > $#error $@ 5.1.1 $: "551 User has moved; please try " <$1@$2>
-
-
-
-
-
-######################################################################
-### CanonAddr -- Convert an address into a standard form for
-### relay checking. Route address syntax is
-### crudely converted into a %-hack address.
-###
-### Parameters:
-### $1 -- full recipient address
-###
-### Returns:
-### parsed address, not in source route form
-######################################################################
-
-SCanonAddr
-R$* $: $>Parse0 $>canonify $1 make domain canonical
-
-
-######################################################################
-### ParseRecipient -- Strip off hosts in $=R as well as possibly
-### $* $=m or the access database.
-### Check user portion for host separators.
-###
-### Parameters:
-### $1 -- full recipient address
-###
-### Returns:
-### parsed, non-local-relaying address
-######################################################################
-
-SParseRecipient
-R$* $: <?> $>CanonAddr $1
-R<?> $* < @ $* . > <?> $1 < @ $2 > strip trailing dots
-R<?> $- < @ $* > $: <?> $(dequote $1 $) < @ $2 > dequote local part
-
-# if no $=O character, no host in the user portion, we are done
-R<?> $* $=O $* < @ $* > $: <NO> $1 $2 $3 < @ $4>
-R<?> $* $@ $1
-
-
-
-R<NO> $* < @ $* $=R > $: <RELAY> $1 < @ $2 $3 >
-
-R<RELAY> $* < @ $* > $@ $>ParseRecipient $1
-R<$-> $* $@ $2
-
-
-######################################################################
-### check_relay -- check hostname/address on SMTP startup
-######################################################################
-
-SLocal_check_relay
-Scheck_relay
-R$* $: $1 $| $>"Local_check_relay" $1
-R$* $| $* $| $#$* $#$3
-R$* $| $* $| $* $@ $>"Basic_check_relay" $1 $| $2
-
-SBasic_check_relay
-# check for deferred delivery mode
-R$* $: < ${deliveryMode} > $1
-R< d > $* $@ deferred
-R< $* > $* $: $2
-
-
-
-
-######################################################################
-### check_mail -- check SMTP `MAIL FROM:' command argument
-######################################################################
-
-SLocal_check_mail
-Scheck_mail
-R$* $: $1 $| $>"Local_check_mail" $1
-R$* $| $#$* $#$2
-R$* $| $* $@ $>"Basic_check_mail" $1
-
-SBasic_check_mail
-# check for deferred delivery mode
-R$* $: < ${deliveryMode} > $1
-R< d > $* $@ deferred
-R< $* > $* $: $2
-
-R<> $@ <OK> we MUST accept <> (RFC 1123)
-R$+ $: <?> $1
-R<?><$+> $: <@> <$1>
-R<?>$+ $: <@> <$1>
-R$* $: $&{daemon_flags} $| $1
-R$* f $* $| <@> < $* @ $- > $: < ? $&{client_name} > < $3 @ $4 >
-R$* u $* $| <@> < $* > $: <?> < $3 >
-R$* $| $* $: $2
-# handle case of @localhost on address
-R<@> < $* @ localhost > $: < ? $&{client_name} > < $1 @ localhost >
-R<@> < $* @ [127.0.0.1] >
- $: < ? $&{client_name} > < $1 @ [127.0.0.1] >
-R<@> < $* @ localhost.$m >
- $: < ? $&{client_name} > < $1 @ localhost.$m >
-R<@> < $* @ localhost.UUCP >
- $: < ? $&{client_name} > < $1 @ localhost.UUCP >
-R<@> $* $: $1 no localhost as domain
-R<? $=w> $* $: $2 local client: ok
-R<? $+> <$+> $#error $@ 5.5.4 $: "553 Real domain name required"
-R<?> $* $: $1
-R$* $: <?> $>CanonAddr $1 canonify sender address and mark it
-R<?> $* < @ $+ . > <?> $1 < @ $2 > strip trailing dots
-# handle non-DNS hostnames (*.bitnet, *.decnet, *.uucp, etc)
-R<?> $* < @ $* $=P > $: <OK> $1 < @ $2 $3 >
-R<?> $* < @ $+ > $: <? $(resolve $2 $: $2 <PERM> $) > $1 < @ $2 >
-R<? $* <$->> $* < @ $+ >
- $: <$2> $3 < @ $4 >
-
-
-# handle case of no @domain on address
-R<?> $* $: $&{daemon_flags} $| <?> $1
-R$* u $* $| <?> $* $: <OK> $3
-R$* $| $* $: $2
-R<?> $* $: < ? $&{client_name} > $1
-R<?> $* $@ <OK> ...local unqualed ok
-R<? $+> $* $#error $@ 5.5.4 $: "553 Domain name required"
- ...remote is not
-# check results
-R<?> $* $: @ $1 mark address: nothing known about it
-R<OK> $* $@ <OK>
-R<TEMP> $* $#error $@ 4.1.8 $: "451 Sender domain must resolve"
-R<PERM> $* $#error $@ 5.1.8 $: "501 Sender domain must exist"
-
-######################################################################
-### check_rcpt -- check SMTP `RCPT TO:' command argument
-######################################################################
-
-SLocal_check_rcpt
-Scheck_rcpt
-R$* $: $1 $| $>"Local_check_rcpt" $1
-R$* $| $#$* $#$2
-R$* $| $* $@ $>"Basic_check_rcpt" $1
-
-SBasic_check_rcpt
-# check for deferred delivery mode
-R$* $: < ${deliveryMode} > $1
-R< d > $* $@ deferred
-R< $* > $* $: $2
-
-
-R$* $: $>ParseRecipient $1 strip relayable hosts
-
-
-
-
-
-# authenticated by a trusted mechanism?
-R$* $: $1 $| $&{auth_type}
-R$* $| $: $1
-R$* $| $={TrustAuthMech} $# RELAYAUTH
-R$* $| $* $: $1
-# anything terminating locally is ok
-R$+ < @ $=w > $@ RELAYTO
-R$+ < @ $* $=R > $@ RELAYTO
-
-
-# check for local user (i.e. unqualified address)
-R$* $: <?> $1
-R<?> $* < @ $+ > $: <REMOTE> $1 < @ $2 >
-# local user is ok
-R<?> $+ $@ RELAYTOLOCAL
-R<$+> $* $: $2
-
-# anything originating locally is ok
-# check IP address
-R$* $: $&{client_addr}
-R$@ $@ RELAYFROM originated locally
-R0 $@ RELAYFROM originated locally
-R$=R $* $@ RELAYFROM relayable IP address
-R$* $: [ $1 ] put brackets around it...
-R$=w $@ RELAYFROM ... and see if it is local
-
-
-# check client name: first: did it resolve?
-R$* $: < $&{client_resolve} >
-R<TEMP> $#error $@ 4.7.1 $: "450 Relaying temporarily denied. Cannot resolve PTR record for " $&{client_addr}
-R<FORGED> $#error $@ 5.7.1 $: "550 Relaying denied. IP name possibly forged " $&{client_name}
-R<FAIL> $#error $@ 5.7.1 $: "550 Relaying denied. IP name lookup failed " $&{client_name}
-R$* $: <?> $&{client_name}
-R<?> $@ RELAYFROM
-R<?> $=w $@ RELAYFROM
-R<?> $* $=R $@ RELAYFROM
-
-# anything else is bogus
-R$* $#error $@ 5.7.1 $: "550 Relaying denied"
-
-
-# is user trusted to authenticate as someone else?
-Strust_auth
-R$* $: $&{auth_type} $| $1
-# required by RFC 2554 section 4.
-R$@ $| $* $#error $@ 5.7.1 $: "550 not authenticated"
-R$* $| $&{auth_authen} $@ identical
-R$* $| <$&{auth_authen}> $@ identical
-R$* $| $* $: $1 $| $>"Local_trust_auth" $1
-R$* $| $#$* $#$2
-R$* $#error $@ 5.7.1 $: "550 " $&{auth_authen} " not allowed to act as " $&{auth_author}
-
-SLocal_trust_auth
-
-
-#\f
-######################################################################
-######################################################################
-#####
-##### MAILER DEFINITIONS
-#####
-######################################################################
-######################################################################
-
-
-##################################################
-### Local and Program Mailer specification ###
-##################################################
-
-##### $Id: generic-bsd4.4.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-#
-# Envelope sender rewriting
-#
-SEnvFromL=10
-R<@> $n errors to mailer-daemon
-R@ <@ $*> $n temporarily bypass Sun bogosity
-R$+ $: $>AddDomain $1 add local domain if needed
-R$* $: $>MasqEnv $1 do masquerading
-
-#
-# Envelope recipient rewriting
-#
-SEnvToL=20
-R$+ < @ $* > $: $1 strip host part
-
-#
-# Header sender rewriting
-#
-SHdrFromL=30
-R<@> $n errors to mailer-daemon
-R@ <@ $*> $n temporarily bypass Sun bogosity
-R$+ $: $>AddDomain $1 add local domain if needed
-R$* $: $>MasqHdr $1 do masquerading
-
-#
-# Header recipient rewriting
-#
-SHdrToL=40
-R$+ $: $>AddDomain $1 add local domain if needed
-R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
-
-#
-# Common code to add local domain name (only if always-add-domain)
-#
-SAddDomain=50
-
-Mlocal, P=/usr/libexec/mail.local, F=lsDFMAw5:/|@qPrmn9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,
- T=DNS/RFC822/X-Unix,
- A=mail -d $u
-Mprog, P=/bin/sh, F=lsDFMoqeu9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL, D=$z:/,
- T=X-Unix/X-Unix/X-Unix,
- A=sh -c $u
-
-#####################################
-### SMTP Mailer specification ###
-#####################################
-
-##### $Id: generic-bsd4.4.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-#
-# common sender and masquerading recipient rewriting
-#
-SMasqSMTP=61
-R$* < @ $* > $* $@ $1 < @ $2 > $3 already fully qualified
-R$+ $@ $1 < @ *LOCAL* > add local qualification
-
-#
-# convert pseudo-domain addresses to real domain addresses
-#
-SPseudoToReal=51
-
-# pass <route-addr>s through
-R< @ $+ > $* $@ < @ $1 > $2 resolve <route-addr>
-
-# output fake domains as user%fake@relay
-
-# do UUCP heuristics; note that these are shared with UUCP mailers
-R$+ < @ $+ .UUCP. > $: < $2 ! > $1 convert to UUCP form
-R$+ < @ $* > $* $@ $1 < @ $2 > $3 not UUCP form
-
-# leave these in .UUCP form to avoid further tampering
-R< $&h ! > $- ! $+ $@ $2 < @ $1 .UUCP. >
-R< $&h ! > $-.$+ ! $+ $@ $3 < @ $1.$2 >
-R< $&h ! > $+ $@ $1 < @ $&h .UUCP. >
-R< $+ ! > $+ $: $1 ! $2 < @ $Y > use UUCP_RELAY
-R$+ < @ $+ : $+ > $@ $1 < @ $3 > strip mailer: part
-R$+ < @ > $: $1 < @ *LOCAL* > if no UUCP_RELAY
-
-
-#
-# envelope sender rewriting
-#
-SEnvFromSMTP=11
-R$+ $: $>PseudoToReal $1 sender/recipient common
-R$* :; <@> $@ list:; special case
-R$* $: $>MasqSMTP $1 qualify unqual'ed names
-R$+ $: $>MasqEnv $1 do masquerading
-
-
-#
-# envelope recipient rewriting --
-# also header recipient if not masquerading recipients
-#
-SEnvToSMTP=21
-R$+ $: $>PseudoToReal $1 sender/recipient common
-R$+ $: $>MasqSMTP $1 qualify unqual'ed names
-R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
-
-#
-# header sender and masquerading header recipient rewriting
-#
-SHdrFromSMTP=31
-R$+ $: $>PseudoToReal $1 sender/recipient common
-R:; <@> $@ list:; special case
-
-# do special header rewriting
-R$* <@> $* $@ $1 <@> $2 pass null host through
-R< @ $* > $* $@ < @ $1 > $2 pass route-addr through
-R$* $: $>MasqSMTP $1 qualify unqual'ed names
-R$+ $: $>MasqHdr $1 do masquerading
-
-
-#
-# relay mailer header masquerading recipient rewriting
-#
-SMasqRelay=71
-R$+ $: $>MasqSMTP $1
-R$+ $: $>MasqHdr $1
-
-Msmtp, P=[IPC], F=mDFMuX, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Mesmtp, P=[IPC], F=mDFMuXa, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Msmtp8, P=[IPC], F=mDFMuX8, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Mdsmtp, P=[IPC], F=mDFMuXa%, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Mrelay, P=[IPC], F=mDFMuXa8, S=EnvFromSMTP/HdrFromSMTP, R=MasqSMTP, E=\r\n, L=2040,
- T=DNS/RFC822/SMTP,
- A=IPC $h
+++ /dev/null
-#
-# Copyright (c) 1998-2000 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-# Copyright (c) 1983, 1995 Eric P. Allman. All rights reserved.
-# Copyright (c) 1988, 1993
-# The Regents of the University of California. All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-
-######################################################################
-######################################################################
-#####
-##### SENDMAIL CONFIGURATION FILE
-#####
-##### built by gshapiro@horsey.gshapiro.net on Mon Mar 6 11:41:27 PST 2000
-##### in /usr/local/src/sendmail/devel/OpenSource/sendmail-8.10.0/cf/cf
-##### using ../ as configuration include directory
-#####
-######################################################################
-######################################################################
-
-##### $Id: generic-hpux10.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-##### $Id: generic-hpux10.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-##### $Id: generic-hpux10.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-##### $Id: generic-hpux10.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-
-##### $Id: generic-hpux10.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-##### $Id: generic-hpux10.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-##### $Id: generic-hpux10.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-
-
-##### $Id: generic-hpux10.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-
-# level 9 config file format
-V9/Berkeley
-
-# override file safeties - setting this option compromises system security,
-# addressing the actual file configuration problem is preferred
-# need to set this before any file actions are encountered in the cf file
-#O DontBlameSendmail=safe
-
-# default LDAP map specification
-# need to set this now before any LDAP maps are defined
-#O LDAPDefaultSpec=-h localhost
-
-##################
-# local info #
-##################
-
-Cwlocalhost
-# file containing names of hosts for which we receive email
-Fw/etc/mail/local-host-names
-
-# my official domain name
-# ... define this only if sendmail cannot automatically determine your domain
-#Dj$w.Foo.COM
-
-CP.
-
-# "Smart" relay host (may be null)
-DS
-
-
-# operators that cannot be in local usernames (i.e., network indicators)
-CO @ % !
-
-# a class with just dot (for identifying canonical names)
-C..
-
-# a class with just a left bracket (for identifying domain literals)
-C[[
-
-
-# Resolve map (to check if a host exists in check_mail)
-Kresolve host -a<OK> -T<TEMP>
-
-# Hosts that will permit relaying ($=R)
-FR-o /etc/mail/relay-domains
-
-
-# who I send unqualified names to (null means deliver locally)
-DR
-
-# who gets all local email traffic ($R has precedence for unqualified names)
-DH
-
-# dequoting map
-Kdequote dequote
-
-# class E: names that should be exposed as from this host, even if we masquerade
-# class L: names that should be delivered locally, even if we have a relay
-# class M: domains that should be converted to $M
-# class N: domains that should not be converted to $M
-#CL root
-CEroot
-
-# who I masquerade as (null for no masquerading) (see also $=M)
-DM
-
-# my name for error messages
-DnMAILER-DAEMON
-
-
-CPREDIRECT
-
-# Configuration version number
-DZ8.10.0
-
-
-###############
-# Options #
-###############
-
-# strip message body to 7 bits on input?
-O SevenBitInput=False
-
-# 8-bit data handling
-O EightBitMode=pass8
-
-# wait for alias file rebuild (default units: minutes)
-O AliasWait=10
-
-# location of alias file
-O AliasFile=/etc/mail/aliases
-
-# minimum number of free blocks on filesystem
-O MinFreeBlocks=100
-
-# maximum message size
-#O MaxMessageSize=1000000
-
-# substitution for space (blank) characters
-O BlankSub=.
-
-# avoid connecting to "expensive" mailers on initial submission?
-O HoldExpensive=False
-
-# checkpoint queue runs after every N successful deliveries
-#O CheckpointInterval=10
-
-# default delivery mode
-O DeliveryMode=background
-
-# automatically rebuild the alias database?
-# NOTE: There is a potential for a denial of service attack if this is set.
-# This option is deprecated and will be removed from a future version.
-#O AutoRebuildAliases=False
-
-# error message header/file
-#O ErrorHeader=/etc/mail/error-header
-
-# error mode
-#O ErrorMode=print
-
-# save Unix-style "From_" lines at top of header?
-#O SaveFromLine=False
-
-# temporary file mode
-O TempFileMode=0600
-
-# match recipients against GECOS field?
-#O MatchGECOS=False
-
-# maximum hop count
-#O MaxHopCount=17
-
-# location of help file
-O HelpFile=/etc/mail/helpfile
-
-# ignore dots as terminators in incoming messages?
-#O IgnoreDots=False
-
-# name resolver options
-#O ResolverOptions=+AAONLY
-
-# deliver MIME-encapsulated error messages?
-O SendMimeErrors=True
-
-# Forward file search path
-O ForwardPath=$z/.forward.$w+$h:$z/.forward+$h:$z/.forward.$w:$z/.forward
-
-# open connection cache size
-O ConnectionCacheSize=2
-
-# open connection cache timeout
-O ConnectionCacheTimeout=5m
-
-# persistent host status directory
-#O HostStatusDirectory=.hoststat
-
-# single thread deliveries (requires HostStatusDirectory)?
-#O SingleThreadDelivery=False
-
-# use Errors-To: header?
-O UseErrorsTo=False
-
-# log level
-O LogLevel=9
-
-# send to me too, even in an alias expansion?
-#O MeToo=True
-
-# verify RHS in newaliases?
-O CheckAliases=False
-
-# default messages to old style headers if no special punctuation?
-O OldStyleHeaders=True
-
-# SMTP daemon options
-O DaemonPortOptions=Name=MTA
-O DaemonPortOptions=Port=587, Name=MSA, M=E
-
-# SMTP client options
-#O ClientPortOptions=Address=0.0.0.0
-
-# privacy flags
-O PrivacyOptions=authwarnings
-
-# who (if anyone) should get extra copies of error messages
-#O PostmasterCopy=Postmaster
-
-# slope of queue-only function
-#O QueueFactor=600000
-
-# queue directory
-O QueueDirectory=/var/spool/mqueue
-
-# timeouts (many of these)
-#O Timeout.initial=5m
-#O Timeout.connect=5m
-#O Timeout.iconnect=5m
-#O Timeout.helo=5m
-#O Timeout.mail=10m
-#O Timeout.rcpt=1h
-#O Timeout.datainit=5m
-#O Timeout.datablock=1h
-#O Timeout.datafinal=1h
-#O Timeout.rset=5m
-#O Timeout.quit=2m
-#O Timeout.misc=2m
-#O Timeout.command=1h
-#O Timeout.ident=5s
-#O Timeout.fileopen=60s
-#O Timeout.control=2m
-O Timeout.queuereturn=5d
-#O Timeout.queuereturn.normal=5d
-#O Timeout.queuereturn.urgent=2d
-#O Timeout.queuereturn.non-urgent=7d
-O Timeout.queuewarn=4h
-#O Timeout.queuewarn.normal=4h
-#O Timeout.queuewarn.urgent=1h
-#O Timeout.queuewarn.non-urgent=12h
-#O Timeout.hoststatus=30m
-#O Timeout.resolver.retrans=5s
-#O Timeout.resolver.retrans.first=5s
-#O Timeout.resolver.retrans.normal=5s
-#O Timeout.resolver.retry=4
-#O Timeout.resolver.retry.first=4
-#O Timeout.resolver.retry.normal=4
-
-# should we not prune routes in route-addr syntax addresses?
-#O DontPruneRoutes=False
-
-# queue up everything before forking?
-O SuperSafe=True
-
-# status file
-O StatusFile=/etc/mail/statistics
-
-# time zone handling:
-# if undefined, use system default
-# if defined but null, use TZ envariable passed in
-# if defined and non-null, use that info
-O TimeZoneSpec=
-
-# default UID (can be username or userid:groupid)
-#O DefaultUser=mailnull
-
-# list of locations of user database file (null means no lookup)
-#O UserDatabaseSpec=/etc/mail/userdb
-
-# fallback MX host
-#O FallbackMXhost=fall.back.host.net
-
-# if we are the best MX host for a site, try it directly instead of config err
-#O TryNullMXList=False
-
-# load average at which we just queue messages
-#O QueueLA=8
-
-# load average at which we refuse connections
-#O RefuseLA=12
-
-# maximum number of children we allow at one time
-#O MaxDaemonChildren=12
-
-# maximum number of new connections per second
-#O ConnectionRateThrottle=3
-
-# work recipient factor
-#O RecipientFactor=30000
-
-# deliver each queued job in a separate process?
-#O ForkEachJob=False
-
-# work class factor
-#O ClassFactor=1800
-
-# work time factor
-#O RetryFactor=90000
-
-# shall we sort the queue by hostname first?
-#O QueueSortOrder=priority
-
-# minimum time in queue before retry
-#O MinQueueAge=30m
-
-# default character set
-#O DefaultCharSet=iso-8859-1
-
-# service switch file (ignored on Solaris, Ultrix, OSF/1, others)
-#O ServiceSwitchFile=/etc/mail/service.switch
-
-# hosts file (normally /etc/hosts)
-#O HostsFile=/etc/hosts
-
-# dialup line delay on connection failure
-#O DialDelay=10s
-
-# action to take if there are no recipients in the message
-#O NoRecipientAction=add-to-undisclosed
-
-# chrooted environment for writing to files
-#O SafeFileEnvironment=/arch
-
-# are colons OK in addresses?
-#O ColonOkInAddr=True
-
-# how many jobs can you process in the queue?
-#O MaxQueueRunSize=10000
-
-# shall I avoid expanding CNAMEs (violates protocols)?
-#O DontExpandCnames=False
-
-# SMTP initial login message (old $e macro)
-O SmtpGreetingMessage=$j Sendmail $v/$Z; $b
-
-# UNIX initial From header format (old $l macro)
-O UnixFromLine=From $g $d
-
-# From: lines that have embedded newlines are unwrapped onto one line
-#O SingleLineFromHeader=False
-
-# Allow HELO SMTP command that does not include a host name
-#O AllowBogusHELO=False
-
-# Characters to be quoted in a full name phrase (@,;:\()[] are automatic)
-#O MustQuoteChars=.
-
-# delimiter (operator) characters (old $o macro)
-O OperatorChars=.:%@!^/[]+
-
-# shall I avoid calling initgroups(3) because of high NIS costs?
-#O DontInitGroups=False
-
-# are group-writable :include: and .forward files (un)trustworthy?
-#O UnsafeGroupWrites=True
-
-# where do errors that occur when sending errors get sent?
-#O DoubleBounceAddress=postmaster
-
-# where to save bounces if all else fails
-#O DeadLetterDrop=/var/tmp/dead.letter
-
-# what user id do we assume for the majority of the processing?
-#O RunAsUser=sendmail
-
-# maximum number of recipients per SMTP envelope
-#O MaxRecipientsPerMessage=100
-
-# shall we get local names from our installed interfaces?
-#O DontProbeInterfaces=False
-
-# Return-Receipt-To: header implies DSN request
-#O RrtImpliesDsn=False
-
-# override connection address (for testing)
-#O ConnectOnlyTo=0.0.0.0
-
-# Trusted user for file ownership and starting the daemon
-#O TrustedUser=root
-
-# Control socket for daemon management
-#O ControlSocketName=/var/spool/mqueue/.control
-
-# Maximum MIME header length to protect MUAs
-#O MaxMimeHeaderLength=0/0
-
-# Maximum length of the sum of all headers
-O MaxHeadersLength=32768
-
-# Maximum depth of alias recursion
-#O MaxAliasRecursion=10
-
-# location of pid file
-#O PidFile=/var/run/sendmail.pid
-
-# Prefix string for the process title shown on 'ps' listings
-#O ProcessTitlePrefix=prefix
-
-# Data file (df) memory-buffer file maximum size
-#O DataFileBufferSize=4096
-
-# Transcript file (xf) memory-buffer file maximum size
-#O XscriptFileBufferSize=4096
-
-# list of authentication mechanisms
-#O AuthMechanisms=GSSAPI KERBEROS_V4 DIGEST-MD5 CRAM-MD5
-
-# default authentication information for outgoing connections
-#O DefaultAuthInfo=/etc/mail/default-auth-info
-
-# try to authenticate? (Try when available/only when Authenticated)
-#O AuthOptions=T
-
-
-
-
-
-
-###########################
-# Message precedences #
-###########################
-
-Pfirst-class=0
-Pspecial-delivery=100
-Plist=-30
-Pbulk=-60
-Pjunk=-100
-
-#####################
-# Trusted users #
-#####################
-
-# this is equivalent to setting class "t"
-#Ft/etc/mail/trusted-users
-Troot
-Tdaemon
-Tuucp
-
-#########################
-# Format of headers #
-#########################
-
-H?P?Return-Path: <$g>
-HReceived: $?sfrom $s $.$?_($?s$|from $.$_)
- $.$?{auth_type}(authenticated)
- $.by $j ($v/$Z)$?r with $r$. id $i$?u
- for $u; $|;
- $.$b
-H?D?Resent-Date: $a
-H?D?Date: $a
-H?F?Resent-From: $?x$x <$g>$|$g$.
-H?F?From: $?x$x <$g>$|$g$.
-H?x?Full-Name: $x
-# HPosted-Date: $a
-# H?l?Received-Date: $b
-H?M?Resent-Message-Id: <$t.$i@$j>
-H?M?Message-Id: <$t.$i@$j>
-
-#\f
-######################################################################
-######################################################################
-#####
-##### REWRITING RULES
-#####
-######################################################################
-######################################################################
-
-############################################
-### Ruleset 3 -- Name Canonicalization ###
-############################################
-Scanonify=3
-
-# handle null input (translate to <@> special case)
-R$@ $@ <@>
-
-# strip group: syntax (not inside angle brackets!) and trailing semicolon
-R$* $: $1 <@> mark addresses
-R$* < $* > $* <@> $: $1 < $2 > $3 unmark <addr>
-R@ $* <@> $: @ $1 unmark @host:...
-R$* :: $* <@> $: $1 :: $2 unmark node::addr
-R:include: $* <@> $: :include: $1 unmark :include:...
-R$* [ IPv6 $- ] <@> $: $1 [ IPv6 $2 ] unmark IPv6 addr
-R$* : $* [ $* ] $: $1 : $2 [ $3 ] <@> remark if leading colon
-R$* : $* <@> $: $2 strip colon if marked
-R$* <@> $: $1 unmark
-R$* ; $1 strip trailing semi
-R$* < $* ; > $1 < $2 > bogus bracketed semi
-
-# null input now results from list:; syntax
-R$@ $@ :; <@>
-
-# strip angle brackets -- note RFC733 heuristic to get innermost item
-R$* $: < $1 > housekeeping <>
-R$+ < $* > < $2 > strip excess on left
-R< $* > $+ < $1 > strip excess on right
-R<> $@ < @ > MAIL FROM:<> case
-R< $+ > $: $1 remove housekeeping <>
-
-# strip route address <@a,@b,@c:user@d> -> <user@d>
-R@ $+ , $+ $2
-R@ $+ : $+ $2
-
-# find focus for list syntax
-R $+ : $* ; @ $+ $@ $>Canonify2 $1 : $2 ; < @ $3 > list syntax
-R $+ : $* ; $@ $1 : $2; list syntax
-
-# find focus for @ syntax addresses
-R$+ @ $+ $: $1 < @ $2 > focus on domain
-R$+ < $+ @ $+ > $1 $2 < @ $3 > move gaze right
-R$+ < @ $+ > $@ $>Canonify2 $1 < @ $2 > already canonical
-
-# do some sanity checking
-R$* < @ $* : $* > $* $1 < @ $2 $3 > $4 nix colons in addrs
-
-# convert old-style addresses to a domain-based address
-R$- ! $+ $@ $>Canonify2 $2 < @ $1 .UUCP > resolve uucp names
-R$+ . $- ! $+ $@ $>Canonify2 $3 < @ $1 . $2 > domain uucps
-R$+ ! $+ $@ $>Canonify2 $2 < @ $1 .UUCP > uucp subdomains
-
-# if we have % signs, take the rightmost one
-R$* % $* $1 @ $2 First make them all @s.
-R$* @ $* @ $* $1 % $2 @ $3 Undo all but the last.
-R$* @ $* $@ $>Canonify2 $1 < @ $2 > Insert < > and finish
-
-# else we must be a local name
-R$* $@ $>Canonify2 $1
-
-
-################################################
-### Ruleset 96 -- bottom half of ruleset 3 ###
-################################################
-
-SCanonify2=96
-
-# handle special cases for local names
-R$* < @ localhost > $* $: $1 < @ $j . > $2 no domain at all
-R$* < @ localhost . $m > $* $: $1 < @ $j . > $2 local domain
-R$* < @ localhost . UUCP > $* $: $1 < @ $j . > $2 .UUCP domain
-
-# check for IPv6 domain literal (save quoted form)
-R$* < @ [ IPv6 $- ] > $* $: $2 $| $1 < @@ [ $(dequote $2 $) ] > $3 mark IPv6 addr
-R$- $| $* < @@ $=w > $* $: $2 < @ $j . > $4 self-literal
-R$- $| $* < @@ [ $+ ] > $* $@ $2 < @ [ IPv6 $1 ] > $4 canon IP addr
-
-# check for IPv4 domain literal
-R$* < @ [ $+ ] > $* $: $1 < @@ [ $2 ] > $3 mark [a.b.c.d]
-R$* < @@ $=w > $* $: $1 < @ $j . > $3 self-literal
-R$* < @@ $+ > $* $@ $1 < @ $2 > $3 canon IP addr
-
-
-
-
-
-# if really UUCP, handle it immediately
-
-# try UUCP traffic as a local address
-R$* < @ $+ . UUCP > $* $: $1 < @ $[ $2 $] . UUCP . > $3
-R$* < @ $+ . . UUCP . > $* $@ $1 < @ $2 . > $3
-
-# hostnames ending in class P are always canonical
-R$* < @ $* $=P > $* $: $1 < @ $2 $3 . > $4
-R$* < @ $* $~P > $* $: $&{daemon_flags} $| $1 < @ $2 $3 > $4
-R$* CC $* $| $* $: $3
-# pass to name server to make hostname canonical
-R$* $| $* < @ $* > $* $: $2 < @ $[ $3 $] > $4
-R$* $| $* $: $2
-
-# local host aliases and pseudo-domains are always canonical
-R$* < @ $=w > $* $: $1 < @ $2 . > $3
-R$* < @ $=M > $* $: $1 < @ $2 . > $3
-R$* < @ $* . . > $* $1 < @ $2 . > $3
-
-
-##################################################
-### Ruleset 4 -- Final Output Post-rewriting ###
-##################################################
-Sfinal=4
-
-R$* <@> $@ handle <> and list:;
-
-# strip trailing dot off possibly canonical name
-R$* < @ $+ . > $* $1 < @ $2 > $3
-
-# eliminate internal code
-R$* < @ *LOCAL* > $* $1 < @ $j > $2
-
-# externalize local domain info
-R$* < $+ > $* $1 $2 $3 defocus
-R@ $+ : @ $+ : $+ @ $1 , @ $2 : $3 <route-addr> canonical
-R@ $* $@ @ $1 ... and exit
-
-# 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 @ $2 u%host@host => u@host
-
-
-
-##############################################################
-### Ruleset 97 -- recanonicalize and call ruleset zero ###
-### (used for recursive calls) ###
-##############################################################
-
-SRecurse=97
-R$* $: $>canonify $1
-R$* $@ $>parse $1
-
-
-######################################
-### Ruleset 0 -- Parse Address ###
-######################################
-
-Sparse=0
-
-R$* $: $>Parse0 $1 initial parsing
-R<@> $#local $: <@> special case error msgs
-R$* $: $>ParseLocal $1 handle local hacks
-R$* $: $>Parse1 $1 final parsing
-
-#
-# Parse0 -- do initial syntax checking and eliminate local addresses.
-# This should either return with the (possibly modified) input
-# or return with a #error mailer. It should not return with a
-# #mailer other than the #error mailer.
-#
-
-SParse0
-R<@> $@ <@> special case error msgs
-R$* : $* ; <@> $#error $@ 5.1.3 $: "553 List:; syntax illegal for recipient addresses"
-R@ <@ $* > < @ $1 > catch "@@host" bogosity
-R<@ $+> $#error $@ 5.1.3 $: "553 User address required"
-R$* $: <> $1
-R<> $* < @ [ $+ ] > $* $1 < @ [ $2 ] > $3
-R<> $* <$* : $* > $* $#error $@ 5.1.3 $: "553 Colon illegal in host name part"
-R<> $* $1
-R$* < @ . $* > $* $#error $@ 5.1.2 $: "553 Invalid host name"
-R$* < @ $* .. $* > $* $#error $@ 5.1.2 $: "553 Invalid host name"
-
-# now delete the local info -- note $=O to find characters that cause forwarding
-R$* < @ > $* $@ $>Parse0 $>canonify $1 user@ => user
-R< @ $=w . > : $* $@ $>Parse0 $>canonify $2 @here:... -> ...
-R$- < @ $=w . > $: $(dequote $1 $) < @ $2 . > dequote "foo"@here
-R< @ $+ > $#error $@ 5.1.3 $: "553 User address required"
-R$* $=O $* < @ $=w . > $@ $>Parse0 $>canonify $1 $2 $3 ...@here -> ...
-R$- $: $(dequote $1 $) < @ *LOCAL* > dequote "foo"
-R< @ *LOCAL* > $#error $@ 5.1.3 $: "553 User address required"
-R$* $=O $* < @ *LOCAL* >
- $@ $>Parse0 $>canonify $1 $2 $3 ...@*LOCAL* -> ...
-R$* < @ *LOCAL* > $: $1
-
-#
-# Parse1 -- the bottom half of ruleset 0.
-#
-
-SParse1
-
-# handle numeric address spec
-R$* < @ [ $+ ] > $* $: $>ParseLocal $1 < @ [ $2 ] > $3 numeric internet spec
-R$* < @ [ $+ ] > $* $1 < @ [ $2 ] : $S > $3 Add smart host to path
-R$* < @ [ IPv6 $- ] : > $*
- $#esmtp $@ [ $(dequote $2 $) ] $: $1 < @ [IPv6 $2 ] > $3 no smarthost: send
-R$* < @ [ $+ ] : > $* $#esmtp $@ [$2] $: $1 < @ [$2] > $3 no smarthost: send
-R$* < @ [ $+ ] : $- : $*> $* $#$3 $@ $4 $: $1 < @ [$2] > $5 smarthost with mailer
-R$* < @ [ $+ ] : $+ > $* $#esmtp $@ $3 $: $1 < @ [$2] > $4 smarthost without mailer
-
-
-# short circuit local delivery so forwarded email works
-R$=L < @ $=w . > $#local $: @ $1 special local names
-R$+ < @ $=w . > $#local $: $1 regular local name
-
-
-# resolve remotely connected UUCP links (if any)
-
-# resolve fake top level domains by forwarding to other hosts
-
-
-
-# pass names that still have a host to a smarthost (if defined)
-R$* < @ $* > $* $: $>MailerToTriple < $S > $1 < @ $2 > $3 glue on smarthost name
-
-# deal with other remote names
-R$* < @$* > $* $#esmtp $@ $2 $: $1 < @ $2 > $3 user@host.domain
-
-# handle locally delivered names
-R$=L $#local $: @ $1 special local names
-R$+ $#local $: $1 regular local names
-
-###########################################################################
-### Ruleset 5 -- special rewriting after aliases have been expanded ###
-###########################################################################
-
-SLocal_localaddr
-Slocaladdr=5
-R$+ $: $1 $| $>"Local_localaddr" $1
-R$+ $| $#$* $#$2
-R$+ $| $* $: $1
-
-# deal with plussed users so aliases work nicely
-R$+ + * $#local $@ $&h $: $1
-R$+ + $* $#local $@ + $2 $: $1 + *
-
-# prepend an empty "forward host" on the front
-R$+ $: <> $1
-
-
-# see if we have a relay or a hub
-R< > $+ $: < $H > $1 try hub
-R< > $+ $: < $R > $1 try relay
-R< > $+ $: < > < $1 <> $&h > nope, restore +detail
-R< > < $+ <> + $* > $: < > < $1 + $2 > check whether +detail
-R< > < $+ <> $* > $: < > < $1 > else discard
-R< > < $+ + $* > $* < > < $1 > + $2 $3 find the user part
-R< > < $+ > + $* $#local $@ $2 $: @ $1 strip the extra +
-R< > < $+ > $@ $1 no +detail
-R$+ $: $1 <> $&h add +detail back in
-R$+ <> + $* $: $1 + $2 check whether +detail
-R$+ <> $* $: $1 else discard
-R< local : $* > $* $: $>MailerToTriple < local : $1 > $2 no host extension
-R< error : $* > $* $: $>MailerToTriple < error : $1 > $2 no host extension
-R< $- : $+ > $+ $: $>MailerToTriple < $1 : $2 > $3 < @ $2 >
-R< $+ > $+ $@ $>MailerToTriple < $1 > $2 < @ $1 >
-
-
-###################################################################
-### Ruleset 95 -- canonify mailer:[user@]host syntax to triple ###
-###################################################################
-
-SMailerToTriple=95
-R< > $* $@ $1 strip off null relay
-R< error : $-.$-.$- : $+ > $* $#error $@ $1.$2.$3 $: $4
-R< error : $- $+ > $* $#error $@ $(dequote $1 $) $: $2
-R< local : $* > $* $>CanonLocal < $1 > $2
-R< $- : $+ @ $+ > $*<$*>$* $# $1 $@ $3 $: $2<@$3> use literal user
-R< $- : $+ > $* $# $1 $@ $2 $: $3 try qualified mailer
-R< $=w > $* $@ $2 delete local host
-R< [ IPv6 $+ ] > $* $#relay $@ $(dequote $1 $) $: $2 use unqualified mailer
-R< $+ > $* $#relay $@ $1 $: $2 use unqualified mailer
-
-###################################################################
-### Ruleset CanonLocal -- canonify local: syntax ###
-###################################################################
-
-SCanonLocal
-# strip local host from routed addresses
-R< $* > < @ $+ > : $+ $@ $>Recurse $3
-R< $* > $+ $=O $+ < @ $+ > $@ $>Recurse $2 $3 $4
-
-# strip trailing dot from any host name that may appear
-R< $* > $* < @ $* . > $: < $1 > $2 < @ $3 >
-
-# handle local: syntax -- use old user, either with or without host
-R< > $* < @ $* > $* $#local $@ $1@$2 $: $1
-R< > $+ $#local $@ $1 $: $1
-
-# handle local:user@host syntax -- ignore host part
-R< $+ @ $+ > $* < @ $* > $: < $1 > $3 < @ $4 >
-
-# handle local:user syntax
-R< $+ > $* <@ $* > $* $#local $@ $2@$3 $: $1
-R< $+ > $* $#local $@ $2 $: $1
-
-###################################################################
-### Ruleset 93 -- convert header names to masqueraded form ###
-###################################################################
-
-SMasqHdr=93
-
-
-# do not masquerade anything in class N
-R$* < @ $* $=N . > $@ $1 < @ $2 $3 . >
-
-# special case the users that should be exposed
-R$=E < @ *LOCAL* > $@ $1 < @ $j . > leave exposed
-R$=E < @ $=M . > $@ $1 < @ $2 . >
-R$=E < @ $=w . > $@ $1 < @ $2 . >
-
-# handle domain-specific masquerading
-R$* < @ $=M . > $* $: $1 < @ $2 . @ $M > $3 convert masqueraded doms
-R$* < @ $=w . > $* $: $1 < @ $2 . @ $M > $3
-R$* < @ *LOCAL* > $* $: $1 < @ $j . @ $M > $2
-R$* < @ $+ @ > $* $: $1 < @ $2 > $3 $M is null
-R$* < @ $+ @ $+ > $* $: $1 < @ $3 . > $4 $M is not null
-
-###################################################################
-### Ruleset 94 -- convert envelope names to masqueraded form ###
-###################################################################
-
-SMasqEnv=94
-R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
-
-###################################################################
-### Ruleset 98 -- local part of ruleset zero (can be null) ###
-###################################################################
-
-SParseLocal=98
-
-# addresses sent to foo@host.REDIRECT will give a 551 error code
-R$* < @ $+ .REDIRECT. > $: $1 < @ $2 . REDIRECT . > < ${opMode} >
-R$* < @ $+ .REDIRECT. > <i> $: $1 < @ $2 . REDIRECT. >
-R$* < @ $+ .REDIRECT. > < $- > $#error $@ 5.1.1 $: "551 User has moved; please try " <$1@$2>
-
-
-
-
-
-######################################################################
-### CanonAddr -- Convert an address into a standard form for
-### relay checking. Route address syntax is
-### crudely converted into a %-hack address.
-###
-### Parameters:
-### $1 -- full recipient address
-###
-### Returns:
-### parsed address, not in source route form
-######################################################################
-
-SCanonAddr
-R$* $: $>Parse0 $>canonify $1 make domain canonical
-
-
-######################################################################
-### ParseRecipient -- Strip off hosts in $=R as well as possibly
-### $* $=m or the access database.
-### Check user portion for host separators.
-###
-### Parameters:
-### $1 -- full recipient address
-###
-### Returns:
-### parsed, non-local-relaying address
-######################################################################
-
-SParseRecipient
-R$* $: <?> $>CanonAddr $1
-R<?> $* < @ $* . > <?> $1 < @ $2 > strip trailing dots
-R<?> $- < @ $* > $: <?> $(dequote $1 $) < @ $2 > dequote local part
-
-# if no $=O character, no host in the user portion, we are done
-R<?> $* $=O $* < @ $* > $: <NO> $1 $2 $3 < @ $4>
-R<?> $* $@ $1
-
-
-
-R<NO> $* < @ $* $=R > $: <RELAY> $1 < @ $2 $3 >
-
-R<RELAY> $* < @ $* > $@ $>ParseRecipient $1
-R<$-> $* $@ $2
-
-
-######################################################################
-### check_relay -- check hostname/address on SMTP startup
-######################################################################
-
-SLocal_check_relay
-Scheck_relay
-R$* $: $1 $| $>"Local_check_relay" $1
-R$* $| $* $| $#$* $#$3
-R$* $| $* $| $* $@ $>"Basic_check_relay" $1 $| $2
-
-SBasic_check_relay
-# check for deferred delivery mode
-R$* $: < ${deliveryMode} > $1
-R< d > $* $@ deferred
-R< $* > $* $: $2
-
-
-
-
-######################################################################
-### check_mail -- check SMTP `MAIL FROM:' command argument
-######################################################################
-
-SLocal_check_mail
-Scheck_mail
-R$* $: $1 $| $>"Local_check_mail" $1
-R$* $| $#$* $#$2
-R$* $| $* $@ $>"Basic_check_mail" $1
-
-SBasic_check_mail
-# check for deferred delivery mode
-R$* $: < ${deliveryMode} > $1
-R< d > $* $@ deferred
-R< $* > $* $: $2
-
-R<> $@ <OK> we MUST accept <> (RFC 1123)
-R$+ $: <?> $1
-R<?><$+> $: <@> <$1>
-R<?>$+ $: <@> <$1>
-R$* $: $&{daemon_flags} $| $1
-R$* f $* $| <@> < $* @ $- > $: < ? $&{client_name} > < $3 @ $4 >
-R$* u $* $| <@> < $* > $: <?> < $3 >
-R$* $| $* $: $2
-# handle case of @localhost on address
-R<@> < $* @ localhost > $: < ? $&{client_name} > < $1 @ localhost >
-R<@> < $* @ [127.0.0.1] >
- $: < ? $&{client_name} > < $1 @ [127.0.0.1] >
-R<@> < $* @ localhost.$m >
- $: < ? $&{client_name} > < $1 @ localhost.$m >
-R<@> < $* @ localhost.UUCP >
- $: < ? $&{client_name} > < $1 @ localhost.UUCP >
-R<@> $* $: $1 no localhost as domain
-R<? $=w> $* $: $2 local client: ok
-R<? $+> <$+> $#error $@ 5.5.4 $: "553 Real domain name required"
-R<?> $* $: $1
-R$* $: <?> $>CanonAddr $1 canonify sender address and mark it
-R<?> $* < @ $+ . > <?> $1 < @ $2 > strip trailing dots
-# handle non-DNS hostnames (*.bitnet, *.decnet, *.uucp, etc)
-R<?> $* < @ $* $=P > $: <OK> $1 < @ $2 $3 >
-R<?> $* < @ $+ > $: <? $(resolve $2 $: $2 <PERM> $) > $1 < @ $2 >
-R<? $* <$->> $* < @ $+ >
- $: <$2> $3 < @ $4 >
-
-
-# handle case of no @domain on address
-R<?> $* $: $&{daemon_flags} $| <?> $1
-R$* u $* $| <?> $* $: <OK> $3
-R$* $| $* $: $2
-R<?> $* $: < ? $&{client_name} > $1
-R<?> $* $@ <OK> ...local unqualed ok
-R<? $+> $* $#error $@ 5.5.4 $: "553 Domain name required"
- ...remote is not
-# check results
-R<?> $* $: @ $1 mark address: nothing known about it
-R<OK> $* $@ <OK>
-R<TEMP> $* $#error $@ 4.1.8 $: "451 Sender domain must resolve"
-R<PERM> $* $#error $@ 5.1.8 $: "501 Sender domain must exist"
-
-######################################################################
-### check_rcpt -- check SMTP `RCPT TO:' command argument
-######################################################################
-
-SLocal_check_rcpt
-Scheck_rcpt
-R$* $: $1 $| $>"Local_check_rcpt" $1
-R$* $| $#$* $#$2
-R$* $| $* $@ $>"Basic_check_rcpt" $1
-
-SBasic_check_rcpt
-# check for deferred delivery mode
-R$* $: < ${deliveryMode} > $1
-R< d > $* $@ deferred
-R< $* > $* $: $2
-
-
-R$* $: $>ParseRecipient $1 strip relayable hosts
-
-
-
-
-
-# authenticated by a trusted mechanism?
-R$* $: $1 $| $&{auth_type}
-R$* $| $: $1
-R$* $| $={TrustAuthMech} $# RELAYAUTH
-R$* $| $* $: $1
-# anything terminating locally is ok
-R$+ < @ $=w > $@ RELAYTO
-R$+ < @ $* $=R > $@ RELAYTO
-
-
-# check for local user (i.e. unqualified address)
-R$* $: <?> $1
-R<?> $* < @ $+ > $: <REMOTE> $1 < @ $2 >
-# local user is ok
-R<?> $+ $@ RELAYTOLOCAL
-R<$+> $* $: $2
-
-# anything originating locally is ok
-# check IP address
-R$* $: $&{client_addr}
-R$@ $@ RELAYFROM originated locally
-R0 $@ RELAYFROM originated locally
-R$=R $* $@ RELAYFROM relayable IP address
-R$* $: [ $1 ] put brackets around it...
-R$=w $@ RELAYFROM ... and see if it is local
-
-
-# check client name: first: did it resolve?
-R$* $: < $&{client_resolve} >
-R<TEMP> $#error $@ 4.7.1 $: "450 Relaying temporarily denied. Cannot resolve PTR record for " $&{client_addr}
-R<FORGED> $#error $@ 5.7.1 $: "550 Relaying denied. IP name possibly forged " $&{client_name}
-R<FAIL> $#error $@ 5.7.1 $: "550 Relaying denied. IP name lookup failed " $&{client_name}
-R$* $: <?> $&{client_name}
-R<?> $@ RELAYFROM
-R<?> $=w $@ RELAYFROM
-R<?> $* $=R $@ RELAYFROM
-
-# anything else is bogus
-R$* $#error $@ 5.7.1 $: "550 Relaying denied"
-
-
-# is user trusted to authenticate as someone else?
-Strust_auth
-R$* $: $&{auth_type} $| $1
-# required by RFC 2554 section 4.
-R$@ $| $* $#error $@ 5.7.1 $: "550 not authenticated"
-R$* $| $&{auth_authen} $@ identical
-R$* $| <$&{auth_authen}> $@ identical
-R$* $| $* $: $1 $| $>"Local_trust_auth" $1
-R$* $| $#$* $#$2
-R$* $#error $@ 5.7.1 $: "550 " $&{auth_authen} " not allowed to act as " $&{auth_author}
-
-SLocal_trust_auth
-
-
-#\f
-######################################################################
-######################################################################
-#####
-##### MAILER DEFINITIONS
-#####
-######################################################################
-######################################################################
-
-
-##################################################
-### Local and Program Mailer specification ###
-##################################################
-
-##### $Id: generic-hpux10.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-#
-# Envelope sender rewriting
-#
-SEnvFromL=10
-R<@> $n errors to mailer-daemon
-R@ <@ $*> $n temporarily bypass Sun bogosity
-R$+ $: $>AddDomain $1 add local domain if needed
-R$* $: $>MasqEnv $1 do masquerading
-
-#
-# Envelope recipient rewriting
-#
-SEnvToL=20
-R$+ < @ $* > $: $1 strip host part
-
-#
-# Header sender rewriting
-#
-SHdrFromL=30
-R<@> $n errors to mailer-daemon
-R@ <@ $*> $n temporarily bypass Sun bogosity
-R$+ $: $>AddDomain $1 add local domain if needed
-R$* $: $>MasqHdr $1 do masquerading
-
-#
-# Header recipient rewriting
-#
-SHdrToL=40
-R$+ $: $>AddDomain $1 add local domain if needed
-R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
-
-#
-# Common code to add local domain name (only if always-add-domain)
-#
-SAddDomain=50
-
-Mlocal, P=/usr/bin/rmail, F=lsDFMAw5:/|@qm9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,
- T=DNS/RFC822/X-Unix,
- A=rmail -d $u
-Mprog, P=/usr/bin/sh, F=lsDFMoqeu9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL, D=$z:/,
- T=X-Unix/X-Unix/X-Unix,
- A=sh -c $u
-
-#####################################
-### SMTP Mailer specification ###
-#####################################
-
-##### $Id: generic-hpux10.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-#
-# common sender and masquerading recipient rewriting
-#
-SMasqSMTP=61
-R$* < @ $* > $* $@ $1 < @ $2 > $3 already fully qualified
-R$+ $@ $1 < @ *LOCAL* > add local qualification
-
-#
-# convert pseudo-domain addresses to real domain addresses
-#
-SPseudoToReal=51
-
-# pass <route-addr>s through
-R< @ $+ > $* $@ < @ $1 > $2 resolve <route-addr>
-
-# output fake domains as user%fake@relay
-
-# do UUCP heuristics; note that these are shared with UUCP mailers
-R$+ < @ $+ .UUCP. > $: < $2 ! > $1 convert to UUCP form
-R$+ < @ $* > $* $@ $1 < @ $2 > $3 not UUCP form
-
-# leave these in .UUCP form to avoid further tampering
-R< $&h ! > $- ! $+ $@ $2 < @ $1 .UUCP. >
-R< $&h ! > $-.$+ ! $+ $@ $3 < @ $1.$2 >
-R< $&h ! > $+ $@ $1 < @ $&h .UUCP. >
-R< $+ ! > $+ $: $1 ! $2 < @ $Y > use UUCP_RELAY
-R$+ < @ $+ : $+ > $@ $1 < @ $3 > strip mailer: part
-R$+ < @ > $: $1 < @ *LOCAL* > if no UUCP_RELAY
-
-
-#
-# envelope sender rewriting
-#
-SEnvFromSMTP=11
-R$+ $: $>PseudoToReal $1 sender/recipient common
-R$* :; <@> $@ list:; special case
-R$* $: $>MasqSMTP $1 qualify unqual'ed names
-R$+ $: $>MasqEnv $1 do masquerading
-
-
-#
-# envelope recipient rewriting --
-# also header recipient if not masquerading recipients
-#
-SEnvToSMTP=21
-R$+ $: $>PseudoToReal $1 sender/recipient common
-R$+ $: $>MasqSMTP $1 qualify unqual'ed names
-R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
-
-#
-# header sender and masquerading header recipient rewriting
-#
-SHdrFromSMTP=31
-R$+ $: $>PseudoToReal $1 sender/recipient common
-R:; <@> $@ list:; special case
-
-# do special header rewriting
-R$* <@> $* $@ $1 <@> $2 pass null host through
-R< @ $* > $* $@ < @ $1 > $2 pass route-addr through
-R$* $: $>MasqSMTP $1 qualify unqual'ed names
-R$+ $: $>MasqHdr $1 do masquerading
-
-
-#
-# relay mailer header masquerading recipient rewriting
-#
-SMasqRelay=71
-R$+ $: $>MasqSMTP $1
-R$+ $: $>MasqHdr $1
-
-Msmtp, P=[IPC], F=mDFMuX, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Mesmtp, P=[IPC], F=mDFMuXa, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Msmtp8, P=[IPC], F=mDFMuX8, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Mdsmtp, P=[IPC], F=mDFMuXa%, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Mrelay, P=[IPC], F=mDFMuXa8, S=EnvFromSMTP/HdrFromSMTP, R=MasqSMTP, E=\r\n, L=2040,
- T=DNS/RFC822/SMTP,
- A=IPC $h
+++ /dev/null
-#
-# Copyright (c) 1998-2000 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-# Copyright (c) 1983, 1995 Eric P. Allman. All rights reserved.
-# Copyright (c) 1988, 1993
-# The Regents of the University of California. All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-
-######################################################################
-######################################################################
-#####
-##### SENDMAIL CONFIGURATION FILE
-#####
-##### built by gshapiro@horsey.gshapiro.net on Mon Mar 6 11:41:26 PST 2000
-##### in /usr/local/src/sendmail/devel/OpenSource/sendmail-8.10.0/cf/cf
-##### using ../ as configuration include directory
-#####
-######################################################################
-######################################################################
-
-##### $Id: generic-hpux9.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-##### $Id: generic-hpux9.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-##### $Id: generic-hpux9.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-##### $Id: generic-hpux9.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-
-##### $Id: generic-hpux9.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-##### $Id: generic-hpux9.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-##### $Id: generic-hpux9.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-
-
-##### $Id: generic-hpux9.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-
-# level 9 config file format
-V9/Berkeley
-
-# override file safeties - setting this option compromises system security,
-# addressing the actual file configuration problem is preferred
-# need to set this before any file actions are encountered in the cf file
-#O DontBlameSendmail=safe
-
-# default LDAP map specification
-# need to set this now before any LDAP maps are defined
-#O LDAPDefaultSpec=-h localhost
-
-##################
-# local info #
-##################
-
-Cwlocalhost
-# file containing names of hosts for which we receive email
-Fw/etc/mail/local-host-names
-
-# my official domain name
-# ... define this only if sendmail cannot automatically determine your domain
-#Dj$w.Foo.COM
-
-CP.
-
-# "Smart" relay host (may be null)
-DS
-
-
-# operators that cannot be in local usernames (i.e., network indicators)
-CO @ % !
-
-# a class with just dot (for identifying canonical names)
-C..
-
-# a class with just a left bracket (for identifying domain literals)
-C[[
-
-
-# Resolve map (to check if a host exists in check_mail)
-Kresolve host -a<OK> -T<TEMP>
-
-# Hosts that will permit relaying ($=R)
-FR-o /etc/mail/relay-domains
-
-
-# who I send unqualified names to (null means deliver locally)
-DR
-
-# who gets all local email traffic ($R has precedence for unqualified names)
-DH
-
-# dequoting map
-Kdequote dequote
-
-# class E: names that should be exposed as from this host, even if we masquerade
-# class L: names that should be delivered locally, even if we have a relay
-# class M: domains that should be converted to $M
-# class N: domains that should not be converted to $M
-#CL root
-CEroot
-
-# who I masquerade as (null for no masquerading) (see also $=M)
-DM
-
-# my name for error messages
-DnMAILER-DAEMON
-
-
-CPREDIRECT
-
-# Configuration version number
-DZ8.10.0
-
-
-###############
-# Options #
-###############
-
-# strip message body to 7 bits on input?
-O SevenBitInput=False
-
-# 8-bit data handling
-O EightBitMode=pass8
-
-# wait for alias file rebuild (default units: minutes)
-O AliasWait=10
-
-# location of alias file
-O AliasFile=/etc/mail/aliases
-
-# minimum number of free blocks on filesystem
-O MinFreeBlocks=100
-
-# maximum message size
-#O MaxMessageSize=1000000
-
-# substitution for space (blank) characters
-O BlankSub=.
-
-# avoid connecting to "expensive" mailers on initial submission?
-O HoldExpensive=False
-
-# checkpoint queue runs after every N successful deliveries
-#O CheckpointInterval=10
-
-# default delivery mode
-O DeliveryMode=background
-
-# automatically rebuild the alias database?
-# NOTE: There is a potential for a denial of service attack if this is set.
-# This option is deprecated and will be removed from a future version.
-#O AutoRebuildAliases=False
-
-# error message header/file
-#O ErrorHeader=/etc/mail/error-header
-
-# error mode
-#O ErrorMode=print
-
-# save Unix-style "From_" lines at top of header?
-#O SaveFromLine=False
-
-# temporary file mode
-O TempFileMode=0600
-
-# match recipients against GECOS field?
-#O MatchGECOS=False
-
-# maximum hop count
-#O MaxHopCount=17
-
-# location of help file
-O HelpFile=/etc/mail/helpfile
-
-# ignore dots as terminators in incoming messages?
-#O IgnoreDots=False
-
-# name resolver options
-#O ResolverOptions=+AAONLY
-
-# deliver MIME-encapsulated error messages?
-O SendMimeErrors=True
-
-# Forward file search path
-O ForwardPath=$z/.forward.$w+$h:$z/.forward+$h:$z/.forward.$w:$z/.forward
-
-# open connection cache size
-O ConnectionCacheSize=2
-
-# open connection cache timeout
-O ConnectionCacheTimeout=5m
-
-# persistent host status directory
-#O HostStatusDirectory=.hoststat
-
-# single thread deliveries (requires HostStatusDirectory)?
-#O SingleThreadDelivery=False
-
-# use Errors-To: header?
-O UseErrorsTo=False
-
-# log level
-O LogLevel=9
-
-# send to me too, even in an alias expansion?
-#O MeToo=True
-
-# verify RHS in newaliases?
-O CheckAliases=False
-
-# default messages to old style headers if no special punctuation?
-O OldStyleHeaders=True
-
-# SMTP daemon options
-O DaemonPortOptions=Name=MTA
-O DaemonPortOptions=Port=587, Name=MSA, M=E
-
-# SMTP client options
-#O ClientPortOptions=Address=0.0.0.0
-
-# privacy flags
-O PrivacyOptions=authwarnings
-
-# who (if anyone) should get extra copies of error messages
-#O PostmasterCopy=Postmaster
-
-# slope of queue-only function
-#O QueueFactor=600000
-
-# queue directory
-O QueueDirectory=/usr/spool/mqueue
-
-# timeouts (many of these)
-#O Timeout.initial=5m
-#O Timeout.connect=5m
-#O Timeout.iconnect=5m
-#O Timeout.helo=5m
-#O Timeout.mail=10m
-#O Timeout.rcpt=1h
-#O Timeout.datainit=5m
-#O Timeout.datablock=1h
-#O Timeout.datafinal=1h
-#O Timeout.rset=5m
-#O Timeout.quit=2m
-#O Timeout.misc=2m
-#O Timeout.command=1h
-#O Timeout.ident=5s
-#O Timeout.fileopen=60s
-#O Timeout.control=2m
-O Timeout.queuereturn=5d
-#O Timeout.queuereturn.normal=5d
-#O Timeout.queuereturn.urgent=2d
-#O Timeout.queuereturn.non-urgent=7d
-O Timeout.queuewarn=4h
-#O Timeout.queuewarn.normal=4h
-#O Timeout.queuewarn.urgent=1h
-#O Timeout.queuewarn.non-urgent=12h
-#O Timeout.hoststatus=30m
-#O Timeout.resolver.retrans=5s
-#O Timeout.resolver.retrans.first=5s
-#O Timeout.resolver.retrans.normal=5s
-#O Timeout.resolver.retry=4
-#O Timeout.resolver.retry.first=4
-#O Timeout.resolver.retry.normal=4
-
-# should we not prune routes in route-addr syntax addresses?
-#O DontPruneRoutes=False
-
-# queue up everything before forking?
-O SuperSafe=True
-
-# status file
-O StatusFile=/etc/mail/statistics
-
-# time zone handling:
-# if undefined, use system default
-# if defined but null, use TZ envariable passed in
-# if defined and non-null, use that info
-O TimeZoneSpec=
-
-# default UID (can be username or userid:groupid)
-#O DefaultUser=mailnull
-
-# list of locations of user database file (null means no lookup)
-#O UserDatabaseSpec=/etc/mail/userdb
-
-# fallback MX host
-#O FallbackMXhost=fall.back.host.net
-
-# if we are the best MX host for a site, try it directly instead of config err
-#O TryNullMXList=False
-
-# load average at which we just queue messages
-#O QueueLA=8
-
-# load average at which we refuse connections
-#O RefuseLA=12
-
-# maximum number of children we allow at one time
-#O MaxDaemonChildren=12
-
-# maximum number of new connections per second
-#O ConnectionRateThrottle=3
-
-# work recipient factor
-#O RecipientFactor=30000
-
-# deliver each queued job in a separate process?
-#O ForkEachJob=False
-
-# work class factor
-#O ClassFactor=1800
-
-# work time factor
-#O RetryFactor=90000
-
-# shall we sort the queue by hostname first?
-#O QueueSortOrder=priority
-
-# minimum time in queue before retry
-#O MinQueueAge=30m
-
-# default character set
-#O DefaultCharSet=iso-8859-1
-
-# service switch file (ignored on Solaris, Ultrix, OSF/1, others)
-#O ServiceSwitchFile=/etc/mail/service.switch
-
-# hosts file (normally /etc/hosts)
-#O HostsFile=/etc/hosts
-
-# dialup line delay on connection failure
-#O DialDelay=10s
-
-# action to take if there are no recipients in the message
-#O NoRecipientAction=add-to-undisclosed
-
-# chrooted environment for writing to files
-#O SafeFileEnvironment=/arch
-
-# are colons OK in addresses?
-#O ColonOkInAddr=True
-
-# how many jobs can you process in the queue?
-#O MaxQueueRunSize=10000
-
-# shall I avoid expanding CNAMEs (violates protocols)?
-#O DontExpandCnames=False
-
-# SMTP initial login message (old $e macro)
-O SmtpGreetingMessage=$j Sendmail $v/$Z; $b
-
-# UNIX initial From header format (old $l macro)
-O UnixFromLine=From $g $d
-
-# From: lines that have embedded newlines are unwrapped onto one line
-#O SingleLineFromHeader=False
-
-# Allow HELO SMTP command that does not include a host name
-#O AllowBogusHELO=False
-
-# Characters to be quoted in a full name phrase (@,;:\()[] are automatic)
-#O MustQuoteChars=.
-
-# delimiter (operator) characters (old $o macro)
-O OperatorChars=.:%@!^/[]+
-
-# shall I avoid calling initgroups(3) because of high NIS costs?
-#O DontInitGroups=False
-
-# are group-writable :include: and .forward files (un)trustworthy?
-#O UnsafeGroupWrites=True
-
-# where do errors that occur when sending errors get sent?
-#O DoubleBounceAddress=postmaster
-
-# where to save bounces if all else fails
-#O DeadLetterDrop=/var/tmp/dead.letter
-
-# what user id do we assume for the majority of the processing?
-#O RunAsUser=sendmail
-
-# maximum number of recipients per SMTP envelope
-#O MaxRecipientsPerMessage=100
-
-# shall we get local names from our installed interfaces?
-#O DontProbeInterfaces=False
-
-# Return-Receipt-To: header implies DSN request
-#O RrtImpliesDsn=False
-
-# override connection address (for testing)
-#O ConnectOnlyTo=0.0.0.0
-
-# Trusted user for file ownership and starting the daemon
-#O TrustedUser=root
-
-# Control socket for daemon management
-#O ControlSocketName=/var/spool/mqueue/.control
-
-# Maximum MIME header length to protect MUAs
-#O MaxMimeHeaderLength=0/0
-
-# Maximum length of the sum of all headers
-O MaxHeadersLength=32768
-
-# Maximum depth of alias recursion
-#O MaxAliasRecursion=10
-
-# location of pid file
-#O PidFile=/var/run/sendmail.pid
-
-# Prefix string for the process title shown on 'ps' listings
-#O ProcessTitlePrefix=prefix
-
-# Data file (df) memory-buffer file maximum size
-#O DataFileBufferSize=4096
-
-# Transcript file (xf) memory-buffer file maximum size
-#O XscriptFileBufferSize=4096
-
-# list of authentication mechanisms
-#O AuthMechanisms=GSSAPI KERBEROS_V4 DIGEST-MD5 CRAM-MD5
-
-# default authentication information for outgoing connections
-#O DefaultAuthInfo=/etc/mail/default-auth-info
-
-# try to authenticate? (Try when available/only when Authenticated)
-#O AuthOptions=T
-
-
-
-
-
-
-###########################
-# Message precedences #
-###########################
-
-Pfirst-class=0
-Pspecial-delivery=100
-Plist=-30
-Pbulk=-60
-Pjunk=-100
-
-#####################
-# Trusted users #
-#####################
-
-# this is equivalent to setting class "t"
-#Ft/etc/mail/trusted-users
-Troot
-Tdaemon
-Tuucp
-
-#########################
-# Format of headers #
-#########################
-
-H?P?Return-Path: <$g>
-HReceived: $?sfrom $s $.$?_($?s$|from $.$_)
- $.$?{auth_type}(authenticated)
- $.by $j ($v/$Z)$?r with $r$. id $i$?u
- for $u; $|;
- $.$b
-H?D?Resent-Date: $a
-H?D?Date: $a
-H?F?Resent-From: $?x$x <$g>$|$g$.
-H?F?From: $?x$x <$g>$|$g$.
-H?x?Full-Name: $x
-# HPosted-Date: $a
-# H?l?Received-Date: $b
-H?M?Resent-Message-Id: <$t.$i@$j>
-H?M?Message-Id: <$t.$i@$j>
-
-#\f
-######################################################################
-######################################################################
-#####
-##### REWRITING RULES
-#####
-######################################################################
-######################################################################
-
-############################################
-### Ruleset 3 -- Name Canonicalization ###
-############################################
-Scanonify=3
-
-# handle null input (translate to <@> special case)
-R$@ $@ <@>
-
-# strip group: syntax (not inside angle brackets!) and trailing semicolon
-R$* $: $1 <@> mark addresses
-R$* < $* > $* <@> $: $1 < $2 > $3 unmark <addr>
-R@ $* <@> $: @ $1 unmark @host:...
-R$* :: $* <@> $: $1 :: $2 unmark node::addr
-R:include: $* <@> $: :include: $1 unmark :include:...
-R$* [ IPv6 $- ] <@> $: $1 [ IPv6 $2 ] unmark IPv6 addr
-R$* : $* [ $* ] $: $1 : $2 [ $3 ] <@> remark if leading colon
-R$* : $* <@> $: $2 strip colon if marked
-R$* <@> $: $1 unmark
-R$* ; $1 strip trailing semi
-R$* < $* ; > $1 < $2 > bogus bracketed semi
-
-# null input now results from list:; syntax
-R$@ $@ :; <@>
-
-# strip angle brackets -- note RFC733 heuristic to get innermost item
-R$* $: < $1 > housekeeping <>
-R$+ < $* > < $2 > strip excess on left
-R< $* > $+ < $1 > strip excess on right
-R<> $@ < @ > MAIL FROM:<> case
-R< $+ > $: $1 remove housekeeping <>
-
-# strip route address <@a,@b,@c:user@d> -> <user@d>
-R@ $+ , $+ $2
-R@ $+ : $+ $2
-
-# find focus for list syntax
-R $+ : $* ; @ $+ $@ $>Canonify2 $1 : $2 ; < @ $3 > list syntax
-R $+ : $* ; $@ $1 : $2; list syntax
-
-# find focus for @ syntax addresses
-R$+ @ $+ $: $1 < @ $2 > focus on domain
-R$+ < $+ @ $+ > $1 $2 < @ $3 > move gaze right
-R$+ < @ $+ > $@ $>Canonify2 $1 < @ $2 > already canonical
-
-# do some sanity checking
-R$* < @ $* : $* > $* $1 < @ $2 $3 > $4 nix colons in addrs
-
-# convert old-style addresses to a domain-based address
-R$- ! $+ $@ $>Canonify2 $2 < @ $1 .UUCP > resolve uucp names
-R$+ . $- ! $+ $@ $>Canonify2 $3 < @ $1 . $2 > domain uucps
-R$+ ! $+ $@ $>Canonify2 $2 < @ $1 .UUCP > uucp subdomains
-
-# if we have % signs, take the rightmost one
-R$* % $* $1 @ $2 First make them all @s.
-R$* @ $* @ $* $1 % $2 @ $3 Undo all but the last.
-R$* @ $* $@ $>Canonify2 $1 < @ $2 > Insert < > and finish
-
-# else we must be a local name
-R$* $@ $>Canonify2 $1
-
-
-################################################
-### Ruleset 96 -- bottom half of ruleset 3 ###
-################################################
-
-SCanonify2=96
-
-# handle special cases for local names
-R$* < @ localhost > $* $: $1 < @ $j . > $2 no domain at all
-R$* < @ localhost . $m > $* $: $1 < @ $j . > $2 local domain
-R$* < @ localhost . UUCP > $* $: $1 < @ $j . > $2 .UUCP domain
-
-# check for IPv6 domain literal (save quoted form)
-R$* < @ [ IPv6 $- ] > $* $: $2 $| $1 < @@ [ $(dequote $2 $) ] > $3 mark IPv6 addr
-R$- $| $* < @@ $=w > $* $: $2 < @ $j . > $4 self-literal
-R$- $| $* < @@ [ $+ ] > $* $@ $2 < @ [ IPv6 $1 ] > $4 canon IP addr
-
-# check for IPv4 domain literal
-R$* < @ [ $+ ] > $* $: $1 < @@ [ $2 ] > $3 mark [a.b.c.d]
-R$* < @@ $=w > $* $: $1 < @ $j . > $3 self-literal
-R$* < @@ $+ > $* $@ $1 < @ $2 > $3 canon IP addr
-
-
-
-
-
-# if really UUCP, handle it immediately
-
-# try UUCP traffic as a local address
-R$* < @ $+ . UUCP > $* $: $1 < @ $[ $2 $] . UUCP . > $3
-R$* < @ $+ . . UUCP . > $* $@ $1 < @ $2 . > $3
-
-# hostnames ending in class P are always canonical
-R$* < @ $* $=P > $* $: $1 < @ $2 $3 . > $4
-R$* < @ $* $~P > $* $: $&{daemon_flags} $| $1 < @ $2 $3 > $4
-R$* CC $* $| $* $: $3
-# pass to name server to make hostname canonical
-R$* $| $* < @ $* > $* $: $2 < @ $[ $3 $] > $4
-R$* $| $* $: $2
-
-# local host aliases and pseudo-domains are always canonical
-R$* < @ $=w > $* $: $1 < @ $2 . > $3
-R$* < @ $=M > $* $: $1 < @ $2 . > $3
-R$* < @ $* . . > $* $1 < @ $2 . > $3
-
-
-##################################################
-### Ruleset 4 -- Final Output Post-rewriting ###
-##################################################
-Sfinal=4
-
-R$* <@> $@ handle <> and list:;
-
-# strip trailing dot off possibly canonical name
-R$* < @ $+ . > $* $1 < @ $2 > $3
-
-# eliminate internal code
-R$* < @ *LOCAL* > $* $1 < @ $j > $2
-
-# externalize local domain info
-R$* < $+ > $* $1 $2 $3 defocus
-R@ $+ : @ $+ : $+ @ $1 , @ $2 : $3 <route-addr> canonical
-R@ $* $@ @ $1 ... and exit
-
-# 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 @ $2 u%host@host => u@host
-
-
-
-##############################################################
-### Ruleset 97 -- recanonicalize and call ruleset zero ###
-### (used for recursive calls) ###
-##############################################################
-
-SRecurse=97
-R$* $: $>canonify $1
-R$* $@ $>parse $1
-
-
-######################################
-### Ruleset 0 -- Parse Address ###
-######################################
-
-Sparse=0
-
-R$* $: $>Parse0 $1 initial parsing
-R<@> $#local $: <@> special case error msgs
-R$* $: $>ParseLocal $1 handle local hacks
-R$* $: $>Parse1 $1 final parsing
-
-#
-# Parse0 -- do initial syntax checking and eliminate local addresses.
-# This should either return with the (possibly modified) input
-# or return with a #error mailer. It should not return with a
-# #mailer other than the #error mailer.
-#
-
-SParse0
-R<@> $@ <@> special case error msgs
-R$* : $* ; <@> $#error $@ 5.1.3 $: "553 List:; syntax illegal for recipient addresses"
-R@ <@ $* > < @ $1 > catch "@@host" bogosity
-R<@ $+> $#error $@ 5.1.3 $: "553 User address required"
-R$* $: <> $1
-R<> $* < @ [ $+ ] > $* $1 < @ [ $2 ] > $3
-R<> $* <$* : $* > $* $#error $@ 5.1.3 $: "553 Colon illegal in host name part"
-R<> $* $1
-R$* < @ . $* > $* $#error $@ 5.1.2 $: "553 Invalid host name"
-R$* < @ $* .. $* > $* $#error $@ 5.1.2 $: "553 Invalid host name"
-
-# now delete the local info -- note $=O to find characters that cause forwarding
-R$* < @ > $* $@ $>Parse0 $>canonify $1 user@ => user
-R< @ $=w . > : $* $@ $>Parse0 $>canonify $2 @here:... -> ...
-R$- < @ $=w . > $: $(dequote $1 $) < @ $2 . > dequote "foo"@here
-R< @ $+ > $#error $@ 5.1.3 $: "553 User address required"
-R$* $=O $* < @ $=w . > $@ $>Parse0 $>canonify $1 $2 $3 ...@here -> ...
-R$- $: $(dequote $1 $) < @ *LOCAL* > dequote "foo"
-R< @ *LOCAL* > $#error $@ 5.1.3 $: "553 User address required"
-R$* $=O $* < @ *LOCAL* >
- $@ $>Parse0 $>canonify $1 $2 $3 ...@*LOCAL* -> ...
-R$* < @ *LOCAL* > $: $1
-
-#
-# Parse1 -- the bottom half of ruleset 0.
-#
-
-SParse1
-
-# handle numeric address spec
-R$* < @ [ $+ ] > $* $: $>ParseLocal $1 < @ [ $2 ] > $3 numeric internet spec
-R$* < @ [ $+ ] > $* $1 < @ [ $2 ] : $S > $3 Add smart host to path
-R$* < @ [ IPv6 $- ] : > $*
- $#esmtp $@ [ $(dequote $2 $) ] $: $1 < @ [IPv6 $2 ] > $3 no smarthost: send
-R$* < @ [ $+ ] : > $* $#esmtp $@ [$2] $: $1 < @ [$2] > $3 no smarthost: send
-R$* < @ [ $+ ] : $- : $*> $* $#$3 $@ $4 $: $1 < @ [$2] > $5 smarthost with mailer
-R$* < @ [ $+ ] : $+ > $* $#esmtp $@ $3 $: $1 < @ [$2] > $4 smarthost without mailer
-
-
-# short circuit local delivery so forwarded email works
-R$=L < @ $=w . > $#local $: @ $1 special local names
-R$+ < @ $=w . > $#local $: $1 regular local name
-
-
-# resolve remotely connected UUCP links (if any)
-
-# resolve fake top level domains by forwarding to other hosts
-
-
-
-# pass names that still have a host to a smarthost (if defined)
-R$* < @ $* > $* $: $>MailerToTriple < $S > $1 < @ $2 > $3 glue on smarthost name
-
-# deal with other remote names
-R$* < @$* > $* $#esmtp $@ $2 $: $1 < @ $2 > $3 user@host.domain
-
-# handle locally delivered names
-R$=L $#local $: @ $1 special local names
-R$+ $#local $: $1 regular local names
-
-###########################################################################
-### Ruleset 5 -- special rewriting after aliases have been expanded ###
-###########################################################################
-
-SLocal_localaddr
-Slocaladdr=5
-R$+ $: $1 $| $>"Local_localaddr" $1
-R$+ $| $#$* $#$2
-R$+ $| $* $: $1
-
-# deal with plussed users so aliases work nicely
-R$+ + * $#local $@ $&h $: $1
-R$+ + $* $#local $@ + $2 $: $1 + *
-
-# prepend an empty "forward host" on the front
-R$+ $: <> $1
-
-
-# see if we have a relay or a hub
-R< > $+ $: < $H > $1 try hub
-R< > $+ $: < $R > $1 try relay
-R< > $+ $: < > < $1 <> $&h > nope, restore +detail
-R< > < $+ <> + $* > $: < > < $1 + $2 > check whether +detail
-R< > < $+ <> $* > $: < > < $1 > else discard
-R< > < $+ + $* > $* < > < $1 > + $2 $3 find the user part
-R< > < $+ > + $* $#local $@ $2 $: @ $1 strip the extra +
-R< > < $+ > $@ $1 no +detail
-R$+ $: $1 <> $&h add +detail back in
-R$+ <> + $* $: $1 + $2 check whether +detail
-R$+ <> $* $: $1 else discard
-R< local : $* > $* $: $>MailerToTriple < local : $1 > $2 no host extension
-R< error : $* > $* $: $>MailerToTriple < error : $1 > $2 no host extension
-R< $- : $+ > $+ $: $>MailerToTriple < $1 : $2 > $3 < @ $2 >
-R< $+ > $+ $@ $>MailerToTriple < $1 > $2 < @ $1 >
-
-
-###################################################################
-### Ruleset 95 -- canonify mailer:[user@]host syntax to triple ###
-###################################################################
-
-SMailerToTriple=95
-R< > $* $@ $1 strip off null relay
-R< error : $-.$-.$- : $+ > $* $#error $@ $1.$2.$3 $: $4
-R< error : $- $+ > $* $#error $@ $(dequote $1 $) $: $2
-R< local : $* > $* $>CanonLocal < $1 > $2
-R< $- : $+ @ $+ > $*<$*>$* $# $1 $@ $3 $: $2<@$3> use literal user
-R< $- : $+ > $* $# $1 $@ $2 $: $3 try qualified mailer
-R< $=w > $* $@ $2 delete local host
-R< [ IPv6 $+ ] > $* $#relay $@ $(dequote $1 $) $: $2 use unqualified mailer
-R< $+ > $* $#relay $@ $1 $: $2 use unqualified mailer
-
-###################################################################
-### Ruleset CanonLocal -- canonify local: syntax ###
-###################################################################
-
-SCanonLocal
-# strip local host from routed addresses
-R< $* > < @ $+ > : $+ $@ $>Recurse $3
-R< $* > $+ $=O $+ < @ $+ > $@ $>Recurse $2 $3 $4
-
-# strip trailing dot from any host name that may appear
-R< $* > $* < @ $* . > $: < $1 > $2 < @ $3 >
-
-# handle local: syntax -- use old user, either with or without host
-R< > $* < @ $* > $* $#local $@ $1@$2 $: $1
-R< > $+ $#local $@ $1 $: $1
-
-# handle local:user@host syntax -- ignore host part
-R< $+ @ $+ > $* < @ $* > $: < $1 > $3 < @ $4 >
-
-# handle local:user syntax
-R< $+ > $* <@ $* > $* $#local $@ $2@$3 $: $1
-R< $+ > $* $#local $@ $2 $: $1
-
-###################################################################
-### Ruleset 93 -- convert header names to masqueraded form ###
-###################################################################
-
-SMasqHdr=93
-
-
-# do not masquerade anything in class N
-R$* < @ $* $=N . > $@ $1 < @ $2 $3 . >
-
-# special case the users that should be exposed
-R$=E < @ *LOCAL* > $@ $1 < @ $j . > leave exposed
-R$=E < @ $=M . > $@ $1 < @ $2 . >
-R$=E < @ $=w . > $@ $1 < @ $2 . >
-
-# handle domain-specific masquerading
-R$* < @ $=M . > $* $: $1 < @ $2 . @ $M > $3 convert masqueraded doms
-R$* < @ $=w . > $* $: $1 < @ $2 . @ $M > $3
-R$* < @ *LOCAL* > $* $: $1 < @ $j . @ $M > $2
-R$* < @ $+ @ > $* $: $1 < @ $2 > $3 $M is null
-R$* < @ $+ @ $+ > $* $: $1 < @ $3 . > $4 $M is not null
-
-###################################################################
-### Ruleset 94 -- convert envelope names to masqueraded form ###
-###################################################################
-
-SMasqEnv=94
-R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
-
-###################################################################
-### Ruleset 98 -- local part of ruleset zero (can be null) ###
-###################################################################
-
-SParseLocal=98
-
-# addresses sent to foo@host.REDIRECT will give a 551 error code
-R$* < @ $+ .REDIRECT. > $: $1 < @ $2 . REDIRECT . > < ${opMode} >
-R$* < @ $+ .REDIRECT. > <i> $: $1 < @ $2 . REDIRECT. >
-R$* < @ $+ .REDIRECT. > < $- > $#error $@ 5.1.1 $: "551 User has moved; please try " <$1@$2>
-
-
-
-
-
-######################################################################
-### CanonAddr -- Convert an address into a standard form for
-### relay checking. Route address syntax is
-### crudely converted into a %-hack address.
-###
-### Parameters:
-### $1 -- full recipient address
-###
-### Returns:
-### parsed address, not in source route form
-######################################################################
-
-SCanonAddr
-R$* $: $>Parse0 $>canonify $1 make domain canonical
-
-
-######################################################################
-### ParseRecipient -- Strip off hosts in $=R as well as possibly
-### $* $=m or the access database.
-### Check user portion for host separators.
-###
-### Parameters:
-### $1 -- full recipient address
-###
-### Returns:
-### parsed, non-local-relaying address
-######################################################################
-
-SParseRecipient
-R$* $: <?> $>CanonAddr $1
-R<?> $* < @ $* . > <?> $1 < @ $2 > strip trailing dots
-R<?> $- < @ $* > $: <?> $(dequote $1 $) < @ $2 > dequote local part
-
-# if no $=O character, no host in the user portion, we are done
-R<?> $* $=O $* < @ $* > $: <NO> $1 $2 $3 < @ $4>
-R<?> $* $@ $1
-
-
-
-R<NO> $* < @ $* $=R > $: <RELAY> $1 < @ $2 $3 >
-
-R<RELAY> $* < @ $* > $@ $>ParseRecipient $1
-R<$-> $* $@ $2
-
-
-######################################################################
-### check_relay -- check hostname/address on SMTP startup
-######################################################################
-
-SLocal_check_relay
-Scheck_relay
-R$* $: $1 $| $>"Local_check_relay" $1
-R$* $| $* $| $#$* $#$3
-R$* $| $* $| $* $@ $>"Basic_check_relay" $1 $| $2
-
-SBasic_check_relay
-# check for deferred delivery mode
-R$* $: < ${deliveryMode} > $1
-R< d > $* $@ deferred
-R< $* > $* $: $2
-
-
-
-
-######################################################################
-### check_mail -- check SMTP `MAIL FROM:' command argument
-######################################################################
-
-SLocal_check_mail
-Scheck_mail
-R$* $: $1 $| $>"Local_check_mail" $1
-R$* $| $#$* $#$2
-R$* $| $* $@ $>"Basic_check_mail" $1
-
-SBasic_check_mail
-# check for deferred delivery mode
-R$* $: < ${deliveryMode} > $1
-R< d > $* $@ deferred
-R< $* > $* $: $2
-
-R<> $@ <OK> we MUST accept <> (RFC 1123)
-R$+ $: <?> $1
-R<?><$+> $: <@> <$1>
-R<?>$+ $: <@> <$1>
-R$* $: $&{daemon_flags} $| $1
-R$* f $* $| <@> < $* @ $- > $: < ? $&{client_name} > < $3 @ $4 >
-R$* u $* $| <@> < $* > $: <?> < $3 >
-R$* $| $* $: $2
-# handle case of @localhost on address
-R<@> < $* @ localhost > $: < ? $&{client_name} > < $1 @ localhost >
-R<@> < $* @ [127.0.0.1] >
- $: < ? $&{client_name} > < $1 @ [127.0.0.1] >
-R<@> < $* @ localhost.$m >
- $: < ? $&{client_name} > < $1 @ localhost.$m >
-R<@> < $* @ localhost.UUCP >
- $: < ? $&{client_name} > < $1 @ localhost.UUCP >
-R<@> $* $: $1 no localhost as domain
-R<? $=w> $* $: $2 local client: ok
-R<? $+> <$+> $#error $@ 5.5.4 $: "553 Real domain name required"
-R<?> $* $: $1
-R$* $: <?> $>CanonAddr $1 canonify sender address and mark it
-R<?> $* < @ $+ . > <?> $1 < @ $2 > strip trailing dots
-# handle non-DNS hostnames (*.bitnet, *.decnet, *.uucp, etc)
-R<?> $* < @ $* $=P > $: <OK> $1 < @ $2 $3 >
-R<?> $* < @ $+ > $: <? $(resolve $2 $: $2 <PERM> $) > $1 < @ $2 >
-R<? $* <$->> $* < @ $+ >
- $: <$2> $3 < @ $4 >
-
-
-# handle case of no @domain on address
-R<?> $* $: $&{daemon_flags} $| <?> $1
-R$* u $* $| <?> $* $: <OK> $3
-R$* $| $* $: $2
-R<?> $* $: < ? $&{client_name} > $1
-R<?> $* $@ <OK> ...local unqualed ok
-R<? $+> $* $#error $@ 5.5.4 $: "553 Domain name required"
- ...remote is not
-# check results
-R<?> $* $: @ $1 mark address: nothing known about it
-R<OK> $* $@ <OK>
-R<TEMP> $* $#error $@ 4.1.8 $: "451 Sender domain must resolve"
-R<PERM> $* $#error $@ 5.1.8 $: "501 Sender domain must exist"
-
-######################################################################
-### check_rcpt -- check SMTP `RCPT TO:' command argument
-######################################################################
-
-SLocal_check_rcpt
-Scheck_rcpt
-R$* $: $1 $| $>"Local_check_rcpt" $1
-R$* $| $#$* $#$2
-R$* $| $* $@ $>"Basic_check_rcpt" $1
-
-SBasic_check_rcpt
-# check for deferred delivery mode
-R$* $: < ${deliveryMode} > $1
-R< d > $* $@ deferred
-R< $* > $* $: $2
-
-
-R$* $: $>ParseRecipient $1 strip relayable hosts
-
-
-
-
-
-# authenticated by a trusted mechanism?
-R$* $: $1 $| $&{auth_type}
-R$* $| $: $1
-R$* $| $={TrustAuthMech} $# RELAYAUTH
-R$* $| $* $: $1
-# anything terminating locally is ok
-R$+ < @ $=w > $@ RELAYTO
-R$+ < @ $* $=R > $@ RELAYTO
-
-
-# check for local user (i.e. unqualified address)
-R$* $: <?> $1
-R<?> $* < @ $+ > $: <REMOTE> $1 < @ $2 >
-# local user is ok
-R<?> $+ $@ RELAYTOLOCAL
-R<$+> $* $: $2
-
-# anything originating locally is ok
-# check IP address
-R$* $: $&{client_addr}
-R$@ $@ RELAYFROM originated locally
-R0 $@ RELAYFROM originated locally
-R$=R $* $@ RELAYFROM relayable IP address
-R$* $: [ $1 ] put brackets around it...
-R$=w $@ RELAYFROM ... and see if it is local
-
-
-# check client name: first: did it resolve?
-R$* $: < $&{client_resolve} >
-R<TEMP> $#error $@ 4.7.1 $: "450 Relaying temporarily denied. Cannot resolve PTR record for " $&{client_addr}
-R<FORGED> $#error $@ 5.7.1 $: "550 Relaying denied. IP name possibly forged " $&{client_name}
-R<FAIL> $#error $@ 5.7.1 $: "550 Relaying denied. IP name lookup failed " $&{client_name}
-R$* $: <?> $&{client_name}
-R<?> $@ RELAYFROM
-R<?> $=w $@ RELAYFROM
-R<?> $* $=R $@ RELAYFROM
-
-# anything else is bogus
-R$* $#error $@ 5.7.1 $: "550 Relaying denied"
-
-
-# is user trusted to authenticate as someone else?
-Strust_auth
-R$* $: $&{auth_type} $| $1
-# required by RFC 2554 section 4.
-R$@ $| $* $#error $@ 5.7.1 $: "550 not authenticated"
-R$* $| $&{auth_authen} $@ identical
-R$* $| <$&{auth_authen}> $@ identical
-R$* $| $* $: $1 $| $>"Local_trust_auth" $1
-R$* $| $#$* $#$2
-R$* $#error $@ 5.7.1 $: "550 " $&{auth_authen} " not allowed to act as " $&{auth_author}
-
-SLocal_trust_auth
-
-
-#\f
-######################################################################
-######################################################################
-#####
-##### MAILER DEFINITIONS
-#####
-######################################################################
-######################################################################
-
-
-##################################################
-### Local and Program Mailer specification ###
-##################################################
-
-##### $Id: generic-hpux9.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-#
-# Envelope sender rewriting
-#
-SEnvFromL=10
-R<@> $n errors to mailer-daemon
-R@ <@ $*> $n temporarily bypass Sun bogosity
-R$+ $: $>AddDomain $1 add local domain if needed
-R$* $: $>MasqEnv $1 do masquerading
-
-#
-# Envelope recipient rewriting
-#
-SEnvToL=20
-R$+ < @ $* > $: $1 strip host part
-
-#
-# Header sender rewriting
-#
-SHdrFromL=30
-R<@> $n errors to mailer-daemon
-R@ <@ $*> $n temporarily bypass Sun bogosity
-R$+ $: $>AddDomain $1 add local domain if needed
-R$* $: $>MasqHdr $1 do masquerading
-
-#
-# Header recipient rewriting
-#
-SHdrToL=40
-R$+ $: $>AddDomain $1 add local domain if needed
-R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
-
-#
-# Common code to add local domain name (only if always-add-domain)
-#
-SAddDomain=50
-
-Mlocal, P=/bin/rmail, F=lsDFMAw5:/|@qm9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,
- T=DNS/RFC822/X-Unix,
- A=rmail -d $u
-Mprog, P=/bin/sh, F=lsDFMoqeu9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL, D=$z:/,
- T=X-Unix/X-Unix/X-Unix,
- A=sh -c $u
-
-#####################################
-### SMTP Mailer specification ###
-#####################################
-
-##### $Id: generic-hpux9.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-#
-# common sender and masquerading recipient rewriting
-#
-SMasqSMTP=61
-R$* < @ $* > $* $@ $1 < @ $2 > $3 already fully qualified
-R$+ $@ $1 < @ *LOCAL* > add local qualification
-
-#
-# convert pseudo-domain addresses to real domain addresses
-#
-SPseudoToReal=51
-
-# pass <route-addr>s through
-R< @ $+ > $* $@ < @ $1 > $2 resolve <route-addr>
-
-# output fake domains as user%fake@relay
-
-# do UUCP heuristics; note that these are shared with UUCP mailers
-R$+ < @ $+ .UUCP. > $: < $2 ! > $1 convert to UUCP form
-R$+ < @ $* > $* $@ $1 < @ $2 > $3 not UUCP form
-
-# leave these in .UUCP form to avoid further tampering
-R< $&h ! > $- ! $+ $@ $2 < @ $1 .UUCP. >
-R< $&h ! > $-.$+ ! $+ $@ $3 < @ $1.$2 >
-R< $&h ! > $+ $@ $1 < @ $&h .UUCP. >
-R< $+ ! > $+ $: $1 ! $2 < @ $Y > use UUCP_RELAY
-R$+ < @ $+ : $+ > $@ $1 < @ $3 > strip mailer: part
-R$+ < @ > $: $1 < @ *LOCAL* > if no UUCP_RELAY
-
-
-#
-# envelope sender rewriting
-#
-SEnvFromSMTP=11
-R$+ $: $>PseudoToReal $1 sender/recipient common
-R$* :; <@> $@ list:; special case
-R$* $: $>MasqSMTP $1 qualify unqual'ed names
-R$+ $: $>MasqEnv $1 do masquerading
-
-
-#
-# envelope recipient rewriting --
-# also header recipient if not masquerading recipients
-#
-SEnvToSMTP=21
-R$+ $: $>PseudoToReal $1 sender/recipient common
-R$+ $: $>MasqSMTP $1 qualify unqual'ed names
-R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
-
-#
-# header sender and masquerading header recipient rewriting
-#
-SHdrFromSMTP=31
-R$+ $: $>PseudoToReal $1 sender/recipient common
-R:; <@> $@ list:; special case
-
-# do special header rewriting
-R$* <@> $* $@ $1 <@> $2 pass null host through
-R< @ $* > $* $@ < @ $1 > $2 pass route-addr through
-R$* $: $>MasqSMTP $1 qualify unqual'ed names
-R$+ $: $>MasqHdr $1 do masquerading
-
-
-#
-# relay mailer header masquerading recipient rewriting
-#
-SMasqRelay=71
-R$+ $: $>MasqSMTP $1
-R$+ $: $>MasqHdr $1
-
-Msmtp, P=[IPC], F=mDFMuX, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Mesmtp, P=[IPC], F=mDFMuXa, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Msmtp8, P=[IPC], F=mDFMuX8, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Mdsmtp, P=[IPC], F=mDFMuXa%, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Mrelay, P=[IPC], F=mDFMuXa8, S=EnvFromSMTP/HdrFromSMTP, R=MasqSMTP, E=\r\n, L=2040,
- T=DNS/RFC822/SMTP,
- A=IPC $h
+++ /dev/null
-#
-# Copyright (c) 1998-2000 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-# Copyright (c) 1983, 1995 Eric P. Allman. All rights reserved.
-# Copyright (c) 1988, 1993
-# The Regents of the University of California. All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-
-######################################################################
-######################################################################
-#####
-##### SENDMAIL CONFIGURATION FILE
-#####
-##### built by gshapiro@horsey.gshapiro.net on Mon Mar 6 11:41:27 PST 2000
-##### in /usr/local/src/sendmail/devel/OpenSource/sendmail-8.10.0/cf/cf
-##### using ../ as configuration include directory
-#####
-######################################################################
-######################################################################
-
-##### $Id: generic-linux.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-##### $Id: generic-linux.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-##### $Id: generic-linux.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-##### $Id: generic-linux.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-
-##### $Id: generic-linux.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-
-##### $Id: generic-linux.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-##### $Id: generic-linux.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-##### $Id: generic-linux.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-
-
-##### $Id: generic-linux.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-
-# level 9 config file format
-V9/Berkeley
-
-# override file safeties - setting this option compromises system security,
-# addressing the actual file configuration problem is preferred
-# need to set this before any file actions are encountered in the cf file
-#O DontBlameSendmail=safe
-
-# default LDAP map specification
-# need to set this now before any LDAP maps are defined
-#O LDAPDefaultSpec=-h localhost
-
-##################
-# local info #
-##################
-
-Cwlocalhost
-# file containing names of hosts for which we receive email
-Fw/etc/mail/local-host-names
-
-# my official domain name
-# ... define this only if sendmail cannot automatically determine your domain
-#Dj$w.Foo.COM
-
-CP.
-
-# "Smart" relay host (may be null)
-DS
-
-
-# operators that cannot be in local usernames (i.e., network indicators)
-CO @ % !
-
-# a class with just dot (for identifying canonical names)
-C..
-
-# a class with just a left bracket (for identifying domain literals)
-C[[
-
-
-# Resolve map (to check if a host exists in check_mail)
-Kresolve host -a<OK> -T<TEMP>
-
-# Hosts that will permit relaying ($=R)
-FR-o /etc/mail/relay-domains
-
-
-# who I send unqualified names to (null means deliver locally)
-DR
-
-# who gets all local email traffic ($R has precedence for unqualified names)
-DH
-
-# dequoting map
-Kdequote dequote
-
-# class E: names that should be exposed as from this host, even if we masquerade
-# class L: names that should be delivered locally, even if we have a relay
-# class M: domains that should be converted to $M
-# class N: domains that should not be converted to $M
-#CL root
-CEroot
-
-# who I masquerade as (null for no masquerading) (see also $=M)
-DM
-
-# my name for error messages
-DnMAILER-DAEMON
-
-
-CPREDIRECT
-
-# Configuration version number
-DZ8.10.0
-
-
-###############
-# Options #
-###############
-
-# strip message body to 7 bits on input?
-O SevenBitInput=False
-
-# 8-bit data handling
-O EightBitMode=pass8
-
-# wait for alias file rebuild (default units: minutes)
-O AliasWait=10
-
-# location of alias file
-O AliasFile=/etc/mail/aliases
-
-# minimum number of free blocks on filesystem
-O MinFreeBlocks=100
-
-# maximum message size
-#O MaxMessageSize=1000000
-
-# substitution for space (blank) characters
-O BlankSub=.
-
-# avoid connecting to "expensive" mailers on initial submission?
-O HoldExpensive=False
-
-# checkpoint queue runs after every N successful deliveries
-#O CheckpointInterval=10
-
-# default delivery mode
-O DeliveryMode=background
-
-# automatically rebuild the alias database?
-# NOTE: There is a potential for a denial of service attack if this is set.
-# This option is deprecated and will be removed from a future version.
-#O AutoRebuildAliases=False
-
-# error message header/file
-#O ErrorHeader=/etc/mail/error-header
-
-# error mode
-#O ErrorMode=print
-
-# save Unix-style "From_" lines at top of header?
-#O SaveFromLine=False
-
-# temporary file mode
-O TempFileMode=0600
-
-# match recipients against GECOS field?
-#O MatchGECOS=False
-
-# maximum hop count
-#O MaxHopCount=17
-
-# location of help file
-O HelpFile=/etc/mail/helpfile
-
-# ignore dots as terminators in incoming messages?
-#O IgnoreDots=False
-
-# name resolver options
-#O ResolverOptions=+AAONLY
-
-# deliver MIME-encapsulated error messages?
-O SendMimeErrors=True
-
-# Forward file search path
-O ForwardPath=$z/.forward.$w+$h:$z/.forward+$h:$z/.forward.$w:$z/.forward
-
-# open connection cache size
-O ConnectionCacheSize=2
-
-# open connection cache timeout
-O ConnectionCacheTimeout=5m
-
-# persistent host status directory
-#O HostStatusDirectory=.hoststat
-
-# single thread deliveries (requires HostStatusDirectory)?
-#O SingleThreadDelivery=False
-
-# use Errors-To: header?
-O UseErrorsTo=False
-
-# log level
-O LogLevel=9
-
-# send to me too, even in an alias expansion?
-#O MeToo=True
-
-# verify RHS in newaliases?
-O CheckAliases=False
-
-# default messages to old style headers if no special punctuation?
-O OldStyleHeaders=True
-
-# SMTP daemon options
-O DaemonPortOptions=Name=MTA
-O DaemonPortOptions=Port=587, Name=MSA, M=E
-
-# SMTP client options
-#O ClientPortOptions=Address=0.0.0.0
-
-# privacy flags
-O PrivacyOptions=authwarnings
-
-# who (if anyone) should get extra copies of error messages
-#O PostmasterCopy=Postmaster
-
-# slope of queue-only function
-#O QueueFactor=600000
-
-# queue directory
-O QueueDirectory=/var/spool/mqueue
-
-# timeouts (many of these)
-#O Timeout.initial=5m
-#O Timeout.connect=5m
-#O Timeout.iconnect=5m
-#O Timeout.helo=5m
-#O Timeout.mail=10m
-#O Timeout.rcpt=1h
-#O Timeout.datainit=5m
-#O Timeout.datablock=1h
-#O Timeout.datafinal=1h
-#O Timeout.rset=5m
-#O Timeout.quit=2m
-#O Timeout.misc=2m
-#O Timeout.command=1h
-#O Timeout.ident=5s
-#O Timeout.fileopen=60s
-#O Timeout.control=2m
-O Timeout.queuereturn=5d
-#O Timeout.queuereturn.normal=5d
-#O Timeout.queuereturn.urgent=2d
-#O Timeout.queuereturn.non-urgent=7d
-O Timeout.queuewarn=4h
-#O Timeout.queuewarn.normal=4h
-#O Timeout.queuewarn.urgent=1h
-#O Timeout.queuewarn.non-urgent=12h
-#O Timeout.hoststatus=30m
-#O Timeout.resolver.retrans=5s
-#O Timeout.resolver.retrans.first=5s
-#O Timeout.resolver.retrans.normal=5s
-#O Timeout.resolver.retry=4
-#O Timeout.resolver.retry.first=4
-#O Timeout.resolver.retry.normal=4
-
-# should we not prune routes in route-addr syntax addresses?
-#O DontPruneRoutes=False
-
-# queue up everything before forking?
-O SuperSafe=True
-
-# status file
-O StatusFile=/etc/mail/statistics
-
-# time zone handling:
-# if undefined, use system default
-# if defined but null, use TZ envariable passed in
-# if defined and non-null, use that info
-#O TimeZoneSpec=
-
-# default UID (can be username or userid:groupid)
-#O DefaultUser=mailnull
-
-# list of locations of user database file (null means no lookup)
-#O UserDatabaseSpec=/etc/mail/userdb
-
-# fallback MX host
-#O FallbackMXhost=fall.back.host.net
-
-# if we are the best MX host for a site, try it directly instead of config err
-#O TryNullMXList=False
-
-# load average at which we just queue messages
-#O QueueLA=8
-
-# load average at which we refuse connections
-#O RefuseLA=12
-
-# maximum number of children we allow at one time
-#O MaxDaemonChildren=12
-
-# maximum number of new connections per second
-#O ConnectionRateThrottle=3
-
-# work recipient factor
-#O RecipientFactor=30000
-
-# deliver each queued job in a separate process?
-#O ForkEachJob=False
-
-# work class factor
-#O ClassFactor=1800
-
-# work time factor
-#O RetryFactor=90000
-
-# shall we sort the queue by hostname first?
-#O QueueSortOrder=priority
-
-# minimum time in queue before retry
-#O MinQueueAge=30m
-
-# default character set
-#O DefaultCharSet=iso-8859-1
-
-# service switch file (ignored on Solaris, Ultrix, OSF/1, others)
-#O ServiceSwitchFile=/etc/mail/service.switch
-
-# hosts file (normally /etc/hosts)
-#O HostsFile=/etc/hosts
-
-# dialup line delay on connection failure
-#O DialDelay=10s
-
-# action to take if there are no recipients in the message
-#O NoRecipientAction=add-to-undisclosed
-
-# chrooted environment for writing to files
-#O SafeFileEnvironment=/arch
-
-# are colons OK in addresses?
-#O ColonOkInAddr=True
-
-# how many jobs can you process in the queue?
-#O MaxQueueRunSize=10000
-
-# shall I avoid expanding CNAMEs (violates protocols)?
-#O DontExpandCnames=False
-
-# SMTP initial login message (old $e macro)
-O SmtpGreetingMessage=$j Sendmail $v/$Z; $b
-
-# UNIX initial From header format (old $l macro)
-O UnixFromLine=From $g $d
-
-# From: lines that have embedded newlines are unwrapped onto one line
-#O SingleLineFromHeader=False
-
-# Allow HELO SMTP command that does not include a host name
-#O AllowBogusHELO=False
-
-# Characters to be quoted in a full name phrase (@,;:\()[] are automatic)
-#O MustQuoteChars=.
-
-# delimiter (operator) characters (old $o macro)
-O OperatorChars=.:%@!^/[]+
-
-# shall I avoid calling initgroups(3) because of high NIS costs?
-#O DontInitGroups=False
-
-# are group-writable :include: and .forward files (un)trustworthy?
-#O UnsafeGroupWrites=True
-
-# where do errors that occur when sending errors get sent?
-#O DoubleBounceAddress=postmaster
-
-# where to save bounces if all else fails
-#O DeadLetterDrop=/var/tmp/dead.letter
-
-# what user id do we assume for the majority of the processing?
-#O RunAsUser=sendmail
-
-# maximum number of recipients per SMTP envelope
-#O MaxRecipientsPerMessage=100
-
-# shall we get local names from our installed interfaces?
-#O DontProbeInterfaces=False
-
-# Return-Receipt-To: header implies DSN request
-#O RrtImpliesDsn=False
-
-# override connection address (for testing)
-#O ConnectOnlyTo=0.0.0.0
-
-# Trusted user for file ownership and starting the daemon
-#O TrustedUser=root
-
-# Control socket for daemon management
-#O ControlSocketName=/var/spool/mqueue/.control
-
-# Maximum MIME header length to protect MUAs
-#O MaxMimeHeaderLength=0/0
-
-# Maximum length of the sum of all headers
-O MaxHeadersLength=32768
-
-# Maximum depth of alias recursion
-#O MaxAliasRecursion=10
-
-# location of pid file
-#O PidFile=/var/run/sendmail.pid
-
-# Prefix string for the process title shown on 'ps' listings
-#O ProcessTitlePrefix=prefix
-
-# Data file (df) memory-buffer file maximum size
-#O DataFileBufferSize=4096
-
-# Transcript file (xf) memory-buffer file maximum size
-#O XscriptFileBufferSize=4096
-
-# list of authentication mechanisms
-#O AuthMechanisms=GSSAPI KERBEROS_V4 DIGEST-MD5 CRAM-MD5
-
-# default authentication information for outgoing connections
-#O DefaultAuthInfo=/etc/mail/default-auth-info
-
-# try to authenticate? (Try when available/only when Authenticated)
-#O AuthOptions=T
-
-
-
-
-
-
-###########################
-# Message precedences #
-###########################
-
-Pfirst-class=0
-Pspecial-delivery=100
-Plist=-30
-Pbulk=-60
-Pjunk=-100
-
-#####################
-# Trusted users #
-#####################
-
-# this is equivalent to setting class "t"
-#Ft/etc/mail/trusted-users
-Troot
-Tdaemon
-Tuucp
-
-#########################
-# Format of headers #
-#########################
-
-H?P?Return-Path: <$g>
-HReceived: $?sfrom $s $.$?_($?s$|from $.$_)
- $.$?{auth_type}(authenticated)
- $.by $j ($v/$Z)$?r with $r$. id $i$?u
- for $u; $|;
- $.$b
-H?D?Resent-Date: $a
-H?D?Date: $a
-H?F?Resent-From: $?x$x <$g>$|$g$.
-H?F?From: $?x$x <$g>$|$g$.
-H?x?Full-Name: $x
-# HPosted-Date: $a
-# H?l?Received-Date: $b
-H?M?Resent-Message-Id: <$t.$i@$j>
-H?M?Message-Id: <$t.$i@$j>
-
-#\f
-######################################################################
-######################################################################
-#####
-##### REWRITING RULES
-#####
-######################################################################
-######################################################################
-
-############################################
-### Ruleset 3 -- Name Canonicalization ###
-############################################
-Scanonify=3
-
-# handle null input (translate to <@> special case)
-R$@ $@ <@>
-
-# strip group: syntax (not inside angle brackets!) and trailing semicolon
-R$* $: $1 <@> mark addresses
-R$* < $* > $* <@> $: $1 < $2 > $3 unmark <addr>
-R@ $* <@> $: @ $1 unmark @host:...
-R$* :: $* <@> $: $1 :: $2 unmark node::addr
-R:include: $* <@> $: :include: $1 unmark :include:...
-R$* [ IPv6 $- ] <@> $: $1 [ IPv6 $2 ] unmark IPv6 addr
-R$* : $* [ $* ] $: $1 : $2 [ $3 ] <@> remark if leading colon
-R$* : $* <@> $: $2 strip colon if marked
-R$* <@> $: $1 unmark
-R$* ; $1 strip trailing semi
-R$* < $* ; > $1 < $2 > bogus bracketed semi
-
-# null input now results from list:; syntax
-R$@ $@ :; <@>
-
-# strip angle brackets -- note RFC733 heuristic to get innermost item
-R$* $: < $1 > housekeeping <>
-R$+ < $* > < $2 > strip excess on left
-R< $* > $+ < $1 > strip excess on right
-R<> $@ < @ > MAIL FROM:<> case
-R< $+ > $: $1 remove housekeeping <>
-
-# strip route address <@a,@b,@c:user@d> -> <user@d>
-R@ $+ , $+ $2
-R@ $+ : $+ $2
-
-# find focus for list syntax
-R $+ : $* ; @ $+ $@ $>Canonify2 $1 : $2 ; < @ $3 > list syntax
-R $+ : $* ; $@ $1 : $2; list syntax
-
-# find focus for @ syntax addresses
-R$+ @ $+ $: $1 < @ $2 > focus on domain
-R$+ < $+ @ $+ > $1 $2 < @ $3 > move gaze right
-R$+ < @ $+ > $@ $>Canonify2 $1 < @ $2 > already canonical
-
-# do some sanity checking
-R$* < @ $* : $* > $* $1 < @ $2 $3 > $4 nix colons in addrs
-
-# convert old-style addresses to a domain-based address
-R$- ! $+ $@ $>Canonify2 $2 < @ $1 .UUCP > resolve uucp names
-R$+ . $- ! $+ $@ $>Canonify2 $3 < @ $1 . $2 > domain uucps
-R$+ ! $+ $@ $>Canonify2 $2 < @ $1 .UUCP > uucp subdomains
-
-# if we have % signs, take the rightmost one
-R$* % $* $1 @ $2 First make them all @s.
-R$* @ $* @ $* $1 % $2 @ $3 Undo all but the last.
-R$* @ $* $@ $>Canonify2 $1 < @ $2 > Insert < > and finish
-
-# else we must be a local name
-R$* $@ $>Canonify2 $1
-
-
-################################################
-### Ruleset 96 -- bottom half of ruleset 3 ###
-################################################
-
-SCanonify2=96
-
-# handle special cases for local names
-R$* < @ localhost > $* $: $1 < @ $j . > $2 no domain at all
-R$* < @ localhost . $m > $* $: $1 < @ $j . > $2 local domain
-R$* < @ localhost . UUCP > $* $: $1 < @ $j . > $2 .UUCP domain
-
-# check for IPv6 domain literal (save quoted form)
-R$* < @ [ IPv6 $- ] > $* $: $2 $| $1 < @@ [ $(dequote $2 $) ] > $3 mark IPv6 addr
-R$- $| $* < @@ $=w > $* $: $2 < @ $j . > $4 self-literal
-R$- $| $* < @@ [ $+ ] > $* $@ $2 < @ [ IPv6 $1 ] > $4 canon IP addr
-
-# check for IPv4 domain literal
-R$* < @ [ $+ ] > $* $: $1 < @@ [ $2 ] > $3 mark [a.b.c.d]
-R$* < @@ $=w > $* $: $1 < @ $j . > $3 self-literal
-R$* < @@ $+ > $* $@ $1 < @ $2 > $3 canon IP addr
-
-
-
-
-
-# if really UUCP, handle it immediately
-
-# try UUCP traffic as a local address
-R$* < @ $+ . UUCP > $* $: $1 < @ $[ $2 $] . UUCP . > $3
-R$* < @ $+ . . UUCP . > $* $@ $1 < @ $2 . > $3
-
-# hostnames ending in class P are always canonical
-R$* < @ $* $=P > $* $: $1 < @ $2 $3 . > $4
-R$* < @ $* $~P > $* $: $&{daemon_flags} $| $1 < @ $2 $3 > $4
-R$* CC $* $| $* $: $3
-# pass to name server to make hostname canonical
-R$* $| $* < @ $* > $* $: $2 < @ $[ $3 $] > $4
-R$* $| $* $: $2
-
-# local host aliases and pseudo-domains are always canonical
-R$* < @ $=w > $* $: $1 < @ $2 . > $3
-R$* < @ $=M > $* $: $1 < @ $2 . > $3
-R$* < @ $* . . > $* $1 < @ $2 . > $3
-
-
-##################################################
-### Ruleset 4 -- Final Output Post-rewriting ###
-##################################################
-Sfinal=4
-
-R$* <@> $@ handle <> and list:;
-
-# strip trailing dot off possibly canonical name
-R$* < @ $+ . > $* $1 < @ $2 > $3
-
-# eliminate internal code
-R$* < @ *LOCAL* > $* $1 < @ $j > $2
-
-# externalize local domain info
-R$* < $+ > $* $1 $2 $3 defocus
-R@ $+ : @ $+ : $+ @ $1 , @ $2 : $3 <route-addr> canonical
-R@ $* $@ @ $1 ... and exit
-
-# 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 @ $2 u%host@host => u@host
-
-
-
-##############################################################
-### Ruleset 97 -- recanonicalize and call ruleset zero ###
-### (used for recursive calls) ###
-##############################################################
-
-SRecurse=97
-R$* $: $>canonify $1
-R$* $@ $>parse $1
-
-
-######################################
-### Ruleset 0 -- Parse Address ###
-######################################
-
-Sparse=0
-
-R$* $: $>Parse0 $1 initial parsing
-R<@> $#local $: <@> special case error msgs
-R$* $: $>ParseLocal $1 handle local hacks
-R$* $: $>Parse1 $1 final parsing
-
-#
-# Parse0 -- do initial syntax checking and eliminate local addresses.
-# This should either return with the (possibly modified) input
-# or return with a #error mailer. It should not return with a
-# #mailer other than the #error mailer.
-#
-
-SParse0
-R<@> $@ <@> special case error msgs
-R$* : $* ; <@> $#error $@ 5.1.3 $: "553 List:; syntax illegal for recipient addresses"
-R@ <@ $* > < @ $1 > catch "@@host" bogosity
-R<@ $+> $#error $@ 5.1.3 $: "553 User address required"
-R$* $: <> $1
-R<> $* < @ [ $+ ] > $* $1 < @ [ $2 ] > $3
-R<> $* <$* : $* > $* $#error $@ 5.1.3 $: "553 Colon illegal in host name part"
-R<> $* $1
-R$* < @ . $* > $* $#error $@ 5.1.2 $: "553 Invalid host name"
-R$* < @ $* .. $* > $* $#error $@ 5.1.2 $: "553 Invalid host name"
-
-# now delete the local info -- note $=O to find characters that cause forwarding
-R$* < @ > $* $@ $>Parse0 $>canonify $1 user@ => user
-R< @ $=w . > : $* $@ $>Parse0 $>canonify $2 @here:... -> ...
-R$- < @ $=w . > $: $(dequote $1 $) < @ $2 . > dequote "foo"@here
-R< @ $+ > $#error $@ 5.1.3 $: "553 User address required"
-R$* $=O $* < @ $=w . > $@ $>Parse0 $>canonify $1 $2 $3 ...@here -> ...
-R$- $: $(dequote $1 $) < @ *LOCAL* > dequote "foo"
-R< @ *LOCAL* > $#error $@ 5.1.3 $: "553 User address required"
-R$* $=O $* < @ *LOCAL* >
- $@ $>Parse0 $>canonify $1 $2 $3 ...@*LOCAL* -> ...
-R$* < @ *LOCAL* > $: $1
-
-#
-# Parse1 -- the bottom half of ruleset 0.
-#
-
-SParse1
-
-# handle numeric address spec
-R$* < @ [ $+ ] > $* $: $>ParseLocal $1 < @ [ $2 ] > $3 numeric internet spec
-R$* < @ [ $+ ] > $* $1 < @ [ $2 ] : $S > $3 Add smart host to path
-R$* < @ [ IPv6 $- ] : > $*
- $#esmtp $@ [ $(dequote $2 $) ] $: $1 < @ [IPv6 $2 ] > $3 no smarthost: send
-R$* < @ [ $+ ] : > $* $#esmtp $@ [$2] $: $1 < @ [$2] > $3 no smarthost: send
-R$* < @ [ $+ ] : $- : $*> $* $#$3 $@ $4 $: $1 < @ [$2] > $5 smarthost with mailer
-R$* < @ [ $+ ] : $+ > $* $#esmtp $@ $3 $: $1 < @ [$2] > $4 smarthost without mailer
-
-
-# short circuit local delivery so forwarded email works
-R$=L < @ $=w . > $#local $: @ $1 special local names
-R$+ < @ $=w . > $#local $: $1 regular local name
-
-
-# resolve remotely connected UUCP links (if any)
-
-# resolve fake top level domains by forwarding to other hosts
-
-
-
-# pass names that still have a host to a smarthost (if defined)
-R$* < @ $* > $* $: $>MailerToTriple < $S > $1 < @ $2 > $3 glue on smarthost name
-
-# deal with other remote names
-R$* < @$* > $* $#esmtp $@ $2 $: $1 < @ $2 > $3 user@host.domain
-
-# handle locally delivered names
-R$=L $#local $: @ $1 special local names
-R$+ $#local $: $1 regular local names
-
-###########################################################################
-### Ruleset 5 -- special rewriting after aliases have been expanded ###
-###########################################################################
-
-SLocal_localaddr
-Slocaladdr=5
-R$+ $: $1 $| $>"Local_localaddr" $1
-R$+ $| $#$* $#$2
-R$+ $| $* $: $1
-
-# deal with plussed users so aliases work nicely
-R$+ + * $#local $@ $&h $: $1
-R$+ + $* $#local $@ + $2 $: $1 + *
-
-# prepend an empty "forward host" on the front
-R$+ $: <> $1
-
-
-# see if we have a relay or a hub
-R< > $+ $: < $H > $1 try hub
-R< > $+ $: < $R > $1 try relay
-R< > $+ $: < > < $1 <> $&h > nope, restore +detail
-R< > < $+ <> + $* > $: < > < $1 + $2 > check whether +detail
-R< > < $+ <> $* > $: < > < $1 > else discard
-R< > < $+ + $* > $* < > < $1 > + $2 $3 find the user part
-R< > < $+ > + $* $#local $@ $2 $: @ $1 strip the extra +
-R< > < $+ > $@ $1 no +detail
-R$+ $: $1 <> $&h add +detail back in
-R$+ <> + $* $: $1 + $2 check whether +detail
-R$+ <> $* $: $1 else discard
-R< local : $* > $* $: $>MailerToTriple < local : $1 > $2 no host extension
-R< error : $* > $* $: $>MailerToTriple < error : $1 > $2 no host extension
-R< $- : $+ > $+ $: $>MailerToTriple < $1 : $2 > $3 < @ $2 >
-R< $+ > $+ $@ $>MailerToTriple < $1 > $2 < @ $1 >
-
-
-###################################################################
-### Ruleset 95 -- canonify mailer:[user@]host syntax to triple ###
-###################################################################
-
-SMailerToTriple=95
-R< > $* $@ $1 strip off null relay
-R< error : $-.$-.$- : $+ > $* $#error $@ $1.$2.$3 $: $4
-R< error : $- $+ > $* $#error $@ $(dequote $1 $) $: $2
-R< local : $* > $* $>CanonLocal < $1 > $2
-R< $- : $+ @ $+ > $*<$*>$* $# $1 $@ $3 $: $2<@$3> use literal user
-R< $- : $+ > $* $# $1 $@ $2 $: $3 try qualified mailer
-R< $=w > $* $@ $2 delete local host
-R< [ IPv6 $+ ] > $* $#relay $@ $(dequote $1 $) $: $2 use unqualified mailer
-R< $+ > $* $#relay $@ $1 $: $2 use unqualified mailer
-
-###################################################################
-### Ruleset CanonLocal -- canonify local: syntax ###
-###################################################################
-
-SCanonLocal
-# strip local host from routed addresses
-R< $* > < @ $+ > : $+ $@ $>Recurse $3
-R< $* > $+ $=O $+ < @ $+ > $@ $>Recurse $2 $3 $4
-
-# strip trailing dot from any host name that may appear
-R< $* > $* < @ $* . > $: < $1 > $2 < @ $3 >
-
-# handle local: syntax -- use old user, either with or without host
-R< > $* < @ $* > $* $#local $@ $1@$2 $: $1
-R< > $+ $#local $@ $1 $: $1
-
-# handle local:user@host syntax -- ignore host part
-R< $+ @ $+ > $* < @ $* > $: < $1 > $3 < @ $4 >
-
-# handle local:user syntax
-R< $+ > $* <@ $* > $* $#local $@ $2@$3 $: $1
-R< $+ > $* $#local $@ $2 $: $1
-
-###################################################################
-### Ruleset 93 -- convert header names to masqueraded form ###
-###################################################################
-
-SMasqHdr=93
-
-
-# do not masquerade anything in class N
-R$* < @ $* $=N . > $@ $1 < @ $2 $3 . >
-
-# special case the users that should be exposed
-R$=E < @ *LOCAL* > $@ $1 < @ $j . > leave exposed
-R$=E < @ $=M . > $@ $1 < @ $2 . >
-R$=E < @ $=w . > $@ $1 < @ $2 . >
-
-# handle domain-specific masquerading
-R$* < @ $=M . > $* $: $1 < @ $2 . @ $M > $3 convert masqueraded doms
-R$* < @ $=w . > $* $: $1 < @ $2 . @ $M > $3
-R$* < @ *LOCAL* > $* $: $1 < @ $j . @ $M > $2
-R$* < @ $+ @ > $* $: $1 < @ $2 > $3 $M is null
-R$* < @ $+ @ $+ > $* $: $1 < @ $3 . > $4 $M is not null
-
-###################################################################
-### Ruleset 94 -- convert envelope names to masqueraded form ###
-###################################################################
-
-SMasqEnv=94
-R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
-
-###################################################################
-### Ruleset 98 -- local part of ruleset zero (can be null) ###
-###################################################################
-
-SParseLocal=98
-
-# addresses sent to foo@host.REDIRECT will give a 551 error code
-R$* < @ $+ .REDIRECT. > $: $1 < @ $2 . REDIRECT . > < ${opMode} >
-R$* < @ $+ .REDIRECT. > <i> $: $1 < @ $2 . REDIRECT. >
-R$* < @ $+ .REDIRECT. > < $- > $#error $@ 5.1.1 $: "551 User has moved; please try " <$1@$2>
-
-
-
-
-
-######################################################################
-### CanonAddr -- Convert an address into a standard form for
-### relay checking. Route address syntax is
-### crudely converted into a %-hack address.
-###
-### Parameters:
-### $1 -- full recipient address
-###
-### Returns:
-### parsed address, not in source route form
-######################################################################
-
-SCanonAddr
-R$* $: $>Parse0 $>canonify $1 make domain canonical
-
-
-######################################################################
-### ParseRecipient -- Strip off hosts in $=R as well as possibly
-### $* $=m or the access database.
-### Check user portion for host separators.
-###
-### Parameters:
-### $1 -- full recipient address
-###
-### Returns:
-### parsed, non-local-relaying address
-######################################################################
-
-SParseRecipient
-R$* $: <?> $>CanonAddr $1
-R<?> $* < @ $* . > <?> $1 < @ $2 > strip trailing dots
-R<?> $- < @ $* > $: <?> $(dequote $1 $) < @ $2 > dequote local part
-
-# if no $=O character, no host in the user portion, we are done
-R<?> $* $=O $* < @ $* > $: <NO> $1 $2 $3 < @ $4>
-R<?> $* $@ $1
-
-
-
-R<NO> $* < @ $* $=R > $: <RELAY> $1 < @ $2 $3 >
-
-R<RELAY> $* < @ $* > $@ $>ParseRecipient $1
-R<$-> $* $@ $2
-
-
-######################################################################
-### check_relay -- check hostname/address on SMTP startup
-######################################################################
-
-SLocal_check_relay
-Scheck_relay
-R$* $: $1 $| $>"Local_check_relay" $1
-R$* $| $* $| $#$* $#$3
-R$* $| $* $| $* $@ $>"Basic_check_relay" $1 $| $2
-
-SBasic_check_relay
-# check for deferred delivery mode
-R$* $: < ${deliveryMode} > $1
-R< d > $* $@ deferred
-R< $* > $* $: $2
-
-
-
-
-######################################################################
-### check_mail -- check SMTP `MAIL FROM:' command argument
-######################################################################
-
-SLocal_check_mail
-Scheck_mail
-R$* $: $1 $| $>"Local_check_mail" $1
-R$* $| $#$* $#$2
-R$* $| $* $@ $>"Basic_check_mail" $1
-
-SBasic_check_mail
-# check for deferred delivery mode
-R$* $: < ${deliveryMode} > $1
-R< d > $* $@ deferred
-R< $* > $* $: $2
-
-R<> $@ <OK> we MUST accept <> (RFC 1123)
-R$+ $: <?> $1
-R<?><$+> $: <@> <$1>
-R<?>$+ $: <@> <$1>
-R$* $: $&{daemon_flags} $| $1
-R$* f $* $| <@> < $* @ $- > $: < ? $&{client_name} > < $3 @ $4 >
-R$* u $* $| <@> < $* > $: <?> < $3 >
-R$* $| $* $: $2
-# handle case of @localhost on address
-R<@> < $* @ localhost > $: < ? $&{client_name} > < $1 @ localhost >
-R<@> < $* @ [127.0.0.1] >
- $: < ? $&{client_name} > < $1 @ [127.0.0.1] >
-R<@> < $* @ localhost.$m >
- $: < ? $&{client_name} > < $1 @ localhost.$m >
-R<@> < $* @ localhost.UUCP >
- $: < ? $&{client_name} > < $1 @ localhost.UUCP >
-R<@> $* $: $1 no localhost as domain
-R<? $=w> $* $: $2 local client: ok
-R<? $+> <$+> $#error $@ 5.5.4 $: "553 Real domain name required"
-R<?> $* $: $1
-R$* $: <?> $>CanonAddr $1 canonify sender address and mark it
-R<?> $* < @ $+ . > <?> $1 < @ $2 > strip trailing dots
-# handle non-DNS hostnames (*.bitnet, *.decnet, *.uucp, etc)
-R<?> $* < @ $* $=P > $: <OK> $1 < @ $2 $3 >
-R<?> $* < @ $+ > $: <? $(resolve $2 $: $2 <PERM> $) > $1 < @ $2 >
-R<? $* <$->> $* < @ $+ >
- $: <$2> $3 < @ $4 >
-
-
-# handle case of no @domain on address
-R<?> $* $: $&{daemon_flags} $| <?> $1
-R$* u $* $| <?> $* $: <OK> $3
-R$* $| $* $: $2
-R<?> $* $: < ? $&{client_name} > $1
-R<?> $* $@ <OK> ...local unqualed ok
-R<? $+> $* $#error $@ 5.5.4 $: "553 Domain name required"
- ...remote is not
-# check results
-R<?> $* $: @ $1 mark address: nothing known about it
-R<OK> $* $@ <OK>
-R<TEMP> $* $#error $@ 4.1.8 $: "451 Sender domain must resolve"
-R<PERM> $* $#error $@ 5.1.8 $: "501 Sender domain must exist"
-
-######################################################################
-### check_rcpt -- check SMTP `RCPT TO:' command argument
-######################################################################
-
-SLocal_check_rcpt
-Scheck_rcpt
-R$* $: $1 $| $>"Local_check_rcpt" $1
-R$* $| $#$* $#$2
-R$* $| $* $@ $>"Basic_check_rcpt" $1
-
-SBasic_check_rcpt
-# check for deferred delivery mode
-R$* $: < ${deliveryMode} > $1
-R< d > $* $@ deferred
-R< $* > $* $: $2
-
-
-R$* $: $>ParseRecipient $1 strip relayable hosts
-
-
-
-
-
-# authenticated by a trusted mechanism?
-R$* $: $1 $| $&{auth_type}
-R$* $| $: $1
-R$* $| $={TrustAuthMech} $# RELAYAUTH
-R$* $| $* $: $1
-# anything terminating locally is ok
-R$+ < @ $=w > $@ RELAYTO
-R$+ < @ $* $=R > $@ RELAYTO
-
-
-# check for local user (i.e. unqualified address)
-R$* $: <?> $1
-R<?> $* < @ $+ > $: <REMOTE> $1 < @ $2 >
-# local user is ok
-R<?> $+ $@ RELAYTOLOCAL
-R<$+> $* $: $2
-
-# anything originating locally is ok
-# check IP address
-R$* $: $&{client_addr}
-R$@ $@ RELAYFROM originated locally
-R0 $@ RELAYFROM originated locally
-R$=R $* $@ RELAYFROM relayable IP address
-R$* $: [ $1 ] put brackets around it...
-R$=w $@ RELAYFROM ... and see if it is local
-
-
-# check client name: first: did it resolve?
-R$* $: < $&{client_resolve} >
-R<TEMP> $#error $@ 4.7.1 $: "450 Relaying temporarily denied. Cannot resolve PTR record for " $&{client_addr}
-R<FORGED> $#error $@ 5.7.1 $: "550 Relaying denied. IP name possibly forged " $&{client_name}
-R<FAIL> $#error $@ 5.7.1 $: "550 Relaying denied. IP name lookup failed " $&{client_name}
-R$* $: <?> $&{client_name}
-R<?> $@ RELAYFROM
-R<?> $=w $@ RELAYFROM
-R<?> $* $=R $@ RELAYFROM
-
-# anything else is bogus
-R$* $#error $@ 5.7.1 $: "550 Relaying denied"
-
-
-# is user trusted to authenticate as someone else?
-Strust_auth
-R$* $: $&{auth_type} $| $1
-# required by RFC 2554 section 4.
-R$@ $| $* $#error $@ 5.7.1 $: "550 not authenticated"
-R$* $| $&{auth_authen} $@ identical
-R$* $| <$&{auth_authen}> $@ identical
-R$* $| $* $: $1 $| $>"Local_trust_auth" $1
-R$* $| $#$* $#$2
-R$* $#error $@ 5.7.1 $: "550 " $&{auth_authen} " not allowed to act as " $&{auth_author}
-
-SLocal_trust_auth
-
-
-#\f
-######################################################################
-######################################################################
-#####
-##### MAILER DEFINITIONS
-#####
-######################################################################
-######################################################################
-
-
-##################################################
-### Local and Program Mailer specification ###
-##################################################
-
-##### $Id: generic-linux.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-#
-# Envelope sender rewriting
-#
-SEnvFromL=10
-R<@> $n errors to mailer-daemon
-R@ <@ $*> $n temporarily bypass Sun bogosity
-R$+ $: $>AddDomain $1 add local domain if needed
-R$* $: $>MasqEnv $1 do masquerading
-
-#
-# Envelope recipient rewriting
-#
-SEnvToL=20
-R$+ < @ $* > $: $1 strip host part
-
-#
-# Header sender rewriting
-#
-SHdrFromL=30
-R<@> $n errors to mailer-daemon
-R@ <@ $*> $n temporarily bypass Sun bogosity
-R$+ $: $>AddDomain $1 add local domain if needed
-R$* $: $>MasqHdr $1 do masquerading
-
-#
-# Header recipient rewriting
-#
-SHdrToL=40
-R$+ $: $>AddDomain $1 add local domain if needed
-R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
-
-#
-# Common code to add local domain name (only if always-add-domain)
-#
-SAddDomain=50
-
-Mlocal, P=/usr/bin/procmail, F=lsDFMAw5:/|@qSPfhn9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,
- T=DNS/RFC822/X-Unix,
- A=procmail -Y -a $h -d $u
-Mprog, P=/bin/sh, F=lsDFMoqeu9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL, D=$z:/,
- T=X-Unix/X-Unix/X-Unix,
- A=sh -c $u
-
-#####################################
-### SMTP Mailer specification ###
-#####################################
-
-##### $Id: generic-linux.cf,v 1.1.1.1 2000/04/02 19:05:50 millert Exp $ #####
-
-#
-# common sender and masquerading recipient rewriting
-#
-SMasqSMTP=61
-R$* < @ $* > $* $@ $1 < @ $2 > $3 already fully qualified
-R$+ $@ $1 < @ *LOCAL* > add local qualification
-
-#
-# convert pseudo-domain addresses to real domain addresses
-#
-SPseudoToReal=51
-
-# pass <route-addr>s through
-R< @ $+ > $* $@ < @ $1 > $2 resolve <route-addr>
-
-# output fake domains as user%fake@relay
-
-# do UUCP heuristics; note that these are shared with UUCP mailers
-R$+ < @ $+ .UUCP. > $: < $2 ! > $1 convert to UUCP form
-R$+ < @ $* > $* $@ $1 < @ $2 > $3 not UUCP form
-
-# leave these in .UUCP form to avoid further tampering
-R< $&h ! > $- ! $+ $@ $2 < @ $1 .UUCP. >
-R< $&h ! > $-.$+ ! $+ $@ $3 < @ $1.$2 >
-R< $&h ! > $+ $@ $1 < @ $&h .UUCP. >
-R< $+ ! > $+ $: $1 ! $2 < @ $Y > use UUCP_RELAY
-R$+ < @ $+ : $+ > $@ $1 < @ $3 > strip mailer: part
-R$+ < @ > $: $1 < @ *LOCAL* > if no UUCP_RELAY
-
-
-#
-# envelope sender rewriting
-#
-SEnvFromSMTP=11
-R$+ $: $>PseudoToReal $1 sender/recipient common
-R$* :; <@> $@ list:; special case
-R$* $: $>MasqSMTP $1 qualify unqual'ed names
-R$+ $: $>MasqEnv $1 do masquerading
-
-
-#
-# envelope recipient rewriting --
-# also header recipient if not masquerading recipients
-#
-SEnvToSMTP=21
-R$+ $: $>PseudoToReal $1 sender/recipient common
-R$+ $: $>MasqSMTP $1 qualify unqual'ed names
-R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
-
-#
-# header sender and masquerading header recipient rewriting
-#
-SHdrFromSMTP=31
-R$+ $: $>PseudoToReal $1 sender/recipient common
-R:; <@> $@ list:; special case
-
-# do special header rewriting
-R$* <@> $* $@ $1 <@> $2 pass null host through
-R< @ $* > $* $@ < @ $1 > $2 pass route-addr through
-R$* $: $>MasqSMTP $1 qualify unqual'ed names
-R$+ $: $>MasqHdr $1 do masquerading
-
-
-#
-# relay mailer header masquerading recipient rewriting
-#
-SMasqRelay=71
-R$+ $: $>MasqSMTP $1
-R$+ $: $>MasqHdr $1
-
-Msmtp, P=[IPC], F=mDFMuX, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Mesmtp, P=[IPC], F=mDFMuXa, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Msmtp8, P=[IPC], F=mDFMuX8, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Mdsmtp, P=[IPC], F=mDFMuXa%, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Mrelay, P=[IPC], F=mDFMuXa8, S=EnvFromSMTP/HdrFromSMTP, R=MasqSMTP, E=\r\n, L=2040,
- T=DNS/RFC822/SMTP,
- A=IPC $h
+++ /dev/null
-#
-# Copyright (c) 1998-2000 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-# Copyright (c) 1983, 1995 Eric P. Allman. All rights reserved.
-# Copyright (c) 1988, 1993
-# The Regents of the University of California. All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-
-######################################################################
-######################################################################
-#####
-##### SENDMAIL CONFIGURATION FILE
-#####
-##### built by gshapiro@horsey.gshapiro.net on Mon Mar 6 11:41:27 PST 2000
-##### in /usr/local/src/sendmail/devel/OpenSource/sendmail-8.10.0/cf/cf
-##### using ../ as configuration include directory
-#####
-######################################################################
-######################################################################
-
-##### $Id: generic-osf1.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-##### $Id: generic-osf1.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-##### $Id: generic-osf1.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-##### $Id: generic-osf1.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-
-##### $Id: generic-osf1.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-##### $Id: generic-osf1.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-##### $Id: generic-osf1.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-
-
-##### $Id: generic-osf1.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-
-# level 9 config file format
-V9/Berkeley
-
-# override file safeties - setting this option compromises system security,
-# addressing the actual file configuration problem is preferred
-# need to set this before any file actions are encountered in the cf file
-#O DontBlameSendmail=safe
-
-# default LDAP map specification
-# need to set this now before any LDAP maps are defined
-#O LDAPDefaultSpec=-h localhost
-
-##################
-# local info #
-##################
-
-Cwlocalhost
-# file containing names of hosts for which we receive email
-Fw/etc/mail/local-host-names
-
-# my official domain name
-# ... define this only if sendmail cannot automatically determine your domain
-#Dj$w.Foo.COM
-
-CP.
-
-# "Smart" relay host (may be null)
-DS
-
-
-# operators that cannot be in local usernames (i.e., network indicators)
-CO @ % !
-
-# a class with just dot (for identifying canonical names)
-C..
-
-# a class with just a left bracket (for identifying domain literals)
-C[[
-
-
-# Resolve map (to check if a host exists in check_mail)
-Kresolve host -a<OK> -T<TEMP>
-
-# Hosts that will permit relaying ($=R)
-FR-o /etc/mail/relay-domains
-
-
-# who I send unqualified names to (null means deliver locally)
-DR
-
-# who gets all local email traffic ($R has precedence for unqualified names)
-DH
-
-# dequoting map
-Kdequote dequote
-
-# class E: names that should be exposed as from this host, even if we masquerade
-# class L: names that should be delivered locally, even if we have a relay
-# class M: domains that should be converted to $M
-# class N: domains that should not be converted to $M
-#CL root
-CEroot
-
-# who I masquerade as (null for no masquerading) (see also $=M)
-DM
-
-# my name for error messages
-DnMAILER-DAEMON
-
-
-CPREDIRECT
-
-# Configuration version number
-DZ8.10.0
-
-
-###############
-# Options #
-###############
-
-# strip message body to 7 bits on input?
-O SevenBitInput=False
-
-# 8-bit data handling
-O EightBitMode=pass8
-
-# wait for alias file rebuild (default units: minutes)
-O AliasWait=10
-
-# location of alias file
-O AliasFile=/etc/mail/aliases
-
-# minimum number of free blocks on filesystem
-O MinFreeBlocks=100
-
-# maximum message size
-#O MaxMessageSize=1000000
-
-# substitution for space (blank) characters
-O BlankSub=.
-
-# avoid connecting to "expensive" mailers on initial submission?
-O HoldExpensive=False
-
-# checkpoint queue runs after every N successful deliveries
-#O CheckpointInterval=10
-
-# default delivery mode
-O DeliveryMode=background
-
-# automatically rebuild the alias database?
-# NOTE: There is a potential for a denial of service attack if this is set.
-# This option is deprecated and will be removed from a future version.
-#O AutoRebuildAliases=False
-
-# error message header/file
-#O ErrorHeader=/etc/mail/error-header
-
-# error mode
-#O ErrorMode=print
-
-# save Unix-style "From_" lines at top of header?
-#O SaveFromLine=False
-
-# temporary file mode
-O TempFileMode=0600
-
-# match recipients against GECOS field?
-#O MatchGECOS=False
-
-# maximum hop count
-#O MaxHopCount=17
-
-# location of help file
-O HelpFile=/etc/mail/helpfile
-
-# ignore dots as terminators in incoming messages?
-#O IgnoreDots=False
-
-# name resolver options
-#O ResolverOptions=+AAONLY
-
-# deliver MIME-encapsulated error messages?
-O SendMimeErrors=True
-
-# Forward file search path
-O ForwardPath=$z/.forward.$w+$h:$z/.forward+$h:$z/.forward.$w:$z/.forward
-
-# open connection cache size
-O ConnectionCacheSize=2
-
-# open connection cache timeout
-O ConnectionCacheTimeout=5m
-
-# persistent host status directory
-#O HostStatusDirectory=.hoststat
-
-# single thread deliveries (requires HostStatusDirectory)?
-#O SingleThreadDelivery=False
-
-# use Errors-To: header?
-O UseErrorsTo=False
-
-# log level
-O LogLevel=9
-
-# send to me too, even in an alias expansion?
-#O MeToo=True
-
-# verify RHS in newaliases?
-O CheckAliases=False
-
-# default messages to old style headers if no special punctuation?
-O OldStyleHeaders=True
-
-# SMTP daemon options
-O DaemonPortOptions=Name=MTA
-O DaemonPortOptions=Port=587, Name=MSA, M=E
-
-# SMTP client options
-#O ClientPortOptions=Address=0.0.0.0
-
-# privacy flags
-O PrivacyOptions=authwarnings
-
-# who (if anyone) should get extra copies of error messages
-#O PostmasterCopy=Postmaster
-
-# slope of queue-only function
-#O QueueFactor=600000
-
-# queue directory
-O QueueDirectory=/var/spool/mqueue
-
-# timeouts (many of these)
-#O Timeout.initial=5m
-#O Timeout.connect=5m
-#O Timeout.iconnect=5m
-#O Timeout.helo=5m
-#O Timeout.mail=10m
-#O Timeout.rcpt=1h
-#O Timeout.datainit=5m
-#O Timeout.datablock=1h
-#O Timeout.datafinal=1h
-#O Timeout.rset=5m
-#O Timeout.quit=2m
-#O Timeout.misc=2m
-#O Timeout.command=1h
-#O Timeout.ident=5s
-#O Timeout.fileopen=60s
-#O Timeout.control=2m
-O Timeout.queuereturn=5d
-#O Timeout.queuereturn.normal=5d
-#O Timeout.queuereturn.urgent=2d
-#O Timeout.queuereturn.non-urgent=7d
-O Timeout.queuewarn=4h
-#O Timeout.queuewarn.normal=4h
-#O Timeout.queuewarn.urgent=1h
-#O Timeout.queuewarn.non-urgent=12h
-#O Timeout.hoststatus=30m
-#O Timeout.resolver.retrans=5s
-#O Timeout.resolver.retrans.first=5s
-#O Timeout.resolver.retrans.normal=5s
-#O Timeout.resolver.retry=4
-#O Timeout.resolver.retry.first=4
-#O Timeout.resolver.retry.normal=4
-
-# should we not prune routes in route-addr syntax addresses?
-#O DontPruneRoutes=False
-
-# queue up everything before forking?
-O SuperSafe=True
-
-# status file
-O StatusFile=/usr/adm/sendmail/sendmail.st
-
-# time zone handling:
-# if undefined, use system default
-# if defined but null, use TZ envariable passed in
-# if defined and non-null, use that info
-#O TimeZoneSpec=
-
-# default UID (can be username or userid:groupid)
-O DefaultUser=daemon
-
-# list of locations of user database file (null means no lookup)
-#O UserDatabaseSpec=/etc/mail/userdb
-
-# fallback MX host
-#O FallbackMXhost=fall.back.host.net
-
-# if we are the best MX host for a site, try it directly instead of config err
-#O TryNullMXList=False
-
-# load average at which we just queue messages
-#O QueueLA=8
-
-# load average at which we refuse connections
-#O RefuseLA=12
-
-# maximum number of children we allow at one time
-#O MaxDaemonChildren=12
-
-# maximum number of new connections per second
-#O ConnectionRateThrottle=3
-
-# work recipient factor
-#O RecipientFactor=30000
-
-# deliver each queued job in a separate process?
-#O ForkEachJob=False
-
-# work class factor
-#O ClassFactor=1800
-
-# work time factor
-#O RetryFactor=90000
-
-# shall we sort the queue by hostname first?
-#O QueueSortOrder=priority
-
-# minimum time in queue before retry
-#O MinQueueAge=30m
-
-# default character set
-#O DefaultCharSet=iso-8859-1
-
-# service switch file (ignored on Solaris, Ultrix, OSF/1, others)
-#O ServiceSwitchFile=/etc/mail/service.switch
-
-# hosts file (normally /etc/hosts)
-#O HostsFile=/etc/hosts
-
-# dialup line delay on connection failure
-#O DialDelay=10s
-
-# action to take if there are no recipients in the message
-#O NoRecipientAction=add-to-undisclosed
-
-# chrooted environment for writing to files
-#O SafeFileEnvironment=/arch
-
-# are colons OK in addresses?
-#O ColonOkInAddr=True
-
-# how many jobs can you process in the queue?
-#O MaxQueueRunSize=10000
-
-# shall I avoid expanding CNAMEs (violates protocols)?
-#O DontExpandCnames=False
-
-# SMTP initial login message (old $e macro)
-O SmtpGreetingMessage=$j Sendmail $v/$Z; $b
-
-# UNIX initial From header format (old $l macro)
-O UnixFromLine=From $g $d
-
-# From: lines that have embedded newlines are unwrapped onto one line
-#O SingleLineFromHeader=False
-
-# Allow HELO SMTP command that does not include a host name
-#O AllowBogusHELO=False
-
-# Characters to be quoted in a full name phrase (@,;:\()[] are automatic)
-#O MustQuoteChars=.
-
-# delimiter (operator) characters (old $o macro)
-O OperatorChars=.:%@!^/[]+
-
-# shall I avoid calling initgroups(3) because of high NIS costs?
-#O DontInitGroups=False
-
-# are group-writable :include: and .forward files (un)trustworthy?
-#O UnsafeGroupWrites=True
-
-# where do errors that occur when sending errors get sent?
-#O DoubleBounceAddress=postmaster
-
-# where to save bounces if all else fails
-#O DeadLetterDrop=/var/tmp/dead.letter
-
-# what user id do we assume for the majority of the processing?
-#O RunAsUser=sendmail
-
-# maximum number of recipients per SMTP envelope
-#O MaxRecipientsPerMessage=100
-
-# shall we get local names from our installed interfaces?
-#O DontProbeInterfaces=False
-
-# Return-Receipt-To: header implies DSN request
-#O RrtImpliesDsn=False
-
-# override connection address (for testing)
-#O ConnectOnlyTo=0.0.0.0
-
-# Trusted user for file ownership and starting the daemon
-#O TrustedUser=root
-
-# Control socket for daemon management
-#O ControlSocketName=/var/spool/mqueue/.control
-
-# Maximum MIME header length to protect MUAs
-#O MaxMimeHeaderLength=0/0
-
-# Maximum length of the sum of all headers
-O MaxHeadersLength=32768
-
-# Maximum depth of alias recursion
-#O MaxAliasRecursion=10
-
-# location of pid file
-#O PidFile=/var/run/sendmail.pid
-
-# Prefix string for the process title shown on 'ps' listings
-#O ProcessTitlePrefix=prefix
-
-# Data file (df) memory-buffer file maximum size
-#O DataFileBufferSize=4096
-
-# Transcript file (xf) memory-buffer file maximum size
-#O XscriptFileBufferSize=4096
-
-# list of authentication mechanisms
-#O AuthMechanisms=GSSAPI KERBEROS_V4 DIGEST-MD5 CRAM-MD5
-
-# default authentication information for outgoing connections
-#O DefaultAuthInfo=/etc/mail/default-auth-info
-
-# try to authenticate? (Try when available/only when Authenticated)
-#O AuthOptions=T
-
-
-
-
-
-
-###########################
-# Message precedences #
-###########################
-
-Pfirst-class=0
-Pspecial-delivery=100
-Plist=-30
-Pbulk=-60
-Pjunk=-100
-
-#####################
-# Trusted users #
-#####################
-
-# this is equivalent to setting class "t"
-#Ft/etc/mail/trusted-users
-Troot
-Tdaemon
-Tuucp
-
-#########################
-# Format of headers #
-#########################
-
-H?P?Return-Path: <$g>
-HReceived: $?sfrom $s $.$?_($?s$|from $.$_)
- $.$?{auth_type}(authenticated)
- $.by $j ($v/$Z)$?r with $r$. id $i$?u
- for $u; $|;
- $.$b
-H?D?Resent-Date: $a
-H?D?Date: $a
-H?F?Resent-From: $?x$x <$g>$|$g$.
-H?F?From: $?x$x <$g>$|$g$.
-H?x?Full-Name: $x
-# HPosted-Date: $a
-# H?l?Received-Date: $b
-H?M?Resent-Message-Id: <$t.$i@$j>
-H?M?Message-Id: <$t.$i@$j>
-
-#\f
-######################################################################
-######################################################################
-#####
-##### REWRITING RULES
-#####
-######################################################################
-######################################################################
-
-############################################
-### Ruleset 3 -- Name Canonicalization ###
-############################################
-Scanonify=3
-
-# handle null input (translate to <@> special case)
-R$@ $@ <@>
-
-# strip group: syntax (not inside angle brackets!) and trailing semicolon
-R$* $: $1 <@> mark addresses
-R$* < $* > $* <@> $: $1 < $2 > $3 unmark <addr>
-R@ $* <@> $: @ $1 unmark @host:...
-R$* :: $* <@> $: $1 :: $2 unmark node::addr
-R:include: $* <@> $: :include: $1 unmark :include:...
-R$* [ IPv6 $- ] <@> $: $1 [ IPv6 $2 ] unmark IPv6 addr
-R$* : $* [ $* ] $: $1 : $2 [ $3 ] <@> remark if leading colon
-R$* : $* <@> $: $2 strip colon if marked
-R$* <@> $: $1 unmark
-R$* ; $1 strip trailing semi
-R$* < $* ; > $1 < $2 > bogus bracketed semi
-
-# null input now results from list:; syntax
-R$@ $@ :; <@>
-
-# strip angle brackets -- note RFC733 heuristic to get innermost item
-R$* $: < $1 > housekeeping <>
-R$+ < $* > < $2 > strip excess on left
-R< $* > $+ < $1 > strip excess on right
-R<> $@ < @ > MAIL FROM:<> case
-R< $+ > $: $1 remove housekeeping <>
-
-# strip route address <@a,@b,@c:user@d> -> <user@d>
-R@ $+ , $+ $2
-R@ $+ : $+ $2
-
-# find focus for list syntax
-R $+ : $* ; @ $+ $@ $>Canonify2 $1 : $2 ; < @ $3 > list syntax
-R $+ : $* ; $@ $1 : $2; list syntax
-
-# find focus for @ syntax addresses
-R$+ @ $+ $: $1 < @ $2 > focus on domain
-R$+ < $+ @ $+ > $1 $2 < @ $3 > move gaze right
-R$+ < @ $+ > $@ $>Canonify2 $1 < @ $2 > already canonical
-
-# do some sanity checking
-R$* < @ $* : $* > $* $1 < @ $2 $3 > $4 nix colons in addrs
-
-# convert old-style addresses to a domain-based address
-R$- ! $+ $@ $>Canonify2 $2 < @ $1 .UUCP > resolve uucp names
-R$+ . $- ! $+ $@ $>Canonify2 $3 < @ $1 . $2 > domain uucps
-R$+ ! $+ $@ $>Canonify2 $2 < @ $1 .UUCP > uucp subdomains
-
-# if we have % signs, take the rightmost one
-R$* % $* $1 @ $2 First make them all @s.
-R$* @ $* @ $* $1 % $2 @ $3 Undo all but the last.
-R$* @ $* $@ $>Canonify2 $1 < @ $2 > Insert < > and finish
-
-# else we must be a local name
-R$* $@ $>Canonify2 $1
-
-
-################################################
-### Ruleset 96 -- bottom half of ruleset 3 ###
-################################################
-
-SCanonify2=96
-
-# handle special cases for local names
-R$* < @ localhost > $* $: $1 < @ $j . > $2 no domain at all
-R$* < @ localhost . $m > $* $: $1 < @ $j . > $2 local domain
-R$* < @ localhost . UUCP > $* $: $1 < @ $j . > $2 .UUCP domain
-
-# check for IPv6 domain literal (save quoted form)
-R$* < @ [ IPv6 $- ] > $* $: $2 $| $1 < @@ [ $(dequote $2 $) ] > $3 mark IPv6 addr
-R$- $| $* < @@ $=w > $* $: $2 < @ $j . > $4 self-literal
-R$- $| $* < @@ [ $+ ] > $* $@ $2 < @ [ IPv6 $1 ] > $4 canon IP addr
-
-# check for IPv4 domain literal
-R$* < @ [ $+ ] > $* $: $1 < @@ [ $2 ] > $3 mark [a.b.c.d]
-R$* < @@ $=w > $* $: $1 < @ $j . > $3 self-literal
-R$* < @@ $+ > $* $@ $1 < @ $2 > $3 canon IP addr
-
-
-
-
-
-# if really UUCP, handle it immediately
-
-# try UUCP traffic as a local address
-R$* < @ $+ . UUCP > $* $: $1 < @ $[ $2 $] . UUCP . > $3
-R$* < @ $+ . . UUCP . > $* $@ $1 < @ $2 . > $3
-
-# hostnames ending in class P are always canonical
-R$* < @ $* $=P > $* $: $1 < @ $2 $3 . > $4
-R$* < @ $* $~P > $* $: $&{daemon_flags} $| $1 < @ $2 $3 > $4
-R$* CC $* $| $* $: $3
-# pass to name server to make hostname canonical
-R$* $| $* < @ $* > $* $: $2 < @ $[ $3 $] > $4
-R$* $| $* $: $2
-
-# local host aliases and pseudo-domains are always canonical
-R$* < @ $=w > $* $: $1 < @ $2 . > $3
-R$* < @ $=M > $* $: $1 < @ $2 . > $3
-R$* < @ $* . . > $* $1 < @ $2 . > $3
-
-
-##################################################
-### Ruleset 4 -- Final Output Post-rewriting ###
-##################################################
-Sfinal=4
-
-R$* <@> $@ handle <> and list:;
-
-# strip trailing dot off possibly canonical name
-R$* < @ $+ . > $* $1 < @ $2 > $3
-
-# eliminate internal code
-R$* < @ *LOCAL* > $* $1 < @ $j > $2
-
-# externalize local domain info
-R$* < $+ > $* $1 $2 $3 defocus
-R@ $+ : @ $+ : $+ @ $1 , @ $2 : $3 <route-addr> canonical
-R@ $* $@ @ $1 ... and exit
-
-# 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 @ $2 u%host@host => u@host
-
-
-
-##############################################################
-### Ruleset 97 -- recanonicalize and call ruleset zero ###
-### (used for recursive calls) ###
-##############################################################
-
-SRecurse=97
-R$* $: $>canonify $1
-R$* $@ $>parse $1
-
-
-######################################
-### Ruleset 0 -- Parse Address ###
-######################################
-
-Sparse=0
-
-R$* $: $>Parse0 $1 initial parsing
-R<@> $#local $: <@> special case error msgs
-R$* $: $>ParseLocal $1 handle local hacks
-R$* $: $>Parse1 $1 final parsing
-
-#
-# Parse0 -- do initial syntax checking and eliminate local addresses.
-# This should either return with the (possibly modified) input
-# or return with a #error mailer. It should not return with a
-# #mailer other than the #error mailer.
-#
-
-SParse0
-R<@> $@ <@> special case error msgs
-R$* : $* ; <@> $#error $@ 5.1.3 $: "553 List:; syntax illegal for recipient addresses"
-R@ <@ $* > < @ $1 > catch "@@host" bogosity
-R<@ $+> $#error $@ 5.1.3 $: "553 User address required"
-R$* $: <> $1
-R<> $* < @ [ $+ ] > $* $1 < @ [ $2 ] > $3
-R<> $* <$* : $* > $* $#error $@ 5.1.3 $: "553 Colon illegal in host name part"
-R<> $* $1
-R$* < @ . $* > $* $#error $@ 5.1.2 $: "553 Invalid host name"
-R$* < @ $* .. $* > $* $#error $@ 5.1.2 $: "553 Invalid host name"
-
-# now delete the local info -- note $=O to find characters that cause forwarding
-R$* < @ > $* $@ $>Parse0 $>canonify $1 user@ => user
-R< @ $=w . > : $* $@ $>Parse0 $>canonify $2 @here:... -> ...
-R$- < @ $=w . > $: $(dequote $1 $) < @ $2 . > dequote "foo"@here
-R< @ $+ > $#error $@ 5.1.3 $: "553 User address required"
-R$* $=O $* < @ $=w . > $@ $>Parse0 $>canonify $1 $2 $3 ...@here -> ...
-R$- $: $(dequote $1 $) < @ *LOCAL* > dequote "foo"
-R< @ *LOCAL* > $#error $@ 5.1.3 $: "553 User address required"
-R$* $=O $* < @ *LOCAL* >
- $@ $>Parse0 $>canonify $1 $2 $3 ...@*LOCAL* -> ...
-R$* < @ *LOCAL* > $: $1
-
-#
-# Parse1 -- the bottom half of ruleset 0.
-#
-
-SParse1
-
-# handle numeric address spec
-R$* < @ [ $+ ] > $* $: $>ParseLocal $1 < @ [ $2 ] > $3 numeric internet spec
-R$* < @ [ $+ ] > $* $1 < @ [ $2 ] : $S > $3 Add smart host to path
-R$* < @ [ IPv6 $- ] : > $*
- $#esmtp $@ [ $(dequote $2 $) ] $: $1 < @ [IPv6 $2 ] > $3 no smarthost: send
-R$* < @ [ $+ ] : > $* $#esmtp $@ [$2] $: $1 < @ [$2] > $3 no smarthost: send
-R$* < @ [ $+ ] : $- : $*> $* $#$3 $@ $4 $: $1 < @ [$2] > $5 smarthost with mailer
-R$* < @ [ $+ ] : $+ > $* $#esmtp $@ $3 $: $1 < @ [$2] > $4 smarthost without mailer
-
-
-# short circuit local delivery so forwarded email works
-R$=L < @ $=w . > $#local $: @ $1 special local names
-R$+ < @ $=w . > $#local $: $1 regular local name
-
-
-# resolve remotely connected UUCP links (if any)
-
-# resolve fake top level domains by forwarding to other hosts
-
-
-
-# pass names that still have a host to a smarthost (if defined)
-R$* < @ $* > $* $: $>MailerToTriple < $S > $1 < @ $2 > $3 glue on smarthost name
-
-# deal with other remote names
-R$* < @$* > $* $#esmtp $@ $2 $: $1 < @ $2 > $3 user@host.domain
-
-# handle locally delivered names
-R$=L $#local $: @ $1 special local names
-R$+ $#local $: $1 regular local names
-
-###########################################################################
-### Ruleset 5 -- special rewriting after aliases have been expanded ###
-###########################################################################
-
-SLocal_localaddr
-Slocaladdr=5
-R$+ $: $1 $| $>"Local_localaddr" $1
-R$+ $| $#$* $#$2
-R$+ $| $* $: $1
-
-# deal with plussed users so aliases work nicely
-R$+ + * $#local $@ $&h $: $1
-R$+ + $* $#local $@ + $2 $: $1 + *
-
-# prepend an empty "forward host" on the front
-R$+ $: <> $1
-
-
-# see if we have a relay or a hub
-R< > $+ $: < $H > $1 try hub
-R< > $+ $: < $R > $1 try relay
-R< > $+ $: < > < $1 <> $&h > nope, restore +detail
-R< > < $+ <> + $* > $: < > < $1 + $2 > check whether +detail
-R< > < $+ <> $* > $: < > < $1 > else discard
-R< > < $+ + $* > $* < > < $1 > + $2 $3 find the user part
-R< > < $+ > + $* $#local $@ $2 $: @ $1 strip the extra +
-R< > < $+ > $@ $1 no +detail
-R$+ $: $1 <> $&h add +detail back in
-R$+ <> + $* $: $1 + $2 check whether +detail
-R$+ <> $* $: $1 else discard
-R< local : $* > $* $: $>MailerToTriple < local : $1 > $2 no host extension
-R< error : $* > $* $: $>MailerToTriple < error : $1 > $2 no host extension
-R< $- : $+ > $+ $: $>MailerToTriple < $1 : $2 > $3 < @ $2 >
-R< $+ > $+ $@ $>MailerToTriple < $1 > $2 < @ $1 >
-
-
-###################################################################
-### Ruleset 95 -- canonify mailer:[user@]host syntax to triple ###
-###################################################################
-
-SMailerToTriple=95
-R< > $* $@ $1 strip off null relay
-R< error : $-.$-.$- : $+ > $* $#error $@ $1.$2.$3 $: $4
-R< error : $- $+ > $* $#error $@ $(dequote $1 $) $: $2
-R< local : $* > $* $>CanonLocal < $1 > $2
-R< $- : $+ @ $+ > $*<$*>$* $# $1 $@ $3 $: $2<@$3> use literal user
-R< $- : $+ > $* $# $1 $@ $2 $: $3 try qualified mailer
-R< $=w > $* $@ $2 delete local host
-R< [ IPv6 $+ ] > $* $#relay $@ $(dequote $1 $) $: $2 use unqualified mailer
-R< $+ > $* $#relay $@ $1 $: $2 use unqualified mailer
-
-###################################################################
-### Ruleset CanonLocal -- canonify local: syntax ###
-###################################################################
-
-SCanonLocal
-# strip local host from routed addresses
-R< $* > < @ $+ > : $+ $@ $>Recurse $3
-R< $* > $+ $=O $+ < @ $+ > $@ $>Recurse $2 $3 $4
-
-# strip trailing dot from any host name that may appear
-R< $* > $* < @ $* . > $: < $1 > $2 < @ $3 >
-
-# handle local: syntax -- use old user, either with or without host
-R< > $* < @ $* > $* $#local $@ $1@$2 $: $1
-R< > $+ $#local $@ $1 $: $1
-
-# handle local:user@host syntax -- ignore host part
-R< $+ @ $+ > $* < @ $* > $: < $1 > $3 < @ $4 >
-
-# handle local:user syntax
-R< $+ > $* <@ $* > $* $#local $@ $2@$3 $: $1
-R< $+ > $* $#local $@ $2 $: $1
-
-###################################################################
-### Ruleset 93 -- convert header names to masqueraded form ###
-###################################################################
-
-SMasqHdr=93
-
-
-# do not masquerade anything in class N
-R$* < @ $* $=N . > $@ $1 < @ $2 $3 . >
-
-# special case the users that should be exposed
-R$=E < @ *LOCAL* > $@ $1 < @ $j . > leave exposed
-R$=E < @ $=M . > $@ $1 < @ $2 . >
-R$=E < @ $=w . > $@ $1 < @ $2 . >
-
-# handle domain-specific masquerading
-R$* < @ $=M . > $* $: $1 < @ $2 . @ $M > $3 convert masqueraded doms
-R$* < @ $=w . > $* $: $1 < @ $2 . @ $M > $3
-R$* < @ *LOCAL* > $* $: $1 < @ $j . @ $M > $2
-R$* < @ $+ @ > $* $: $1 < @ $2 > $3 $M is null
-R$* < @ $+ @ $+ > $* $: $1 < @ $3 . > $4 $M is not null
-
-###################################################################
-### Ruleset 94 -- convert envelope names to masqueraded form ###
-###################################################################
-
-SMasqEnv=94
-R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
-
-###################################################################
-### Ruleset 98 -- local part of ruleset zero (can be null) ###
-###################################################################
-
-SParseLocal=98
-
-# addresses sent to foo@host.REDIRECT will give a 551 error code
-R$* < @ $+ .REDIRECT. > $: $1 < @ $2 . REDIRECT . > < ${opMode} >
-R$* < @ $+ .REDIRECT. > <i> $: $1 < @ $2 . REDIRECT. >
-R$* < @ $+ .REDIRECT. > < $- > $#error $@ 5.1.1 $: "551 User has moved; please try " <$1@$2>
-
-
-
-
-
-######################################################################
-### CanonAddr -- Convert an address into a standard form for
-### relay checking. Route address syntax is
-### crudely converted into a %-hack address.
-###
-### Parameters:
-### $1 -- full recipient address
-###
-### Returns:
-### parsed address, not in source route form
-######################################################################
-
-SCanonAddr
-R$* $: $>Parse0 $>canonify $1 make domain canonical
-
-
-######################################################################
-### ParseRecipient -- Strip off hosts in $=R as well as possibly
-### $* $=m or the access database.
-### Check user portion for host separators.
-###
-### Parameters:
-### $1 -- full recipient address
-###
-### Returns:
-### parsed, non-local-relaying address
-######################################################################
-
-SParseRecipient
-R$* $: <?> $>CanonAddr $1
-R<?> $* < @ $* . > <?> $1 < @ $2 > strip trailing dots
-R<?> $- < @ $* > $: <?> $(dequote $1 $) < @ $2 > dequote local part
-
-# if no $=O character, no host in the user portion, we are done
-R<?> $* $=O $* < @ $* > $: <NO> $1 $2 $3 < @ $4>
-R<?> $* $@ $1
-
-
-
-R<NO> $* < @ $* $=R > $: <RELAY> $1 < @ $2 $3 >
-
-R<RELAY> $* < @ $* > $@ $>ParseRecipient $1
-R<$-> $* $@ $2
-
-
-######################################################################
-### check_relay -- check hostname/address on SMTP startup
-######################################################################
-
-SLocal_check_relay
-Scheck_relay
-R$* $: $1 $| $>"Local_check_relay" $1
-R$* $| $* $| $#$* $#$3
-R$* $| $* $| $* $@ $>"Basic_check_relay" $1 $| $2
-
-SBasic_check_relay
-# check for deferred delivery mode
-R$* $: < ${deliveryMode} > $1
-R< d > $* $@ deferred
-R< $* > $* $: $2
-
-
-
-
-######################################################################
-### check_mail -- check SMTP `MAIL FROM:' command argument
-######################################################################
-
-SLocal_check_mail
-Scheck_mail
-R$* $: $1 $| $>"Local_check_mail" $1
-R$* $| $#$* $#$2
-R$* $| $* $@ $>"Basic_check_mail" $1
-
-SBasic_check_mail
-# check for deferred delivery mode
-R$* $: < ${deliveryMode} > $1
-R< d > $* $@ deferred
-R< $* > $* $: $2
-
-R<> $@ <OK> we MUST accept <> (RFC 1123)
-R$+ $: <?> $1
-R<?><$+> $: <@> <$1>
-R<?>$+ $: <@> <$1>
-R$* $: $&{daemon_flags} $| $1
-R$* f $* $| <@> < $* @ $- > $: < ? $&{client_name} > < $3 @ $4 >
-R$* u $* $| <@> < $* > $: <?> < $3 >
-R$* $| $* $: $2
-# handle case of @localhost on address
-R<@> < $* @ localhost > $: < ? $&{client_name} > < $1 @ localhost >
-R<@> < $* @ [127.0.0.1] >
- $: < ? $&{client_name} > < $1 @ [127.0.0.1] >
-R<@> < $* @ localhost.$m >
- $: < ? $&{client_name} > < $1 @ localhost.$m >
-R<@> < $* @ localhost.UUCP >
- $: < ? $&{client_name} > < $1 @ localhost.UUCP >
-R<@> $* $: $1 no localhost as domain
-R<? $=w> $* $: $2 local client: ok
-R<? $+> <$+> $#error $@ 5.5.4 $: "553 Real domain name required"
-R<?> $* $: $1
-R$* $: <?> $>CanonAddr $1 canonify sender address and mark it
-R<?> $* < @ $+ . > <?> $1 < @ $2 > strip trailing dots
-# handle non-DNS hostnames (*.bitnet, *.decnet, *.uucp, etc)
-R<?> $* < @ $* $=P > $: <OK> $1 < @ $2 $3 >
-R<?> $* < @ $+ > $: <? $(resolve $2 $: $2 <PERM> $) > $1 < @ $2 >
-R<? $* <$->> $* < @ $+ >
- $: <$2> $3 < @ $4 >
-
-
-# handle case of no @domain on address
-R<?> $* $: $&{daemon_flags} $| <?> $1
-R$* u $* $| <?> $* $: <OK> $3
-R$* $| $* $: $2
-R<?> $* $: < ? $&{client_name} > $1
-R<?> $* $@ <OK> ...local unqualed ok
-R<? $+> $* $#error $@ 5.5.4 $: "553 Domain name required"
- ...remote is not
-# check results
-R<?> $* $: @ $1 mark address: nothing known about it
-R<OK> $* $@ <OK>
-R<TEMP> $* $#error $@ 4.1.8 $: "451 Sender domain must resolve"
-R<PERM> $* $#error $@ 5.1.8 $: "501 Sender domain must exist"
-
-######################################################################
-### check_rcpt -- check SMTP `RCPT TO:' command argument
-######################################################################
-
-SLocal_check_rcpt
-Scheck_rcpt
-R$* $: $1 $| $>"Local_check_rcpt" $1
-R$* $| $#$* $#$2
-R$* $| $* $@ $>"Basic_check_rcpt" $1
-
-SBasic_check_rcpt
-# check for deferred delivery mode
-R$* $: < ${deliveryMode} > $1
-R< d > $* $@ deferred
-R< $* > $* $: $2
-
-
-R$* $: $>ParseRecipient $1 strip relayable hosts
-
-
-
-
-
-# authenticated by a trusted mechanism?
-R$* $: $1 $| $&{auth_type}
-R$* $| $: $1
-R$* $| $={TrustAuthMech} $# RELAYAUTH
-R$* $| $* $: $1
-# anything terminating locally is ok
-R$+ < @ $=w > $@ RELAYTO
-R$+ < @ $* $=R > $@ RELAYTO
-
-
-# check for local user (i.e. unqualified address)
-R$* $: <?> $1
-R<?> $* < @ $+ > $: <REMOTE> $1 < @ $2 >
-# local user is ok
-R<?> $+ $@ RELAYTOLOCAL
-R<$+> $* $: $2
-
-# anything originating locally is ok
-# check IP address
-R$* $: $&{client_addr}
-R$@ $@ RELAYFROM originated locally
-R0 $@ RELAYFROM originated locally
-R$=R $* $@ RELAYFROM relayable IP address
-R$* $: [ $1 ] put brackets around it...
-R$=w $@ RELAYFROM ... and see if it is local
-
-
-# check client name: first: did it resolve?
-R$* $: < $&{client_resolve} >
-R<TEMP> $#error $@ 4.7.1 $: "450 Relaying temporarily denied. Cannot resolve PTR record for " $&{client_addr}
-R<FORGED> $#error $@ 5.7.1 $: "550 Relaying denied. IP name possibly forged " $&{client_name}
-R<FAIL> $#error $@ 5.7.1 $: "550 Relaying denied. IP name lookup failed " $&{client_name}
-R$* $: <?> $&{client_name}
-R<?> $@ RELAYFROM
-R<?> $=w $@ RELAYFROM
-R<?> $* $=R $@ RELAYFROM
-
-# anything else is bogus
-R$* $#error $@ 5.7.1 $: "550 Relaying denied"
-
-
-# is user trusted to authenticate as someone else?
-Strust_auth
-R$* $: $&{auth_type} $| $1
-# required by RFC 2554 section 4.
-R$@ $| $* $#error $@ 5.7.1 $: "550 not authenticated"
-R$* $| $&{auth_authen} $@ identical
-R$* $| <$&{auth_authen}> $@ identical
-R$* $| $* $: $1 $| $>"Local_trust_auth" $1
-R$* $| $#$* $#$2
-R$* $#error $@ 5.7.1 $: "550 " $&{auth_authen} " not allowed to act as " $&{auth_author}
-
-SLocal_trust_auth
-
-
-#\f
-######################################################################
-######################################################################
-#####
-##### MAILER DEFINITIONS
-#####
-######################################################################
-######################################################################
-
-
-##################################################
-### Local and Program Mailer specification ###
-##################################################
-
-##### $Id: generic-osf1.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-#
-# Envelope sender rewriting
-#
-SEnvFromL=10
-R<@> $n errors to mailer-daemon
-R@ <@ $*> $n temporarily bypass Sun bogosity
-R$+ $: $>AddDomain $1 add local domain if needed
-R$* $: $>MasqEnv $1 do masquerading
-
-#
-# Envelope recipient rewriting
-#
-SEnvToL=20
-R$+ < @ $* > $: $1 strip host part
-
-#
-# Header sender rewriting
-#
-SHdrFromL=30
-R<@> $n errors to mailer-daemon
-R@ <@ $*> $n temporarily bypass Sun bogosity
-R$+ $: $>AddDomain $1 add local domain if needed
-R$* $: $>MasqHdr $1 do masquerading
-
-#
-# Header recipient rewriting
-#
-SHdrToL=40
-R$+ $: $>AddDomain $1 add local domain if needed
-R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
-
-#
-# Common code to add local domain name (only if always-add-domain)
-#
-SAddDomain=50
-
-Mlocal, P=/bin/mail, F=lsDFMAw5:/|@qPrmn9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,
- T=DNS/RFC822/X-Unix,
- A=mail -d $u
-Mprog, P=/bin/sh, F=lsDFMoqeu9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL, D=$z:/,
- T=X-Unix/X-Unix/X-Unix,
- A=sh -c $u
-
-#####################################
-### SMTP Mailer specification ###
-#####################################
-
-##### $Id: generic-osf1.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-#
-# common sender and masquerading recipient rewriting
-#
-SMasqSMTP=61
-R$* < @ $* > $* $@ $1 < @ $2 > $3 already fully qualified
-R$+ $@ $1 < @ *LOCAL* > add local qualification
-
-#
-# convert pseudo-domain addresses to real domain addresses
-#
-SPseudoToReal=51
-
-# pass <route-addr>s through
-R< @ $+ > $* $@ < @ $1 > $2 resolve <route-addr>
-
-# output fake domains as user%fake@relay
-
-# do UUCP heuristics; note that these are shared with UUCP mailers
-R$+ < @ $+ .UUCP. > $: < $2 ! > $1 convert to UUCP form
-R$+ < @ $* > $* $@ $1 < @ $2 > $3 not UUCP form
-
-# leave these in .UUCP form to avoid further tampering
-R< $&h ! > $- ! $+ $@ $2 < @ $1 .UUCP. >
-R< $&h ! > $-.$+ ! $+ $@ $3 < @ $1.$2 >
-R< $&h ! > $+ $@ $1 < @ $&h .UUCP. >
-R< $+ ! > $+ $: $1 ! $2 < @ $Y > use UUCP_RELAY
-R$+ < @ $+ : $+ > $@ $1 < @ $3 > strip mailer: part
-R$+ < @ > $: $1 < @ *LOCAL* > if no UUCP_RELAY
-
-
-#
-# envelope sender rewriting
-#
-SEnvFromSMTP=11
-R$+ $: $>PseudoToReal $1 sender/recipient common
-R$* :; <@> $@ list:; special case
-R$* $: $>MasqSMTP $1 qualify unqual'ed names
-R$+ $: $>MasqEnv $1 do masquerading
-
-
-#
-# envelope recipient rewriting --
-# also header recipient if not masquerading recipients
-#
-SEnvToSMTP=21
-R$+ $: $>PseudoToReal $1 sender/recipient common
-R$+ $: $>MasqSMTP $1 qualify unqual'ed names
-R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
-
-#
-# header sender and masquerading header recipient rewriting
-#
-SHdrFromSMTP=31
-R$+ $: $>PseudoToReal $1 sender/recipient common
-R:; <@> $@ list:; special case
-
-# do special header rewriting
-R$* <@> $* $@ $1 <@> $2 pass null host through
-R< @ $* > $* $@ < @ $1 > $2 pass route-addr through
-R$* $: $>MasqSMTP $1 qualify unqual'ed names
-R$+ $: $>MasqHdr $1 do masquerading
-
-
-#
-# relay mailer header masquerading recipient rewriting
-#
-SMasqRelay=71
-R$+ $: $>MasqSMTP $1
-R$+ $: $>MasqHdr $1
-
-Msmtp, P=[IPC], F=mDFMuX, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Mesmtp, P=[IPC], F=mDFMuXa, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Msmtp8, P=[IPC], F=mDFMuX8, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Mdsmtp, P=[IPC], F=mDFMuXa%, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Mrelay, P=[IPC], F=mDFMuXa8, S=EnvFromSMTP/HdrFromSMTP, R=MasqSMTP, E=\r\n, L=2040,
- T=DNS/RFC822/SMTP,
- A=IPC $h
+++ /dev/null
-#
-# Copyright (c) 1998-2000 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-# Copyright (c) 1983, 1995 Eric P. Allman. All rights reserved.
-# Copyright (c) 1988, 1993
-# The Regents of the University of California. All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-
-######################################################################
-######################################################################
-#####
-##### SENDMAIL CONFIGURATION FILE
-#####
-##### built by gshapiro@horsey.gshapiro.net on Mon Mar 6 11:41:27 PST 2000
-##### in /usr/local/src/sendmail/devel/OpenSource/sendmail-8.10.0/cf/cf
-##### using ../ as configuration include directory
-#####
-######################################################################
-######################################################################
-
-##### $Id: generic-solaris2.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-##### $Id: generic-solaris2.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-##### $Id: generic-solaris2.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-##### $Id: generic-solaris2.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-##### $Id: generic-solaris2.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-##### $Id: generic-solaris2.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-##### $Id: generic-solaris2.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-
-
-##### $Id: generic-solaris2.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-
-# level 9 config file format
-V9/Berkeley
-
-# override file safeties - setting this option compromises system security,
-# addressing the actual file configuration problem is preferred
-# need to set this before any file actions are encountered in the cf file
-#O DontBlameSendmail=safe
-
-# default LDAP map specification
-# need to set this now before any LDAP maps are defined
-#O LDAPDefaultSpec=-h localhost
-
-##################
-# local info #
-##################
-
-Cwlocalhost
-# file containing names of hosts for which we receive email
-Fw/etc/mail/local-host-names
-
-# my official domain name
-# ... define this only if sendmail cannot automatically determine your domain
-#Dj$w.Foo.COM
-
-CP.
-
-# "Smart" relay host (may be null)
-DS
-
-
-# operators that cannot be in local usernames (i.e., network indicators)
-CO @ % !
-
-# a class with just dot (for identifying canonical names)
-C..
-
-# a class with just a left bracket (for identifying domain literals)
-C[[
-
-
-# Resolve map (to check if a host exists in check_mail)
-Kresolve host -a<OK> -T<TEMP>
-
-# Hosts that will permit relaying ($=R)
-FR-o /etc/mail/relay-domains
-
-
-# who I send unqualified names to (null means deliver locally)
-DR
-
-# who gets all local email traffic ($R has precedence for unqualified names)
-DH
-
-# dequoting map
-Kdequote dequote
-
-# class E: names that should be exposed as from this host, even if we masquerade
-# class L: names that should be delivered locally, even if we have a relay
-# class M: domains that should be converted to $M
-# class N: domains that should not be converted to $M
-#CL root
-CEroot
-
-# who I masquerade as (null for no masquerading) (see also $=M)
-DM
-
-# my name for error messages
-DnMAILER-DAEMON
-
-
-CPREDIRECT
-
-# Configuration version number
-DZ8.10.0
-
-
-###############
-# Options #
-###############
-
-# strip message body to 7 bits on input?
-O SevenBitInput=False
-
-# 8-bit data handling
-O EightBitMode=pass8
-
-# wait for alias file rebuild (default units: minutes)
-O AliasWait=10
-
-# location of alias file
-O AliasFile=/etc/mail/aliases
-
-# minimum number of free blocks on filesystem
-O MinFreeBlocks=100
-
-# maximum message size
-#O MaxMessageSize=1000000
-
-# substitution for space (blank) characters
-O BlankSub=.
-
-# avoid connecting to "expensive" mailers on initial submission?
-O HoldExpensive=False
-
-# checkpoint queue runs after every N successful deliveries
-#O CheckpointInterval=10
-
-# default delivery mode
-O DeliveryMode=background
-
-# automatically rebuild the alias database?
-# NOTE: There is a potential for a denial of service attack if this is set.
-# This option is deprecated and will be removed from a future version.
-#O AutoRebuildAliases=False
-
-# error message header/file
-#O ErrorHeader=/etc/mail/error-header
-
-# error mode
-#O ErrorMode=print
-
-# save Unix-style "From_" lines at top of header?
-#O SaveFromLine=False
-
-# temporary file mode
-O TempFileMode=0600
-
-# match recipients against GECOS field?
-#O MatchGECOS=False
-
-# maximum hop count
-#O MaxHopCount=17
-
-# location of help file
-O HelpFile=/etc/mail/helpfile
-
-# ignore dots as terminators in incoming messages?
-#O IgnoreDots=False
-
-# name resolver options
-#O ResolverOptions=+AAONLY
-
-# deliver MIME-encapsulated error messages?
-O SendMimeErrors=True
-
-# Forward file search path
-O ForwardPath=$z/.forward.$w+$h:$z/.forward+$h:$z/.forward.$w:$z/.forward
-
-# open connection cache size
-O ConnectionCacheSize=2
-
-# open connection cache timeout
-O ConnectionCacheTimeout=5m
-
-# persistent host status directory
-#O HostStatusDirectory=.hoststat
-
-# single thread deliveries (requires HostStatusDirectory)?
-#O SingleThreadDelivery=False
-
-# use Errors-To: header?
-O UseErrorsTo=False
-
-# log level
-O LogLevel=9
-
-# send to me too, even in an alias expansion?
-#O MeToo=True
-
-# verify RHS in newaliases?
-O CheckAliases=False
-
-# default messages to old style headers if no special punctuation?
-O OldStyleHeaders=True
-
-# SMTP daemon options
-O DaemonPortOptions=Name=MTA
-O DaemonPortOptions=Port=587, Name=MSA, M=E
-
-# SMTP client options
-#O ClientPortOptions=Address=0.0.0.0
-
-# privacy flags
-O PrivacyOptions=authwarnings
-
-# who (if anyone) should get extra copies of error messages
-#O PostmasterCopy=Postmaster
-
-# slope of queue-only function
-#O QueueFactor=600000
-
-# queue directory
-O QueueDirectory=/var/spool/mqueue
-
-# timeouts (many of these)
-#O Timeout.initial=5m
-#O Timeout.connect=5m
-#O Timeout.iconnect=5m
-#O Timeout.helo=5m
-#O Timeout.mail=10m
-#O Timeout.rcpt=1h
-#O Timeout.datainit=5m
-#O Timeout.datablock=1h
-#O Timeout.datafinal=1h
-#O Timeout.rset=5m
-#O Timeout.quit=2m
-#O Timeout.misc=2m
-#O Timeout.command=1h
-#O Timeout.ident=5s
-#O Timeout.fileopen=60s
-#O Timeout.control=2m
-O Timeout.queuereturn=5d
-#O Timeout.queuereturn.normal=5d
-#O Timeout.queuereturn.urgent=2d
-#O Timeout.queuereturn.non-urgent=7d
-O Timeout.queuewarn=4h
-#O Timeout.queuewarn.normal=4h
-#O Timeout.queuewarn.urgent=1h
-#O Timeout.queuewarn.non-urgent=12h
-#O Timeout.hoststatus=30m
-#O Timeout.resolver.retrans=5s
-#O Timeout.resolver.retrans.first=5s
-#O Timeout.resolver.retrans.normal=5s
-#O Timeout.resolver.retry=4
-#O Timeout.resolver.retry.first=4
-#O Timeout.resolver.retry.normal=4
-
-# should we not prune routes in route-addr syntax addresses?
-#O DontPruneRoutes=False
-
-# queue up everything before forking?
-O SuperSafe=True
-
-# status file
-O StatusFile=/etc/mail/statistics
-
-# time zone handling:
-# if undefined, use system default
-# if defined but null, use TZ envariable passed in
-# if defined and non-null, use that info
-#O TimeZoneSpec=
-
-# default UID (can be username or userid:groupid)
-#O DefaultUser=mailnull
-
-# list of locations of user database file (null means no lookup)
-#O UserDatabaseSpec=/etc/mail/userdb
-
-# fallback MX host
-#O FallbackMXhost=fall.back.host.net
-
-# if we are the best MX host for a site, try it directly instead of config err
-#O TryNullMXList=False
-
-# load average at which we just queue messages
-#O QueueLA=8
-
-# load average at which we refuse connections
-#O RefuseLA=12
-
-# maximum number of children we allow at one time
-#O MaxDaemonChildren=12
-
-# maximum number of new connections per second
-#O ConnectionRateThrottle=3
-
-# work recipient factor
-#O RecipientFactor=30000
-
-# deliver each queued job in a separate process?
-#O ForkEachJob=False
-
-# work class factor
-#O ClassFactor=1800
-
-# work time factor
-#O RetryFactor=90000
-
-# shall we sort the queue by hostname first?
-#O QueueSortOrder=priority
-
-# minimum time in queue before retry
-#O MinQueueAge=30m
-
-# default character set
-#O DefaultCharSet=iso-8859-1
-
-# service switch file (ignored on Solaris, Ultrix, OSF/1, others)
-#O ServiceSwitchFile=/etc/mail/service.switch
-
-# hosts file (normally /etc/hosts)
-#O HostsFile=/etc/hosts
-
-# dialup line delay on connection failure
-#O DialDelay=10s
-
-# action to take if there are no recipients in the message
-#O NoRecipientAction=add-to-undisclosed
-
-# chrooted environment for writing to files
-#O SafeFileEnvironment=/arch
-
-# are colons OK in addresses?
-#O ColonOkInAddr=True
-
-# how many jobs can you process in the queue?
-#O MaxQueueRunSize=10000
-
-# shall I avoid expanding CNAMEs (violates protocols)?
-#O DontExpandCnames=False
-
-# SMTP initial login message (old $e macro)
-O SmtpGreetingMessage=$j Sendmail $v/$Z; $b
-
-# UNIX initial From header format (old $l macro)
-O UnixFromLine=From $g $d
-
-# From: lines that have embedded newlines are unwrapped onto one line
-#O SingleLineFromHeader=False
-
-# Allow HELO SMTP command that does not include a host name
-#O AllowBogusHELO=False
-
-# Characters to be quoted in a full name phrase (@,;:\()[] are automatic)
-#O MustQuoteChars=.
-
-# delimiter (operator) characters (old $o macro)
-O OperatorChars=.:%@!^/[]+
-
-# shall I avoid calling initgroups(3) because of high NIS costs?
-#O DontInitGroups=False
-
-# are group-writable :include: and .forward files (un)trustworthy?
-#O UnsafeGroupWrites=True
-
-# where do errors that occur when sending errors get sent?
-#O DoubleBounceAddress=postmaster
-
-# where to save bounces if all else fails
-#O DeadLetterDrop=/var/tmp/dead.letter
-
-# what user id do we assume for the majority of the processing?
-#O RunAsUser=sendmail
-
-# maximum number of recipients per SMTP envelope
-#O MaxRecipientsPerMessage=100
-
-# shall we get local names from our installed interfaces?
-#O DontProbeInterfaces=False
-
-# Return-Receipt-To: header implies DSN request
-#O RrtImpliesDsn=False
-
-# override connection address (for testing)
-#O ConnectOnlyTo=0.0.0.0
-
-# Trusted user for file ownership and starting the daemon
-#O TrustedUser=root
-
-# Control socket for daemon management
-#O ControlSocketName=/var/spool/mqueue/.control
-
-# Maximum MIME header length to protect MUAs
-#O MaxMimeHeaderLength=0/0
-
-# Maximum length of the sum of all headers
-O MaxHeadersLength=32768
-
-# Maximum depth of alias recursion
-#O MaxAliasRecursion=10
-
-# location of pid file
-#O PidFile=/var/run/sendmail.pid
-
-# Prefix string for the process title shown on 'ps' listings
-#O ProcessTitlePrefix=prefix
-
-# Data file (df) memory-buffer file maximum size
-#O DataFileBufferSize=4096
-
-# Transcript file (xf) memory-buffer file maximum size
-#O XscriptFileBufferSize=4096
-
-# list of authentication mechanisms
-#O AuthMechanisms=GSSAPI KERBEROS_V4 DIGEST-MD5 CRAM-MD5
-
-# default authentication information for outgoing connections
-#O DefaultAuthInfo=/etc/mail/default-auth-info
-
-# try to authenticate? (Try when available/only when Authenticated)
-#O AuthOptions=T
-
-
-
-
-
-
-###########################
-# Message precedences #
-###########################
-
-Pfirst-class=0
-Pspecial-delivery=100
-Plist=-30
-Pbulk=-60
-Pjunk=-100
-
-#####################
-# Trusted users #
-#####################
-
-# this is equivalent to setting class "t"
-#Ft/etc/mail/trusted-users
-Troot
-Tdaemon
-Tuucp
-
-#########################
-# Format of headers #
-#########################
-
-H?P?Return-Path: <$g>
-HReceived: $?sfrom $s $.$?_($?s$|from $.$_)
- $.$?{auth_type}(authenticated)
- $.by $j ($v/$Z)$?r with $r$. id $i$?u
- for $u; $|;
- $.$b
-H?D?Resent-Date: $a
-H?D?Date: $a
-H?F?Resent-From: $?x$x <$g>$|$g$.
-H?F?From: $?x$x <$g>$|$g$.
-H?x?Full-Name: $x
-# HPosted-Date: $a
-# H?l?Received-Date: $b
-H?M?Resent-Message-Id: <$t.$i@$j>
-H?M?Message-Id: <$t.$i@$j>
-
-#\f
-######################################################################
-######################################################################
-#####
-##### REWRITING RULES
-#####
-######################################################################
-######################################################################
-
-############################################
-### Ruleset 3 -- Name Canonicalization ###
-############################################
-Scanonify=3
-
-# handle null input (translate to <@> special case)
-R$@ $@ <@>
-
-# strip group: syntax (not inside angle brackets!) and trailing semicolon
-R$* $: $1 <@> mark addresses
-R$* < $* > $* <@> $: $1 < $2 > $3 unmark <addr>
-R@ $* <@> $: @ $1 unmark @host:...
-R$* :: $* <@> $: $1 :: $2 unmark node::addr
-R:include: $* <@> $: :include: $1 unmark :include:...
-R$* [ IPv6 $- ] <@> $: $1 [ IPv6 $2 ] unmark IPv6 addr
-R$* : $* [ $* ] $: $1 : $2 [ $3 ] <@> remark if leading colon
-R$* : $* <@> $: $2 strip colon if marked
-R$* <@> $: $1 unmark
-R$* ; $1 strip trailing semi
-R$* < $* ; > $1 < $2 > bogus bracketed semi
-
-# null input now results from list:; syntax
-R$@ $@ :; <@>
-
-# strip angle brackets -- note RFC733 heuristic to get innermost item
-R$* $: < $1 > housekeeping <>
-R$+ < $* > < $2 > strip excess on left
-R< $* > $+ < $1 > strip excess on right
-R<> $@ < @ > MAIL FROM:<> case
-R< $+ > $: $1 remove housekeeping <>
-
-# strip route address <@a,@b,@c:user@d> -> <user@d>
-R@ $+ , $+ $2
-R@ $+ : $+ $2
-
-# find focus for list syntax
-R $+ : $* ; @ $+ $@ $>Canonify2 $1 : $2 ; < @ $3 > list syntax
-R $+ : $* ; $@ $1 : $2; list syntax
-
-# find focus for @ syntax addresses
-R$+ @ $+ $: $1 < @ $2 > focus on domain
-R$+ < $+ @ $+ > $1 $2 < @ $3 > move gaze right
-R$+ < @ $+ > $@ $>Canonify2 $1 < @ $2 > already canonical
-
-# do some sanity checking
-R$* < @ $* : $* > $* $1 < @ $2 $3 > $4 nix colons in addrs
-
-# convert old-style addresses to a domain-based address
-R$- ! $+ $@ $>Canonify2 $2 < @ $1 .UUCP > resolve uucp names
-R$+ . $- ! $+ $@ $>Canonify2 $3 < @ $1 . $2 > domain uucps
-R$+ ! $+ $@ $>Canonify2 $2 < @ $1 .UUCP > uucp subdomains
-
-# if we have % signs, take the rightmost one
-R$* % $* $1 @ $2 First make them all @s.
-R$* @ $* @ $* $1 % $2 @ $3 Undo all but the last.
-R$* @ $* $@ $>Canonify2 $1 < @ $2 > Insert < > and finish
-
-# else we must be a local name
-R$* $@ $>Canonify2 $1
-
-
-################################################
-### Ruleset 96 -- bottom half of ruleset 3 ###
-################################################
-
-SCanonify2=96
-
-# handle special cases for local names
-R$* < @ localhost > $* $: $1 < @ $j . > $2 no domain at all
-R$* < @ localhost . $m > $* $: $1 < @ $j . > $2 local domain
-R$* < @ localhost . UUCP > $* $: $1 < @ $j . > $2 .UUCP domain
-
-# check for IPv6 domain literal (save quoted form)
-R$* < @ [ IPv6 $- ] > $* $: $2 $| $1 < @@ [ $(dequote $2 $) ] > $3 mark IPv6 addr
-R$- $| $* < @@ $=w > $* $: $2 < @ $j . > $4 self-literal
-R$- $| $* < @@ [ $+ ] > $* $@ $2 < @ [ IPv6 $1 ] > $4 canon IP addr
-
-# check for IPv4 domain literal
-R$* < @ [ $+ ] > $* $: $1 < @@ [ $2 ] > $3 mark [a.b.c.d]
-R$* < @@ $=w > $* $: $1 < @ $j . > $3 self-literal
-R$* < @@ $+ > $* $@ $1 < @ $2 > $3 canon IP addr
-
-
-
-
-
-# if really UUCP, handle it immediately
-
-# try UUCP traffic as a local address
-R$* < @ $+ . UUCP > $* $: $1 < @ $[ $2 $] . UUCP . > $3
-R$* < @ $+ . . UUCP . > $* $@ $1 < @ $2 . > $3
-
-# hostnames ending in class P are always canonical
-R$* < @ $* $=P > $* $: $1 < @ $2 $3 . > $4
-R$* < @ $* $~P > $* $: $&{daemon_flags} $| $1 < @ $2 $3 > $4
-R$* CC $* $| $* $: $3
-# pass to name server to make hostname canonical
-R$* $| $* < @ $* > $* $: $2 < @ $[ $3 $] > $4
-R$* $| $* $: $2
-
-# local host aliases and pseudo-domains are always canonical
-R$* < @ $=w > $* $: $1 < @ $2 . > $3
-R$* < @ $=M > $* $: $1 < @ $2 . > $3
-R$* < @ $* . . > $* $1 < @ $2 . > $3
-
-
-##################################################
-### Ruleset 4 -- Final Output Post-rewriting ###
-##################################################
-Sfinal=4
-
-R$* <@> $@ handle <> and list:;
-
-# strip trailing dot off possibly canonical name
-R$* < @ $+ . > $* $1 < @ $2 > $3
-
-# eliminate internal code
-R$* < @ *LOCAL* > $* $1 < @ $j > $2
-
-# externalize local domain info
-R$* < $+ > $* $1 $2 $3 defocus
-R@ $+ : @ $+ : $+ @ $1 , @ $2 : $3 <route-addr> canonical
-R@ $* $@ @ $1 ... and exit
-
-# 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 @ $2 u%host@host => u@host
-
-
-
-##############################################################
-### Ruleset 97 -- recanonicalize and call ruleset zero ###
-### (used for recursive calls) ###
-##############################################################
-
-SRecurse=97
-R$* $: $>canonify $1
-R$* $@ $>parse $1
-
-
-######################################
-### Ruleset 0 -- Parse Address ###
-######################################
-
-Sparse=0
-
-R$* $: $>Parse0 $1 initial parsing
-R<@> $#local $: <@> special case error msgs
-R$* $: $>ParseLocal $1 handle local hacks
-R$* $: $>Parse1 $1 final parsing
-
-#
-# Parse0 -- do initial syntax checking and eliminate local addresses.
-# This should either return with the (possibly modified) input
-# or return with a #error mailer. It should not return with a
-# #mailer other than the #error mailer.
-#
-
-SParse0
-R<@> $@ <@> special case error msgs
-R$* : $* ; <@> $#error $@ 5.1.3 $: "553 List:; syntax illegal for recipient addresses"
-R@ <@ $* > < @ $1 > catch "@@host" bogosity
-R<@ $+> $#error $@ 5.1.3 $: "553 User address required"
-R$* $: <> $1
-R<> $* < @ [ $+ ] > $* $1 < @ [ $2 ] > $3
-R<> $* <$* : $* > $* $#error $@ 5.1.3 $: "553 Colon illegal in host name part"
-R<> $* $1
-R$* < @ . $* > $* $#error $@ 5.1.2 $: "553 Invalid host name"
-R$* < @ $* .. $* > $* $#error $@ 5.1.2 $: "553 Invalid host name"
-
-# now delete the local info -- note $=O to find characters that cause forwarding
-R$* < @ > $* $@ $>Parse0 $>canonify $1 user@ => user
-R< @ $=w . > : $* $@ $>Parse0 $>canonify $2 @here:... -> ...
-R$- < @ $=w . > $: $(dequote $1 $) < @ $2 . > dequote "foo"@here
-R< @ $+ > $#error $@ 5.1.3 $: "553 User address required"
-R$* $=O $* < @ $=w . > $@ $>Parse0 $>canonify $1 $2 $3 ...@here -> ...
-R$- $: $(dequote $1 $) < @ *LOCAL* > dequote "foo"
-R< @ *LOCAL* > $#error $@ 5.1.3 $: "553 User address required"
-R$* $=O $* < @ *LOCAL* >
- $@ $>Parse0 $>canonify $1 $2 $3 ...@*LOCAL* -> ...
-R$* < @ *LOCAL* > $: $1
-
-#
-# Parse1 -- the bottom half of ruleset 0.
-#
-
-SParse1
-
-# handle numeric address spec
-R$* < @ [ $+ ] > $* $: $>ParseLocal $1 < @ [ $2 ] > $3 numeric internet spec
-R$* < @ [ $+ ] > $* $1 < @ [ $2 ] : $S > $3 Add smart host to path
-R$* < @ [ IPv6 $- ] : > $*
- $#esmtp $@ [ $(dequote $2 $) ] $: $1 < @ [IPv6 $2 ] > $3 no smarthost: send
-R$* < @ [ $+ ] : > $* $#esmtp $@ [$2] $: $1 < @ [$2] > $3 no smarthost: send
-R$* < @ [ $+ ] : $- : $*> $* $#$3 $@ $4 $: $1 < @ [$2] > $5 smarthost with mailer
-R$* < @ [ $+ ] : $+ > $* $#esmtp $@ $3 $: $1 < @ [$2] > $4 smarthost without mailer
-
-
-# short circuit local delivery so forwarded email works
-R$=L < @ $=w . > $#local $: @ $1 special local names
-R$+ < @ $=w . > $#local $: $1 regular local name
-
-
-# resolve remotely connected UUCP links (if any)
-
-# resolve fake top level domains by forwarding to other hosts
-
-
-
-# pass names that still have a host to a smarthost (if defined)
-R$* < @ $* > $* $: $>MailerToTriple < $S > $1 < @ $2 > $3 glue on smarthost name
-
-# deal with other remote names
-R$* < @$* > $* $#esmtp $@ $2 $: $1 < @ $2 > $3 user@host.domain
-
-# handle locally delivered names
-R$=L $#local $: @ $1 special local names
-R$+ $#local $: $1 regular local names
-
-###########################################################################
-### Ruleset 5 -- special rewriting after aliases have been expanded ###
-###########################################################################
-
-SLocal_localaddr
-Slocaladdr=5
-R$+ $: $1 $| $>"Local_localaddr" $1
-R$+ $| $#$* $#$2
-R$+ $| $* $: $1
-
-# deal with plussed users so aliases work nicely
-R$+ + * $#local $@ $&h $: $1
-R$+ + $* $#local $@ + $2 $: $1 + *
-
-# prepend an empty "forward host" on the front
-R$+ $: <> $1
-
-
-# see if we have a relay or a hub
-R< > $+ $: < $H > $1 try hub
-R< > $+ $: < $R > $1 try relay
-R< > $+ $: < > < $1 <> $&h > nope, restore +detail
-R< > < $+ <> + $* > $: < > < $1 + $2 > check whether +detail
-R< > < $+ <> $* > $: < > < $1 > else discard
-R< > < $+ + $* > $* < > < $1 > + $2 $3 find the user part
-R< > < $+ > + $* $#local $@ $2 $: @ $1 strip the extra +
-R< > < $+ > $@ $1 no +detail
-R$+ $: $1 <> $&h add +detail back in
-R$+ <> + $* $: $1 + $2 check whether +detail
-R$+ <> $* $: $1 else discard
-R< local : $* > $* $: $>MailerToTriple < local : $1 > $2 no host extension
-R< error : $* > $* $: $>MailerToTriple < error : $1 > $2 no host extension
-R< $- : $+ > $+ $: $>MailerToTriple < $1 : $2 > $3 < @ $2 >
-R< $+ > $+ $@ $>MailerToTriple < $1 > $2 < @ $1 >
-
-
-###################################################################
-### Ruleset 95 -- canonify mailer:[user@]host syntax to triple ###
-###################################################################
-
-SMailerToTriple=95
-R< > $* $@ $1 strip off null relay
-R< error : $-.$-.$- : $+ > $* $#error $@ $1.$2.$3 $: $4
-R< error : $- $+ > $* $#error $@ $(dequote $1 $) $: $2
-R< local : $* > $* $>CanonLocal < $1 > $2
-R< $- : $+ @ $+ > $*<$*>$* $# $1 $@ $3 $: $2<@$3> use literal user
-R< $- : $+ > $* $# $1 $@ $2 $: $3 try qualified mailer
-R< $=w > $* $@ $2 delete local host
-R< [ IPv6 $+ ] > $* $#relay $@ $(dequote $1 $) $: $2 use unqualified mailer
-R< $+ > $* $#relay $@ $1 $: $2 use unqualified mailer
-
-###################################################################
-### Ruleset CanonLocal -- canonify local: syntax ###
-###################################################################
-
-SCanonLocal
-# strip local host from routed addresses
-R< $* > < @ $+ > : $+ $@ $>Recurse $3
-R< $* > $+ $=O $+ < @ $+ > $@ $>Recurse $2 $3 $4
-
-# strip trailing dot from any host name that may appear
-R< $* > $* < @ $* . > $: < $1 > $2 < @ $3 >
-
-# handle local: syntax -- use old user, either with or without host
-R< > $* < @ $* > $* $#local $@ $1@$2 $: $1
-R< > $+ $#local $@ $1 $: $1
-
-# handle local:user@host syntax -- ignore host part
-R< $+ @ $+ > $* < @ $* > $: < $1 > $3 < @ $4 >
-
-# handle local:user syntax
-R< $+ > $* <@ $* > $* $#local $@ $2@$3 $: $1
-R< $+ > $* $#local $@ $2 $: $1
-
-###################################################################
-### Ruleset 93 -- convert header names to masqueraded form ###
-###################################################################
-
-SMasqHdr=93
-
-
-# do not masquerade anything in class N
-R$* < @ $* $=N . > $@ $1 < @ $2 $3 . >
-
-# special case the users that should be exposed
-R$=E < @ *LOCAL* > $@ $1 < @ $j . > leave exposed
-R$=E < @ $=M . > $@ $1 < @ $2 . >
-R$=E < @ $=w . > $@ $1 < @ $2 . >
-
-# handle domain-specific masquerading
-R$* < @ $=M . > $* $: $1 < @ $2 . @ $M > $3 convert masqueraded doms
-R$* < @ $=w . > $* $: $1 < @ $2 . @ $M > $3
-R$* < @ *LOCAL* > $* $: $1 < @ $j . @ $M > $2
-R$* < @ $+ @ > $* $: $1 < @ $2 > $3 $M is null
-R$* < @ $+ @ $+ > $* $: $1 < @ $3 . > $4 $M is not null
-
-###################################################################
-### Ruleset 94 -- convert envelope names to masqueraded form ###
-###################################################################
-
-SMasqEnv=94
-R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
-
-###################################################################
-### Ruleset 98 -- local part of ruleset zero (can be null) ###
-###################################################################
-
-SParseLocal=98
-
-# addresses sent to foo@host.REDIRECT will give a 551 error code
-R$* < @ $+ .REDIRECT. > $: $1 < @ $2 . REDIRECT . > < ${opMode} >
-R$* < @ $+ .REDIRECT. > <i> $: $1 < @ $2 . REDIRECT. >
-R$* < @ $+ .REDIRECT. > < $- > $#error $@ 5.1.1 $: "551 User has moved; please try " <$1@$2>
-
-
-
-
-
-######################################################################
-### CanonAddr -- Convert an address into a standard form for
-### relay checking. Route address syntax is
-### crudely converted into a %-hack address.
-###
-### Parameters:
-### $1 -- full recipient address
-###
-### Returns:
-### parsed address, not in source route form
-######################################################################
-
-SCanonAddr
-R$* $: $>Parse0 $>canonify $1 make domain canonical
-
-
-######################################################################
-### ParseRecipient -- Strip off hosts in $=R as well as possibly
-### $* $=m or the access database.
-### Check user portion for host separators.
-###
-### Parameters:
-### $1 -- full recipient address
-###
-### Returns:
-### parsed, non-local-relaying address
-######################################################################
-
-SParseRecipient
-R$* $: <?> $>CanonAddr $1
-R<?> $* < @ $* . > <?> $1 < @ $2 > strip trailing dots
-R<?> $- < @ $* > $: <?> $(dequote $1 $) < @ $2 > dequote local part
-
-# if no $=O character, no host in the user portion, we are done
-R<?> $* $=O $* < @ $* > $: <NO> $1 $2 $3 < @ $4>
-R<?> $* $@ $1
-
-
-
-R<NO> $* < @ $* $=R > $: <RELAY> $1 < @ $2 $3 >
-
-R<RELAY> $* < @ $* > $@ $>ParseRecipient $1
-R<$-> $* $@ $2
-
-
-######################################################################
-### check_relay -- check hostname/address on SMTP startup
-######################################################################
-
-SLocal_check_relay
-Scheck_relay
-R$* $: $1 $| $>"Local_check_relay" $1
-R$* $| $* $| $#$* $#$3
-R$* $| $* $| $* $@ $>"Basic_check_relay" $1 $| $2
-
-SBasic_check_relay
-# check for deferred delivery mode
-R$* $: < ${deliveryMode} > $1
-R< d > $* $@ deferred
-R< $* > $* $: $2
-
-
-
-
-######################################################################
-### check_mail -- check SMTP `MAIL FROM:' command argument
-######################################################################
-
-SLocal_check_mail
-Scheck_mail
-R$* $: $1 $| $>"Local_check_mail" $1
-R$* $| $#$* $#$2
-R$* $| $* $@ $>"Basic_check_mail" $1
-
-SBasic_check_mail
-# check for deferred delivery mode
-R$* $: < ${deliveryMode} > $1
-R< d > $* $@ deferred
-R< $* > $* $: $2
-
-R<> $@ <OK> we MUST accept <> (RFC 1123)
-R$+ $: <?> $1
-R<?><$+> $: <@> <$1>
-R<?>$+ $: <@> <$1>
-R$* $: $&{daemon_flags} $| $1
-R$* f $* $| <@> < $* @ $- > $: < ? $&{client_name} > < $3 @ $4 >
-R$* u $* $| <@> < $* > $: <?> < $3 >
-R$* $| $* $: $2
-# handle case of @localhost on address
-R<@> < $* @ localhost > $: < ? $&{client_name} > < $1 @ localhost >
-R<@> < $* @ [127.0.0.1] >
- $: < ? $&{client_name} > < $1 @ [127.0.0.1] >
-R<@> < $* @ localhost.$m >
- $: < ? $&{client_name} > < $1 @ localhost.$m >
-R<@> < $* @ localhost.UUCP >
- $: < ? $&{client_name} > < $1 @ localhost.UUCP >
-R<@> $* $: $1 no localhost as domain
-R<? $=w> $* $: $2 local client: ok
-R<? $+> <$+> $#error $@ 5.5.4 $: "553 Real domain name required"
-R<?> $* $: $1
-R$* $: <?> $>CanonAddr $1 canonify sender address and mark it
-R<?> $* < @ $+ . > <?> $1 < @ $2 > strip trailing dots
-# handle non-DNS hostnames (*.bitnet, *.decnet, *.uucp, etc)
-R<?> $* < @ $* $=P > $: <OK> $1 < @ $2 $3 >
-R<?> $* < @ $+ > $: <? $(resolve $2 $: $2 <PERM> $) > $1 < @ $2 >
-R<? $* <$->> $* < @ $+ >
- $: <$2> $3 < @ $4 >
-
-
-# handle case of no @domain on address
-R<?> $* $: $&{daemon_flags} $| <?> $1
-R$* u $* $| <?> $* $: <OK> $3
-R$* $| $* $: $2
-R<?> $* $: < ? $&{client_name} > $1
-R<?> $* $@ <OK> ...local unqualed ok
-R<? $+> $* $#error $@ 5.5.4 $: "553 Domain name required"
- ...remote is not
-# check results
-R<?> $* $: @ $1 mark address: nothing known about it
-R<OK> $* $@ <OK>
-R<TEMP> $* $#error $@ 4.1.8 $: "451 Sender domain must resolve"
-R<PERM> $* $#error $@ 5.1.8 $: "501 Sender domain must exist"
-
-######################################################################
-### check_rcpt -- check SMTP `RCPT TO:' command argument
-######################################################################
-
-SLocal_check_rcpt
-Scheck_rcpt
-R$* $: $1 $| $>"Local_check_rcpt" $1
-R$* $| $#$* $#$2
-R$* $| $* $@ $>"Basic_check_rcpt" $1
-
-SBasic_check_rcpt
-# check for deferred delivery mode
-R$* $: < ${deliveryMode} > $1
-R< d > $* $@ deferred
-R< $* > $* $: $2
-
-
-R$* $: $>ParseRecipient $1 strip relayable hosts
-
-
-
-
-
-# authenticated by a trusted mechanism?
-R$* $: $1 $| $&{auth_type}
-R$* $| $: $1
-R$* $| $={TrustAuthMech} $# RELAYAUTH
-R$* $| $* $: $1
-# anything terminating locally is ok
-R$+ < @ $=w > $@ RELAYTO
-R$+ < @ $* $=R > $@ RELAYTO
-
-
-# check for local user (i.e. unqualified address)
-R$* $: <?> $1
-R<?> $* < @ $+ > $: <REMOTE> $1 < @ $2 >
-# local user is ok
-R<?> $+ $@ RELAYTOLOCAL
-R<$+> $* $: $2
-
-# anything originating locally is ok
-# check IP address
-R$* $: $&{client_addr}
-R$@ $@ RELAYFROM originated locally
-R0 $@ RELAYFROM originated locally
-R$=R $* $@ RELAYFROM relayable IP address
-R$* $: [ $1 ] put brackets around it...
-R$=w $@ RELAYFROM ... and see if it is local
-
-
-# check client name: first: did it resolve?
-R$* $: < $&{client_resolve} >
-R<TEMP> $#error $@ 4.7.1 $: "450 Relaying temporarily denied. Cannot resolve PTR record for " $&{client_addr}
-R<FORGED> $#error $@ 5.7.1 $: "550 Relaying denied. IP name possibly forged " $&{client_name}
-R<FAIL> $#error $@ 5.7.1 $: "550 Relaying denied. IP name lookup failed " $&{client_name}
-R$* $: <?> $&{client_name}
-R<?> $@ RELAYFROM
-R<?> $=w $@ RELAYFROM
-R<?> $* $=R $@ RELAYFROM
-
-# anything else is bogus
-R$* $#error $@ 5.7.1 $: "550 Relaying denied"
-
-
-# is user trusted to authenticate as someone else?
-Strust_auth
-R$* $: $&{auth_type} $| $1
-# required by RFC 2554 section 4.
-R$@ $| $* $#error $@ 5.7.1 $: "550 not authenticated"
-R$* $| $&{auth_authen} $@ identical
-R$* $| <$&{auth_authen}> $@ identical
-R$* $| $* $: $1 $| $>"Local_trust_auth" $1
-R$* $| $#$* $#$2
-R$* $#error $@ 5.7.1 $: "550 " $&{auth_authen} " not allowed to act as " $&{auth_author}
-
-SLocal_trust_auth
-
-
-#\f
-######################################################################
-######################################################################
-#####
-##### MAILER DEFINITIONS
-#####
-######################################################################
-######################################################################
-
-
-##################################################
-### Local and Program Mailer specification ###
-##################################################
-
-##### $Id: generic-solaris2.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-#
-# Envelope sender rewriting
-#
-SEnvFromL=10
-R<@> $n errors to mailer-daemon
-R@ <@ $*> $n temporarily bypass Sun bogosity
-R$+ $: $>AddDomain $1 add local domain if needed
-R$* $: $>MasqEnv $1 do masquerading
-
-#
-# Envelope recipient rewriting
-#
-SEnvToL=20
-R$+ < @ $* > $: $1 strip host part
-
-#
-# Header sender rewriting
-#
-SHdrFromL=30
-R<@> $n errors to mailer-daemon
-R@ <@ $*> $n temporarily bypass Sun bogosity
-R$+ $: $>AddDomain $1 add local domain if needed
-R$* $: $>MasqHdr $1 do masquerading
-
-#
-# Header recipient rewriting
-#
-SHdrToL=40
-R$+ $: $>AddDomain $1 add local domain if needed
-R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
-
-#
-# Common code to add local domain name (only if always-add-domain)
-#
-SAddDomain=50
-
-Mlocal, P=/usr/lib/mail.local, F=lsDFMAw5:/|@qfSmn9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,
- T=DNS/RFC822/X-Unix,
- A=mail.local -d $u
-Mprog, P=/bin/sh, F=lsDFMoqeu9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL, D=$z:/,
- T=X-Unix/X-Unix/X-Unix,
- A=sh -c $u
-
-#####################################
-### SMTP Mailer specification ###
-#####################################
-
-##### $Id: generic-solaris2.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-#
-# common sender and masquerading recipient rewriting
-#
-SMasqSMTP=61
-R$* < @ $* > $* $@ $1 < @ $2 > $3 already fully qualified
-R$+ $@ $1 < @ *LOCAL* > add local qualification
-
-#
-# convert pseudo-domain addresses to real domain addresses
-#
-SPseudoToReal=51
-
-# pass <route-addr>s through
-R< @ $+ > $* $@ < @ $1 > $2 resolve <route-addr>
-
-# output fake domains as user%fake@relay
-
-# do UUCP heuristics; note that these are shared with UUCP mailers
-R$+ < @ $+ .UUCP. > $: < $2 ! > $1 convert to UUCP form
-R$+ < @ $* > $* $@ $1 < @ $2 > $3 not UUCP form
-
-# leave these in .UUCP form to avoid further tampering
-R< $&h ! > $- ! $+ $@ $2 < @ $1 .UUCP. >
-R< $&h ! > $-.$+ ! $+ $@ $3 < @ $1.$2 >
-R< $&h ! > $+ $@ $1 < @ $&h .UUCP. >
-R< $+ ! > $+ $: $1 ! $2 < @ $Y > use UUCP_RELAY
-R$+ < @ $+ : $+ > $@ $1 < @ $3 > strip mailer: part
-R$+ < @ > $: $1 < @ *LOCAL* > if no UUCP_RELAY
-
-
-#
-# envelope sender rewriting
-#
-SEnvFromSMTP=11
-R$+ $: $>PseudoToReal $1 sender/recipient common
-R$* :; <@> $@ list:; special case
-R$* $: $>MasqSMTP $1 qualify unqual'ed names
-R$+ $: $>MasqEnv $1 do masquerading
-
-
-#
-# envelope recipient rewriting --
-# also header recipient if not masquerading recipients
-#
-SEnvToSMTP=21
-R$+ $: $>PseudoToReal $1 sender/recipient common
-R$+ $: $>MasqSMTP $1 qualify unqual'ed names
-R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
-
-#
-# header sender and masquerading header recipient rewriting
-#
-SHdrFromSMTP=31
-R$+ $: $>PseudoToReal $1 sender/recipient common
-R:; <@> $@ list:; special case
-
-# do special header rewriting
-R$* <@> $* $@ $1 <@> $2 pass null host through
-R< @ $* > $* $@ < @ $1 > $2 pass route-addr through
-R$* $: $>MasqSMTP $1 qualify unqual'ed names
-R$+ $: $>MasqHdr $1 do masquerading
-
-
-#
-# relay mailer header masquerading recipient rewriting
-#
-SMasqRelay=71
-R$+ $: $>MasqSMTP $1
-R$+ $: $>MasqHdr $1
-
-Msmtp, P=[IPC], F=mDFMuX, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Mesmtp, P=[IPC], F=mDFMuXa, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Msmtp8, P=[IPC], F=mDFMuX8, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Mdsmtp, P=[IPC], F=mDFMuXa%, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Mrelay, P=[IPC], F=mDFMuXa8, S=EnvFromSMTP/HdrFromSMTP, R=MasqSMTP, E=\r\n, L=2040,
- T=DNS/RFC822/SMTP,
- A=IPC $h
+++ /dev/null
-#
-# Copyright (c) 1998-2000 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-# Copyright (c) 1983, 1995 Eric P. Allman. All rights reserved.
-# Copyright (c) 1988, 1993
-# The Regents of the University of California. All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-
-######################################################################
-######################################################################
-#####
-##### SENDMAIL CONFIGURATION FILE
-#####
-##### built by gshapiro@horsey.gshapiro.net on Mon Mar 6 11:41:27 PST 2000
-##### in /usr/local/src/sendmail/devel/OpenSource/sendmail-8.10.0/cf/cf
-##### using ../ as configuration include directory
-#####
-######################################################################
-######################################################################
-
-##### $Id: generic-sunos4.1.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-##### $Id: generic-sunos4.1.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-##### $Id: generic-sunos4.1.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-##### $Id: generic-sunos4.1.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-
-##### $Id: generic-sunos4.1.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-##### $Id: generic-sunos4.1.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-##### $Id: generic-sunos4.1.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-
-
-##### $Id: generic-sunos4.1.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-
-# level 9 config file format
-V9/Berkeley
-
-# override file safeties - setting this option compromises system security,
-# addressing the actual file configuration problem is preferred
-# need to set this before any file actions are encountered in the cf file
-#O DontBlameSendmail=safe
-
-# default LDAP map specification
-# need to set this now before any LDAP maps are defined
-#O LDAPDefaultSpec=-h localhost
-
-##################
-# local info #
-##################
-
-Cwlocalhost
-# file containing names of hosts for which we receive email
-Fw/etc/mail/local-host-names
-
-# my official domain name
-# ... define this only if sendmail cannot automatically determine your domain
-#Dj$w.Foo.COM
-
-CP.
-
-# "Smart" relay host (may be null)
-DS
-
-
-# operators that cannot be in local usernames (i.e., network indicators)
-CO @ % !
-
-# a class with just dot (for identifying canonical names)
-C..
-
-# a class with just a left bracket (for identifying domain literals)
-C[[
-
-
-# Resolve map (to check if a host exists in check_mail)
-Kresolve host -a<OK> -T<TEMP>
-
-# Hosts that will permit relaying ($=R)
-FR-o /etc/mail/relay-domains
-
-
-# who I send unqualified names to (null means deliver locally)
-DR
-
-# who gets all local email traffic ($R has precedence for unqualified names)
-DH
-
-# dequoting map
-Kdequote dequote
-
-# class E: names that should be exposed as from this host, even if we masquerade
-# class L: names that should be delivered locally, even if we have a relay
-# class M: domains that should be converted to $M
-# class N: domains that should not be converted to $M
-#CL root
-CEroot
-
-# who I masquerade as (null for no masquerading) (see also $=M)
-DM
-
-# my name for error messages
-DnMAILER-DAEMON
-
-
-CPREDIRECT
-
-# Configuration version number
-DZ8.10.0
-
-
-###############
-# Options #
-###############
-
-# strip message body to 7 bits on input?
-O SevenBitInput=False
-
-# 8-bit data handling
-O EightBitMode=pass8
-
-# wait for alias file rebuild (default units: minutes)
-O AliasWait=10
-
-# location of alias file
-O AliasFile=/etc/mail/aliases
-
-# minimum number of free blocks on filesystem
-O MinFreeBlocks=100
-
-# maximum message size
-#O MaxMessageSize=1000000
-
-# substitution for space (blank) characters
-O BlankSub=.
-
-# avoid connecting to "expensive" mailers on initial submission?
-O HoldExpensive=False
-
-# checkpoint queue runs after every N successful deliveries
-#O CheckpointInterval=10
-
-# default delivery mode
-O DeliveryMode=background
-
-# automatically rebuild the alias database?
-# NOTE: There is a potential for a denial of service attack if this is set.
-# This option is deprecated and will be removed from a future version.
-#O AutoRebuildAliases=False
-
-# error message header/file
-#O ErrorHeader=/etc/mail/error-header
-
-# error mode
-#O ErrorMode=print
-
-# save Unix-style "From_" lines at top of header?
-#O SaveFromLine=False
-
-# temporary file mode
-O TempFileMode=0600
-
-# match recipients against GECOS field?
-#O MatchGECOS=False
-
-# maximum hop count
-#O MaxHopCount=17
-
-# location of help file
-O HelpFile=/etc/mail/helpfile
-
-# ignore dots as terminators in incoming messages?
-#O IgnoreDots=False
-
-# name resolver options
-#O ResolverOptions=+AAONLY
-
-# deliver MIME-encapsulated error messages?
-O SendMimeErrors=True
-
-# Forward file search path
-O ForwardPath=$z/.forward.$w+$h:$z/.forward+$h:$z/.forward.$w:$z/.forward
-
-# open connection cache size
-O ConnectionCacheSize=2
-
-# open connection cache timeout
-O ConnectionCacheTimeout=5m
-
-# persistent host status directory
-#O HostStatusDirectory=.hoststat
-
-# single thread deliveries (requires HostStatusDirectory)?
-#O SingleThreadDelivery=False
-
-# use Errors-To: header?
-O UseErrorsTo=False
-
-# log level
-O LogLevel=9
-
-# send to me too, even in an alias expansion?
-#O MeToo=True
-
-# verify RHS in newaliases?
-O CheckAliases=False
-
-# default messages to old style headers if no special punctuation?
-O OldStyleHeaders=True
-
-# SMTP daemon options
-O DaemonPortOptions=Name=MTA
-O DaemonPortOptions=Port=587, Name=MSA, M=E
-
-# SMTP client options
-#O ClientPortOptions=Address=0.0.0.0
-
-# privacy flags
-O PrivacyOptions=authwarnings
-
-# who (if anyone) should get extra copies of error messages
-#O PostmasterCopy=Postmaster
-
-# slope of queue-only function
-#O QueueFactor=600000
-
-# queue directory
-O QueueDirectory=/var/spool/mqueue
-
-# timeouts (many of these)
-#O Timeout.initial=5m
-#O Timeout.connect=5m
-#O Timeout.iconnect=5m
-#O Timeout.helo=5m
-#O Timeout.mail=10m
-#O Timeout.rcpt=1h
-#O Timeout.datainit=5m
-#O Timeout.datablock=1h
-#O Timeout.datafinal=1h
-#O Timeout.rset=5m
-#O Timeout.quit=2m
-#O Timeout.misc=2m
-#O Timeout.command=1h
-#O Timeout.ident=5s
-#O Timeout.fileopen=60s
-#O Timeout.control=2m
-O Timeout.queuereturn=5d
-#O Timeout.queuereturn.normal=5d
-#O Timeout.queuereturn.urgent=2d
-#O Timeout.queuereturn.non-urgent=7d
-O Timeout.queuewarn=4h
-#O Timeout.queuewarn.normal=4h
-#O Timeout.queuewarn.urgent=1h
-#O Timeout.queuewarn.non-urgent=12h
-#O Timeout.hoststatus=30m
-#O Timeout.resolver.retrans=5s
-#O Timeout.resolver.retrans.first=5s
-#O Timeout.resolver.retrans.normal=5s
-#O Timeout.resolver.retry=4
-#O Timeout.resolver.retry.first=4
-#O Timeout.resolver.retry.normal=4
-
-# should we not prune routes in route-addr syntax addresses?
-#O DontPruneRoutes=False
-
-# queue up everything before forking?
-O SuperSafe=True
-
-# status file
-O StatusFile=/etc/mail/statistics
-
-# time zone handling:
-# if undefined, use system default
-# if defined but null, use TZ envariable passed in
-# if defined and non-null, use that info
-#O TimeZoneSpec=
-
-# default UID (can be username or userid:groupid)
-#O DefaultUser=mailnull
-
-# list of locations of user database file (null means no lookup)
-#O UserDatabaseSpec=/etc/mail/userdb
-
-# fallback MX host
-#O FallbackMXhost=fall.back.host.net
-
-# if we are the best MX host for a site, try it directly instead of config err
-#O TryNullMXList=False
-
-# load average at which we just queue messages
-#O QueueLA=8
-
-# load average at which we refuse connections
-#O RefuseLA=12
-
-# maximum number of children we allow at one time
-#O MaxDaemonChildren=12
-
-# maximum number of new connections per second
-#O ConnectionRateThrottle=3
-
-# work recipient factor
-#O RecipientFactor=30000
-
-# deliver each queued job in a separate process?
-#O ForkEachJob=False
-
-# work class factor
-#O ClassFactor=1800
-
-# work time factor
-#O RetryFactor=90000
-
-# shall we sort the queue by hostname first?
-#O QueueSortOrder=priority
-
-# minimum time in queue before retry
-#O MinQueueAge=30m
-
-# default character set
-#O DefaultCharSet=iso-8859-1
-
-# service switch file (ignored on Solaris, Ultrix, OSF/1, others)
-#O ServiceSwitchFile=/etc/mail/service.switch
-
-# hosts file (normally /etc/hosts)
-#O HostsFile=/etc/hosts
-
-# dialup line delay on connection failure
-#O DialDelay=10s
-
-# action to take if there are no recipients in the message
-#O NoRecipientAction=add-to-undisclosed
-
-# chrooted environment for writing to files
-#O SafeFileEnvironment=/arch
-
-# are colons OK in addresses?
-#O ColonOkInAddr=True
-
-# how many jobs can you process in the queue?
-#O MaxQueueRunSize=10000
-
-# shall I avoid expanding CNAMEs (violates protocols)?
-#O DontExpandCnames=False
-
-# SMTP initial login message (old $e macro)
-O SmtpGreetingMessage=$j Sendmail $v/$Z; $b
-
-# UNIX initial From header format (old $l macro)
-O UnixFromLine=From $g $d
-
-# From: lines that have embedded newlines are unwrapped onto one line
-#O SingleLineFromHeader=False
-
-# Allow HELO SMTP command that does not include a host name
-#O AllowBogusHELO=False
-
-# Characters to be quoted in a full name phrase (@,;:\()[] are automatic)
-#O MustQuoteChars=.
-
-# delimiter (operator) characters (old $o macro)
-O OperatorChars=.:%@!^/[]+
-
-# shall I avoid calling initgroups(3) because of high NIS costs?
-#O DontInitGroups=False
-
-# are group-writable :include: and .forward files (un)trustworthy?
-#O UnsafeGroupWrites=True
-
-# where do errors that occur when sending errors get sent?
-#O DoubleBounceAddress=postmaster
-
-# where to save bounces if all else fails
-#O DeadLetterDrop=/var/tmp/dead.letter
-
-# what user id do we assume for the majority of the processing?
-#O RunAsUser=sendmail
-
-# maximum number of recipients per SMTP envelope
-#O MaxRecipientsPerMessage=100
-
-# shall we get local names from our installed interfaces?
-#O DontProbeInterfaces=False
-
-# Return-Receipt-To: header implies DSN request
-#O RrtImpliesDsn=False
-
-# override connection address (for testing)
-#O ConnectOnlyTo=0.0.0.0
-
-# Trusted user for file ownership and starting the daemon
-#O TrustedUser=root
-
-# Control socket for daemon management
-#O ControlSocketName=/var/spool/mqueue/.control
-
-# Maximum MIME header length to protect MUAs
-#O MaxMimeHeaderLength=0/0
-
-# Maximum length of the sum of all headers
-O MaxHeadersLength=32768
-
-# Maximum depth of alias recursion
-#O MaxAliasRecursion=10
-
-# location of pid file
-#O PidFile=/var/run/sendmail.pid
-
-# Prefix string for the process title shown on 'ps' listings
-#O ProcessTitlePrefix=prefix
-
-# Data file (df) memory-buffer file maximum size
-#O DataFileBufferSize=4096
-
-# Transcript file (xf) memory-buffer file maximum size
-#O XscriptFileBufferSize=4096
-
-# list of authentication mechanisms
-#O AuthMechanisms=GSSAPI KERBEROS_V4 DIGEST-MD5 CRAM-MD5
-
-# default authentication information for outgoing connections
-#O DefaultAuthInfo=/etc/mail/default-auth-info
-
-# try to authenticate? (Try when available/only when Authenticated)
-#O AuthOptions=T
-
-
-
-
-
-
-###########################
-# Message precedences #
-###########################
-
-Pfirst-class=0
-Pspecial-delivery=100
-Plist=-30
-Pbulk=-60
-Pjunk=-100
-
-#####################
-# Trusted users #
-#####################
-
-# this is equivalent to setting class "t"
-#Ft/etc/mail/trusted-users
-Troot
-Tdaemon
-Tuucp
-
-#########################
-# Format of headers #
-#########################
-
-H?P?Return-Path: <$g>
-HReceived: $?sfrom $s $.$?_($?s$|from $.$_)
- $.$?{auth_type}(authenticated)
- $.by $j ($v/$Z)$?r with $r$. id $i$?u
- for $u; $|;
- $.$b
-H?D?Resent-Date: $a
-H?D?Date: $a
-H?F?Resent-From: $?x$x <$g>$|$g$.
-H?F?From: $?x$x <$g>$|$g$.
-H?x?Full-Name: $x
-# HPosted-Date: $a
-# H?l?Received-Date: $b
-H?M?Resent-Message-Id: <$t.$i@$j>
-H?M?Message-Id: <$t.$i@$j>
-
-#\f
-######################################################################
-######################################################################
-#####
-##### REWRITING RULES
-#####
-######################################################################
-######################################################################
-
-############################################
-### Ruleset 3 -- Name Canonicalization ###
-############################################
-Scanonify=3
-
-# handle null input (translate to <@> special case)
-R$@ $@ <@>
-
-# strip group: syntax (not inside angle brackets!) and trailing semicolon
-R$* $: $1 <@> mark addresses
-R$* < $* > $* <@> $: $1 < $2 > $3 unmark <addr>
-R@ $* <@> $: @ $1 unmark @host:...
-R$* :: $* <@> $: $1 :: $2 unmark node::addr
-R:include: $* <@> $: :include: $1 unmark :include:...
-R$* [ IPv6 $- ] <@> $: $1 [ IPv6 $2 ] unmark IPv6 addr
-R$* : $* [ $* ] $: $1 : $2 [ $3 ] <@> remark if leading colon
-R$* : $* <@> $: $2 strip colon if marked
-R$* <@> $: $1 unmark
-R$* ; $1 strip trailing semi
-R$* < $* ; > $1 < $2 > bogus bracketed semi
-
-# null input now results from list:; syntax
-R$@ $@ :; <@>
-
-# strip angle brackets -- note RFC733 heuristic to get innermost item
-R$* $: < $1 > housekeeping <>
-R$+ < $* > < $2 > strip excess on left
-R< $* > $+ < $1 > strip excess on right
-R<> $@ < @ > MAIL FROM:<> case
-R< $+ > $: $1 remove housekeeping <>
-
-# strip route address <@a,@b,@c:user@d> -> <user@d>
-R@ $+ , $+ $2
-R@ $+ : $+ $2
-
-# find focus for list syntax
-R $+ : $* ; @ $+ $@ $>Canonify2 $1 : $2 ; < @ $3 > list syntax
-R $+ : $* ; $@ $1 : $2; list syntax
-
-# find focus for @ syntax addresses
-R$+ @ $+ $: $1 < @ $2 > focus on domain
-R$+ < $+ @ $+ > $1 $2 < @ $3 > move gaze right
-R$+ < @ $+ > $@ $>Canonify2 $1 < @ $2 > already canonical
-
-# do some sanity checking
-R$* < @ $* : $* > $* $1 < @ $2 $3 > $4 nix colons in addrs
-
-# convert old-style addresses to a domain-based address
-R$- ! $+ $@ $>Canonify2 $2 < @ $1 .UUCP > resolve uucp names
-R$+ . $- ! $+ $@ $>Canonify2 $3 < @ $1 . $2 > domain uucps
-R$+ ! $+ $@ $>Canonify2 $2 < @ $1 .UUCP > uucp subdomains
-
-# if we have % signs, take the rightmost one
-R$* % $* $1 @ $2 First make them all @s.
-R$* @ $* @ $* $1 % $2 @ $3 Undo all but the last.
-R$* @ $* $@ $>Canonify2 $1 < @ $2 > Insert < > and finish
-
-# else we must be a local name
-R$* $@ $>Canonify2 $1
-
-
-################################################
-### Ruleset 96 -- bottom half of ruleset 3 ###
-################################################
-
-SCanonify2=96
-
-# handle special cases for local names
-R$* < @ localhost > $* $: $1 < @ $j . > $2 no domain at all
-R$* < @ localhost . $m > $* $: $1 < @ $j . > $2 local domain
-R$* < @ localhost . UUCP > $* $: $1 < @ $j . > $2 .UUCP domain
-
-# check for IPv6 domain literal (save quoted form)
-R$* < @ [ IPv6 $- ] > $* $: $2 $| $1 < @@ [ $(dequote $2 $) ] > $3 mark IPv6 addr
-R$- $| $* < @@ $=w > $* $: $2 < @ $j . > $4 self-literal
-R$- $| $* < @@ [ $+ ] > $* $@ $2 < @ [ IPv6 $1 ] > $4 canon IP addr
-
-# check for IPv4 domain literal
-R$* < @ [ $+ ] > $* $: $1 < @@ [ $2 ] > $3 mark [a.b.c.d]
-R$* < @@ $=w > $* $: $1 < @ $j . > $3 self-literal
-R$* < @@ $+ > $* $@ $1 < @ $2 > $3 canon IP addr
-
-
-
-
-
-# if really UUCP, handle it immediately
-
-# try UUCP traffic as a local address
-R$* < @ $+ . UUCP > $* $: $1 < @ $[ $2 $] . UUCP . > $3
-R$* < @ $+ . . UUCP . > $* $@ $1 < @ $2 . > $3
-
-# hostnames ending in class P are always canonical
-R$* < @ $* $=P > $* $: $1 < @ $2 $3 . > $4
-R$* < @ $* $~P > $* $: $&{daemon_flags} $| $1 < @ $2 $3 > $4
-R$* CC $* $| $* $: $3
-# pass to name server to make hostname canonical
-R$* $| $* < @ $* > $* $: $2 < @ $[ $3 $] > $4
-R$* $| $* $: $2
-
-# local host aliases and pseudo-domains are always canonical
-R$* < @ $=w > $* $: $1 < @ $2 . > $3
-R$* < @ $=M > $* $: $1 < @ $2 . > $3
-R$* < @ $* . . > $* $1 < @ $2 . > $3
-
-
-##################################################
-### Ruleset 4 -- Final Output Post-rewriting ###
-##################################################
-Sfinal=4
-
-R$* <@> $@ handle <> and list:;
-
-# strip trailing dot off possibly canonical name
-R$* < @ $+ . > $* $1 < @ $2 > $3
-
-# eliminate internal code
-R$* < @ *LOCAL* > $* $1 < @ $j > $2
-
-# externalize local domain info
-R$* < $+ > $* $1 $2 $3 defocus
-R@ $+ : @ $+ : $+ @ $1 , @ $2 : $3 <route-addr> canonical
-R@ $* $@ @ $1 ... and exit
-
-# 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 @ $2 u%host@host => u@host
-
-
-
-##############################################################
-### Ruleset 97 -- recanonicalize and call ruleset zero ###
-### (used for recursive calls) ###
-##############################################################
-
-SRecurse=97
-R$* $: $>canonify $1
-R$* $@ $>parse $1
-
-
-######################################
-### Ruleset 0 -- Parse Address ###
-######################################
-
-Sparse=0
-
-R$* $: $>Parse0 $1 initial parsing
-R<@> $#local $: <@> special case error msgs
-R$* $: $>ParseLocal $1 handle local hacks
-R$* $: $>Parse1 $1 final parsing
-
-#
-# Parse0 -- do initial syntax checking and eliminate local addresses.
-# This should either return with the (possibly modified) input
-# or return with a #error mailer. It should not return with a
-# #mailer other than the #error mailer.
-#
-
-SParse0
-R<@> $@ <@> special case error msgs
-R$* : $* ; <@> $#error $@ 5.1.3 $: "553 List:; syntax illegal for recipient addresses"
-R@ <@ $* > < @ $1 > catch "@@host" bogosity
-R<@ $+> $#error $@ 5.1.3 $: "553 User address required"
-R$* $: <> $1
-R<> $* < @ [ $+ ] > $* $1 < @ [ $2 ] > $3
-R<> $* <$* : $* > $* $#error $@ 5.1.3 $: "553 Colon illegal in host name part"
-R<> $* $1
-R$* < @ . $* > $* $#error $@ 5.1.2 $: "553 Invalid host name"
-R$* < @ $* .. $* > $* $#error $@ 5.1.2 $: "553 Invalid host name"
-
-# now delete the local info -- note $=O to find characters that cause forwarding
-R$* < @ > $* $@ $>Parse0 $>canonify $1 user@ => user
-R< @ $=w . > : $* $@ $>Parse0 $>canonify $2 @here:... -> ...
-R$- < @ $=w . > $: $(dequote $1 $) < @ $2 . > dequote "foo"@here
-R< @ $+ > $#error $@ 5.1.3 $: "553 User address required"
-R$* $=O $* < @ $=w . > $@ $>Parse0 $>canonify $1 $2 $3 ...@here -> ...
-R$- $: $(dequote $1 $) < @ *LOCAL* > dequote "foo"
-R< @ *LOCAL* > $#error $@ 5.1.3 $: "553 User address required"
-R$* $=O $* < @ *LOCAL* >
- $@ $>Parse0 $>canonify $1 $2 $3 ...@*LOCAL* -> ...
-R$* < @ *LOCAL* > $: $1
-
-#
-# Parse1 -- the bottom half of ruleset 0.
-#
-
-SParse1
-
-# handle numeric address spec
-R$* < @ [ $+ ] > $* $: $>ParseLocal $1 < @ [ $2 ] > $3 numeric internet spec
-R$* < @ [ $+ ] > $* $1 < @ [ $2 ] : $S > $3 Add smart host to path
-R$* < @ [ IPv6 $- ] : > $*
- $#esmtp $@ [ $(dequote $2 $) ] $: $1 < @ [IPv6 $2 ] > $3 no smarthost: send
-R$* < @ [ $+ ] : > $* $#esmtp $@ [$2] $: $1 < @ [$2] > $3 no smarthost: send
-R$* < @ [ $+ ] : $- : $*> $* $#$3 $@ $4 $: $1 < @ [$2] > $5 smarthost with mailer
-R$* < @ [ $+ ] : $+ > $* $#esmtp $@ $3 $: $1 < @ [$2] > $4 smarthost without mailer
-
-
-# short circuit local delivery so forwarded email works
-R$=L < @ $=w . > $#local $: @ $1 special local names
-R$+ < @ $=w . > $#local $: $1 regular local name
-
-
-# resolve remotely connected UUCP links (if any)
-
-# resolve fake top level domains by forwarding to other hosts
-
-
-
-# pass names that still have a host to a smarthost (if defined)
-R$* < @ $* > $* $: $>MailerToTriple < $S > $1 < @ $2 > $3 glue on smarthost name
-
-# deal with other remote names
-R$* < @$* > $* $#esmtp $@ $2 $: $1 < @ $2 > $3 user@host.domain
-
-# handle locally delivered names
-R$=L $#local $: @ $1 special local names
-R$+ $#local $: $1 regular local names
-
-###########################################################################
-### Ruleset 5 -- special rewriting after aliases have been expanded ###
-###########################################################################
-
-SLocal_localaddr
-Slocaladdr=5
-R$+ $: $1 $| $>"Local_localaddr" $1
-R$+ $| $#$* $#$2
-R$+ $| $* $: $1
-
-# deal with plussed users so aliases work nicely
-R$+ + * $#local $@ $&h $: $1
-R$+ + $* $#local $@ + $2 $: $1 + *
-
-# prepend an empty "forward host" on the front
-R$+ $: <> $1
-
-
-# see if we have a relay or a hub
-R< > $+ $: < $H > $1 try hub
-R< > $+ $: < $R > $1 try relay
-R< > $+ $: < > < $1 <> $&h > nope, restore +detail
-R< > < $+ <> + $* > $: < > < $1 + $2 > check whether +detail
-R< > < $+ <> $* > $: < > < $1 > else discard
-R< > < $+ + $* > $* < > < $1 > + $2 $3 find the user part
-R< > < $+ > + $* $#local $@ $2 $: @ $1 strip the extra +
-R< > < $+ > $@ $1 no +detail
-R$+ $: $1 <> $&h add +detail back in
-R$+ <> + $* $: $1 + $2 check whether +detail
-R$+ <> $* $: $1 else discard
-R< local : $* > $* $: $>MailerToTriple < local : $1 > $2 no host extension
-R< error : $* > $* $: $>MailerToTriple < error : $1 > $2 no host extension
-R< $- : $+ > $+ $: $>MailerToTriple < $1 : $2 > $3 < @ $2 >
-R< $+ > $+ $@ $>MailerToTriple < $1 > $2 < @ $1 >
-
-
-###################################################################
-### Ruleset 95 -- canonify mailer:[user@]host syntax to triple ###
-###################################################################
-
-SMailerToTriple=95
-R< > $* $@ $1 strip off null relay
-R< error : $-.$-.$- : $+ > $* $#error $@ $1.$2.$3 $: $4
-R< error : $- $+ > $* $#error $@ $(dequote $1 $) $: $2
-R< local : $* > $* $>CanonLocal < $1 > $2
-R< $- : $+ @ $+ > $*<$*>$* $# $1 $@ $3 $: $2<@$3> use literal user
-R< $- : $+ > $* $# $1 $@ $2 $: $3 try qualified mailer
-R< $=w > $* $@ $2 delete local host
-R< [ IPv6 $+ ] > $* $#relay $@ $(dequote $1 $) $: $2 use unqualified mailer
-R< $+ > $* $#relay $@ $1 $: $2 use unqualified mailer
-
-###################################################################
-### Ruleset CanonLocal -- canonify local: syntax ###
-###################################################################
-
-SCanonLocal
-# strip local host from routed addresses
-R< $* > < @ $+ > : $+ $@ $>Recurse $3
-R< $* > $+ $=O $+ < @ $+ > $@ $>Recurse $2 $3 $4
-
-# strip trailing dot from any host name that may appear
-R< $* > $* < @ $* . > $: < $1 > $2 < @ $3 >
-
-# handle local: syntax -- use old user, either with or without host
-R< > $* < @ $* > $* $#local $@ $1@$2 $: $1
-R< > $+ $#local $@ $1 $: $1
-
-# handle local:user@host syntax -- ignore host part
-R< $+ @ $+ > $* < @ $* > $: < $1 > $3 < @ $4 >
-
-# handle local:user syntax
-R< $+ > $* <@ $* > $* $#local $@ $2@$3 $: $1
-R< $+ > $* $#local $@ $2 $: $1
-
-###################################################################
-### Ruleset 93 -- convert header names to masqueraded form ###
-###################################################################
-
-SMasqHdr=93
-
-
-# do not masquerade anything in class N
-R$* < @ $* $=N . > $@ $1 < @ $2 $3 . >
-
-# special case the users that should be exposed
-R$=E < @ *LOCAL* > $@ $1 < @ $j . > leave exposed
-R$=E < @ $=M . > $@ $1 < @ $2 . >
-R$=E < @ $=w . > $@ $1 < @ $2 . >
-
-# handle domain-specific masquerading
-R$* < @ $=M . > $* $: $1 < @ $2 . @ $M > $3 convert masqueraded doms
-R$* < @ $=w . > $* $: $1 < @ $2 . @ $M > $3
-R$* < @ *LOCAL* > $* $: $1 < @ $j . @ $M > $2
-R$* < @ $+ @ > $* $: $1 < @ $2 > $3 $M is null
-R$* < @ $+ @ $+ > $* $: $1 < @ $3 . > $4 $M is not null
-
-###################################################################
-### Ruleset 94 -- convert envelope names to masqueraded form ###
-###################################################################
-
-SMasqEnv=94
-R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
-
-###################################################################
-### Ruleset 98 -- local part of ruleset zero (can be null) ###
-###################################################################
-
-SParseLocal=98
-
-# addresses sent to foo@host.REDIRECT will give a 551 error code
-R$* < @ $+ .REDIRECT. > $: $1 < @ $2 . REDIRECT . > < ${opMode} >
-R$* < @ $+ .REDIRECT. > <i> $: $1 < @ $2 . REDIRECT. >
-R$* < @ $+ .REDIRECT. > < $- > $#error $@ 5.1.1 $: "551 User has moved; please try " <$1@$2>
-
-
-
-
-
-######################################################################
-### CanonAddr -- Convert an address into a standard form for
-### relay checking. Route address syntax is
-### crudely converted into a %-hack address.
-###
-### Parameters:
-### $1 -- full recipient address
-###
-### Returns:
-### parsed address, not in source route form
-######################################################################
-
-SCanonAddr
-R$* $: $>Parse0 $>canonify $1 make domain canonical
-
-
-######################################################################
-### ParseRecipient -- Strip off hosts in $=R as well as possibly
-### $* $=m or the access database.
-### Check user portion for host separators.
-###
-### Parameters:
-### $1 -- full recipient address
-###
-### Returns:
-### parsed, non-local-relaying address
-######################################################################
-
-SParseRecipient
-R$* $: <?> $>CanonAddr $1
-R<?> $* < @ $* . > <?> $1 < @ $2 > strip trailing dots
-R<?> $- < @ $* > $: <?> $(dequote $1 $) < @ $2 > dequote local part
-
-# if no $=O character, no host in the user portion, we are done
-R<?> $* $=O $* < @ $* > $: <NO> $1 $2 $3 < @ $4>
-R<?> $* $@ $1
-
-
-
-R<NO> $* < @ $* $=R > $: <RELAY> $1 < @ $2 $3 >
-
-R<RELAY> $* < @ $* > $@ $>ParseRecipient $1
-R<$-> $* $@ $2
-
-
-######################################################################
-### check_relay -- check hostname/address on SMTP startup
-######################################################################
-
-SLocal_check_relay
-Scheck_relay
-R$* $: $1 $| $>"Local_check_relay" $1
-R$* $| $* $| $#$* $#$3
-R$* $| $* $| $* $@ $>"Basic_check_relay" $1 $| $2
-
-SBasic_check_relay
-# check for deferred delivery mode
-R$* $: < ${deliveryMode} > $1
-R< d > $* $@ deferred
-R< $* > $* $: $2
-
-
-
-
-######################################################################
-### check_mail -- check SMTP `MAIL FROM:' command argument
-######################################################################
-
-SLocal_check_mail
-Scheck_mail
-R$* $: $1 $| $>"Local_check_mail" $1
-R$* $| $#$* $#$2
-R$* $| $* $@ $>"Basic_check_mail" $1
-
-SBasic_check_mail
-# check for deferred delivery mode
-R$* $: < ${deliveryMode} > $1
-R< d > $* $@ deferred
-R< $* > $* $: $2
-
-R<> $@ <OK> we MUST accept <> (RFC 1123)
-R$+ $: <?> $1
-R<?><$+> $: <@> <$1>
-R<?>$+ $: <@> <$1>
-R$* $: $&{daemon_flags} $| $1
-R$* f $* $| <@> < $* @ $- > $: < ? $&{client_name} > < $3 @ $4 >
-R$* u $* $| <@> < $* > $: <?> < $3 >
-R$* $| $* $: $2
-# handle case of @localhost on address
-R<@> < $* @ localhost > $: < ? $&{client_name} > < $1 @ localhost >
-R<@> < $* @ [127.0.0.1] >
- $: < ? $&{client_name} > < $1 @ [127.0.0.1] >
-R<@> < $* @ localhost.$m >
- $: < ? $&{client_name} > < $1 @ localhost.$m >
-R<@> < $* @ localhost.UUCP >
- $: < ? $&{client_name} > < $1 @ localhost.UUCP >
-R<@> $* $: $1 no localhost as domain
-R<? $=w> $* $: $2 local client: ok
-R<? $+> <$+> $#error $@ 5.5.4 $: "553 Real domain name required"
-R<?> $* $: $1
-R$* $: <?> $>CanonAddr $1 canonify sender address and mark it
-R<?> $* < @ $+ . > <?> $1 < @ $2 > strip trailing dots
-# handle non-DNS hostnames (*.bitnet, *.decnet, *.uucp, etc)
-R<?> $* < @ $* $=P > $: <OK> $1 < @ $2 $3 >
-R<?> $* < @ $+ > $: <? $(resolve $2 $: $2 <PERM> $) > $1 < @ $2 >
-R<? $* <$->> $* < @ $+ >
- $: <$2> $3 < @ $4 >
-
-
-# handle case of no @domain on address
-R<?> $* $: $&{daemon_flags} $| <?> $1
-R$* u $* $| <?> $* $: <OK> $3
-R$* $| $* $: $2
-R<?> $* $: < ? $&{client_name} > $1
-R<?> $* $@ <OK> ...local unqualed ok
-R<? $+> $* $#error $@ 5.5.4 $: "553 Domain name required"
- ...remote is not
-# check results
-R<?> $* $: @ $1 mark address: nothing known about it
-R<OK> $* $@ <OK>
-R<TEMP> $* $#error $@ 4.1.8 $: "451 Sender domain must resolve"
-R<PERM> $* $#error $@ 5.1.8 $: "501 Sender domain must exist"
-
-######################################################################
-### check_rcpt -- check SMTP `RCPT TO:' command argument
-######################################################################
-
-SLocal_check_rcpt
-Scheck_rcpt
-R$* $: $1 $| $>"Local_check_rcpt" $1
-R$* $| $#$* $#$2
-R$* $| $* $@ $>"Basic_check_rcpt" $1
-
-SBasic_check_rcpt
-# check for deferred delivery mode
-R$* $: < ${deliveryMode} > $1
-R< d > $* $@ deferred
-R< $* > $* $: $2
-
-
-R$* $: $>ParseRecipient $1 strip relayable hosts
-
-
-
-
-
-# authenticated by a trusted mechanism?
-R$* $: $1 $| $&{auth_type}
-R$* $| $: $1
-R$* $| $={TrustAuthMech} $# RELAYAUTH
-R$* $| $* $: $1
-# anything terminating locally is ok
-R$+ < @ $=w > $@ RELAYTO
-R$+ < @ $* $=R > $@ RELAYTO
-
-
-# check for local user (i.e. unqualified address)
-R$* $: <?> $1
-R<?> $* < @ $+ > $: <REMOTE> $1 < @ $2 >
-# local user is ok
-R<?> $+ $@ RELAYTOLOCAL
-R<$+> $* $: $2
-
-# anything originating locally is ok
-# check IP address
-R$* $: $&{client_addr}
-R$@ $@ RELAYFROM originated locally
-R0 $@ RELAYFROM originated locally
-R$=R $* $@ RELAYFROM relayable IP address
-R$* $: [ $1 ] put brackets around it...
-R$=w $@ RELAYFROM ... and see if it is local
-
-
-# check client name: first: did it resolve?
-R$* $: < $&{client_resolve} >
-R<TEMP> $#error $@ 4.7.1 $: "450 Relaying temporarily denied. Cannot resolve PTR record for " $&{client_addr}
-R<FORGED> $#error $@ 5.7.1 $: "550 Relaying denied. IP name possibly forged " $&{client_name}
-R<FAIL> $#error $@ 5.7.1 $: "550 Relaying denied. IP name lookup failed " $&{client_name}
-R$* $: <?> $&{client_name}
-R<?> $@ RELAYFROM
-R<?> $=w $@ RELAYFROM
-R<?> $* $=R $@ RELAYFROM
-
-# anything else is bogus
-R$* $#error $@ 5.7.1 $: "550 Relaying denied"
-
-
-# is user trusted to authenticate as someone else?
-Strust_auth
-R$* $: $&{auth_type} $| $1
-# required by RFC 2554 section 4.
-R$@ $| $* $#error $@ 5.7.1 $: "550 not authenticated"
-R$* $| $&{auth_authen} $@ identical
-R$* $| <$&{auth_authen}> $@ identical
-R$* $| $* $: $1 $| $>"Local_trust_auth" $1
-R$* $| $#$* $#$2
-R$* $#error $@ 5.7.1 $: "550 " $&{auth_authen} " not allowed to act as " $&{auth_author}
-
-SLocal_trust_auth
-
-
-#\f
-######################################################################
-######################################################################
-#####
-##### MAILER DEFINITIONS
-#####
-######################################################################
-######################################################################
-
-
-##################################################
-### Local and Program Mailer specification ###
-##################################################
-
-##### $Id: generic-sunos4.1.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-#
-# Envelope sender rewriting
-#
-SEnvFromL=10
-R<@> $n errors to mailer-daemon
-R@ <@ $*> $n temporarily bypass Sun bogosity
-R$+ $: $>AddDomain $1 add local domain if needed
-R$* $: $>MasqEnv $1 do masquerading
-
-#
-# Envelope recipient rewriting
-#
-SEnvToL=20
-R$+ < @ $* > $: $1 strip host part
-
-#
-# Header sender rewriting
-#
-SHdrFromL=30
-R<@> $n errors to mailer-daemon
-R@ <@ $*> $n temporarily bypass Sun bogosity
-R$+ $: $>AddDomain $1 add local domain if needed
-R$* $: $>MasqHdr $1 do masquerading
-
-#
-# Header recipient rewriting
-#
-SHdrToL=40
-R$+ $: $>AddDomain $1 add local domain if needed
-R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
-
-#
-# Common code to add local domain name (only if always-add-domain)
-#
-SAddDomain=50
-
-Mlocal, P=/bin/mail, F=lsDFMAw5:/|@qPrmn9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,
- T=DNS/RFC822/X-Unix,
- A=mail -d $u
-Mprog, P=/bin/sh, F=lsDFMoqeu9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL, D=$z:/,
- T=X-Unix/X-Unix/X-Unix,
- A=sh -c $u
-
-#####################################
-### SMTP Mailer specification ###
-#####################################
-
-##### $Id: generic-sunos4.1.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-#
-# common sender and masquerading recipient rewriting
-#
-SMasqSMTP=61
-R$* < @ $* > $* $@ $1 < @ $2 > $3 already fully qualified
-R$+ $@ $1 < @ *LOCAL* > add local qualification
-
-#
-# convert pseudo-domain addresses to real domain addresses
-#
-SPseudoToReal=51
-
-# pass <route-addr>s through
-R< @ $+ > $* $@ < @ $1 > $2 resolve <route-addr>
-
-# output fake domains as user%fake@relay
-
-# do UUCP heuristics; note that these are shared with UUCP mailers
-R$+ < @ $+ .UUCP. > $: < $2 ! > $1 convert to UUCP form
-R$+ < @ $* > $* $@ $1 < @ $2 > $3 not UUCP form
-
-# leave these in .UUCP form to avoid further tampering
-R< $&h ! > $- ! $+ $@ $2 < @ $1 .UUCP. >
-R< $&h ! > $-.$+ ! $+ $@ $3 < @ $1.$2 >
-R< $&h ! > $+ $@ $1 < @ $&h .UUCP. >
-R< $+ ! > $+ $: $1 ! $2 < @ $Y > use UUCP_RELAY
-R$+ < @ $+ : $+ > $@ $1 < @ $3 > strip mailer: part
-R$+ < @ > $: $1 < @ *LOCAL* > if no UUCP_RELAY
-
-
-#
-# envelope sender rewriting
-#
-SEnvFromSMTP=11
-R$+ $: $>PseudoToReal $1 sender/recipient common
-R$* :; <@> $@ list:; special case
-R$* $: $>MasqSMTP $1 qualify unqual'ed names
-R$+ $: $>MasqEnv $1 do masquerading
-
-
-#
-# envelope recipient rewriting --
-# also header recipient if not masquerading recipients
-#
-SEnvToSMTP=21
-R$+ $: $>PseudoToReal $1 sender/recipient common
-R$+ $: $>MasqSMTP $1 qualify unqual'ed names
-R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
-
-#
-# header sender and masquerading header recipient rewriting
-#
-SHdrFromSMTP=31
-R$+ $: $>PseudoToReal $1 sender/recipient common
-R:; <@> $@ list:; special case
-
-# do special header rewriting
-R$* <@> $* $@ $1 <@> $2 pass null host through
-R< @ $* > $* $@ < @ $1 > $2 pass route-addr through
-R$* $: $>MasqSMTP $1 qualify unqual'ed names
-R$+ $: $>MasqHdr $1 do masquerading
-
-
-#
-# relay mailer header masquerading recipient rewriting
-#
-SMasqRelay=71
-R$+ $: $>MasqSMTP $1
-R$+ $: $>MasqHdr $1
-
-Msmtp, P=[IPC], F=mDFMuX, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Mesmtp, P=[IPC], F=mDFMuXa, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Msmtp8, P=[IPC], F=mDFMuX8, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Mdsmtp, P=[IPC], F=mDFMuXa%, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Mrelay, P=[IPC], F=mDFMuXa8, S=EnvFromSMTP/HdrFromSMTP, R=MasqSMTP, E=\r\n, L=2040,
- T=DNS/RFC822/SMTP,
- A=IPC $h
+++ /dev/null
-#
-# Copyright (c) 1998-2000 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-# Copyright (c) 1983, 1995 Eric P. Allman. All rights reserved.
-# Copyright (c) 1988, 1993
-# The Regents of the University of California. All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-
-######################################################################
-######################################################################
-#####
-##### SENDMAIL CONFIGURATION FILE
-#####
-##### built by gshapiro@horsey.gshapiro.net on Mon Mar 6 11:41:28 PST 2000
-##### in /usr/local/src/sendmail/devel/OpenSource/sendmail-8.10.0/cf/cf
-##### using ../ as configuration include directory
-#####
-######################################################################
-######################################################################
-
-##### $Id: generic-ultrix4.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-##### $Id: generic-ultrix4.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-##### $Id: generic-ultrix4.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-##### $Id: generic-ultrix4.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-
-##### $Id: generic-ultrix4.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-##### $Id: generic-ultrix4.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-##### $Id: generic-ultrix4.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-
-
-##### $Id: generic-ultrix4.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-
-# level 9 config file format
-V9/Berkeley
-
-# override file safeties - setting this option compromises system security,
-# addressing the actual file configuration problem is preferred
-# need to set this before any file actions are encountered in the cf file
-#O DontBlameSendmail=safe
-
-# default LDAP map specification
-# need to set this now before any LDAP maps are defined
-#O LDAPDefaultSpec=-h localhost
-
-##################
-# local info #
-##################
-
-Cwlocalhost
-# file containing names of hosts for which we receive email
-Fw/etc/mail/local-host-names
-
-# my official domain name
-# ... define this only if sendmail cannot automatically determine your domain
-#Dj$w.Foo.COM
-
-CP.
-
-# "Smart" relay host (may be null)
-DS
-
-
-# operators that cannot be in local usernames (i.e., network indicators)
-CO @ % !
-
-# a class with just dot (for identifying canonical names)
-C..
-
-# a class with just a left bracket (for identifying domain literals)
-C[[
-
-
-# Resolve map (to check if a host exists in check_mail)
-Kresolve host -a<OK> -T<TEMP>
-
-# Hosts that will permit relaying ($=R)
-FR-o /etc/mail/relay-domains
-
-
-# who I send unqualified names to (null means deliver locally)
-DR
-
-# who gets all local email traffic ($R has precedence for unqualified names)
-DH
-
-# dequoting map
-Kdequote dequote
-
-# class E: names that should be exposed as from this host, even if we masquerade
-# class L: names that should be delivered locally, even if we have a relay
-# class M: domains that should be converted to $M
-# class N: domains that should not be converted to $M
-#CL root
-CEroot
-
-# who I masquerade as (null for no masquerading) (see also $=M)
-DM
-
-# my name for error messages
-DnMAILER-DAEMON
-
-
-CPREDIRECT
-
-# Configuration version number
-DZ8.10.0
-
-
-###############
-# Options #
-###############
-
-# strip message body to 7 bits on input?
-O SevenBitInput=False
-
-# 8-bit data handling
-O EightBitMode=pass8
-
-# wait for alias file rebuild (default units: minutes)
-O AliasWait=10
-
-# location of alias file
-O AliasFile=/etc/mail/aliases
-
-# minimum number of free blocks on filesystem
-O MinFreeBlocks=100
-
-# maximum message size
-#O MaxMessageSize=1000000
-
-# substitution for space (blank) characters
-O BlankSub=.
-
-# avoid connecting to "expensive" mailers on initial submission?
-O HoldExpensive=False
-
-# checkpoint queue runs after every N successful deliveries
-#O CheckpointInterval=10
-
-# default delivery mode
-O DeliveryMode=background
-
-# automatically rebuild the alias database?
-# NOTE: There is a potential for a denial of service attack if this is set.
-# This option is deprecated and will be removed from a future version.
-#O AutoRebuildAliases=False
-
-# error message header/file
-#O ErrorHeader=/etc/mail/error-header
-
-# error mode
-#O ErrorMode=print
-
-# save Unix-style "From_" lines at top of header?
-#O SaveFromLine=False
-
-# temporary file mode
-O TempFileMode=0600
-
-# match recipients against GECOS field?
-#O MatchGECOS=False
-
-# maximum hop count
-#O MaxHopCount=17
-
-# location of help file
-O HelpFile=/etc/mail/helpfile
-
-# ignore dots as terminators in incoming messages?
-#O IgnoreDots=False
-
-# name resolver options
-#O ResolverOptions=+AAONLY
-
-# deliver MIME-encapsulated error messages?
-O SendMimeErrors=True
-
-# Forward file search path
-O ForwardPath=$z/.forward.$w+$h:$z/.forward+$h:$z/.forward.$w:$z/.forward
-
-# open connection cache size
-O ConnectionCacheSize=2
-
-# open connection cache timeout
-O ConnectionCacheTimeout=5m
-
-# persistent host status directory
-#O HostStatusDirectory=.hoststat
-
-# single thread deliveries (requires HostStatusDirectory)?
-#O SingleThreadDelivery=False
-
-# use Errors-To: header?
-O UseErrorsTo=False
-
-# log level
-O LogLevel=9
-
-# send to me too, even in an alias expansion?
-#O MeToo=True
-
-# verify RHS in newaliases?
-O CheckAliases=False
-
-# default messages to old style headers if no special punctuation?
-O OldStyleHeaders=True
-
-# SMTP daemon options
-O DaemonPortOptions=Name=MTA
-O DaemonPortOptions=Port=587, Name=MSA, M=E
-
-# SMTP client options
-#O ClientPortOptions=Address=0.0.0.0
-
-# privacy flags
-O PrivacyOptions=authwarnings
-
-# who (if anyone) should get extra copies of error messages
-#O PostmasterCopy=Postmaster
-
-# slope of queue-only function
-#O QueueFactor=600000
-
-# queue directory
-O QueueDirectory=/var/spool/mqueue
-
-# timeouts (many of these)
-#O Timeout.initial=5m
-#O Timeout.connect=5m
-#O Timeout.iconnect=5m
-#O Timeout.helo=5m
-#O Timeout.mail=10m
-#O Timeout.rcpt=1h
-#O Timeout.datainit=5m
-#O Timeout.datablock=1h
-#O Timeout.datafinal=1h
-#O Timeout.rset=5m
-#O Timeout.quit=2m
-#O Timeout.misc=2m
-#O Timeout.command=1h
-#O Timeout.ident=5s
-#O Timeout.fileopen=60s
-#O Timeout.control=2m
-O Timeout.queuereturn=5d
-#O Timeout.queuereturn.normal=5d
-#O Timeout.queuereturn.urgent=2d
-#O Timeout.queuereturn.non-urgent=7d
-O Timeout.queuewarn=4h
-#O Timeout.queuewarn.normal=4h
-#O Timeout.queuewarn.urgent=1h
-#O Timeout.queuewarn.non-urgent=12h
-#O Timeout.hoststatus=30m
-#O Timeout.resolver.retrans=5s
-#O Timeout.resolver.retrans.first=5s
-#O Timeout.resolver.retrans.normal=5s
-#O Timeout.resolver.retry=4
-#O Timeout.resolver.retry.first=4
-#O Timeout.resolver.retry.normal=4
-
-# should we not prune routes in route-addr syntax addresses?
-#O DontPruneRoutes=False
-
-# queue up everything before forking?
-O SuperSafe=True
-
-# status file
-O StatusFile=/etc/mail/statistics
-
-# time zone handling:
-# if undefined, use system default
-# if defined but null, use TZ envariable passed in
-# if defined and non-null, use that info
-#O TimeZoneSpec=
-
-# default UID (can be username or userid:groupid)
-#O DefaultUser=mailnull
-
-# list of locations of user database file (null means no lookup)
-#O UserDatabaseSpec=/etc/mail/userdb
-
-# fallback MX host
-#O FallbackMXhost=fall.back.host.net
-
-# if we are the best MX host for a site, try it directly instead of config err
-#O TryNullMXList=False
-
-# load average at which we just queue messages
-#O QueueLA=8
-
-# load average at which we refuse connections
-#O RefuseLA=12
-
-# maximum number of children we allow at one time
-#O MaxDaemonChildren=12
-
-# maximum number of new connections per second
-#O ConnectionRateThrottle=3
-
-# work recipient factor
-#O RecipientFactor=30000
-
-# deliver each queued job in a separate process?
-#O ForkEachJob=False
-
-# work class factor
-#O ClassFactor=1800
-
-# work time factor
-#O RetryFactor=90000
-
-# shall we sort the queue by hostname first?
-#O QueueSortOrder=priority
-
-# minimum time in queue before retry
-#O MinQueueAge=30m
-
-# default character set
-#O DefaultCharSet=iso-8859-1
-
-# service switch file (ignored on Solaris, Ultrix, OSF/1, others)
-#O ServiceSwitchFile=/etc/mail/service.switch
-
-# hosts file (normally /etc/hosts)
-#O HostsFile=/etc/hosts
-
-# dialup line delay on connection failure
-#O DialDelay=10s
-
-# action to take if there are no recipients in the message
-#O NoRecipientAction=add-to-undisclosed
-
-# chrooted environment for writing to files
-#O SafeFileEnvironment=/arch
-
-# are colons OK in addresses?
-#O ColonOkInAddr=True
-
-# how many jobs can you process in the queue?
-#O MaxQueueRunSize=10000
-
-# shall I avoid expanding CNAMEs (violates protocols)?
-#O DontExpandCnames=False
-
-# SMTP initial login message (old $e macro)
-O SmtpGreetingMessage=$j Sendmail $v/$Z; $b
-
-# UNIX initial From header format (old $l macro)
-O UnixFromLine=From $g $d
-
-# From: lines that have embedded newlines are unwrapped onto one line
-#O SingleLineFromHeader=False
-
-# Allow HELO SMTP command that does not include a host name
-#O AllowBogusHELO=False
-
-# Characters to be quoted in a full name phrase (@,;:\()[] are automatic)
-#O MustQuoteChars=.
-
-# delimiter (operator) characters (old $o macro)
-O OperatorChars=.:%@!^/[]+
-
-# shall I avoid calling initgroups(3) because of high NIS costs?
-#O DontInitGroups=False
-
-# are group-writable :include: and .forward files (un)trustworthy?
-#O UnsafeGroupWrites=True
-
-# where do errors that occur when sending errors get sent?
-#O DoubleBounceAddress=postmaster
-
-# where to save bounces if all else fails
-#O DeadLetterDrop=/var/tmp/dead.letter
-
-# what user id do we assume for the majority of the processing?
-#O RunAsUser=sendmail
-
-# maximum number of recipients per SMTP envelope
-#O MaxRecipientsPerMessage=100
-
-# shall we get local names from our installed interfaces?
-#O DontProbeInterfaces=False
-
-# Return-Receipt-To: header implies DSN request
-#O RrtImpliesDsn=False
-
-# override connection address (for testing)
-#O ConnectOnlyTo=0.0.0.0
-
-# Trusted user for file ownership and starting the daemon
-#O TrustedUser=root
-
-# Control socket for daemon management
-#O ControlSocketName=/var/spool/mqueue/.control
-
-# Maximum MIME header length to protect MUAs
-#O MaxMimeHeaderLength=0/0
-
-# Maximum length of the sum of all headers
-O MaxHeadersLength=32768
-
-# Maximum depth of alias recursion
-#O MaxAliasRecursion=10
-
-# location of pid file
-#O PidFile=/var/run/sendmail.pid
-
-# Prefix string for the process title shown on 'ps' listings
-#O ProcessTitlePrefix=prefix
-
-# Data file (df) memory-buffer file maximum size
-#O DataFileBufferSize=4096
-
-# Transcript file (xf) memory-buffer file maximum size
-#O XscriptFileBufferSize=4096
-
-# list of authentication mechanisms
-#O AuthMechanisms=GSSAPI KERBEROS_V4 DIGEST-MD5 CRAM-MD5
-
-# default authentication information for outgoing connections
-#O DefaultAuthInfo=/etc/mail/default-auth-info
-
-# try to authenticate? (Try when available/only when Authenticated)
-#O AuthOptions=T
-
-
-
-
-
-
-###########################
-# Message precedences #
-###########################
-
-Pfirst-class=0
-Pspecial-delivery=100
-Plist=-30
-Pbulk=-60
-Pjunk=-100
-
-#####################
-# Trusted users #
-#####################
-
-# this is equivalent to setting class "t"
-#Ft/etc/mail/trusted-users
-Troot
-Tdaemon
-Tuucp
-
-#########################
-# Format of headers #
-#########################
-
-H?P?Return-Path: <$g>
-HReceived: $?sfrom $s $.$?_($?s$|from $.$_)
- $.$?{auth_type}(authenticated)
- $.by $j ($v/$Z)$?r with $r$. id $i$?u
- for $u; $|;
- $.$b
-H?D?Resent-Date: $a
-H?D?Date: $a
-H?F?Resent-From: $?x$x <$g>$|$g$.
-H?F?From: $?x$x <$g>$|$g$.
-H?x?Full-Name: $x
-# HPosted-Date: $a
-# H?l?Received-Date: $b
-H?M?Resent-Message-Id: <$t.$i@$j>
-H?M?Message-Id: <$t.$i@$j>
-
-#\f
-######################################################################
-######################################################################
-#####
-##### REWRITING RULES
-#####
-######################################################################
-######################################################################
-
-############################################
-### Ruleset 3 -- Name Canonicalization ###
-############################################
-Scanonify=3
-
-# handle null input (translate to <@> special case)
-R$@ $@ <@>
-
-# strip group: syntax (not inside angle brackets!) and trailing semicolon
-R$* $: $1 <@> mark addresses
-R$* < $* > $* <@> $: $1 < $2 > $3 unmark <addr>
-R@ $* <@> $: @ $1 unmark @host:...
-R$* :: $* <@> $: $1 :: $2 unmark node::addr
-R:include: $* <@> $: :include: $1 unmark :include:...
-R$* [ IPv6 $- ] <@> $: $1 [ IPv6 $2 ] unmark IPv6 addr
-R$* : $* [ $* ] $: $1 : $2 [ $3 ] <@> remark if leading colon
-R$* : $* <@> $: $2 strip colon if marked
-R$* <@> $: $1 unmark
-R$* ; $1 strip trailing semi
-R$* < $* ; > $1 < $2 > bogus bracketed semi
-
-# null input now results from list:; syntax
-R$@ $@ :; <@>
-
-# strip angle brackets -- note RFC733 heuristic to get innermost item
-R$* $: < $1 > housekeeping <>
-R$+ < $* > < $2 > strip excess on left
-R< $* > $+ < $1 > strip excess on right
-R<> $@ < @ > MAIL FROM:<> case
-R< $+ > $: $1 remove housekeeping <>
-
-# strip route address <@a,@b,@c:user@d> -> <user@d>
-R@ $+ , $+ $2
-R@ $+ : $+ $2
-
-# find focus for list syntax
-R $+ : $* ; @ $+ $@ $>Canonify2 $1 : $2 ; < @ $3 > list syntax
-R $+ : $* ; $@ $1 : $2; list syntax
-
-# find focus for @ syntax addresses
-R$+ @ $+ $: $1 < @ $2 > focus on domain
-R$+ < $+ @ $+ > $1 $2 < @ $3 > move gaze right
-R$+ < @ $+ > $@ $>Canonify2 $1 < @ $2 > already canonical
-
-# do some sanity checking
-R$* < @ $* : $* > $* $1 < @ $2 $3 > $4 nix colons in addrs
-
-# convert old-style addresses to a domain-based address
-R$- ! $+ $@ $>Canonify2 $2 < @ $1 .UUCP > resolve uucp names
-R$+ . $- ! $+ $@ $>Canonify2 $3 < @ $1 . $2 > domain uucps
-R$+ ! $+ $@ $>Canonify2 $2 < @ $1 .UUCP > uucp subdomains
-
-# if we have % signs, take the rightmost one
-R$* % $* $1 @ $2 First make them all @s.
-R$* @ $* @ $* $1 % $2 @ $3 Undo all but the last.
-R$* @ $* $@ $>Canonify2 $1 < @ $2 > Insert < > and finish
-
-# else we must be a local name
-R$* $@ $>Canonify2 $1
-
-
-################################################
-### Ruleset 96 -- bottom half of ruleset 3 ###
-################################################
-
-SCanonify2=96
-
-# handle special cases for local names
-R$* < @ localhost > $* $: $1 < @ $j . > $2 no domain at all
-R$* < @ localhost . $m > $* $: $1 < @ $j . > $2 local domain
-R$* < @ localhost . UUCP > $* $: $1 < @ $j . > $2 .UUCP domain
-
-# check for IPv6 domain literal (save quoted form)
-R$* < @ [ IPv6 $- ] > $* $: $2 $| $1 < @@ [ $(dequote $2 $) ] > $3 mark IPv6 addr
-R$- $| $* < @@ $=w > $* $: $2 < @ $j . > $4 self-literal
-R$- $| $* < @@ [ $+ ] > $* $@ $2 < @ [ IPv6 $1 ] > $4 canon IP addr
-
-# check for IPv4 domain literal
-R$* < @ [ $+ ] > $* $: $1 < @@ [ $2 ] > $3 mark [a.b.c.d]
-R$* < @@ $=w > $* $: $1 < @ $j . > $3 self-literal
-R$* < @@ $+ > $* $@ $1 < @ $2 > $3 canon IP addr
-
-
-
-
-
-# if really UUCP, handle it immediately
-
-# try UUCP traffic as a local address
-R$* < @ $+ . UUCP > $* $: $1 < @ $[ $2 $] . UUCP . > $3
-R$* < @ $+ . . UUCP . > $* $@ $1 < @ $2 . > $3
-
-# hostnames ending in class P are always canonical
-R$* < @ $* $=P > $* $: $1 < @ $2 $3 . > $4
-R$* < @ $* $~P > $* $: $&{daemon_flags} $| $1 < @ $2 $3 > $4
-R$* CC $* $| $* $: $3
-# pass to name server to make hostname canonical
-R$* $| $* < @ $* > $* $: $2 < @ $[ $3 $] > $4
-R$* $| $* $: $2
-
-# local host aliases and pseudo-domains are always canonical
-R$* < @ $=w > $* $: $1 < @ $2 . > $3
-R$* < @ $=M > $* $: $1 < @ $2 . > $3
-R$* < @ $* . . > $* $1 < @ $2 . > $3
-
-
-##################################################
-### Ruleset 4 -- Final Output Post-rewriting ###
-##################################################
-Sfinal=4
-
-R$* <@> $@ handle <> and list:;
-
-# strip trailing dot off possibly canonical name
-R$* < @ $+ . > $* $1 < @ $2 > $3
-
-# eliminate internal code
-R$* < @ *LOCAL* > $* $1 < @ $j > $2
-
-# externalize local domain info
-R$* < $+ > $* $1 $2 $3 defocus
-R@ $+ : @ $+ : $+ @ $1 , @ $2 : $3 <route-addr> canonical
-R@ $* $@ @ $1 ... and exit
-
-# 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 @ $2 u%host@host => u@host
-
-
-
-##############################################################
-### Ruleset 97 -- recanonicalize and call ruleset zero ###
-### (used for recursive calls) ###
-##############################################################
-
-SRecurse=97
-R$* $: $>canonify $1
-R$* $@ $>parse $1
-
-
-######################################
-### Ruleset 0 -- Parse Address ###
-######################################
-
-Sparse=0
-
-R$* $: $>Parse0 $1 initial parsing
-R<@> $#local $: <@> special case error msgs
-R$* $: $>ParseLocal $1 handle local hacks
-R$* $: $>Parse1 $1 final parsing
-
-#
-# Parse0 -- do initial syntax checking and eliminate local addresses.
-# This should either return with the (possibly modified) input
-# or return with a #error mailer. It should not return with a
-# #mailer other than the #error mailer.
-#
-
-SParse0
-R<@> $@ <@> special case error msgs
-R$* : $* ; <@> $#error $@ 5.1.3 $: "553 List:; syntax illegal for recipient addresses"
-R@ <@ $* > < @ $1 > catch "@@host" bogosity
-R<@ $+> $#error $@ 5.1.3 $: "553 User address required"
-R$* $: <> $1
-R<> $* < @ [ $+ ] > $* $1 < @ [ $2 ] > $3
-R<> $* <$* : $* > $* $#error $@ 5.1.3 $: "553 Colon illegal in host name part"
-R<> $* $1
-R$* < @ . $* > $* $#error $@ 5.1.2 $: "553 Invalid host name"
-R$* < @ $* .. $* > $* $#error $@ 5.1.2 $: "553 Invalid host name"
-
-# now delete the local info -- note $=O to find characters that cause forwarding
-R$* < @ > $* $@ $>Parse0 $>canonify $1 user@ => user
-R< @ $=w . > : $* $@ $>Parse0 $>canonify $2 @here:... -> ...
-R$- < @ $=w . > $: $(dequote $1 $) < @ $2 . > dequote "foo"@here
-R< @ $+ > $#error $@ 5.1.3 $: "553 User address required"
-R$* $=O $* < @ $=w . > $@ $>Parse0 $>canonify $1 $2 $3 ...@here -> ...
-R$- $: $(dequote $1 $) < @ *LOCAL* > dequote "foo"
-R< @ *LOCAL* > $#error $@ 5.1.3 $: "553 User address required"
-R$* $=O $* < @ *LOCAL* >
- $@ $>Parse0 $>canonify $1 $2 $3 ...@*LOCAL* -> ...
-R$* < @ *LOCAL* > $: $1
-
-#
-# Parse1 -- the bottom half of ruleset 0.
-#
-
-SParse1
-
-# handle numeric address spec
-R$* < @ [ $+ ] > $* $: $>ParseLocal $1 < @ [ $2 ] > $3 numeric internet spec
-R$* < @ [ $+ ] > $* $1 < @ [ $2 ] : $S > $3 Add smart host to path
-R$* < @ [ IPv6 $- ] : > $*
- $#esmtp $@ [ $(dequote $2 $) ] $: $1 < @ [IPv6 $2 ] > $3 no smarthost: send
-R$* < @ [ $+ ] : > $* $#esmtp $@ [$2] $: $1 < @ [$2] > $3 no smarthost: send
-R$* < @ [ $+ ] : $- : $*> $* $#$3 $@ $4 $: $1 < @ [$2] > $5 smarthost with mailer
-R$* < @ [ $+ ] : $+ > $* $#esmtp $@ $3 $: $1 < @ [$2] > $4 smarthost without mailer
-
-
-# short circuit local delivery so forwarded email works
-R$=L < @ $=w . > $#local $: @ $1 special local names
-R$+ < @ $=w . > $#local $: $1 regular local name
-
-
-# resolve remotely connected UUCP links (if any)
-
-# resolve fake top level domains by forwarding to other hosts
-
-
-
-# pass names that still have a host to a smarthost (if defined)
-R$* < @ $* > $* $: $>MailerToTriple < $S > $1 < @ $2 > $3 glue on smarthost name
-
-# deal with other remote names
-R$* < @$* > $* $#esmtp $@ $2 $: $1 < @ $2 > $3 user@host.domain
-
-# handle locally delivered names
-R$=L $#local $: @ $1 special local names
-R$+ $#local $: $1 regular local names
-
-###########################################################################
-### Ruleset 5 -- special rewriting after aliases have been expanded ###
-###########################################################################
-
-SLocal_localaddr
-Slocaladdr=5
-R$+ $: $1 $| $>"Local_localaddr" $1
-R$+ $| $#$* $#$2
-R$+ $| $* $: $1
-
-# deal with plussed users so aliases work nicely
-R$+ + * $#local $@ $&h $: $1
-R$+ + $* $#local $@ + $2 $: $1 + *
-
-# prepend an empty "forward host" on the front
-R$+ $: <> $1
-
-
-# see if we have a relay or a hub
-R< > $+ $: < $H > $1 try hub
-R< > $+ $: < $R > $1 try relay
-R< > $+ $: < > < $1 <> $&h > nope, restore +detail
-R< > < $+ <> + $* > $: < > < $1 + $2 > check whether +detail
-R< > < $+ <> $* > $: < > < $1 > else discard
-R< > < $+ + $* > $* < > < $1 > + $2 $3 find the user part
-R< > < $+ > + $* $#local $@ $2 $: @ $1 strip the extra +
-R< > < $+ > $@ $1 no +detail
-R$+ $: $1 <> $&h add +detail back in
-R$+ <> + $* $: $1 + $2 check whether +detail
-R$+ <> $* $: $1 else discard
-R< local : $* > $* $: $>MailerToTriple < local : $1 > $2 no host extension
-R< error : $* > $* $: $>MailerToTriple < error : $1 > $2 no host extension
-R< $- : $+ > $+ $: $>MailerToTriple < $1 : $2 > $3 < @ $2 >
-R< $+ > $+ $@ $>MailerToTriple < $1 > $2 < @ $1 >
-
-
-###################################################################
-### Ruleset 95 -- canonify mailer:[user@]host syntax to triple ###
-###################################################################
-
-SMailerToTriple=95
-R< > $* $@ $1 strip off null relay
-R< error : $-.$-.$- : $+ > $* $#error $@ $1.$2.$3 $: $4
-R< error : $- $+ > $* $#error $@ $(dequote $1 $) $: $2
-R< local : $* > $* $>CanonLocal < $1 > $2
-R< $- : $+ @ $+ > $*<$*>$* $# $1 $@ $3 $: $2<@$3> use literal user
-R< $- : $+ > $* $# $1 $@ $2 $: $3 try qualified mailer
-R< $=w > $* $@ $2 delete local host
-R< [ IPv6 $+ ] > $* $#relay $@ $(dequote $1 $) $: $2 use unqualified mailer
-R< $+ > $* $#relay $@ $1 $: $2 use unqualified mailer
-
-###################################################################
-### Ruleset CanonLocal -- canonify local: syntax ###
-###################################################################
-
-SCanonLocal
-# strip local host from routed addresses
-R< $* > < @ $+ > : $+ $@ $>Recurse $3
-R< $* > $+ $=O $+ < @ $+ > $@ $>Recurse $2 $3 $4
-
-# strip trailing dot from any host name that may appear
-R< $* > $* < @ $* . > $: < $1 > $2 < @ $3 >
-
-# handle local: syntax -- use old user, either with or without host
-R< > $* < @ $* > $* $#local $@ $1@$2 $: $1
-R< > $+ $#local $@ $1 $: $1
-
-# handle local:user@host syntax -- ignore host part
-R< $+ @ $+ > $* < @ $* > $: < $1 > $3 < @ $4 >
-
-# handle local:user syntax
-R< $+ > $* <@ $* > $* $#local $@ $2@$3 $: $1
-R< $+ > $* $#local $@ $2 $: $1
-
-###################################################################
-### Ruleset 93 -- convert header names to masqueraded form ###
-###################################################################
-
-SMasqHdr=93
-
-
-# do not masquerade anything in class N
-R$* < @ $* $=N . > $@ $1 < @ $2 $3 . >
-
-# special case the users that should be exposed
-R$=E < @ *LOCAL* > $@ $1 < @ $j . > leave exposed
-R$=E < @ $=M . > $@ $1 < @ $2 . >
-R$=E < @ $=w . > $@ $1 < @ $2 . >
-
-# handle domain-specific masquerading
-R$* < @ $=M . > $* $: $1 < @ $2 . @ $M > $3 convert masqueraded doms
-R$* < @ $=w . > $* $: $1 < @ $2 . @ $M > $3
-R$* < @ *LOCAL* > $* $: $1 < @ $j . @ $M > $2
-R$* < @ $+ @ > $* $: $1 < @ $2 > $3 $M is null
-R$* < @ $+ @ $+ > $* $: $1 < @ $3 . > $4 $M is not null
-
-###################################################################
-### Ruleset 94 -- convert envelope names to masqueraded form ###
-###################################################################
-
-SMasqEnv=94
-R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
-
-###################################################################
-### Ruleset 98 -- local part of ruleset zero (can be null) ###
-###################################################################
-
-SParseLocal=98
-
-# addresses sent to foo@host.REDIRECT will give a 551 error code
-R$* < @ $+ .REDIRECT. > $: $1 < @ $2 . REDIRECT . > < ${opMode} >
-R$* < @ $+ .REDIRECT. > <i> $: $1 < @ $2 . REDIRECT. >
-R$* < @ $+ .REDIRECT. > < $- > $#error $@ 5.1.1 $: "551 User has moved; please try " <$1@$2>
-
-
-
-
-
-######################################################################
-### CanonAddr -- Convert an address into a standard form for
-### relay checking. Route address syntax is
-### crudely converted into a %-hack address.
-###
-### Parameters:
-### $1 -- full recipient address
-###
-### Returns:
-### parsed address, not in source route form
-######################################################################
-
-SCanonAddr
-R$* $: $>Parse0 $>canonify $1 make domain canonical
-
-
-######################################################################
-### ParseRecipient -- Strip off hosts in $=R as well as possibly
-### $* $=m or the access database.
-### Check user portion for host separators.
-###
-### Parameters:
-### $1 -- full recipient address
-###
-### Returns:
-### parsed, non-local-relaying address
-######################################################################
-
-SParseRecipient
-R$* $: <?> $>CanonAddr $1
-R<?> $* < @ $* . > <?> $1 < @ $2 > strip trailing dots
-R<?> $- < @ $* > $: <?> $(dequote $1 $) < @ $2 > dequote local part
-
-# if no $=O character, no host in the user portion, we are done
-R<?> $* $=O $* < @ $* > $: <NO> $1 $2 $3 < @ $4>
-R<?> $* $@ $1
-
-
-
-R<NO> $* < @ $* $=R > $: <RELAY> $1 < @ $2 $3 >
-
-R<RELAY> $* < @ $* > $@ $>ParseRecipient $1
-R<$-> $* $@ $2
-
-
-######################################################################
-### check_relay -- check hostname/address on SMTP startup
-######################################################################
-
-SLocal_check_relay
-Scheck_relay
-R$* $: $1 $| $>"Local_check_relay" $1
-R$* $| $* $| $#$* $#$3
-R$* $| $* $| $* $@ $>"Basic_check_relay" $1 $| $2
-
-SBasic_check_relay
-# check for deferred delivery mode
-R$* $: < ${deliveryMode} > $1
-R< d > $* $@ deferred
-R< $* > $* $: $2
-
-
-
-
-######################################################################
-### check_mail -- check SMTP `MAIL FROM:' command argument
-######################################################################
-
-SLocal_check_mail
-Scheck_mail
-R$* $: $1 $| $>"Local_check_mail" $1
-R$* $| $#$* $#$2
-R$* $| $* $@ $>"Basic_check_mail" $1
-
-SBasic_check_mail
-# check for deferred delivery mode
-R$* $: < ${deliveryMode} > $1
-R< d > $* $@ deferred
-R< $* > $* $: $2
-
-R<> $@ <OK> we MUST accept <> (RFC 1123)
-R$+ $: <?> $1
-R<?><$+> $: <@> <$1>
-R<?>$+ $: <@> <$1>
-R$* $: $&{daemon_flags} $| $1
-R$* f $* $| <@> < $* @ $- > $: < ? $&{client_name} > < $3 @ $4 >
-R$* u $* $| <@> < $* > $: <?> < $3 >
-R$* $| $* $: $2
-# handle case of @localhost on address
-R<@> < $* @ localhost > $: < ? $&{client_name} > < $1 @ localhost >
-R<@> < $* @ [127.0.0.1] >
- $: < ? $&{client_name} > < $1 @ [127.0.0.1] >
-R<@> < $* @ localhost.$m >
- $: < ? $&{client_name} > < $1 @ localhost.$m >
-R<@> < $* @ localhost.UUCP >
- $: < ? $&{client_name} > < $1 @ localhost.UUCP >
-R<@> $* $: $1 no localhost as domain
-R<? $=w> $* $: $2 local client: ok
-R<? $+> <$+> $#error $@ 5.5.4 $: "553 Real domain name required"
-R<?> $* $: $1
-R$* $: <?> $>CanonAddr $1 canonify sender address and mark it
-R<?> $* < @ $+ . > <?> $1 < @ $2 > strip trailing dots
-# handle non-DNS hostnames (*.bitnet, *.decnet, *.uucp, etc)
-R<?> $* < @ $* $=P > $: <OK> $1 < @ $2 $3 >
-R<?> $* < @ $+ > $: <? $(resolve $2 $: $2 <PERM> $) > $1 < @ $2 >
-R<? $* <$->> $* < @ $+ >
- $: <$2> $3 < @ $4 >
-
-
-# handle case of no @domain on address
-R<?> $* $: $&{daemon_flags} $| <?> $1
-R$* u $* $| <?> $* $: <OK> $3
-R$* $| $* $: $2
-R<?> $* $: < ? $&{client_name} > $1
-R<?> $* $@ <OK> ...local unqualed ok
-R<? $+> $* $#error $@ 5.5.4 $: "553 Domain name required"
- ...remote is not
-# check results
-R<?> $* $: @ $1 mark address: nothing known about it
-R<OK> $* $@ <OK>
-R<TEMP> $* $#error $@ 4.1.8 $: "451 Sender domain must resolve"
-R<PERM> $* $#error $@ 5.1.8 $: "501 Sender domain must exist"
-
-######################################################################
-### check_rcpt -- check SMTP `RCPT TO:' command argument
-######################################################################
-
-SLocal_check_rcpt
-Scheck_rcpt
-R$* $: $1 $| $>"Local_check_rcpt" $1
-R$* $| $#$* $#$2
-R$* $| $* $@ $>"Basic_check_rcpt" $1
-
-SBasic_check_rcpt
-# check for deferred delivery mode
-R$* $: < ${deliveryMode} > $1
-R< d > $* $@ deferred
-R< $* > $* $: $2
-
-
-R$* $: $>ParseRecipient $1 strip relayable hosts
-
-
-
-
-
-# authenticated by a trusted mechanism?
-R$* $: $1 $| $&{auth_type}
-R$* $| $: $1
-R$* $| $={TrustAuthMech} $# RELAYAUTH
-R$* $| $* $: $1
-# anything terminating locally is ok
-R$+ < @ $=w > $@ RELAYTO
-R$+ < @ $* $=R > $@ RELAYTO
-
-
-# check for local user (i.e. unqualified address)
-R$* $: <?> $1
-R<?> $* < @ $+ > $: <REMOTE> $1 < @ $2 >
-# local user is ok
-R<?> $+ $@ RELAYTOLOCAL
-R<$+> $* $: $2
-
-# anything originating locally is ok
-# check IP address
-R$* $: $&{client_addr}
-R$@ $@ RELAYFROM originated locally
-R0 $@ RELAYFROM originated locally
-R$=R $* $@ RELAYFROM relayable IP address
-R$* $: [ $1 ] put brackets around it...
-R$=w $@ RELAYFROM ... and see if it is local
-
-
-# check client name: first: did it resolve?
-R$* $: < $&{client_resolve} >
-R<TEMP> $#error $@ 4.7.1 $: "450 Relaying temporarily denied. Cannot resolve PTR record for " $&{client_addr}
-R<FORGED> $#error $@ 5.7.1 $: "550 Relaying denied. IP name possibly forged " $&{client_name}
-R<FAIL> $#error $@ 5.7.1 $: "550 Relaying denied. IP name lookup failed " $&{client_name}
-R$* $: <?> $&{client_name}
-R<?> $@ RELAYFROM
-R<?> $=w $@ RELAYFROM
-R<?> $* $=R $@ RELAYFROM
-
-# anything else is bogus
-R$* $#error $@ 5.7.1 $: "550 Relaying denied"
-
-
-# is user trusted to authenticate as someone else?
-Strust_auth
-R$* $: $&{auth_type} $| $1
-# required by RFC 2554 section 4.
-R$@ $| $* $#error $@ 5.7.1 $: "550 not authenticated"
-R$* $| $&{auth_authen} $@ identical
-R$* $| <$&{auth_authen}> $@ identical
-R$* $| $* $: $1 $| $>"Local_trust_auth" $1
-R$* $| $#$* $#$2
-R$* $#error $@ 5.7.1 $: "550 " $&{auth_authen} " not allowed to act as " $&{auth_author}
-
-SLocal_trust_auth
-
-
-#\f
-######################################################################
-######################################################################
-#####
-##### MAILER DEFINITIONS
-#####
-######################################################################
-######################################################################
-
-
-##################################################
-### Local and Program Mailer specification ###
-##################################################
-
-##### $Id: generic-ultrix4.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-#
-# Envelope sender rewriting
-#
-SEnvFromL=10
-R<@> $n errors to mailer-daemon
-R@ <@ $*> $n temporarily bypass Sun bogosity
-R$+ $: $>AddDomain $1 add local domain if needed
-R$* $: $>MasqEnv $1 do masquerading
-
-#
-# Envelope recipient rewriting
-#
-SEnvToL=20
-R$+ < @ $* > $: $1 strip host part
-
-#
-# Header sender rewriting
-#
-SHdrFromL=30
-R<@> $n errors to mailer-daemon
-R@ <@ $*> $n temporarily bypass Sun bogosity
-R$+ $: $>AddDomain $1 add local domain if needed
-R$* $: $>MasqHdr $1 do masquerading
-
-#
-# Header recipient rewriting
-#
-SHdrToL=40
-R$+ $: $>AddDomain $1 add local domain if needed
-R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
-
-#
-# Common code to add local domain name (only if always-add-domain)
-#
-SAddDomain=50
-
-Mlocal, P=/bin/mail, F=lsDFMAw5:/|@qPrmn9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,
- T=DNS/RFC822/X-Unix,
- A=mail -d $u
-Mprog, P=/bin/sh, F=lsDFMoqeu9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL, D=$z:/,
- T=X-Unix/X-Unix/X-Unix,
- A=sh -c $u
-
-#####################################
-### SMTP Mailer specification ###
-#####################################
-
-##### $Id: generic-ultrix4.cf,v 1.1.1.1 2000/04/02 19:05:51 millert Exp $ #####
-
-#
-# common sender and masquerading recipient rewriting
-#
-SMasqSMTP=61
-R$* < @ $* > $* $@ $1 < @ $2 > $3 already fully qualified
-R$+ $@ $1 < @ *LOCAL* > add local qualification
-
-#
-# convert pseudo-domain addresses to real domain addresses
-#
-SPseudoToReal=51
-
-# pass <route-addr>s through
-R< @ $+ > $* $@ < @ $1 > $2 resolve <route-addr>
-
-# output fake domains as user%fake@relay
-
-# do UUCP heuristics; note that these are shared with UUCP mailers
-R$+ < @ $+ .UUCP. > $: < $2 ! > $1 convert to UUCP form
-R$+ < @ $* > $* $@ $1 < @ $2 > $3 not UUCP form
-
-# leave these in .UUCP form to avoid further tampering
-R< $&h ! > $- ! $+ $@ $2 < @ $1 .UUCP. >
-R< $&h ! > $-.$+ ! $+ $@ $3 < @ $1.$2 >
-R< $&h ! > $+ $@ $1 < @ $&h .UUCP. >
-R< $+ ! > $+ $: $1 ! $2 < @ $Y > use UUCP_RELAY
-R$+ < @ $+ : $+ > $@ $1 < @ $3 > strip mailer: part
-R$+ < @ > $: $1 < @ *LOCAL* > if no UUCP_RELAY
-
-
-#
-# envelope sender rewriting
-#
-SEnvFromSMTP=11
-R$+ $: $>PseudoToReal $1 sender/recipient common
-R$* :; <@> $@ list:; special case
-R$* $: $>MasqSMTP $1 qualify unqual'ed names
-R$+ $: $>MasqEnv $1 do masquerading
-
-
-#
-# envelope recipient rewriting --
-# also header recipient if not masquerading recipients
-#
-SEnvToSMTP=21
-R$+ $: $>PseudoToReal $1 sender/recipient common
-R$+ $: $>MasqSMTP $1 qualify unqual'ed names
-R$* < @ *LOCAL* > $* $: $1 < @ $j . > $2
-
-#
-# header sender and masquerading header recipient rewriting
-#
-SHdrFromSMTP=31
-R$+ $: $>PseudoToReal $1 sender/recipient common
-R:; <@> $@ list:; special case
-
-# do special header rewriting
-R$* <@> $* $@ $1 <@> $2 pass null host through
-R< @ $* > $* $@ < @ $1 > $2 pass route-addr through
-R$* $: $>MasqSMTP $1 qualify unqual'ed names
-R$+ $: $>MasqHdr $1 do masquerading
-
-
-#
-# relay mailer header masquerading recipient rewriting
-#
-SMasqRelay=71
-R$+ $: $>MasqSMTP $1
-R$+ $: $>MasqHdr $1
-
-Msmtp, P=[IPC], F=mDFMuX, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Mesmtp, P=[IPC], F=mDFMuXa, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Msmtp8, P=[IPC], F=mDFMuX8, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Mdsmtp, P=[IPC], F=mDFMuXa%, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
- T=DNS/RFC822/SMTP,
- A=IPC $h
-Mrelay, P=[IPC], F=mDFMuXa8, S=EnvFromSMTP/HdrFromSMTP, R=MasqSMTP, E=\r\n, L=2040,
- T=DNS/RFC822/SMTP,
- A=IPC $h
--- /dev/null
+divert(-1)
+#
+# Copyright (c) 1997 Michael Shalayeff
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by Michael Shalayeff.
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+#
+
+VERSIONID(`$OpenBSD: lucifier.mc,v 1.1 2000/04/02 19:48:13 millert Exp $')dnl
+OSTYPE(openbsd)dnl
+MAILER(local)dnl
+MAILER(smtp)dnl
+MASQUERADE_AS(lucifier.dial-up.user.akula.net)dnl
+MASQUERADE_DOMAIN(lucifier.dial-up.user.akula.net)dnl
+FEATURE(allmasquerade)dnl
+
+define(`BITNET_RELAY', relay.uu.net)dnl
+
+define(`confAUTO_REBUILD', True)dnl
+define(`confCHECK_ALIASES', True)dnl
+
+define(`confMIN_FREE_BLOCKS', 1024)dnl
+define(`confSEPARATE_PROC', True)dnl
+define(`confBIND_OPTS', +AAONLY)dnl
+define(`confFORWARD_PATH', /var/forward/$u:$z/.forward.$w:$z/.forward)dnl
+define(`confUSE_ERRORS_TO', TRUE)dnl
+define(`confPRIVACY_FLAGS', `noexpn novrfy needmailhelo')
+
+define(`confDEF_CHAR_SET', `koi8-r')
+define(`confSEVEN_BIT_INPUT', False)
+define(`confEIGHT_BIT_HANDLING', `pass8')
+
+LOCAL_CONFIG
+O AliasFile=/home/majordomo/etc/aliases
+
--- /dev/null
+divert(-1)
+#
+# Copyright (c) 1993, 1994, 1995 Adam Glass
+# Copyright (c) 1983 Eric P. Allman
+# Copyright (c) 1988 The Regents of the University of California.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by the University of
+# California, Berkeley and its contributors.
+# 4. Neither the name of the University nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+#
+
+VERSIONID(`$OpenBSD: nettan.mc,v 1.1 2000/04/02 19:48:13 millert Exp $')
+OSTYPE(openbsd)dnl
+FEATURE(nullclient,mail.appli.se)dnl
--- /dev/null
+divert(-1)
+#
+# Sendmail 8 configuration file for lists.openbsd.org
+#
+# This machine handles all mail for openbsd.{org,com,net}
+#
+
+VERSIONID(`$OpenBSD: openbsd-lists.mc,v 1.1 2000/04/02 19:48:13 millert Exp $')
+OSTYPE(openbsd)dnl
+dnl
+dnl Advertise ourselves as ``openbsd.org''
+define(`confSMTP_LOGIN_MSG', `openbsd.org Sendmail $v/$Z/millert ready willing and able at $b')dnl
+dnl
+dnl Define relays, since not everyone uses internet addresses, even now
+define(`UUCP_RELAY', `rutgers.edu')
+define(`BITNET_RELAY', `interbit.cren.net')
+define(`DECNET_RELAY', `vaxf.colorado.edu')
+dnl
+dnl Override some default values
+define(`confPRIVACY_FLAGS', `authwarnings, nobodyreturn')dnl
+define(`confTRY_NULL_MX_LIST', `True')
+define(`confMAX_HOP', `30')dnl
+dnl
+dnl Always use fully qualified domains
+FEATURE(always_add_domain)
+dnl
+dnl Treat mail to openbsd.{org,net,com} as local
+Cw openbsd.org
+Cw openbsd.net
+Cw openbsd.com
+Cw anonopenbsd.cs.colorado.edu
+dnl
+dnl Need to add domo and mailman as "trusted users" to rewrite From lines
+define(`confTRUSTED_USERS', `domo mailman')
+dnl
+dnl Wait a day before sending mail about deferred messages
+define(`confTO_QUEUEWARN', `1d')
+dnl
+dnl Wait 4 days before giving up and bouncing the message
+define(`confTO_QUEUERETURN', `4d')
+dnl
+dnl Make mail appear to be from openbsd.org
+MASQUERADE_AS(openbsd.org)
+FEATURE(masquerade_envelope)
+dnl
+dnl Need this for OpenBSD mailing lists
+FEATURE(stickyhost)dnl
+FEATURE(virtusertable)dnl
+dnl
+dnl We use the access DB for spam prevention
+FEATURE(access_db)dnl
+FEATURE(blacklist_recipients)dnl
+dnl
+dnl List the mailers we support
+MAILER(local)dnl
+MAILER(smtp)dnl
+dnl
+dnl Finally, we have the local cf-style goo
+LOCAL_CONFIG
+#
+# Regular expression to reject:
+# * numeric-only localparts from aol.com and msn.com
+# * localparts starting with a digit from juno.com
+# * localparts longer than 20 characters from aol.com
+#
+Kcheckaddress regex -a@MATCH
+ ^([0-9]+<@(aol|msn)\.com|[0-9][^<]*<@juno\.com|.{20}[^<]+<@aol\.com)\.?>
+
+#
+# Names that won't be allowed in a To: line (local-part and domains)
+#
+C{RejectToLocalparts} friend you user
+C{RejectToDomains} public.com the-internet.com
+
+LOCAL_RULESETS
+#
+# Reject some mail based on To: header
+#
+HTo: $>CheckTo
+SCheckTo
+R$={RejectToLocalparts}@$* $#error $: "553 Header error"
+R$*@$={RejectToDomains} $#error $: "553 Header error"
+
+#
+# Enforce valid Message-Id to help stop spammers
+#
+HMessage-Id: $>CheckMessageId
+SCheckMessageId
+R< $+ @ $+ > $@ OK
+R$* $#error $: 553 Header Error
--- /dev/null
+divert(-1)
+#
+# Copyright (c) 1998 Sendmail, Inc. All rights reserved.
+# Copyright (c) 1983 Eric P. Allman. All rights reserved.
+# Copyright (c) 1988, 1993
+# The Regents of the University of California. All rights reserved.
+#
+# By using this file, you agree to the terms and conditions set
+# forth in the LICENSE file which can be found at the top level of
+# the sendmail distribution.
+#
+#
+
+#
+# This is the prototype file for a configuration that supports nothing
+# but basic SMTP connections via TCP.
+#
+
+divert(0)dnl
+VERSIONID(`@(#)openbsd-proto.mc $Revision: 1.1 $')
+OSTYPE(openbsd)
+FEATURE(nouucp, `reject')
+MAILER(local)
+MAILER(smtp)
+dnl
+dnl Enforce valid Message-Id to help stop spammers
+dnl
+LOCAL_RULESETS
+HMessage-Id: $>CheckMessageId
+
+SCheckMessageId
+R< $+ @ $+ > $@ OK
+R$* $#error $: 553 Header Error
--- /dev/null
+divert(-1)
+#
+# Copyright (c) 1996 SigmaSoft, Th. Lockert
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by SigmaSoft, Th. Lockert
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+VERSIONID(`$OpenBSD: saruman.mc,v 1.1 2000/04/02 19:48:13 millert Exp $')dnl
+OSTYPE(openbsd)dnl
+FEATURE(nullclient, gandalf.$m)dnl
divert(0)dnl
VERSIONID(`$Sendmail: tcpproto.mc,v 8.13 1999/02/07 07:26:05 gshapiro Exp $')
-OSTYPE(unknown)
-FEATURE(nouucp)
+OSTYPE(openbsd)
+FEATURE(nouucp, `nospecial')
MAILER(local)
MAILER(smtp)
--- /dev/null
+divert(-1)
+# $OpenBSD: waldorf.mc,v 1.1 2000/04/02 19:48:14 millert Exp $
+#
+# Copyright (c) 1996 Niklas Hallqvist
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by Niklas Hallqvist.
+# 4. Neither the name of the University nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+#
+
+VERSIONID(`$OpenBSD: waldorf.mc,v 1.1 2000/04/02 19:48:14 millert Exp $')
+OSTYPE(openbsd)dnl
+
+MASQUERADE_AS(appli.se)
+MASQUERADE_DOMAIN(appli.se)
+
+FEATURE(local_procmail)dnl
+
+MAILER(local)dnl
+MAILER(smtp)dnl
+
+FEATURE(limited_masquerade)dnl
+FEATURE(always_add_domain)dnl
+FEATURE(virtusertable)dnl
+FEATURE(use_cw_file)dnl
+
+define(`confAUTO_REBUILD', True)dnl
+
+LOCAL_RULE_0
+# We take care of all mail directed to either appli.se or *.appli.se
+R$+<@$*$m.> $#local $:$1
--- /dev/null
+divert(-1)
+#
+# Copyright (c) 1996 SigmaSoft, Th. Lockert
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by SigmaSoft, Th. Lockert
+# 4. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+divert(0)
+VERSIONID(`$OpenBSD: sigmasoft.m4,v 1.1 2000/04/02 19:48:14 millert Exp $')dnl
+define(`UUCP_RELAY', relay1.uu.net)dnl
+define(`BITNET_RELAY', relay2.uu.net)dnl
+define(`confME_TOO', True)dnl
+FEATURE(rbl)dnl
+FEATURE(redirect)dnl
+FEATURE(relay_based_on_MX)dnl
of sendmail. Also, the previous comment applies -- patches belong to
the original author, not to us.
-$Revision: 1.1.1.1 $, Last updated $Date: 2000/04/02 19:05:57 $
+$Revision: 1.2 $, Last updated $Date: 2000/04/02 19:48:14 $
+++ /dev/null
-divert(-1)
-#
-# Copyright (c) 1999 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-# Definitions for Makefile construction for sendmail
-#
-# $Sendmail: all.m4,v 8.7 1999/10/13 07:08:36 gshapiro Exp $
-#
-divert(0)dnl
-ALL=${BEFORE} ${LINKS} bldTARGETS
-
-all: ${ALL}
-
-clean: bldCLEAN_TARGETS
-
-define(`bldADD_SRC', ${$1SRCS} )dnl
-SRCS=bldFOREACH(`bldADD_SRC(', bldC_PRODUCTS)
-define(`bldADD_OBJS', ${$1OBJS} )dnl
-OBJS=bldFOREACH(`bldADD_OBJS(', bldC_PRODUCTS)
-
-ifdef(`bldNO_INSTALL', `divert(-1)')
-install: bldINSTALL_TARGETS
-
-install-strip: bldINSTALL_TARGETS ifdef(`bldSTRIP_TARGETS', `bldSTRIP_TARGETS')
-ifdef(`bldNO_INSTALL', `divert(0)')
-
-divert(bldDEPENDENCY_SECTION)
-################ Dependency scripts
-include(confBUILDTOOLSDIR/M4/depend/ifdef(`confDEPEND_TYPE', `confDEPEND_TYPE',
-`generic').m4)dnl
-################ End of dependency scripts
-divert(0)
+++ /dev/null
-divert(-1)
-#
-# Copyright (c) 1999-2000 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-# Definitions for Makefile construction for sendmail
-#
-# $Sendmail: defines.m4,v 8.27 2000/02/26 01:32:06 gshapiro Exp $
-#
-divert(0)dnl
-
-# C compiler
-CC= confCC
-CCOPTS= ifdef(`confCCOPTS', `confCCOPTS', ` ') ifdef(`confMT', ifdef(`confMTCCOPTS', `confMTCCOPTS', `'), `')
-
-# C Linker
-LD= ifdef(`confLD', `confLD', `confCC')
-LDOPTS= ifdef(`confLDOPTS', `confLDOPTS') ifdef(`confMT', ifdef(`confMTLDOPTS', `confMTLDOPTS', `'), `')
-LDOPTS_SO= ${LDOPTS} ifdef(`confLDOPTS_SO', `confLDOPTS_SO', `-shared')
-
-# Shell
-SHELL= confSHELL
-
-# use O=-O (usual) or O=-g (debugging)
-O= ifdef(`confOPTIMIZE', `confOPTIMIZE', `-O')
-
-# Object archiver
-AR= ifdef(`confAR', `confAR', `ar')
-AROPTS= ifdef(`confAROPTS', `confAROPTS', `crv')
-
-# Ranlib (or echo)
-RANLIB= ifdef(`confRANLIB', `confRANLIB', `ranlib')
-RANLIBOPTS= ifdef(`confRANLIBOPTS', `confRANLIBOPTS', `')
-
-# Object stripper
-STRIP= ifdef(`confSTRIP', `confSTRIP', `strip')
-STRIPOPTS= ifdef(`confSTRIPOPTS', `confSTRIPOPTS', `')
-
-# environment definitions (e.g., -D_AIX3)
-ENVDEF= ifdef(`confENVDEF', `confENVDEF') ifdef(`conf_'bldCURRENT_PRD`_ENVDEF', `conf_'bldCURRENT_PRD`_ENVDEF')
-
-# location of the source directory
-SRCDIR= ifdef(`confSRCDIR', `confSRCDIR', `_SRC_PATH_')
-
-# include directories
-INCDIRS= confINCDIRS
-
-# library directories
-LIBDIRS=confLIBDIRS
-
-# Additional libs needed
-LIBADD= ifdef(`conf_'bldCURRENT_PRD`_LIBS', `conf_'bldCURRENT_PRD`_LIBS')
-
-# libraries required on your system
-# delete -l44bsd if you are not running BIND 4.9.x
-LIBS= ${LIBADD} ifdef(`confLIBS', `confLIBS')
-
-# location of sendmail binary (usually /usr/sbin or /usr/lib)
-BINDIR= ifdef(`confMBINDIR', `confMBINDIR', `/usr/sbin')
-
-# location of "user" binaries (usually /usr/bin or /usr/ucb)
-UBINDIR=ifdef(`confUBINDIR', `confUBINDIR', `/usr/bin')
-
-# location of "root" binaries (usually /usr/sbin or /usr/etc)
-SBINDIR=ifdef(`confSBINDIR', `confSBINDIR', `/usr/sbin')
-
-# location of "libexec" binaries (usually /usr/libexec or /usr/etc)
-EBINDIR=ifdef(`confEBINDIR', `confEBINDIR', `/usr/libexec')
-
-# additional .c files needed
-SRCADD= ifdef(`confSRCADD', `confSRCADD')
-
-ifdef(`conf_'bldCURRENT_PRD`_SRCADD', `bldLIST_PUSH_ITEM(`bldSOURCES', `conf_'bldCURRENT_PRD`_SRCADD')')
-
-# additional .o files needed
-OBJADD= ifdef(`confOBJADD', `confOBJADD')
-bldCURRENT_PRODUCT`OBJADD'= ifdef(`conf_'bldCURRENT_PRD`_OBJADD', `conf_'bldCURRENT_PRD`_OBJADD') ifdef(`confLIBADD', `bldADD_EXTENSIONS(`a', confLIBADD)', `')
-
-# copy files
-CP= ifdef(`confCOPY', `confCOPY', `cp')
-
-################### end of user configuration flags ######################
-
-BUILDBIN=confBUILDBIN
-COPTS= -I. ${INCDIRS} ${ENVDEF} ${CCOPTS}
-CFLAGS= $O ${COPTS} ifdef(`confMT', ifdef(`confMTCFLAGS', `confMTCFLAGS -DXP_MT', `-DXP_MT'), `')
-
-BEFORE= confBEFORE
-
-LINKS=ifdef(`bldLINK_SOURCES', `bldLINK_SOURCES', `')
-
-bldCURRENT_PRODUCT`SRCS'= bldSOURCES ${SRCADD}
-bldCURRENT_PRODUCT`OBJS'= bldSUBST_EXTENSIONS(`o', bldSOURCES) ifdef(`bldLINK_SOURCES', `bldSUBST_EXTENSIONS(`o', bldLINK_SOURCES)') ${OBJADD} ${bldCURRENT_PRODUCT`OBJADD'}
-bldCURRENT_PRODUCT`SMDEPLIBS'= ifdef(`bldSMDEPLIBS', `bldSMDEPLIBS', `')
-bldCURRENT_PRODUCT`TARGET_LINKS'= ifdef(`bldTARGET_LINKS', `bldTARGET_LINKS', `')
-
-bldPUSH_ALL_SRCS(bldCURRENT_PRODUCT`SRCS')dnl
-
-ifdef(`bldBIN_TYPE', , `define(`bldBIN_TYPE', `U')')dnl
-ifdef(`bldINSTALL_DIR', , `define(`bldINSTALL_DIR', `U')')dnl
-
-NROFF= ifdef(`confNROFF', `confNROFF', `groff -Tascii')
-MANDOC= ifdef(`confMANDOC', `confMANDOC', `-man')
-
-INSTALL=ifdef(`confINSTALL', `confINSTALL', `install')
-
-# User binary ownership/permissions
-UBINOWN=ifdef(`confUBINOWN', `confUBINOWN', `bin')
-UBINGRP=ifdef(`confUBINGRP', `confUBINGRP', `bin')
-UBINMODE=ifdef(`confSBINMODE', `confSBINMODE', `555')
-
-# Setuid binary ownership/permissions
-SBINOWN=ifdef(`confSBINOWN', `confSBINOWN', `root')
-SBINGRP=ifdef(`confSBINGRP', `confSBINGRP', `bin')
-SBINMODE=ifdef(`confSBINMODE', `confSBINMODE', `4555')
-
+++ /dev/null
-divert(-1)
-#
-# Copyright (c) 1999 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-# Definitions for Makefile construction for sendmail
-#
-# $Sendmail: executable.m4,v 8.18 1999/10/13 07:08:36 gshapiro Exp $
-#
-divert(0)dnl
-include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/links.m4')dnl
-bldLIST_PUSH_ITEM(`bldC_PRODUCTS', bldCURRENT_PRODUCT)dnl
-bldPUSH_TARGET(bldCURRENT_PRODUCT)dnl
-bldPUSH_INSTALL_TARGET(`install-'bldCURRENT_PRODUCT)dnl
-bldPUSH_CLEAN_TARGET(bldCURRENT_PRODUCT`-clean')dnl
-bldPUSH_ALL_SRCS(bldCURRENT_PRODUCT`SRCS')dnl
-bldPUSH_STRIP_TARGET(`strip-'bldCURRENT_PRODUCT)dnl
-
-include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/defines.m4')
-divert(bldTARGETS_SECTION)
-bldCURRENT_PRODUCT: ${bldCURRENT_PRODUCT`OBJS'} ${bldCURRENT_PRODUCT`SMDEPLIBS'}
- ${CC} -o bldCURRENT_PRODUCT ${LDOPTS} ${LIBDIRS} ${bldCURRENT_PRODUCT`OBJS'} ${LIBS}
-
-ifdef(`bldLINK_SOURCES', `bldMAKE_SOURCE_LINKS(bldLINK_SOURCES)')
-
-ifdef(`bldNO_INSTALL', ,
-`install-`'bldCURRENT_PRODUCT: bldCURRENT_PRODUCT
- ${INSTALL} -c -o ${bldBIN_TYPE`'BINOWN} -g ${bldBIN_TYPE`'BINGRP} -m ${bldBIN_TYPE`'BINMODE} bldCURRENT_PRODUCT ${DESTDIR}${bldINSTALL_DIR`'BINDIR}
-ifdef(`bldTARGET_LINKS', `bldMAKE_TARGET_LINKS(${bldINSTALL_DIR`'BINDIR}/bldCURRENT_PRODUCT, ${bldCURRENT_PRODUCT`'TARGET_LINKS})')')
-
-strip-`'bldCURRENT_PRODUCT: bldCURRENT_PRODUCT
- ${STRIP} ${STRIPOPTS} ${DESTDIR}${bldINSTALL_DIR`'BINDIR}`'/bldCURRENT_PRODUCT
-
-bldCURRENT_PRODUCT-clean:
- rm -f ${OBJS} bldCURRENT_PRODUCT ${MANPAGES}
-divert(0)
+++ /dev/null
-divert(-1)
-#
-# Copyright (c) 1999 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-# Definitions for Makefile construction for sendmail
-#
-# $Sendmail: footer.m4,v 8.2 1999/05/13 16:16:35 gshapiro Exp $
-#
-divert(0)dnl
-################ Dependency scripts
-include(confBUILDTOOLSDIR/M4/depend/ifdef(`confDEPEND_TYPE', `confDEPEND_TYPE',
-`generic').m4)dnl
-################ End of dependency scripts
+++ /dev/null
-divert(-1)
-#
-# Copyright (c) 1999 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-# Definitions for Makefile construction for sendmail
-#
-# $Sendmail: library.m4,v 8.6 1999/08/13 21:31:08 gshapiro Exp $
-#
-divert(0)dnl
-include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/links.m4')dnl
-bldLIST_PUSH_ITEM(`bldC_PRODUCTS', bldCURRENT_PRODUCT)dnl
-bldPUSH_TARGET(bldCURRENT_PRODUCT`.a')dnl
-bldPUSH_INSTALL_TARGET(`install-'bldCURRENT_PRODUCT)dnl
-bldPUSH_CLEAN_TARGET(bldCURRENT_PRODUCT`-clean')dnl
-
-include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/defines.m4')
-divert(bldTARGETS_SECTION)
-bldCURRENT_PRODUCT.a: ${BEFORE} ${bldCURRENT_PRODUCT`OBJS'}
- ${AR} ${AROPTS} bldCURRENT_PRODUCT.a ${bldCURRENT_PRODUCT`OBJS'}
- ${RANLIB} ${RANLIBOPTS} bldCURRENT_PRODUCT.a
-ifdef(`bldLINK_SOURCES', `bldMAKE_SOURCE_LINKS(bldLINK_SOURCES)')
-
-install-`'bldCURRENT_PRODUCT: bldCURRENT_PRODUCT.a
-
-bldCURRENT_PRODUCT-clean:
- rm -f ${OBJS} bldCURRENT_PRODUCT.a ${MANPAGES}
-
-divert(0)
+++ /dev/null
-divert(-1)
-#
-# Copyright (c) 1999 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-# Definitions for Makefile construction for sendmail
-#
-# $Sendmail: links.m4,v 8.5 1999/07/25 03:53:08 gshapiro Exp $
-#
-divert(0)dnl
-define(`bldMAKE_SOURCE_LINK',
-`$1: ${SRCDIR}/$1
- -ln -s ${SRCDIR}/$1 $1'
-)dnl
-define(`bldMAKE_SOURCE_LINKS',
-`bldFOREACH(`bldMAKE_SOURCE_LINK(', $1)'dnl
-)dnl
-define(`bldMAKE_TARGET_LINKS',
-` for i in $2; do \
- rm -f $$i; \
- ln -s $1 $$i; \
- done'
-)dnl
-
+++ /dev/null
-divert(-1)
-#
-# Copyright (c) 1999 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-# Definitions for Makefile construction for sendmail
-#
-# $Sendmail: manpage.m4,v 8.10 1999/10/27 05:17:55 gshapiro Exp $
-#
-divert(0)dnl
-
-define(`bldGET_MAN_SOURCE_NUM',
-`substr($1, eval(len($1) - 1))'dnl
-)dnl
-define(`bldGET_MAN_BASE_NAME',
-`substr($1, 0, eval(len($1) - 2))'dnl
-)dnl
-ifdef(`confNO_MAN_BUILD',, `
-bldPUSH_TARGET(`${MANPAGES}')
-bldPUSH_INSTALL_TARGET(`install-docs')')
-bldLIST_PUSH_ITEM(`bldMAN_PAGES', `bldSOURCES')dnl
-
-MANOWN= ifdef(`confMANOWN', `confMANOWN', `bin')
-MANGRP= ifdef(`confMANGRP', `confMANGRP', `bin')
-MANMODE=ifdef(`confMANMODE', `confMANMODE', `444')
-MANROOT=ifdef(`confMANROOT', `confMANROOT', `/usr/share/man/cat')
-MANROOTMAN=ifdef(`confMANROOTMAN', `confMANROOTMAN', `/usr/share/man/man')
-MAN1= ${MANROOT}ifdef(`confMAN1', `confMAN1', `1')
-MAN1MAN=${MANROOTMAN}ifdef(`confMAN1', `confMAN1', `1')
-MAN1EXT=ifdef(`confMAN1EXT', `confMAN1EXT', `1')
-MAN1SRC=ifdef(`confMAN1SRC', `confMAN1SRC', `0')
-MAN3= ${MANROOT}ifdef(`confMAN3', `confMAN3', `3')
-MAN3MAN=${MANROOTMAN}ifdef(`confMAN3', `confMAN3', `3')
-MAN3EXT=ifdef(`confMAN3EXT', `confMAN3EXT', `3')
-MAN3SRC=ifdef(`confMAN3SRC', `confMAN3SRC', `0')
-MAN4= ${MANROOT}ifdef(`confMAN4', `confMAN4', `4')
-MAN4MAN=${MANROOTMAN}ifdef(`confMAN4', `confMAN4', `4')
-MAN4EXT=ifdef(`confMAN4EXT', `confMAN4EXT', `4')
-MAN4SRC=ifdef(`confMAN4SRC', `confMAN4SRC', `0')
-MAN5= ${MANROOT}ifdef(`confMAN5', `confMAN5', `5')
-MAN5MAN=${MANROOTMAN}ifdef(`confMAN5', `confMAN5', `5')
-MAN5EXT=ifdef(`confMAN5EXT', `confMAN5EXT', `5')
-MAN5SRC=ifdef(`confMAN5SRC', `confMAN5SRC', `0')
-MAN8= ${MANROOT}ifdef(`confMAN8', `confMAN8', `8')
-MAN8MAN=${MANROOTMAN}ifdef(`confMAN8', `confMAN8', `8')
-MAN8EXT=ifdef(`confMAN8EXT', `confMAN8EXT', `8')
-MAN8SRC=ifdef(`confMAN8SRC', `confMAN8SRC', `0')
-
-define(`bldMAN_TARGET_NAME',
-`bldGET_MAN_BASE_NAME($1).${MAN`'bldGET_MAN_SOURCE_NUM($1)`SRC}' 'dnl
-)dnl
-MANPAGES= bldFOREACH(`bldMAN_TARGET_NAME(', `bldMAN_PAGES')
-
-divert(bldTARGETS_SECTION)
-define(`bldMAN_BUILD_CMD',
-`bldGET_MAN_BASE_NAME($1).${MAN`'bldGET_MAN_SOURCE_NUM($1)`SRC}': bldGET_MAN_BASE_NAME($1).bldGET_MAN_SOURCE_NUM($1)
- ${NROFF} ${MANDOC} bldGET_MAN_BASE_NAME($1).bldGET_MAN_SOURCE_NUM($1) > bldGET_MAN_BASE_NAME($1)`.${MAN'bldGET_MAN_SOURCE_NUM($1)`SRC}' || ${CP} bldGET_MAN_BASE_NAME($1)`.${MAN'bldGET_MAN_SOURCE_NUM($1)`SRC}'.dist bldGET_MAN_BASE_NAME($1)`.${MAN'bldGET_MAN_SOURCE_NUM($1)`SRC}''
-
-)dnl
-bldFOREACH(`bldMAN_BUILD_CMD(', `bldMAN_PAGES')
-
-install-docs: ${MANPAGES}
-ifdef(`confNO_MAN_INSTALL', `divert(-1)', `dnl')
-define(`bldMAN_INSTALL_CMD',
-` ${INSTALL} -c -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} bldGET_MAN_BASE_NAME($1).`${MAN'bldGET_MAN_SOURCE_NUM($1)`SRC}' `${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)}/bldGET_MAN_BASE_NAME($1)`.${MAN'bldGET_MAN_SOURCE_NUM($1)`EXT}'
-ifdef(`confINSTALL_RAWMAN',
-` ${INSTALL} -c -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} bldGET_MAN_BASE_NAME($1).`${MAN'bldGET_MAN_SOURCE_NUM($1)`EXT}' `${DESTDIR}${MAN'bldGET_MAN_SOURCE_NUM($1)`MAN}'/bldGET_MAN_BASE_NAME($1)`.${MAN'bldGET_MAN_SOURCE_NUM($1)`EXT}'', `dnl')'
-)dnl
-bldFOREACH(`bldMAN_INSTALL_CMD(', `bldMAN_PAGES')
-ifdef(`confNO_MAN_INSTALL', `divert(0)', `dnl')
-divert(0)
+++ /dev/null
-# $Sendmail: AIX.m4,v 8.2 1999/05/28 05:54:26 gshapiro Exp $
-depend: ${BEFORE} ${LINKS}
- @mv Makefile Makefile.old
- @sed -e '/^# Do not edit or remove this line or anything below it.$$/,$$d' < Makefile.old > Makefile
- @echo "# Do not edit or remove this line or anything below it." >> Makefile
- changequote([,])
- for i in ${SRCS}; \
- do \
- ${CC} -M -E ${COPTS} $$i > /dev/null; \
- cat `basename $$i .c`.u >> Makefile ; \
- rm -f `basename $$i .c`.u ; \
- done;
- changequote
-
-# End of $RCSfile: AIX.m4,v $
+++ /dev/null
-# $Sendmail: BSD.m4,v 8.6 1999/05/27 22:03:28 peterh Exp $
-depend: ${BEFORE} ${LINKS}
- @mv Makefile Makefile.old
- @sed -e '/^# Do not edit or remove this line or anything below it.$$/,$$d' < Makefile.old > Makefile
- @echo "# Do not edit or remove this line or anything below it." >> Makefile
- mkdep -a -f Makefile ${COPTS} ${SRCS}
-
-# End of $RCSfile: BSD.m4,v $
+++ /dev/null
-# $Sendmail: CC-M.m4,v 8.5 1999/05/27 22:03:28 peterh Exp $
-depend: ${BEFORE} ${LINKS}
- @mv Makefile Makefile.old
- @sed -e '/^# Do not edit or remove this line or anything below it.$$/,$$d' < Makefile.old > Makefile
- @echo "# Do not edit or remove this line or anything below it." >> Makefile
- ${CC} -M ${COPTS} ${SRCS} >> Makefile
-
-# End of $RCSfile: CC-M.m4,v $
+++ /dev/null
-# $Sendmail: NCR.m4,v 8.6 1999/05/27 22:03:29 peterh Exp $
-depend: ${BEFORE} ${LINKS}
- @mv Makefile Makefile.old
- @sed -e '/^# Do not edit or remove this line or anything below it.$$/,$$d' < Makefile.old > Makefile
- @echo "# Do not edit or remove this line or anything below it." >> Makefile
- ${CC} -w0 -Hmake ${COPTS} ${SRCS} >> Makefile
-
-# End of $RCSfile: NCR.m4,v $
+++ /dev/null
-# $Sendmail: Solaris.m4,v 8.4 1999/05/27 22:03:29 peterh Exp $
-depend: ${BEFORE} ${LINKS}
- @mv Makefile Makefile.old
- @sed -e '/^# Do not edit or remove this line or anything below it.$$/,$$d' < Makefile.old > Makefile
- @echo "# Do not edit or remove this line or anything below it." >> Makefile
- ${CC} -xM ${COPTS} ${SRCS} >> Makefile
-
-# End of $RCSfile: Solaris.m4,v $
+++ /dev/null
-# $Sendmail: X11.m4,v 8.4 1999/05/27 22:03:29 peterh Exp $
-depend: ${BEFORE} ${LINKS}
- makedepend -- ${COPTS} -- ${SRCS}
-
-# End of $RCSfile: X11.m4,v $
+++ /dev/null
-# $Sendmail: generic.m4,v 8.5 1999/05/24 18:38:33 rand Exp $
-# dependencies
-
-# give a null "depend" list so that the startup script will work
-depend:
-# End of $RCSfile: generic.m4,v $
+++ /dev/null
-#
-# Copyright (c) 1998, 1999 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-# Definitions for Makefile construction for sendmail
-#
-# $Sendmail: header.m4,v 8.26 1999/08/09 18:57:22 gshapiro Exp $
-#
-changecom(^A)
-undefine(`format')
-undefine(`hpux')
-undefine(`unix')
-ifdef(`pushdef', `',
- `errprint(`You need a newer version of M4, at least as new as
-System V or GNU')
- include(NoSuchFile)')
-define(`confCC', `cc')
-define(`confSHELL', `/bin/sh')
-define(`confBEFORE', `')
-define(`confLIBDIRS', `')
-define(`confINCDIRS', `')
-define(`confLIBSEARCH', `db bind resolv 44bsd')
-define(`confLIBSEARCHPATH', `/lib /usr/lib /usr/shlib')
-define(`confSITECONFIG', `site.config')
-define(`confBUILDBIN', `${SRCDIR}/devtools/bin')
-define(`confRANLIB', `echo')
-define(`PUSHDIVERT', `pushdef(`__D__', divnum)divert($1)')
-define(`POPDIVERT', `divert(__D__)popdef(`__D__')')
-define(`APPENDDEF', `define(`$1', ifdef(`$1', `$1 $2', `$2'))')
-define(`PREPENDDEF', `define(`$1', ifdef(`$1', `$2 $1', `$2'))')
+++ /dev/null
-divert(-1)
-#
-# Copyright (c) 1999 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-# Definitions for Makefile construction for sendmail
-#
-# $Sendmail: list.m4,v 8.3 1999/07/15 22:46:05 rand Exp $
-#
-divert(0)dnl
-define(`bldLIST_PUSH_ITEM',
-`define(`$1', ifdef(`$1', `$1 $2 ', `$2 '))'
-)dnl
-define(`bldFOREACH',
-`$1substr($2, `0', index($2, ` ')))`'ifelse(index($2, ` '), eval(len($2)-1), , `bldFOREACH(`$1', substr($2, index($2, ` ')))')'dnl
-)dnl
-
-define(`bldADD_PATH', `$1/$2 ')dnl
-define(`bldADD_PATHS',
-`bldFOREACH(`bldADD_PATH(`$1',', $2)'dnl
-)dnl
+++ /dev/null
-divert(-1)
-#
-# Copyright (c) 1999 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-# Definitions for Makefile construction for sendmail
-#
-# $Sendmail: string.m4,v 8.2 1999/05/13 16:16:33 gshapiro Exp $
-#
-divert(0)dnl
-define(`bldRINDEX',
-`ifelse(index($1, $2), `-1', `-1', `eval(index($1, $2) + bldRINDEX(substr($1, eval(index($1, $2) + 1)), $2) + 1)')'dnl
-)dnl
+++ /dev/null
-divert(-1)
-#
-# Copyright (c) 1999 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-# Definitions for Makefile construction for sendmail
-#
-# $Sendmail: subst_ext.m4,v 8.3 1999/05/24 18:29:46 rand Exp $
-#
-divert(0)dnl
-define(`bldSUBST_EXTENSION',
-`substr($2, 0, bldRINDEX($2, `.'))`'.$1 'dnl
-)dnl
-define(`bldSUBST_EXTENSIONS',
-`bldFOREACH(`bldSUBST_EXTENSION(`$1',', $2)'dnl
-)dnl
-define(`bldREMOVE_COMMAS',
-`$1 ifelse($#, 1, , `bldREMOVE_COMMAS(shift($@))')'dnl
-)dnl
-
-define(`bldADD_EXTENSION', `$2.$1 ')dnl
-define(`bldADD_EXTENSIONS',
-`bldFOREACH(`bldADD_EXTENSION(`$1',', $2)'dnl
-)dnl
-
+++ /dev/null
-divert(-1)
-#
-# Copyright (c) 1999 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-# Definitions for Makefile construction for sendmail
-#
-# $Sendmail: switch.m4,v 8.13 1999/09/07 17:21:50 ca Exp $
-#
-divert(0)dnl
-include(confBUILDTOOLSDIR`/M4/string.m4')dnl
-include(confBUILDTOOLSDIR`/M4/list.m4')dnl
-include(confBUILDTOOLSDIR`/M4/subst_ext.m4')dnl
-define(`bldDEPENDENCY_SECTION', `3')dnl
-define(`bldTARGETS_SECTION', `6')dnl
-define(`bldPUSH_TARGET',
- `bldLIST_PUSH_ITEM(`bldTARGETS', `$1')'dnl
-)dnl
-
-define(`bldPUSH_INSTALL_TARGET',
- `bldLIST_PUSH_ITEM(`bldINSTALL_TARGETS', `$1')'dnl
-)dnl
-
-define(`bldPUSH_CLEAN_TARGET',
- `bldLIST_PUSH_ITEM(`bldCLEAN_TARGETS', `$1')'dnl
-)dnl
-
-define(`bldPUSH_ALL_SRCS',
- `bldLIST_PUSH_ITEM(`bldALL_SRCS', `$1')'dnl
-)dnl
-
-define(`bldPUSH_SMDEPLIB',
- `bldLIST_PUSH_ITEM(`bldSMDEPLIBS', `$1')'dnl
-)dnl
-
-define(`bldPUSH_SMLIB',
- `bldPUSH_TARGET(`../lib$1/lib$1.a')
-bldPUSH_SMDEPLIB(`../lib$1/lib$1.a')
-PREPENDDEF(`confLIBDIRS', `-L../lib$1')
-PREPENDDEF(`confLIBS', `-l$1')
-divert(bldTARGETS_SECTION)
-../lib$1/lib$1.a:
- (cd ${SRCDIR}/lib$1; sh Build ${SENDMAIL_BUILD_FLAGS})
-divert
-')dnl
-
-define(`bldPUSH_STRIP_TARGET',
- `bldLIST_PUSH_ITEM(`bldSTRIP_TARGETS', `$1')'dnl
-)dnl
-
-define(`bldPRODUCT_START',
-`define(`bldCURRENT_PRODUCT', `$2')dnl
-define(`bldCURRENT_PRD', translit(`$2', `.', `_'))dnl
-define(`bldPRODUCT_TYPE', `$1')dnl'
-)dnl
-
-define(`bldM4_TYPE_DIR',ifdef(`confNT', `NT', ``UNIX''))dnl
-
-define(`bldPRODUCT_END',
-`include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/'bldPRODUCT_TYPE`.m4')'
-)dnl
-
-define(`bldFINISH',
-ifdef(`bldDONT_INCLUDE_ALL', ,``include(confBUILDTOOLSDIR`/M4/'bldM4_TYPE_DIR`/all.m4')'')dnl
-undivert(bldTARGETS_SECTION)dnl
-)dnl
+++ /dev/null
-# $Sendmail: 386BSD,v 8.2 1999/02/07 03:21:07 gshapiro Exp $
-define(`confENVDEF', ` -DMIME')
-define(`confLIBS', `-lutil')
-define(`confLINKS', `/usr/sbin/sendmail /usr/bin/newaliases \
- /usr/sbin/sendmail /usr/bin/mailq \
- /usr/sbin/sendmail /usr/bin/hoststat \
- /usr/sbin/sendmail /usr/bin/purgestat')
+++ /dev/null
-# $Sendmail: A-UX,v 8.7 1999/06/02 22:53:34 gshapiro Exp $
-define(`confMAPDEF', `-DNDBM')
-define(`confENVDEF', `-D_POSIX_SOURCE')
-define(`confLIBS', `-ldbm -lposix -lUTIL')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `sys')
+++ /dev/null
-# $Sendmail: AIX,v 8.10 1999/06/02 22:53:34 gshapiro Exp $
-define(`confMAPDEF', `-DNDBM -DNIS')
-define(`confENVDEF', `-D_AIX3')
-define(`confOPTIMIZE', `-g')
-define(`confLIBS', `-ldbm')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `system')
-define(`confINSTALL', `/usr/ucb/install')
-define(`confDEPEND_TYPE', `AIX')
+++ /dev/null
-# $Sendmail: AIX.2,v 8.10 1999/04/04 06:48:02 gshapiro Exp $
-define(`confMAPDEF', `-DNIS')
-define(`confENVDEF', `-DBSD -DBSD_INCLUDES -DBSD_REMAP_SIGNAL_TO_SIGVEC')
-define(`confOPTIMIZE', `-g')
-define(`confSBINDIR', `/usr/etc')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `system')
-define(`confINSTALL', `/usr/ucb/install')
+++ /dev/null
-# $Sendmail: AIX.4.2,v 8.11 1999/06/02 22:53:35 gshapiro Exp $
-define(`confMAPDEF', `-DNDBM -DNIS -DMAP_REGEX')
-define(`confENVDEF', `-D_AIX4=40200')
-define(`confOPTIMIZE', `-O3 -qstrict')
-define(`confLIBS', `-ldbm')
-define(`confLIBSEARCH', `db resolv 44bsd')
-define(`confINSTALL', `/usr/ucb/install')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `system')
-define(`confDEPEND_TYPE', `AIX')
+++ /dev/null
-# $Sendmail: AIX.4.3,v 8.11 1999/07/03 02:06:07 rand Exp $
-define(`confMAPDEF', `-DNDBM -DNIS -DMAP_REGEX')
-define(`confENVDEF', `-D_AIX4=40300')
-define(`confOPTIMIZE', `-O3 -qstrict')
-define(`confCC', `/usr/bin/xlc')
-define(`confLIBS', `-ldbm')
-define(`confINSTALL', `/usr/ucb/install')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `system')
-define(`confDEPEND_TYPE', `AIX')
-
-define(`confMTLDOPTS', `-lpthread')
-define(`confLDOPTS_SO', `-Wl,-G -Wl,-bexpall')
+++ /dev/null
-# $Sendmail: AIX.4.x,v 8.12 1999/06/02 22:53:35 gshapiro Exp $
-define(`confMAPDEF', `-DNDBM -DNIS -DMAP_REGEX')
-define(`confENVDEF', `-D_AIX4')
-define(`confOPTIMIZE', `-O3 -qstrict')
-define(`confLIBS', `-ldbm')
-define(`confINSTALL', `/usr/ucb/install')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `system')
-define(`confDEPEND_TYPE', `AIX')
+++ /dev/null
-# $Sendmail: Altos,v 8.9 1999/06/02 22:53:35 gshapiro Exp $
-define(`confCC', `gcc')
-define(`confENVDEF', `-DALTOS_SYSTEM_V')
-define(`confLIBS', `-lsocket -lrpc')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `sys')
-define(`confINSTALL', `${BUILDBIN}/install.sh')
-define(`confDEPEND_TYPE', `CC-M')
+++ /dev/null
-# $Sendmail: BSD-OS,v 8.11 1999/05/06 19:45:40 gshapiro Exp $
-define(`confMAPDEF', `-DNEWDB -DMAP_REGEX')
-define(`confENVDEF', `-DNETISO')
-define(`confLIBS', `-lutil -lkvm')
-define(`confOPTIMIZE', `-O2')
-define(`confMAN1EXT', `0')
-define(`confMAN5EXT', `0')
-define(`confMAN8EXT', `0')
-define(`confSTDIO_TYPE', `torek')
+++ /dev/null
-# $Sendmail: BSD43,v 8.8 1999/06/02 22:53:35 gshapiro Exp $
-define(`confBEFORE', `unistd.h stddef.h stdlib.h dirent.h sys/time.h')
-define(`confMAPDEF', `-DNDBM')
-define(`confENVDEF', `-DoldBSD43')
-define(`confLIBS', `-ldbm -ll')
-define(`confUBINDIR', `/usr/ucb')
-PUSHDIVERT(3)
-unistd.h stddef.h stdlib.h sys/time.h:
- cp /dev/null $@
-
-sys/time.h: sys
-
-sys:
- mkdir sys
-
-dirent.h:
- echo "#include <sys/dir.h>" > dirent.h
- echo "#define dirent direct" >> dirent.h
-POPDIVERT
+++ /dev/null
-# $Sendmail: CLIX,v 8.12 1999/06/02 22:53:36 gshapiro Exp $
-define(`confCC', `gcc')
-define(`confMAPDEF', `-DNDBM')
-define(`confENVDEF', `-DCLIX')
-APPENDDEF(`confINCDIRS', `-I/usr/include')
-define(`confLIBS', `-lnsl -lbsd')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `mail')
-define(`confINSTALL', `cp')
-define(`confDEPEND_TYPE', `CC-M')
+++ /dev/null
-# $Sendmail: CRAYT3E.2.0.x,v 8.4 1999/06/02 22:53:36 gshapiro Exp $
-define(`confMAPDEF', `-DNDBM')
-define(`confENVDEF', `-DUNICOS')
-define(`confOPTIMIZE', `-O')
-define(`confINSTALL', `cpset')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/bin')
-define(`confEBINDIR', `/usr/lib')
+++ /dev/null
-# $Sendmail: CRAYTS.10.0.x,v 8.4 1999/06/02 22:53:36 gshapiro Exp $
-define(`confMAPDEF', `-DNDBM')
-define(`confENVDEF', `-DUNICOS')
-define(`confOPTIMIZE', `-O')
-define(`confINSTALL', `cpset')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/bin')
-define(`confEBINDIR', `/usr/lib')
+++ /dev/null
-# $Sendmail: CSOS,v 8.7 1999/04/24 05:37:49 gshapiro Exp $
-define(`confLIBS', `-lnet')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confEBINDIR', `/usr/lib')
-define(`confUBINDIR', `/usr/ucb')
-define(`confINSTALL', `${BUILDBIN}/install.sh')
+++ /dev/null
-# $Sendmail: ConvexOS,v 8.8 1999/04/24 05:37:49 gshapiro Exp $
-define(`confMAPDEF', `-DNDBM -DYPCOMPAT -DNIS')
-define(`confENVDEF', `-D__STDC__ -d non_int_bit_field')
-define(`confOPTIMIZE', `-g')
-define(`confLIBS', `-lshare')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/lib')
+++ /dev/null
-# $Sendmail: Darwin,v 8.2 1999/08/13 21:31:10 gshapiro Exp $
-#
-# Wilfredo Sanchez <wsanchez@apple.com>:
-# We look a lot more like 4.4BSD than NeXTStep or OpenStep.
-#
-define(`confCC', `cc -traditional-cpp -pipe ${Extra_CC_Flags}')
-define(`confMAPDEF', `-DNEWDB -DNIS -DMAP_REGEX -DNETINFO -DAUTO_NETINFO_ALIASES -DAUTO_NETINFO_HOSTS')
-define(`confENVDEF', `-DNETISO')
-define(`confLDOPTS', `${Extra_LD_Flags}')
-define(`confOPTIMIZE', `-O3')
-define(`confRANLIBOPTS', `-c')
-define(`confHFDIR', `/usr/share/sendmail')
-define(`confMANOWN', `root')
-define(`confMANGRP', `wheel')
-define(`confUBINOWN', `root')
-define(`confUBINGRP', `wheel')
-define(`confSBINOWN', `root')
-define(`confSBINGRP', `wheel')
+++ /dev/null
-# $Sendmail: Dell,v 8.11 1999/06/02 22:53:36 gshapiro Exp $
-define(`confCC', `gcc')
-define(`confMAPDEF', `-DNDBM')
-define(`confENVDEF', `-D__svr4__')
-define(`confOPTIMIZE', `-O2')
-define(`confLIBS', `-ldbm -lsocket -lnsl -lelf')
-define(`confMBINDIR', `/usr/ucblib')
-define(`confSBINDIR', `/usr/ucblib')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/ucblib')
-define(`confSBINGRP', `mail')
-define(`confINSTALL', `/usr/ucb/install')
-define(`confDEPEND_TYPE', `CC-M')
+++ /dev/null
-# $Sendmail: DomainOS,v 8.8 1999/04/24 05:37:50 gshapiro Exp $
-define(`confCC', `cc -A nansi -A,systype,any -A,runtype,bsd4.3')
-define(`confBEFORE', `unistd.h dirent.h')
-define(`confMAPDEF', `-DNDBM')
-define(`confSBINDIR', `/usr/etc')
-define(`confMBINDIR', `/usr/lib')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/lib')
-PUSHDIVERT(3)
-unistd.h:
- cp /dev/null unistd.h
-
-dirent.h:
- echo "#include <sys/dir.h>" > dirent.h
- echo "#define dirent direct" >> dirent.h
-POPDIVERT
+++ /dev/null
-# $Sendmail: DomainOS.10.4,v 8.3 1999/04/24 05:37:52 gshapiro Exp $
-define(`confCC', `cc -A nansi -A,systype,any -A,runtype,bsd4.3')
-define(`confBEFORE', `dirent.h')
-define(`confMAPDEF', `-DNDBM')
-define(`confSBINDIR', `/usr/etc')
-define(`confMBINDIR', `/usr/lib')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/lib')
-PUSHDIVERT(3)
-dirent.h:
- echo "#include <sys/dir.h>" > dirent.h
- echo "#define dirent direct" >> dirent.h
-POPDIVERT
+++ /dev/null
-# $Sendmail: Dynix,v 8.10 1999/05/07 17:19:01 gshapiro Exp $
-define(`confCC', `gcc')
-define(`confOPTIMIZE', `-O -g')
-define(`confLIBS', `-lseq')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `staff # no kmem group,')
-define(`confOBJADD', `strtol.o')
-define(`confSRCADD', `strtol.c')
-define(`confDEPEND_TYPE', `CC-M')
+++ /dev/null
-# $Sendmail: EWS-UX_V,v 8.10 1999/06/02 22:53:36 gshapiro Exp $
-define(`confCC', `/usr/abiccs/bin/cc -KOlimit=1000')
-define(`confBEFORE', `sysexits.h ndbm.h ndbm.o')
-define(`confMAPDEF', `-DNDBM -DNIS')
-define(`confENVDEF', `-Dnec_ews_svr4')
-define(`confLIBS', `ndbm.o -lsocket -lnsl -lelf # # with NDBM')
-define(`confMBINDIR', `/usr/ucblib')
-define(`confSBINDIR', `/usr/ucbetc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/ucblib')
-define(`confSBINGRP', `sys')
-define(`confSTDIR', `/var/ucblib')
-define(`confINSTALL', `/usr/ucb/install')
-PUSHDIVERT(3)
-sysexits.h:
- echo '#ifndef _LOCAL_SYSEXITS_H_' > sysexits.h;
- echo '#define _LOCAL_SYSEXITS_H_' >> sysexits.h;
- cat /usr/abiccs/ucbinclude/sysexits.h >> sysexits.h;
- echo '#endif /* _LOCAL_SYSEXITS_H_ */' >> sysexits.h;
-# ln -s /usr/abiccs/ucbinclude/sysexits.h .
-
-ndbm.h:
- ln -s /usr/abiccs/ucbinclude/ndbm.h .
-
-ndbm.o:
- ar x /usr/abiccs/ucblib/libucb.a ndbm.o
-# ar x /usr/ucblib/libucb.a ndbm.o
-POPDIVERT
+++ /dev/null
-# $Sendmail: FreeBSD,v 8.19 1999/10/07 23:14:25 peterh Exp $
-define(`confMAPDEF', `-DNEWDB -DNIS -DMAP_REGEX')
-define(`confLIBS', `-lutil')
-define(`confMTLDOPTS', `-pthread')
-define(`confSTDIO_TYPE', `torek')
-
-define(`confLD', `cc')
-define(`confLDOPTS_SO', `-shared')
-define(`confCCOPTS_SO', `-fPIC')
-
-define(`confPERL_CONFIGURE_ARGS', `-Dlddlflags=-shared -Dccdlflags="-export-dynamic"')
+++ /dev/null
-# $Sendmail: GNU,v 8.2 2000/01/28 18:50:33 gshapiro Exp $
-define(`confCC', `gcc')
-define(`confOPTIMIZE', `-g -O2')
-define(`confDEPEND_TYPE', `CC-M')
-define(`confEBINDIR', `/libexec')
-define(`confMANROOT', `/man/man')
-define(`confMANOWN', `root')
-define(`confMANGRP', `wheel')
-define(`confMANMODE', `644')
-define(`confMBINDIR', `/sbin')
-define(`confSBINDIR', `/sbin')
-define(`confSBINOWN', `root')
-define(`confSBINGRP', `wheel')
-define(`confSBINMODE', `4755')
-define(`confUBINDIR', `/bin')
-define(`confUBINOWN', `root')
-define(`confUBINGRP', `wheel')
-define(`confUBINMODE', `755')
+++ /dev/null
-# $Sendmail: HP-UX,v 8.12 1999/08/10 00:06:41 gshapiro Exp $
-define(`confCC', `cc -Aa')
-define(`confENVDEF', `-D_HPUX_SOURCE')
-define(`confMAPDEF', `-DNDBM -DNIS -DMAP_REGEX')
-define(`confOPTIMIZE', `+O1')
-define(`confLIBS', `-lndbm')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `mail')
-define(`confINSTALL', `${BUILDBIN}/install.sh')
+++ /dev/null
-# $Sendmail: HP-UX.10.x,v 8.14 1999/08/10 00:06:41 gshapiro Exp $
-define(`confCC', `cc -Aa')
-define(`confMAPDEF', `-DNDBM -DNIS -DMAP_REGEX')
-define(`confENVDEF', `-D_HPUX_SOURCE -DV4FS')
-define(`confOPTIMIZE', `+O3')
-define(`confLIBS', `-lndbm')
-define(`confSHELL', `/usr/bin/sh')
-define(`confINSTALL', `${BUILDBIN}/install.sh')
-define(`confSBINGRP', `mail')
+++ /dev/null
-# $Sendmail: HP-UX.11.x,v 8.11 1999/07/02 23:54:55 rand Exp $
-
-# +z is to generate position independant code
-define(`confCC', `cc -Ae +z')
-define(`confMAPDEF', `-DNDBM -DNIS -DMAP_REGEX')
-define(`confENVDEF', `-DV4FS -DHPUX11')
-define(`confOPTIMIZE', `+O3')
-define(`confLIBS', `-ldbm -lnsl')
-define(`confSHELL', `/usr/bin/sh')
-define(`confINSTALL', `${BUILDBIN}/install.sh')
-define(`confSBINGRP', `mail')
-
-define(`confMTCCOPTS', `-D_POSIX_C_SOURCE=199506L')
-define(`confMTLDOPTS', `-lpthread')
-define(`confLD', `ld')
-define(`confLDOPTS_SO', `-b')
-define(`confCCOPTS_SO', `')
+++ /dev/null
-# $Sendmail: IRIX,v 8.10 1999/06/02 22:53:37 gshapiro Exp $
-define(`confMAPDEF', `-DNDBM -DNIS')
-define(`confENVDEF', `-DIRIX')
-define(`confLIBS', `-lmld -lmalloc -lsun')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/bsd')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `sys')
-define(`confINSTALL', `${BUILDBIN}/install.sh')
-define(`confDEPEND_TYPE', `CC-M')
+++ /dev/null
-# $Sendmail: IRIX.5.x,v 8.11 1999/07/24 23:37:45 gshapiro Exp $
-define(`confCC', `cc -mips2')
-define(`confMAPDEF', `-DNDBM -DNIS')
-define(`confENVDEF', `-DIRIX5')
-define(`confLIBS', `-lmld -lmalloc')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/bsd')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `sys')
-define(`confSTDIR', `/var')
-define(`confINSTALL', `${BUILDBIN}/install.sh')
-define(`confDEPEND_TYPE', `CC-M')
+++ /dev/null
-# $Sendmail: IRIX.6.5,v 8.12 2000/01/27 19:27:45 ca Exp $
-define(`confCC', `cc -mips3 -n32 -OPT:Olimit=2700')
-define(`confLIBSEARCHPATH', `/lib32 /usr/lib32')
-define(`confMAPDEF', `-DNEWDB -DNDBM -DNIS -DMAP_REGEX -DMAP_NSD')
-define(`confENVDEF', `-DIRIX6 -DHASSNPRINTF=1')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/bsd')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `sys')
-define(`confSTDIR', `/var')
-define(`confINSTALL', `${BUILDBIN}/install.sh')
-define(`confDEPEND_TYPE', `CC-M')
+++ /dev/null
-# $Sendmail: IRIX.6.x,v 8.20 1999/12/13 02:08:29 ca Exp $
-define(`confCC', `cc -mips3 -n32 -OPT:Olimit=2700')
-define(`confLIBSEARCHPATH', `/lib32 /usr/lib32')
-define(`confMAPDEF', `-DNDBM -DNIS -DMAP_REGEX')
-define(`confENVDEF', `-DIRIX6')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/bsd')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `sys')
-define(`confSTDIR', `/var')
-define(`confINSTALL', `${BUILDBIN}/install.sh')
-define(`confDEPEND_TYPE', `CC-M')
+++ /dev/null
-# $Sendmail: IRIX64.6.0,v 8.14 1999/07/24 23:37:45 gshapiro Exp $
-define(`confMAPDEF', `-DNDBM')
-define(`confENVDEF', `-DIRIX64')
-define(`confLIBS', `-lelf -lmalloc')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/bsd')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `sys')
-define(`confINSTALL', `${BUILDBIN}/install.sh')
-define(`confDEPEND_TYPE', `CC-M')
+++ /dev/null
-# $Sendmail: IRIX64.6.1,v 8.14 1999/07/24 23:37:46 gshapiro Exp $
-define(`confMAPDEF', `-DNDBM')
-define(`confENVDEF', `-DIRIX64')
-define(`confLIBS', `-lelf -lmalloc')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/bsd')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `sys')
-define(`confINSTALL', `${BUILDBIN}/install.sh')
-define(`confDEPEND_TYPE', `CC-M')
+++ /dev/null
-# $Sendmail: IRIX64.6.5,v 8.9 2000/01/27 19:27:45 ca Exp $
-define(`confCC', `cc -mips3 -n32 -OPT:Olimit=2700')
-define(`confLIBSEARCHPATH', `/lib32 /usr/lib32')
-define(`confMAPDEF', `-DNDBM -DNIS -DMAP_REGEX')
-define(`confENVDEF', `-DIRIX6 -DHASSNPRINTF=1')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/bsd')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `sys')
-define(`confSTDIR', `/var')
-define(`confINSTALL', `${BUILDBIN}/install.sh')
-define(`confDEPEND_TYPE', `CC-M')
+++ /dev/null
-# $Sendmail: IRIX64.6.x,v 8.19 2000/01/27 19:27:46 ca Exp $
-define(`confCC', `cc -mips3 -n32 -OPT:Olimit=2700')
-define(`confLIBSEARCHPATH', `/lib32 /usr/lib32')
-define(`confMAPDEF', `-DNDBM -DNIS -DMAP_REGEX')
-define(`confENVDEF', `-DIRIX6')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/bsd')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `sys')
-define(`confSTDIR', `/var')
-define(`confINSTALL', `${BUILDBIN}/install.sh')
-define(`confDEPEND_TYPE', `CC-M')
+++ /dev/null
-# $Sendmail: ISC,v 8.8 1999/06/02 22:53:38 gshapiro Exp $
-define(`confMAPDEF', `-DNDBM -DNIS')
-define(`confENVDEF', `-DISC_UNIX -D_POSIX_SOURCE -D_SYSV3')
-define(`confLIBS', `-lyp -lrpc -lndbm -linet -lcposix')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/lib')
-define(`confSTDIR', `/usr/spool/log')
+++ /dev/null
-# $Sendmail: KSR,v 8.6 1999/04/24 05:37:55 gshapiro Exp $
-define(`confMAPDEF', `-DNDBM -DNIS')
-define(`confLIBDIRS', `-L/usr/shlib -L/usr/lib')
-define(`confLIBS', `-ldbm')
-define(`confSTDIR', `/var/adm/sendmail')
-define(`confINSTALL', `installbsd')
+++ /dev/null
-# $Sendmail: LUNA,v 8.10 1999/04/24 05:37:55 gshapiro Exp $
-define(`confBEFORE', `dirent.h stddef.h stdlib.h unistd.h limits.h time.h sys/time.h')
-define(`confMAPDEF', `-DNDBM')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/lib')
-PUSHDIVERT(3)
-dirent.h:
- echo "#include <sys/dir.h>" > dirent.h
- echo "#define dirent direct" >> dirent.h
-
-stddef.h unistd.h limits.h:
- if [ -f /usr/include/$@ ]; then \
- ln -s /usr/include/$@ .; \
- else \
- cp /dev/null $@; \
- fi
-
-stdlib.h:
- if [ -f /usr/include/stdlib.h ]; then \
- ln -s /usr/include/stdlib.h .; \
- else \
- if [ -f /usr/include/libc.h ]; then \
- ln -s /usr/include/libc.h stdlib.h; \
- else \
- cp /dev/null stdlib.h; \
- fi; \
- fi
-
-# just for UNIOS-B
-time.h:
- echo "#ifndef _LOCAL_TIME_H_" > time.h
- echo "#define _LOCAL_TIME_H_" >> time.h
- cat /usr/include/time.h >> time.h
- echo "#endif" >> time.h
-
-sys/time.h:
- -mkdir sys
- echo "#ifndef _LOCAL_SYS_TIME_H_" > sys/time.h
- echo "#define _LOCAL_SYS_TIME_H_" >> sys/time.h
- cat /usr/include/sys/time.h >> sys/time.h
- echo "#endif" >> sys/time.h
-POPDIVERT
+++ /dev/null
-# $Sendmail: Linux,v 8.17 1999/12/27 18:53:09 tony Exp $
-define(`confDEPEND_TYPE', `CC-M')
-define(`confMANROOT', `/usr/man/man')
-define(`confLIBS', `-ldl')
-define(`confEBINDIR', `/usr/sbin')
-APPENDDEF(`confLIBSEARCH', `crypt nsl')
-
-define(`confMTLDOPTS', `-lpthread')
-define(`confLDOPTS_SO', `-shared')
+++ /dev/null
-# $Sendmail: Mach386,v 8.8 1999/04/24 05:37:55 gshapiro Exp $
-define(`confCC', `gcc')
-define(`confMAPDEF', `-DNDBM')
-define(`confLIBS', `-ldbm')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/lib')
-define(`confDEPEND_TYPE', `CC-M')
+++ /dev/null
-# $Sendmail: NCR.MP-RAS.2.x,v 8.13 1999/06/02 22:53:39 gshapiro Exp $
-define(`confMAPDEF', `-DNDBM')
-define(`confENVDEF', `-DNCR_MP_RAS2')
-define(`confOPTIMIZE', `-O2')
-APPENDDEF(`confINCDIRS', `-I/usr/include -I/usr/ucbinclude')
-define(`confLIBDIRS', `-L/usr/ucblib')
-define(`confLIBS', `-lnsl -lnet -lsocket -lelf -lc -lucb')
-define(`confMBINDIR', `/usr/ucblib')
-define(`confSBINDIR', `/usr/ucbetc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/ucblib')
-define(`confSTDIR', `/var/ucblib')
-define(`confINSTALL', `/usr/ucb/install')
-define(`confDEPEND_TYPE', `NCR')
+++ /dev/null
-# $Sendmail: NCR.MP-RAS.3.x,v 8.16 1999/10/25 16:32:02 ca Exp $
-define(`confMAPDEF', `-DNDBM -DMAP_REGEX')
-define(`confENVDEF', `-DNCR_MP_RAS3')
-define(`confOPTIMIZE', `-O2')
-APPENDDEF(`confINCDIRS', `-I/usr/include -I/usr/ucbinclude')
-define(`confLIBDIRS', `-L/usr/ucblib')
-define(`confLIBS', `-lsocket -lnsl -lelf -lc -lucb')
-define(`confMBINDIR', `/usr/ucblib')
-define(`confSBINDIR', `/usr/ucbetc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/ucblib')
-define(`confSTDIR', `/var/ucblib')
-define(`confINSTALL', `/usr/ucb/install')
-define(`confDEPEND_TYPE', `NCR')
+++ /dev/null
-# $Sendmail: NEWS-OS.4.x,v 8.8 1999/04/24 05:37:56 gshapiro Exp $
-define(`confBEFORE', `limits.h')
-define(`confMAPDEF', `-DNDBM')
-define(`confLIBS', `-lmld')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/lib')
-PUSHDIVERT(3)
-limits.h:
- touch limits.h
-POPDIVERT
+++ /dev/null
-# $Sendmail: NEWS-OS.6.x,v 8.13 1999/08/08 06:42:07 gshapiro Exp $
-define(`confCC', `/bin/cc')
-define(`confBEFORE', `sysexits.h ndbm.o')
-define(`confMAPDEF', `-DNDBM -DNIS')
-define(`confLIBS', `ndbm.o -lelf -lsocket -lnsl')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `sys')
-define(`confINSTALL', `/usr/ucb/install')
-PUSHDIVERT(3)
-sysexits.h:
- ln -s /usr/ucbinclude/sysexits.h .
-
-ndbm.o:
- if [ ! -f /usr/include/ndbm.h ]; then \
- ln -s /usr/ucbinclude/ndbm.h .; \
- fi; \
- if [ -f /usr/lib/libndbm.a ]; then \
- ar x /usr/lib/libndbm.a ndbm.o; \
- else \
- ar x /usr/ucblib/libucb.a ndbm.o; \
- fi;
-POPDIVERT
+++ /dev/null
-# $Sendmail: NEXTSTEP.4.x,v 8.5 1999/12/08 06:08:07 gshapiro Exp $
-PUSHDIVERT(1)
-# NEXTSTEP 3.1 and 3.2 only support m68k and i386
-#ARCH= -arch m68k -arch i386 -arch hppa -arch sparc
-#ARCH= -arch m68k -arch i386
-#ARCH= ${RC_CFLAGS}
-# For new sendmail Makefile structure, this must go in the ENVDEF and LDOPTS
-POPDIVERT
-define(`confBEFORE', `unistd.h dirent.h')
-define(`confMAPDEF', `-DNDBM -DNIS -DNETINFO')
-define(`confENVDEF', `-DNeXT -Wno-precomp -pipe ${RC_CFLAGS}')
-define(`confLDOPTS', `${RC_CFLAGS}')
-define(`confLIBS', `-ldbm')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/lib')
-define(`confINSTALL', `${BUILDBIN}/install.sh')
-define(`confRANLIBOPTS', `-c')
-PUSHDIVERT(3)
-unistd.h:
- cp /dev/null unistd.h
-
-dirent.h:
- echo "#include <sys/dir.h>" > dirent.h
- echo "#define dirent direct" >> dirent.h
-POPDIVERT
+++ /dev/null
-# $Sendmail: NeXT.2.x,v 8.11 1999/12/08 06:08:07 gshapiro Exp $
-define(`confBEFORE', `unistd.h dirent.h')
-define(`confMAPDEF', `-DNDBM -DNIS -DNETINFO')
-define(`confENVDEF', `-DNeXT')
-define(`confLIBS', `-ldbm')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/lib')
-define(`confINSTALL', `${BUILDBIN}/install.sh')
-define(`confRANLIBOPTS', `-c')
-PUSHDIVERT(3)
-unistd.h:
- cp /dev/null unistd.h
-
-dirent.h:
- echo "#include <sys/dir.h>" > dirent.h
- echo "#define dirent direct" >> dirent.h
-POPDIVERT
+++ /dev/null
-# $Sendmail: NeXT.3.x,v 8.12 2000/02/01 08:39:38 gshapiro Exp $
-PUSHDIVERT(1)
-# NEXTSTEP 3.1 and 3.2 only support m68k and i386
-#ARCH= -arch m68k -arch i386 -arch hppa -arch sparc
-#ARCH= -arch m68k -arch i386
-#ARCH= ${RC_CFLAGS}
-# For new sendmail Makefile structure, this must go in the ENVDEF and LDOPTS
-POPDIVERT
-define(`confBEFORE', `unistd.h dirent.h')
-define(`confMAPDEF', `-DNDBM -DNIS -DNETINFO')
-define(`confENVDEF', `-DNeXT -Wno-precomp -pipe ${RC_CFLAGS}')
-define(`confLDOPTS', `${RC_CFLAGS}')
-define(`confLIBS', `-ldbm')
-define(`confMANROOT', `/usr/man/cat')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/lib')
-define(`confUBINOWN', `root')
-define(`confMANOWN', `root')
-define(`confINSTALL', `${BUILDBIN}/install.sh')
-define(`confRANLIBOPTS', `-c')
-PUSHDIVERT(3)
-unistd.h:
- cp /dev/null unistd.h
-
-dirent.h:
- echo "#include <sys/dir.h>" > dirent.h
- echo "#define dirent direct" >> dirent.h
-POPDIVERT
+++ /dev/null
-# $Sendmail: NeXT.4.x,v 8.15 2000/02/02 07:16:30 gshapiro Exp $
-PUSHDIVERT(1)
-# NEXTSTEP 3.1 and 3.2 only support m68k and i386
-#ARCH= -arch m68k -arch i386 -arch hppa -arch sparc
-#ARCH= -arch m68k -arch i386
-#ARCH= ${RC_CFLAGS}
-# For new sendmail Makefile structure, this must go in the ENVDEF and LDOPTS
-POPDIVERT
-define(`confBEFORE', `unistd.h dirent.h')
-define(`confMAPDEF', `-DNDBM -DNIS -DNETINFO')
-define(`confENVDEF', `-DNeXT -Wno-precomp -pipe ${RC_CFLAGS}')
-define(`confLDOPTS', `${RC_CFLAGS}')
-define(`confLIBS', `-ldbm')
-define(`confRANLIBOPTS', `-c')
-define(`confMANROOT', `/usr/man/cat')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/lib')
-define(`confUBINOWN', `root')
-define(`confMANOWN', `root')
-define(`confINSTALL', `${BUILDBIN}/install.sh')
-define(`confRANLIBOPTS', `-c')
-PUSHDIVERT(3)
-unistd.h:
- cp /dev/null unistd.h
-
-dirent.h:
- echo "#include <sys/dir.h>" > dirent.h
- echo "#define dirent direct" >> dirent.h
-POPDIVERT
+++ /dev/null
-# $Sendmail: NetBSD,v 8.9 1999/12/25 01:24:09 gshapiro Exp $
-define(`confMAPDEF', `-DNEWDB -DNIS -DMAP_REGEX')
-define(`confENVDEF', ` -DNETISO')
-define(`confDEPEND_TYPE', `CC-M')
-define(`confSTDIO_TYPE', `torek')
-define(`confSBINGRP', `wheel')
-define(`confUBINOWN', `root')
-define(`confUBINGRP', `wheel')
-define(`confMANOWN', `root')
-define(`confMANGRP', `wheel')
+++ /dev/null
-# $Sendmail: NetBSD.8.3,v 8.8 1999/08/08 02:52:05 gshapiro Exp $
-define(`confMAPDEF', `-DNEWDB -DNIS -DMAP_REGEX')
+++ /dev/null
-# $Sendmail: NonStop-UX,v 8.12 1999/06/02 22:53:39 gshapiro Exp $
-define(`confCC', `gcc')
-define(`confMAPDEF', `-DNDBM')
-define(`confENVDEF', `-DNonStop_UX_BXX -D_SVID')
-APPENDDEF(`confINCDIRS', `-I/usr/include -I/usr/ucbinclude')
-define(`confLIBDIRS', `-L/usr/ucblib')
-define(`confLIBS', `-lsocket -lnsl -lelf -lucb')
-define(`confMBINDIR', `/usr/ucblib')
-define(`confSBINDIR', `/usr/ucbetc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/ucblib')
-define(`confSBINGRP', `mail')
-define(`confINSTALL', `/usr/ucb/install')
-define(`confDEPEND_TYPE', `CC-M')
+++ /dev/null
-# $Sendmail: OSF1,v 8.12 1999/11/12 21:19:05 rand Exp $
-define(`confCC', `cc -std1 -Olimit 1000')
-define(`confMAPDEF', `-DNDBM -DNIS -DMAP_REGEX')
-define(`confLIBS', `-ldbm')
-define(`confSTDIR', `/var/adm/sendmail')
-define(`confINSTALL', `installbsd')
-define(`confEBINDIR', `/usr/lbin')
-define(`confUBINDIR', `${BINDIR}')
-define(`confDEPEND_TYPE', `CC-M')
-
-define(`confMTLDOPTS', `-lpthread')
+++ /dev/null
-# $Sendmail: OpenBSD,v 8.7 1999/05/06 19:45:41 gshapiro Exp $
-define(`confMAPDEF', `-DNEWDB -DNIS -DMAP_REGEX')
-define(`confENVDEF', ` -DNETISO')
-define(`confSTDIO_TYPE', `torek')
+++ /dev/null
-# $Sendmail: PTX,v 8.8 1999/04/24 05:37:57 gshapiro Exp $
-define(`confMAPDEF', `-DNDBM')
-define(`confOPTIMIZE', `-g')
-define(`confLIBS', `-lsocket -linet -lelf -lnsl -lseq')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `sys')
+++ /dev/null
-# $Sendmail: Paragon,v 8.5 1999/04/24 05:37:57 gshapiro Exp $
-define(`confMAPDEF', `-DNDBM')
-define(`confLIBDIRS', `-L/usr/shlib -L/usr/lib')
-define(`confLIBS', `-ldbm')
-define(`confSTDIR', `/var/adm/sendmail')
-define(`confINSTALL', `installbsd')
-define(`confUBINDIR', `${BINDIR}')
+++ /dev/null
-# $Sendmail: PowerUX,v 8.7 1999/06/02 22:53:39 gshapiro Exp $
-define(`confENVDEF', `-D__svr4__')
-define(`confLIBS', `-Bstatic -lsocket -lnsl -lelf -lgen')
-define(`confMBINDIR', `/usr/local/etc')
-define(`confSBINDIR', `/usr/local/etc')
-define(`confUBINDIR', `/usr/local/bin')
-define(`confEBINDIR', `/usr/local/lib')
-define(`confSBINGRP', `mail')
-define(`confINSTALL', `/usr/ucb/install')
+++ /dev/null
-# $Sendmail: QNX,v 8.6 1999/04/05 20:00:39 gshapiro Exp $
-PUSHDIVERT(1)
-#
-# For this Makefile to work you must compile and install the libdb package
-# and then change DBMINC and DBMLIB as appropriate.
-#
-DBMINC= /usr/local/include
-DBMLIB= /usr/local/lib
-POPDIVERT
-define(`confENVDEF', `-Osax -w4 -zc -fr= -D__BIT_TYPES_DEFINED__')
-APPENDDEF(`confINCDIRS', `${DBMINC}')
-define(`confLIBDIRS', `${DBMLIB}')
-define(`confLIBS', `-lsocket')
-define(`confLDOPTS', `-M -N256k')
-define(`confINSTALL', `${BUILDBIN}/install.sh')
+++ /dev/null
-# $Sendmail: RISCos,v 8.8 1999/06/02 22:53:40 gshapiro Exp $
-define(`confCC', `cc -systype bsd43 -Olimit 900')
-define(`confBEFORE', `stdlib.h dirent.h unistd.h stddef.h')
-define(`confMAPDEF', `-DNDBM')
-define(`confENVDEF', `-DRISCOS')
-define(`confLIBS', `-lmld')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `sys')
-define(`confINSTALL', `/usr/bsd43/bin/install')
-PUSHDIVERT(3)
-stdlib.h stddef.h:
- cp /dev/null $@
-
-unistd.h:
- echo "typedef unsigned short mode_t;" > unistd.h
-
-dirent.h:
- echo "#include <sys/dir.h>" > dirent.h
- echo "#define dirent direct" >> dirent.h
-POPDIVERT
+++ /dev/null
-# $Sendmail: RISCos.4_0,v 8.9 1999/06/02 22:53:40 gshapiro Exp $
-define(`confCC', `cc -systype bsd43 -Olimit 900')
-define(`confBEFORE', `stdlib.h dirent.h unistd.h stddef.h')
-define(`confMAPDEF', `-DNDBM')
-define(`confENVDEF', `-DRISCOS -DRISCOS_4_0')
-define(`confLIBS', `-lmld')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `sys')
-define(`confINSTALL', `${BUILDBIN}/install.sh')
-PUSHDIVERT(3)
-stdlib.h stddef.h:
- cp /dev/null $@
-
-unistd.h:
- echo "typedef unsigned short mode_t;" > unistd.h
-
-dirent.h:
- echo "#include <sys/dir.h>" > dirent.h
- echo "#define dirent direct" >> dirent.h
-POPDIVERT
+++ /dev/null
-# $Sendmail: Rhapsody,v 8.4 1999/08/13 21:31:10 gshapiro Exp $
-#
-# Wilfredo Sanchez <wsanchez@apple.com>:
-# We look a lot more like 4.4BSD than NeXTStep or OpenStep.
-#
-define(`confCC', `cc -traditional-cpp -pipe ${Extra_CC_Flags}')
-define(`confMAPDEF', `-DNEWDB -DNIS -DMAP_REGEX -DNETINFO -DAUTO_NETINFO_ALIASES -DAUTO_NETINFO_HOSTS')
-define(`confENVDEF', `-DNETISO')
-define(`confLDOPTS', `${Extra_LD_Flags}')
-define(`confOPTIMIZE', `-O3')
-define(`confRANLIBOPTS', `-c')
-define(`confHFDIR', `/usr/share/sendmail')
-define(`confMANOWN', `root')
-define(`confMANGRP', `wheel')
-define(`confUBINOWN', `root')
-define(`confUBINGRP', `wheel')
-define(`confSBINOWN', `root')
-define(`confSBINGRP', `wheel')
+++ /dev/null
-# $Sendmail: SCO,v 8.6 1999/06/02 22:53:40 gshapiro Exp $
-define(`confENVDEF', `-D_SCO_unix_')
-define(`confLIBS', `-lsocket -lprot_s -lx -lc_s')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/lib')
+++ /dev/null
-# $Sendmail: SCO.4.2,v 8.8 1999/06/02 22:53:40 gshapiro Exp $
-define(`confENVDEF', `-D_SCO_unix_4_2')
-define(`confLIBS', `-lsocket -lndbm -lprot_s -lx -lc_s')
-define(`confMAPDEF', `-DNDBM')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `bin')
-define(`confINSTALL', `${BUILDBIN}/install.sh')
+++ /dev/null
-# $Sendmail: SCO.5.x,v 8.13 1999/04/26 16:11:50 gshapiro Exp $
-define(`confCC', `cc -b elf')
-define(`confLIBS', `-lsocket -lndbm -lprot -lcurses -lm -lx -lgen')
-define(`confMAPDEF', `-DMAP_REGEX -DNDBM')
-define(`confSBINGRP', `bin')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/bin')
-define(`confINSTALL', `${BUILDBIN}/install.sh')
+++ /dev/null
-# $Sendmail: SINIX.5.43,v 8.2 1999/04/24 05:37:59 gshapiro Exp $
-define(`confCC', `/usr/bin/cc')
-define(`confENVDEF', `-W0 -D__svr4__')
-define(`confLIBS', `-lsocket -lnsl -lelf -lmproc')
-define(`confMBINDIR', `/usr/ucblib')
-define(`confSBINDIR', `/usr/ucbetc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/ucblib')
-define(`confSBINGRP', `mail')
-define(`confINSTALL', `/usr/ucb/install')
-define(`confLDOPTS', `-s')
+++ /dev/null
-# $Sendmail: SINIX.5.44,v 8.2 1999/04/24 05:37:59 gshapiro Exp $
-define(`confCC', `/usr/bin/cc')
-define(`confENVDEF', `-W0 -D__svr4__ -Klp64')
-define(`confLIBS', `-lsocket -lnsl -lelf -lmproc')
-define(`confMBINDIR', `/usr/ucblib')
-define(`confSBINDIR', `/usr/ucbetc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/ucblib')
-define(`confSBINGRP', `mail')
-define(`confINSTALL', `/usr/ucb/install')
-define(`confLDOPTS', `-Klp64 -s')
+++ /dev/null
-# $Sendmail: SVR4,v 8.9 1999/06/02 22:53:40 gshapiro Exp $
-define(`confCC', `gcc')
-define(`confMAPDEF', `-DNDBM')
-define(`confENVDEF', `-D__svr4__')
-define(`confLIBS', `-ldbm -lsocket -lnsl -lelf')
-define(`confMBINDIR', `/usr/ucblib')
-define(`confSBINDIR', `/usr/ucbetc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/ucblib')
-define(`confSBINGRP', `mail')
-define(`confINSTALL', `/usr/ucb/install')
-define(`confDEPEND_TYPE', `CC-M')
+++ /dev/null
-# $Sendmail: SunOS,v 8.8 1999/04/24 05:37:59 gshapiro Exp $
-define(`confMAPDEF', `-DNDBM -DNIS')
-define(`confLDOPTS', `-Bstatic')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/lib')
-define(`confDEPEND_TYPE', `CC-M')
+++ /dev/null
-# $Sendmail: SunOS.4.0,v 8.9 1999/06/02 22:53:41 gshapiro Exp $
-define(`confBEFORE', `stdlib.h stddef.h limits.h')
-define(`confMAPDEF', `-DNDBM -DNIS')
-define(`confENVDEF', `-DSUNOS403')
-define(`confLDOPTS', `-Bstatic')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/lib')
-PUSHDIVERT(3)
-stddef.h stdlib.h limits.h:
- cp /dev/null $@
-POPDIVERT
+++ /dev/null
-# $Sendmail: SunOS.5.1,v 8.11 1999/06/02 22:53:41 gshapiro Exp $
-define(`confCC', `gcc')
-define(`confBEFORE', `sysexits.h')
-define(`confMAPDEF', `-DNDBM -DNIS')
-define(`confENVDEF', `-DSOLARIS=20100')
-define(`confLIBS', `-lsocket -lnsl -lelf')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `sys')
-define(`confINSTALL', `${BUILDBIN}/install.sh')
-define(`confDEPEND_TYPE', `CC-M')
-PUSHDIVERT(3)
-sysexits.h:
- if [ -r /usr/ucbinclude/sysexits.h ]; \
- then \
- ln -s /usr/ucbinclude/sysexits.h; \
- fi
-POPDIVERT
+++ /dev/null
-# $Sendmail: SunOS.5.2,v 8.11 1999/06/02 22:53:41 gshapiro Exp $
-define(`confCC', `gcc')
-define(`confBEFORE', `sysexits.h')
-define(`confMAPDEF', `-DNDBM -DNIS')
-define(`confENVDEF', `-DSOLARIS=20100')
-define(`confLIBS', `-lsocket -lnsl -lelf')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `sys')
-define(`confINSTALL', `${BUILDBIN}/install.sh')
-define(`confDEPEND_TYPE', `CC-M')
-PUSHDIVERT(3)
-sysexits.h:
- if [ -r /usr/ucbinclude/sysexits.h ]; \
- then \
- ln -s /usr/ucbinclude/sysexits.h; \
- fi
-POPDIVERT
+++ /dev/null
-# $Sendmail: SunOS.5.3,v 8.11 1999/06/02 22:53:41 gshapiro Exp $
-define(`confCC', `gcc')
-define(`confBEFORE', `sysexits.h')
-define(`confMAPDEF', `-DNDBM -DNIS -DNISPLUS')
-define(`confENVDEF', `-DSOLARIS=20300')
-define(`confLIBS', `-lsocket -lnsl -lelf')
-define(`confMBINDIR', `/usr/lib')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `sys')
-define(`confINSTALL', `${BUILDBIN}/install.sh')
-define(`confDEPEND_TYPE', `CC-M')
-PUSHDIVERT(3)
-sysexits.h:
- if [ -r /usr/ucbinclude/sysexits.h ]; \
- then \
- ln -s /usr/ucbinclude/sysexits.h; \
- fi
-POPDIVERT
+++ /dev/null
-# $Sendmail: SunOS.5.4,v 8.13 1999/06/02 22:53:41 gshapiro Exp $
-define(`confCC', `gcc')
-define(`confBEFORE', `sysexits.h')
-define(`confMAPDEF', `-DNDBM -DNIS -DNISPLUS')
-define(`confENVDEF', `-DSOLARIS=20400')
-define(`confLIBS', `-lsocket -lnsl -lelf')
-define(`confMBINDIR', `/usr/lib')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `sys')
-define(`confINSTALL', `${BUILDBIN}/install.sh')
-define(`confDEPEND_TYPE', `CC-M')
-PUSHDIVERT(3)
-sysexits.h:
- if [ -r /usr/include/sysexits.h ]; \
- then \
- ln -s /usr/include/sysexits.h; \
- fi
-POPDIVERT
+++ /dev/null
-# $Sendmail: SunOS.5.5,v 8.14 1999/06/02 22:53:42 gshapiro Exp $
-define(`confCC', `gcc')
-define(`confBEFORE', `sysexits.h')
-define(`confMAPDEF', `-DNDBM -DNIS -DNISPLUS -DMAP_REGEX')
-define(`confENVDEF', `-DSOLARIS=20500')
-define(`confLIBS', `-lsocket -lnsl -lkstat')
-define(`confMBINDIR', `/usr/lib')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `sys')
-define(`confINSTALL', `${BUILDBIN}/install.sh')
-define(`confDEPEND_TYPE', `CC-M')
-PUSHDIVERT(3)
-sysexits.h:
- if [ -r /usr/include/sysexits.h ]; \
- then \
- ln -s /usr/include/sysexits.h; \
- fi
-POPDIVERT
+++ /dev/null
-# $Sendmail: SunOS.5.6,v 8.14 1999/06/02 22:53:42 gshapiro Exp $
-define(`confCC', `gcc')
-define(`confBEFORE', `sysexits.h')
-define(`confMAPDEF', `-DNDBM -DNIS -DNISPLUS -DMAP_REGEX')
-define(`confENVDEF', `-DSOLARIS=20600')
-define(`confLIBS', `-lsocket -lnsl -lkstat')
-define(`confMTLDOPTS', `-lpthread')
-define(`confMBINDIR', `/usr/lib')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `sys')
-define(`confINSTALL', `${BUILDBIN}/install.sh')
-define(`confDEPEND_TYPE', `CC-M')
-PUSHDIVERT(3)
-sysexits.h:
- if [ -r /usr/include/sysexits.h ]; \
- then \
- ln -s /usr/include/sysexits.h; \
- fi
-POPDIVERT
+++ /dev/null
-# $Sendmail: SunOS.5.7,v 8.15 1999/07/30 22:42:47 rand Exp $
-define(`confCC', `gcc')
-define(`confBEFORE', `sysexits.h')
-define(`confMAPDEF', `-DNDBM -DNIS -DNISPLUS -DMAP_REGEX')
-define(`confENVDEF', `-DSOLARIS=20700')
-define(`confLIBS', `-lsocket -lnsl')
-define(`confMTLDOPTS', `-lpthread')
-define(`confMBINDIR', `/usr/lib')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `sys')
-define(`confINSTALL', `${BUILDBIN}/install.sh')
-define(`confDEPEND_TYPE', `CC-M')
-PUSHDIVERT(3)
-sysexits.h:
- if [ -r /usr/include/sysexits.h ]; \
- then \
- ln -s /usr/include/sysexits.h; \
- fi
-POPDIVERT
+++ /dev/null
-# $Sendmail: SunOS.5.8,v 8.6 1999/10/27 03:02:03 gshapiro Exp $
-define(`confCC', `gcc')
-define(`confBEFORE', `sysexits.h')
-define(`confMAPDEF', `-DNDBM -DNIS -DNISPLUS -DMAP_REGEX -DLDAPMAP')
-define(`confENVDEF', `-DSOLARIS=20800')
-define(`confLIBS', `-lsocket -lnsl -lldap')
-define(`confMTLDOPTS', `-lpthread')
-define(`confMBINDIR', `/usr/lib')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `sys')
-define(`confINSTALL', `${BUILDBIN}/install.sh')
-define(`confDEPEND_TYPE', `CC-M')
-PUSHDIVERT(3)
-sysexits.h:
- if [ -r /usr/include/sysexits.h ]; \
- then \
- ln -s /usr/include/sysexits.h; \
- fi
-POPDIVERT
+++ /dev/null
-# $Sendmail: Titan,v 8.6 1999/02/07 03:21:22 gshapiro Exp $
-define(`confCC', `cc -43')
-define(`confBEFORE', `stddef.h stdlib.h')
-define(`confMAPDEF', `-DNDBM')
-define(`confLIBS', `-ldbm')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/lib')
-PUSHDIVERT(3)
-stddef.h stdlib.h:
- cp /dev/null $@
-POPDIVERT
+++ /dev/null
-# $Sendmail: ULTRIX,v 8.12 1999/09/23 20:51:48 gshapiro Exp $
-define(`confCC', `cc -Olimit 1095')
-define(`confMAPDEF', `-DNDBM -DNIS')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/lib')
-define(`confHFDIR', `/usr/lib')
-define(`confDEPEND_TYPE', `CC-M')
+++ /dev/null
-# $Sendmail: UMAX,v 8.7 1999/06/02 22:53:42 gshapiro Exp $
-define(`confBEFORE', `stddef.h')
-define(`confMAPDEF', `-DNIS')
-define(`confENVDEF', `-DUMAXV')
-define(`confLIBS', `-lyp -lrpc')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/lib')
-define(`confHFDIR', `/usr/lib')
-PUSHDIVERT(3)
-stddef.h:
- echo "#define _STDDEF_H" > stddef.h
- chmod 444 stddef.h
-POPDIVERT
+++ /dev/null
-# $Sendmail: UNICOS,v 8.10 1999/06/02 22:53:43 gshapiro Exp $
-define(`confENVDEF', `-DUNICOS')
-define(`confOPTIMIZE', `-O')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/lib')
+++ /dev/null
-# $Sendmail: UNIX_SV.4.x.i386,v 8.10 1999/09/17 20:49:59 gshapiro Exp $
-define(`confCC', `gcc')
-define(`confMAPDEF', `-DNDBM')
-define(`confENVDEF', `-D__svr4__ -DUNIXWARE')
-define(`confLIBS', `-lc -ldbm -lsocket -lnsl -lgen -lelf')
-define(`confMBINDIR', `/usr/ucblib')
-define(`confSBINDIR', `/usr/ucbetc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/ucblib')
-define(`confSBINGRP', `mail')
-define(`confINSTALL', `/usr/ucb/install')
+++ /dev/null
-# $Sendmail: UX4800,v 8.13 1999/08/08 02:52:05 gshapiro Exp $
-define(`confCC', `/usr/abiccs/bin/cc -KOlimit=1000')
-define(`confBEFORE', `sysexits.h ndbm.h')
-define(`confMAPDEF', `-DNDBM -DNIS')
-define(`confENVDEF', `-DHASSNPRINTF=1')
-define(`confLIBS', `-lsocket -lnsl -lelf')
-define(`confMBINDIR', `/usr/ucblib')
-define(`confSBINDIR', `/usr/ucbetc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/ucblib')
-define(`confSBINGRP', `sys')
-define(`confSTDIR', `/var/ucblib')
-define(`confINSTALL', `/usr/ucb/install')
-PUSHDIVERT(3)
-sysexits.h:
- echo '#ifndef _LOCAL_SYSEXITS_H_' > sysexits.h;
- echo '#define _LOCAL_SYSEXITS_H_' >> sysexits.h;
- cat /usr/abiccs/ucbinclude/sysexits.h >> sysexits.h;
- echo '#endif /* _LOCAL_SYSEXITS_H_ */' >> sysexits.h;
-
-ndbm.h:
- sed 's/void/char/' /usr/abiccs/include/ndbm.h > ndbm.h
-POPDIVERT
+++ /dev/null
-# $Sendmail: UXPDS.V10,v 8.13 1999/06/02 22:53:45 gshapiro Exp $
-define(`confCC', `/usr/ccs/bin/cc')
-define(`confMAPDEF', `-DNDBM -DNIS')
-define(`confENVDEF', `-DUXPDS=10')
-APPENDDEF(`confINCDIRS', `-I/usr/include -I/usr/ucbinclude')
-define(`confLIBS', `/usr/ucblib/libdbm.a /usr/ucblib/libucb.a -lsocket -lnsl -lelf')
-define(`confMBINDIR', `/usr/ucblib')
-define(`confSBINDIR', `/usr/ucbetc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/ucblib')
-define(`confSBINGRP', `mail')
-define(`confINSTALL', `/usr/ucb/install')
-define(`confMANROOT', `/usr/local/man/man')
+++ /dev/null
-# $Sendmail: UXPDS.V20,v 8.12 1999/06/02 22:53:45 gshapiro Exp $
-define(`confCC', `/usr/ccs/bin/cc')
-define(`confBEFORE', `netinet/ip_var.h')
-define(`confMAPDEF', `-DNDBM -DNIS')
-define(`confENVDEF', `-DUXPDS=20')
-define(`confLIBS', `/usr/ucblib/libdbm.a -lsocket -lnsl -lelf')
-define(`confMBINDIR', `/usr/ucblib')
-define(`confSBINDIR', `/usr/ucbetc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/ucblib')
-define(`confSBINGRP', `mail')
-define(`confINSTALL', `${BUILDBIN}/install.sh')
-define(`confMANROOT', `/usr/local/man/man')
-PUSHDIVERT(3)
-netinet/ip_var.h: netinet /usr/include/netinet/ip_var.h
- sed '/ip_var_f.h/d' /usr/include/netinet/ip_var.h > netinet/ip_var.h
-
-netinet:
- mkdir netinet
-POPDIVERT
+++ /dev/null
-# $Sendmail: UnixWare.5.i386,v 8.4 1999/04/24 05:38:02 gshapiro Exp $
-#
-# System V Rel 5.x (a.k.a Unixware7 w/o BSD-Compatiblity Libs ie. native)
-# Contributed by Paul Gampe <paulg@apnic.net>
-#
-define(`confCC', `/usr/ccs/bin/cc')
-define(`confMAPDEF', `-DNDBM -DMAP_REGEX')
-define(`confENVDEF', `-D__svr5__')
-define(`confLIBS', `-lsocket -lnsl -lelf')
-define(`confSHELL', `/usr/bin/sh')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/etc/mail')
-define(`confUBINDIR', `/etc/mail')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `mail')
-define(`confINSTALL', `/usr/ucb/install')
+++ /dev/null
-# $Sendmail: dcosx.1.x.NILE,v 8.5 1999/06/02 22:53:46 gshapiro Exp $
-define(`confENVDEF', `-D__svr4__ -DDCOSx')
-define(`confLIBS', `-lsocket -lnsl -lelf')
-define(`confHFDIR', `/usr/share/lib/mail')
-define(`confINSTALL', `/usr/ucb/install')
-define(`confSBINGRP', `sys')
+++ /dev/null
-# $Sendmail: dgux,v 8.7 1999/04/24 05:38:02 gshapiro Exp $
-define(`confMAPDEF', `-DNDBM -DNIS')
-define(`confLIBS', `-ldbm')
-define(`confMBINDIR', `/usr/bin')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `bin')
+++ /dev/null
-# $Sendmail: m88k,v 8.2 2000/01/28 19:00:01 gshapiro Exp $
-#
-# Contributed by Sergey Rusanov <rsm@utfoms.udmnet.ru>
-#
-define(`confCC', `gcc')
-define(`confOPTIMIZE', `-O2')
-define(`confMAPDEF', `-DNDBM')
-define(`confENVDEF', `-DMOTO')
-define(`confINCDIRS', `-I/usr/include -I/usr/ucbinclude')
-define(`confLIBDIRS', `-L/usr/lib -L/usr/ucblib')
-define(`confLIBS', `-lc -ldbm -lsocket -lnsl -lelf -lucb')
-define(`confMBINDIR', `/usr/local/sbin')
-define(`confSBINDIR', `/usr/ucb')
-define(`confUBINDIR', `/usr/local/bin')
-define(`confEBINDIR', `/usr/ucblib')
-define(`confSBINGRP', `mail')
-define(`confSTDIR', `/var/log')
-define(`confHFDIR', `/usr/local/sbin')
-define(`confINSTALL', `/usr/ucb/install')
-define(`confDEPEND_TYPE', `CC-M')
+++ /dev/null
-# $Sendmail: maxion,v 8.8 1999/04/24 05:38:02 gshapiro Exp $
-define(`confCC', `/usr/ucb/cc')
-define(`confMAPDEF', `-DNDBM -DNIS')
-define(`confLIBDIRS', `-L/usr/ucblib')
-define(`confLIBS', `-ldbm -lgen -lucb')
-define(`confMBINDIR', `/usr/ucblib')
-define(`confSBINDIR', `/usr/ucbetc')
-define(`confUBINDIR', `/usr/ucb')
-define(`confEBINDIR', `/usr/ucblib')
-define(`confSBINOWN', `smtp')
-define(`confSBINGRP', `mail')
-define(`confSTDIR', `/var/adm/log')
-define(`confINSTALL', `/usr/ucb/install')
+++ /dev/null
-# $Sendmail: uts.systemV,v 8.14 1999/06/02 22:53:47 gshapiro Exp $
-PUSHDIVERT(1)
-# Sendmail 8 on UTS requires BIND 4.9's include files and lib44bsd and
-# libresolv libraries. The BIND version on UTS is much too old.
-#
-BINDPATH=../../../bind
-POPDIVERT
-define(`confBEFORE', `stddef.h')
-define(`confMAPDEF', `-DNIS -DNDBM')
-define(`confENVDEF', `-D_UTS')
-define(`confOPTIMIZE', `-g')
-APPENDDEF(`confINCDIRS', `-I${BINDPATH}/include -I${BINDPATH}/compat/include')
-define(`confLIBDIRS', `-L${BINDPATH}/res -L${BINDPATH}/compat/lib')
-define(`confLIBS', `-lyp -lrpc -lbsd -lsocket -la')
-define(`confMBINDIR', `/usr/lib')
-define(`confSBINDIR', `/usr/etc')
-define(`confUBINDIR', `/usr/lib')
-define(`confEBINDIR', `/usr/lib')
-define(`confSBINGRP', `mail')
-define(`confINSTALL', `${BUILDBIN}/install.sh')
-PUSHDIVERT(3)
-stddef.h:
- echo "#include <sys/types.h>" > stddef.h
-POPDIVERT
+++ /dev/null
-This directory contains tools. Do not attempt to actually build
-anything in this directory.
-
-The Build script allows you to specify a base location for the object
-files by using the -O flag:
-
- Build -O /tmp
-
-will put the object files in /tmp/obj.*/. Also, if the SENDMAIL_SUFFIX
-environment variable is set, its value will be used in the obj.* directory
-name.
-
-The Build script allows you to specify a site configuration file by using
-the -f flag:
-
- Build -f siteconfig.m4
-
-You can put such site configuration files in the Site sub-directory;
-see Site/README for details.
-
-If you need to support multiple build configurations from the same tree,
-you can use prefixes to differentiate your configurations. Use the -Q
-flag to Build:
-
- Build -Q prefix
-
-Build will select a prefix.*.m4 file instead of the site.*.m4 file according
-to the conventions in Site/README, and use it to modify the build
-configuration. The object directory used will be obj.prefix.*/. Your
-prefix.*.m4 files should reside in the Site directory. You may not use
--Q and -f simultaneously.
-
-While building a site configuration file, beyond using define() to set
-variables, you can also add to a definition using the APPENDDEF() and
-PREPENDDEF() macros. For example:
-
- APPENDDEF(`confINCDIRS', `-I/usr/local/bind/include')
-
-will add -I/usr/local/bind/include to the already existing confINCDIRS.
-Note: There must be no trailing spaces after the last quote mark and
-before the closing parenthesis. Also you may need to properly quote
-m4 reserved words as specified by your vendor's m4 command.
-
-By default, sendmail will search your system for include and library
-directories as well as certain libraries (libdb.* for Berkeley DB and
-libbind.a or libresolv.* for name resolution). You can turn off this
-configuration step by specifying the -S flag with the Build command.
-
-The OS subtree contains definitions for variations on a standard
-model for system installation. The M4 variables that can be defined
-and their defaults before referencing the appropriate OS definitions
-are listed below. Note that variables preceded by an asterisk (*)
-are currently not used in the open source distribution.
-
-confBEFORE [empty] Files to create before sendmail is
- compiled. The methods must be defined
- in the Makefile using PUSHDIVERT(3).
-confBUILDBIN ../../devtools/bin The location of the build support
- binaries, relative to the obj.*
- directory.
-confCC cc The C compiler to use.
-confOPTIMIZE -O Flags passed to C compiler as ${O}.
-confCCOPTS [empty] Additional options to pass to confCC.
-*confCCOPTS_SO -fPIC Additional options for compiling
- shared object libraries.
-*confMTCCOPTS [empty] Additional options for compiling
- multi-threaded object files.
-confCOPY cp A program that copies files.
-confDEPEND_TYPE generic How to build dependencies. This should
- be the name of a file in
- devtools/M4/depend
-confEBINDIR /usr/libexec The location for binaries executed
- from other binaries, e.g., mail.local
- or smrsh.
-confENVDEF [empty] -D flags passed to C compiler.
-confFORCE_RMAIL [undefined] If defined, install the rmail program
- without question.
-confHFDIR /etc/mail Location of the sendmail helpfile.
-confHFFILE helpfile Name of the installed helpfile.
-confINCDIRS [empty] -I flags passed to C compiler.
-confINSTALL install The BSD-compatible install program.
- Use ${BUILDBIN}/install.sh if none
- is available on your system.
-confINSTALL_RAWMAN [undefined] Install the unformatted manual pages.
-*confLD confCC Linker to use.
-confLDOPTS [empty] Linker options passed to ld.
-*confLDOPTS_SO -shared -Wl Additional linker options for
- linking shared object libraries.
-*confMTLDOPTS [empty] Additional linker options for
- linking multithreaded binaries.
-confLIBDIRS [empty] -L flags passed to ld.
-confLIBS [varies] -l flags passed to ld.
-confLIBSEARCH db bind resolv 44bsd
- Search for these libraries for
- linking with programs.
-confLIBSEARCHPATH /lib /usr/lib /usr/shlib
- Locations to search for the
- libraries specified by confLIBSEARCH.
-confLINKS ${UBINDIR}/newaliases ${UBINDIR}/mailq \
- ${UBINDIR}/hoststat ${UBINDIR}/purgestat
- Names of links to sendmail.
-confMANROOT /usr/share/man/cat The root of the man subtree.
-confMANROOTMAN /usr/share/man/man The root of the man subtree, for
- unformatted manual pages.
-confMAN1 confMANROOT 1 The location of man1 files.
-confMAN1EXT 1 The extension on files in confMAN1.
-confMAN1SRC 0 The source for man pages installed
- in confMAN1.
-confMAN3 confMANROOT 3 The location of man3 files.
-confMAN3EXT 4 The extension on files in confMAN3.
-confMAN3SRC 0 The source for man pages installed
- in confMAN3.
-confMAN4 confMANROOT 4 The location of man4 files.
-confMAN4EXT 4 The extension on files in confMAN4.
-confMAN4SRC 0 The source for man pages installed
- in confMAN4.
-confMAN5 confMANROOT 5 The location of man5 files.
-confMAN5EXT 5 The extension on files in confMAN5.
-confMAN5SRC 0 The source for man pages installed
- in confMAN5.
-confMAN8 confMANROOT 8 The location of man8 files.
-confMAN8EXT 8 The extension on files in confMAN8.
-confMAN8SRC 0 The source for man pages installed
- in confMAN8.
-confMANDOC -man The macros used to format man pages.
-confMANOWN bin The owner of installed man pages.
-confMANGRP bin The group of installed man pages.
-confMANMODE 444 The mode of installed man pages.
-confMAPDEF [varies] The map definitions, e.g.,
- -DNDBM -DNEWDB. -DNEWDB is always
- added if libdb.* can be found.
-confNO_MAN_BUILD [undefined] If defined, don't build the man
- pages.
-confNO_HELPFILE_INSTALL [undefined] If defined, don't install the sendmail
- helpfile by default.
-confNO_MAN_INSTALL [undefined] If defined, don't install the man
- pages by default.
-confNO_STATISTICS_INSTALL [undefined] If defined, don't install the sendmail
- statistics file by default.
-confMBINDIR /usr/sbin The location of the MTA (sendmail)
- binary.
-confNROFF groff -Tascii The command to format man pages.
-confOBJADD [empty] Objects that should be included in
- when linking sendmail and the
- associated utilities. See also
- confSRCADD.
-confRANLIB echo The path to the program to use
- as ranlib.
-confRANLIBOPTS [empty] Options to pass to ranlib.
-confSBINDIR /usr/sbin The location of root-oriented
- commands, such as makemap.
-confSBINOWN root The owner for setuid binaries.
-confSBINGRP sbin The group for setuid binaries.
-confSBINMODE 4555 The mode for setuid binaries.
-confSHELL /bin/sh The shell to use inside make.
-confSMOBJADD [empty] Objects that should be included in
- when linking sendmail. See also
- confSMSRCADD.
-confSMSRCADD [empty] C source files which correspond to
- objects listed in confSMOBJADD.
-confSMSRCDIR [varies] The sendmail source directory
- relative to support program obj.*
- directories. If not set, the
- Makefile will use a path set by the
- Build script.
-confSRCADD [empty] C source files which correspond to
- objects listed in confOBJADD.
-confSRCDIR [varies] The root of the source directories
- relative to support program obj.*
- directories. If not set, the
- Makefile will use a path set by the
- Build script.
-confSTDIO_TYPE portable Buffered file implementation
- (based on stdio library). Either
- portable or torek.
-confSTDIR /etc/mail The directory in which to store the
- sendmail statistics file.
-confSTFILE statistics Name of the installed statistics file.
-confSTRIP strip What program to use for stripping
- executables.
-confSTRIPOPTS [empty] Options to pass to the strip program.
-confUBINDIR /usr/bin The directory for user-executable
- binaries.
-confUBINOWN bin The owner for user-executable binaries.
-confUBINGRP bin The group for user-executable binaries.
-confUBINMODE 555 The mode for user-executable binaries.
-
-There are also program specific variables for each of the programs
-in the sendmail distribution. Each has the form `conf_prog_ENVDEF',
-for example, `conf_sendmail_ENVDEF'. If the program name consists
-a '.' it must be replaced by '_' first, e.g., use `conf_mail_local_LIBS'
-instead of `conf_mail.local_LIBS'. The variables are:
-
-conf_prog_ENVDEF [empty] -D flags passed to C compiler when
- compiling prog.
-conf_prog_LIBS [varies] -l flags passed to ld when linking
- prog.
-conf_prog_SRCADD [empty] C source files to compile and link
- for prog.
-conf_prog_OBJADD [empty] Additional object files given to ld
- when linking prog.
-
-----------------------------------------------------------------
-
-----------------
-New build system
-----------------
-
-Sendmail's build system has undergone some rearrangement to accommodate
-future development. To the end user building sendmail from a distribution,
-this should have little effect. All the same configuration files and macros
-should still behave the same.
-
-If you need to make some radical changes to a Makefile.m4 or are adding new
-libraries or utilities, you may want to read the rest of this document on
-how to work with the new system.
-
-
---------
-Overview
---------
-
-The purpose of the redesign is twofold. First, it cuts down massively on
-replicated information. Second, the new design should lend itself better to
-working on platforms with somewhat different build tools than on standard
-unix.
-
-The main idea is to have the Makefile.m4 in each subdirectory contain the
-minimum amount of information needed to describe the elements needed for
-the build process and the products produced.
-
-Each product has a type and each type has a template that provides a basic
-makefile for that type. Right now the templates are organized by the broad
-type of the operating system. The two existing types are UNIX and NT.
-
-
-------------------
-Makefile.m4 basics
-------------------
-
-Each Makefile.m4 is split into separate products. For the most part, the
-products are considered totally separate from other products in the
-Makefile.m4. Each products is delineated by two macros: bldPRODUCT_START and
-bldPRODUCT_END.
-
-The form for bldPRODUCT_START is:
-bldPRODUCT_START(<product_type>, <product_name>)
-where <product_type> is the type of product to be produced (e.g., executable,
-library, manpage) and <product_name> is a unique identifier within the
-product_type name space for this Makefile.m4
-
-The form for bldPRODUCT_END is:
-bldPRODUCT_END
-
-This is marks the end of all the information for the current product.
-
-There is one other macro required in any Makefile.m4 and that is bldFINISH
-which takes no arguments and must appear after all the products have been
-defined.
-
-When the actual makefile is generated each product appears in two sections.
-The first is where makefile variables are set (e.g., CFLAGS=-O). The second
-is where the targets appear (e.g., foo.o: foo.c). Anything diverted to
-bldTARGETS_SECTION ends up in the second part of the makefile. Anything
-else turns up in the header part where variables are defined.
-
-As always, any straight text put into Makefile.m4 will just show up as is
-in the finished makefile.
-
-
--------------
-Product Types
--------------
-
-executable
-----------
-
-This means an executable created from C sources. The name of the executable
-is derived from the product_name in the bldPRODUCT_START macro.
-
-bldSOURCES - This should be defined to a space separated list of source
-files that make up the executable.
-
-bldBIN_TYPE - This determines where the binaries will be installed and what
-permissions they will have. Available types are `U', `K', `S', and `E'. See
-M4/make/executable.m4 for what the different types mean.
-
-bldTARGET_LINKS - This determines where additional symbolic links to the
-executable are placed. These should be full pathnames, separated by
-spaces.
-
-
-manpage
--------
-
-This builds manpages from source using *roff.
-
-bldSOURCES - This should be defined to a space separated list of man source
-files.
-
-
-library
--------
-
-This builds a static library from C sources.
-
-bldSOURCES - This should be defined to a space separated list of C source
-files that make up the library.
-
-
-$Revision: 1.1.1.1 $, Last updated $Date: 2000/04/02 19:05:37 $
+++ /dev/null
-The Build script will look for the default site configuration files in
-this directory. Build will include the following files if they are
-present in this directory:
-
- site.config.m4
- site.OS.$SENDMAIL_SUFFIX.m4
- site.OS.m4
- site.post.m4
-
-OS is the name of the operating system file selected from the devtools/OS
-directory. SENDMAIL_SUFFIX is a user environment variable which can be
-used to further distinguish between site configuration files in this
-directory. If set, it will also be used in generating the obj.* directory
-name.
-
-See the README in the devtools directory for more information.
-
-$Revision: 1.1.1.1 $, Last updated $Date: 2000/04/02 19:05:39 $
+++ /dev/null
-#!/bin/sh
-
-# Copyright (c) 1998-2000 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-# Copyright (c) 1993, 1996-1997 Eric P. Allman. All rights reserved.
-# Copyright (c) 1993
-# The Regents of the University of California. All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-# $Sendmail: Build,v 8.145 2000/02/01 05:49:49 gshapiro Exp $
-#
-
-#
-# A quick-and-dirty script to compile sendmail and related programs
-# in the presence of multiple architectures. To use, just use
-# "sh Build".
-#
-
-trap "rm -f $obj/.settings$$; exit" 1 2 3 15
-
-cflag=""
-mflag=""
-Mflag=""
-Aflag=""
-sflag=""
-makeargs=""
-libdirs=""
-incdirs=""
-libsrch=""
-libpath=""
-siteconfig=""
-pfx=""
-obj=""
-oscf=""
-arch=""
-os=""
-rel=""
-mkdir="mkdir -p"
-SENDMAIL_BUILD_FLAGS=""
-EX_OK=0
-EX_USAGE=64
-EX_NOINPUT=66
-EX_UNAVAILABLE=69
-
-full_src_dir=`pwd`
-if [ -z "$src_dir" ]
-then
- src_dir=`basename ${full_src_dir}`
-fi
-absolute_base_dir=`echo ${full_src_dir} | sed "s#${src_dir}\\$##"`
-obj_rel_base_dir='../..'
-
-while [ ! -z "$1" ]
-do
- case $1
- in
- -c) # clean out existing $obj tree
- cflag=1
- SENDMAIL_BUILD_FLAGS="$SENDMAIL_BUILD_FLAGS $1"
- shift
- ;;
-
- -m) # show Makefile name only
- mflag=1
- shift
- ;;
-
- -M) # show the name of the obj. directory
- Mflag=1
- shift
- ;;
-
- -A) # show the name of the architecture
- Aflag=1
- shift
- ;;
-
- -E*) # environment variables to pass into Build
- arg=`echo $1 | sed 's/^-E//'`
- if [ -z "$arg" ]
- then
- shift # move to argument
- arg=$1
- fi
- if [ -z "$arg" ]
- then
- echo "Empty -E flag" >&2
- exit $EX_USAGE
- else
- case $arg
- in
- *=*) # check format
- eval $arg
- export `echo $arg | sed 's;=.*;;'`
- SENDMAIL_BUILD_FLAGS="$SENDMAIL_BUILD_FLAGS -E \"$arg\""
- ;;
- *) # bad format
- echo "Bad format for -E argument ($arg)" >&2
- exit $EX_USAGE
- ;;
- esac
- shift
- fi
- ;;
-
- -L*) # set up LIBDIRS
- libdirs="$libdirs $1"
- SENDMAIL_BUILD_FLAGS="$SENDMAIL_BUILD_FLAGS $1"
- shift
- ;;
-
- -I*) # set up INCDIRS
- incdirs="$incdirs $1"
- SENDMAIL_BUILD_FLAGS="$SENDMAIL_BUILD_FLAGS $1"
- shift
- ;;
-
- -f*) # select site config file
- arg=`echo $1 | sed 's/^-f//'`
- if [ -z "$arg" ]
- then
- shift # move to argument
- arg=$1
- fi
- if [ "$pfx" ]
- then
- echo "May not use -f and -Q together"
- exit $EX_USAGE
- fi
- if [ "$siteconfig" ]
- then
- echo "Only one -f flag allowed" >&2
- exit $EX_USAGE
- else
- siteconfig=$arg
- if [ -z "$siteconfig" ]
- then
- echo "Missing argument for -f flag" >&2
- exit $EX_USAGE
- elif [ ! -f "$siteconfig" ]
- then
- echo "${siteconfig}: File not found"
- exit $EX_NOINPUT
- else
- shift # move past argument
- case $arg
- in
- /*)
- SENDMAIL_BUILD_FLAGS="$SENDMAIL_BUILD_FLAGS -f \"$siteconfig\""
- ;;
- *)
- SENDMAIL_BUILD_FLAGS="$SENDMAIL_BUILD_FLAGS -f \"${full_src_dir}/$siteconfig\""
- ;;
- esac
- fi
- fi
- ;;
-
- -O*) # Set object directory manually.
- arg="`echo $1 | sed 's/^-O//'`"
- if [ -z "$arg" ]
- then
- shift # move to argument
- arg="$1"
- fi
- case $arg
- in
- /*)
- OBJ_ROOT="$arg"
- SENDMAIL_BUILD_FLAGS="$SENDMAIL_BUILD_FLAGS -O \"$OBJ_ROOT\""
- obj_rel_base_dir=$absolute_base_dir
- ;;
- *)
- echo "Absolute directory path required for -O flag" >&2
- exit $EX_USAGE
- ;;
- esac
- shift
- ;;
-
- -S) # skip auto-configure
- sflag="-s"
- SENDMAIL_BUILD_FLAGS="$SENDMAIL_BUILD_FLAGS $1"
- shift
- ;;
-
- -Q*) # Select a prefix for the Site/*.config.m4 file
- arg=`echo $1 | sed 's/^-Q//'`
- if [ -z "$arg" ]
- then
- shift # move to argument
- arg=$1
- fi
- if [ -z "$arg" ]
- then
- echo "Empty -Q flag" >&2
- exit $EX_USAGE
- elif [ "$siteconfig" ]
- then
- echo "May not use -Q and -f together" >&2
- exit $EX_USAGE
- elif [ "$pfx" ]
- then
- echo "Only one -Q allowed" >&2
- exit $EX_USAGE
- else
- pfx=$arg
- SENDMAIL_BUILD_FLAGS="$SENDMAIL_BUILD_FLAGS -Q \"$pfx\""
- fi
- shift
- ;;
-
- *) # pass argument to make
- makeargs="$makeargs \"$1\""
- SENDMAIL_BUILD_FLAGS="$SENDMAIL_BUILD_FLAGS \"$1\""
- shift
- ;;
- esac
-done
-
-#
-# Do heuristic guesses !ONLY! for machines that do not have uname
-#
-if [ -d /NextApps -a ! -f /bin/uname -a ! -f /usr/bin/uname ]
-then
- # probably a NeXT box
- arch=`hostinfo | sed -n 's/.*Processor type: \([^ ]*\).*/\1/p'`
- os=NeXT
- rel=`hostinfo | sed -n 's/.*NeXT Mach \([0-9\.]*\).*/\1/p'`
-elif [ -f /usr/sony/bin/machine -a -f /etc/osversion ]
-then
- # probably a Sony NEWS 4.x
- os=NEWS-OS
- rel=`awk '{ print $3}' /etc/osversion`
- arch=`/usr/sony/bin/machine`
-elif [ -d /usr/omron -a -f /bin/luna ]
-then
- # probably a Omron LUNA
- os=LUNA
- if [ -f /bin/luna1 ] && /bin/luna1
- then
- rel=unios-b
- arch=luna1
- elif [ -f /bin/luna2 ] && /bin/luna2
- then
- rel=Mach
- arch=luna2
- elif [ -f /bin/luna88k ] && /bin/luna88k
- then
- rel=Mach
- arch=luna88k
- fi
-elif [ -d /usr/apollo -a -d \`node_data ]
-then
- # probably a Apollo/DOMAIN
- os=DomainOS
- arch=$ISP
- rel=`/usr/apollo/bin/bldt | grep Domain | awk '{ print $4 }' | sed -e 's/,//g'`
-fi
-
-if [ ! "$arch" -a ! "$os" -a ! "$rel" ]
-then
- arch=`uname -m | sed -e 's/ //g' -e 's/\//-/g'`
- os=`uname -s | sed -e 's/\//-/g' -e 's/ //g'`
- rel=`uname -r | sed -e 's/(/-/g' -e 's/)//g' -e 's/ //g'`
-fi
-
-#
-# Tweak the values we have already got. PLEASE LIMIT THESE to
-# tweaks that are absolutely necessary because your system uname
-# routine doesn't return something sufficiently unique. Don't do
-# it just because you don't like the name that is returned. You
-# can combine the architecture name with the os name to create a
-# unique Makefile name.
-#
-
-# tweak machine architecture
-case $arch
-in
- sun4*) arch=sun4;;
-
- 9000/*) arch=`echo $arch | sed -e 's/9000.//' -e 's/..$/xx/'`;;
-
- DS/907000) arch=ds90;;
-
- NILE*) arch=NILE
- os=`uname -v`;;
-
- CRAYT3E|CRAYTS)
- os=$arch;;
-
-esac
-
-# tweak operating system type and release
-node=`uname -n | sed -e 's/\//-/g' -e 's/ //g'`
-if [ "$os" = "$node" -a "$arch" = "i386" -a "$rel" = 3.2 -a "`uname -v`" = 2 ]
-then
- # old versions of SCO UNIX set uname -s the same as uname -n
- os=SCO_SV
-fi
-if [ "$rel" = 4.0 ]
-then
- case $arch in
- 3[34]??|3[34]??,*)
- if [ -d /usr/sadm/sysadm/add-ons/WIN-TCP ]
- then
- os=NCR.MP-RAS.2.x
- elif [ -d /usr/sadm/sysadm/add-ons/inet ]
- then
- os=NCR.MP-RAS.3.x
- fi
- ;;
- esac
-fi
-
-case $os
-in
- DYNIX-ptx) os=PTX;;
- Paragon*) os=Paragon;;
- HP-UX) rel=`echo $rel | sed -e 's/^[^.]*\.0*//'`;;
- AIX) rela=$rel
- rel=`uname -v`
- arch=PPC
- rel=$rel.$rela
- ;;
- BSD-386) os=BSD-OS;;
- SCO_SV) os=SCO; rel=`uname -X | sed -n 's/Release = 3.2v//p'`;;
- UNIX_System_V) if [ "$arch" = "ds90" ]
- then
- os="UXPDS"
- rel=`uname -v | sed -e 's/\(V.*\)L.*/\1/'`
- fi;;
- ReliantUNIX-?|SINIX-?) os=SINIX;;
- DomainOS) case $rel in
- 10.4*) rel=10.4;;
- esac
- ;;
- IRIX*) rel=`echo $rel | sed -e 's/-.*$//'`;;
- NeXT) mkdir="mkdirs";;
-esac
-
-# get "base part" of operating system release
-rroot=`echo $rel | sed -e 's/\.[^.]*$//'`
-rbase=`echo $rel | sed -e 's/\..*//'`
-if [ "$rroot" = "$rbase" ]
-then
- rroot=$rel
-fi
-
-# heuristic tweaks to clean up names -- PLEASE LIMIT THESE!
-if [ "$os" = "unix" ]
-then
- # might be Altos System V
- case $rel
- in
- 5.3*) os=Altos;;
- esac
-elif [ -r /unix -a -r /usr/lib/libseq.a -a -r /lib/cpp ]
-then
- # might be a DYNIX/ptx 2.x system, which has a broken uname
- if strings /lib/cpp | grep _SEQUENT_ > /dev/null
- then
- os=PTX
- fi
-elif [ -d /usr/nec ]
-then
- # NEC machine -- what is it running?
- if [ "$os" = "UNIX_System_V" ]
- then
- os=EWS-UX_V
- elif [ "$os" = "UNIX_SV" ]
- then
- os=UX4800
- fi
-elif [ "$arch" = "mips" ]
-then
- case $rel
- in
- 4_*)
- if [ `uname -v` = "UMIPS" ]
- then
- os=RISCos
- fi;;
- esac
-fi
-
-# see if there is a "user suffix" specified
-if [ "${SENDMAIL_SUFFIX-}x" = "x" ]
-then
- sfx=""
-else
- sfx=".${SENDMAIL_SUFFIX}"
-fi
-
-if [ ! -n "$Mflag" -a ! -n "$Aflag" ]
-then
- echo "Configuration: pfx=$pfx, os=$os, rel=$rel, rbase=$rbase, rroot=$rroot, arch=$arch, sfx=$sfx"
-fi
-
-SMROOT=${SMROOT-..}
-BUILDTOOLS=${BUILDTOOLS-$SMROOT/devtools}
-export SMROOT BUILDTOOLS
-
-# see if we are in a Build-able directory
-if [ ! -f Makefile.m4 -a ! -n "$Aflag" ]; then
- echo "Makefile.m4 not found. Build can only be run from a source directory."
- exit $EX_UNAVAILABLE
-fi
-
-incdirs="$incdirs -I\${SRCDIR}/include"
-
-if [ -z "$OBJ_ROOT" ]; then
- OBJ_ROOT=${SMROOT}
-fi
-
-if [ "${pfx}x" = "x" ]
-then
- prefix=""
-else
- prefix=".$pfx"
-fi
-
-# Print out the architecture (to build up an obj dir path) and exit
-if [ -n "$Aflag" ]
-then
- echo "$os.$rel.$arch$sfx"
- exit $EX_OK
-fi
-
-# now try to find a reasonable object directory
-if [ -r ${OBJ_ROOT}/obj${prefix}.$os.$rel.$arch$sfx ]; then
- obj=${OBJ_ROOT}/obj${prefix}.$os.$rel.$arch$sfx
-elif [ -r ${OBJ_ROOT}/obj${prefix}.$os.$rroot.$arch$sfx ]; then
- obj=${OBJ_ROOT}/obj${prefix}.$os.$rroot.$arch$sfx
-elif [ -r ${OBJ_ROOT}/obj${prefix}.$os.$rbase.x.$arch$sfx ]; then
- obj=${OBJ_ROOT}/obj${prefix}.$os.$rbase.x.$arch$sfx
-elif [ -r ${OBJ_ROOT}/obj${prefix}.$os.$rel$sfx ]; then
- obj=${OBJ_ROOT}/obj${prefix}.$os.$rel$sfx
-elif [ -r ${OBJ_ROOT}/obj${prefix}.$os.$rbase.x$sfx ]; then
- obj=${OBJ_ROOT}/obj${prefix}.$os.$rbase.x$sfx
-elif [ -r ${OBJ_ROOT}/obj${prefix}.$os.$arch$sfx ]; then
- obj=${OBJ_ROOT}/obj${prefix}.$os.$arch$sfx
-elif [ -r ${OBJ_ROOT}/obj${prefix}.$rel.$arch$sfx ]; then
- obj=${OBJ_ROOT}/obj${prefix}.$rel.$arch$sfx
-elif [ -r ${OBJ_ROOT}/obj${prefix}.$rbase.x.$arch$sfx ]; then
- obj=${OBJ_ROOT}/obj${prefix}.$rbase.x.$arch$sfx
-elif [ -r ${OBJ_ROOT}/obj${prefix}.$os$sfx ]; then
- obj=${OBJ_ROOT}/obj${prefix}.$os$sfx
-elif [ -r ${OBJ_ROOT}/obj${prefix}.$arch$sfx ]; then
- obj=${OBJ_ROOT}/obj${prefix}.$arch$sfx
-elif [ -r ${OBJ_ROOT}/obj${prefix}.$rel$sfx ]; then
- obj=${OBJ_ROOT}/obj${prefix}.$rel$sfx
-elif [ -r ${OBJ_ROOT}/obj${prefix}.$sfx ]; then
- obj=${OBJ_ROOT}/obj${prefix}.$sfx
-fi
-
-if [ -n "$obj" ]
-then
- obj=${obj}/${src_dir}
-fi
-
-# Print the directory which would be used for the build and exit
-if [ -n "$Mflag" ]
-then
- if [ ! -n "$obj" ]
- then
- obj=${OBJ_ROOT}/obj.$os.$rel.$arch$sfx/${src_dir}
- fi
- echo "$obj"
- exit $EX_OK
-fi
-
-# Check if trying to use -f with an existing obj directory
-if [ -n "$siteconfig" -a -n "$obj" -a -d "$obj" -a -z "$cflag" ]
-then
- echo "Can not use Build's -f flag with an existing object tree."
- echo "If you wish to change configuration information, use the -c flag to clear"
- echo "the existing $obj tree."
- exit $EX_USAGE
-fi
-
-# Check if trying to use -Q with an existing obj directory
-if [ -n "$pfx" -a -n "$obj" -a -d "$obj" -a -z "$cflag" ]
-then
- echo "Can not use Build's -Q flag with an existing object tree."
- echo "If you wish to change configuration information, use the -c flag to clear"
- echo "the existing $obj tree."
- exit $EX_USAGE
-fi
-
-
-# Clean out the directory before building.
-if [ "$cflag" ]
-then
- if [ -n "$obj" ]
- then
- echo "Clearing out existing $obj tree"
- rm -rf $obj
- fi
-fi
-
-# If we didn't detect an existing obj directory, makeup a new obj name.
-if [ -z "$obj" ]
-then
- obj=${OBJ_ROOT}/obj${prefix}.$os.$rel.$arch$sfx/${src_dir}
-fi
-
-# Check if obj directory exists
-if [ ! -r "$obj" ]
-then
- if [ -r $BUILDTOOLS/OS/$os.$rel.$arch$sfx ]; then
- oscf=$os.$rel.$arch$sfx
- elif [ -r $BUILDTOOLS/OS/$os.$rel.$arch ]; then
- oscf=$os.$rel.$arch
- elif [ -r $BUILDTOOLS/OS/$os.$rroot.$arch$sfx ]; then
- oscf=$os.$rroot.$arch$sfx
- elif [ -r $BUILDTOOLS/OS/$os.$rroot.$arch ]; then
- oscf=$os.$rroot.$arch
- elif [ -r $BUILDTOOLS/OS/$os.$rbase.x.$arch$sfx ]; then
- oscf=$os.$rbase.x.$arch$sfx
- elif [ -r $BUILDTOOLS/OS/$os.$rbase.x.$arch ]; then
- oscf=$os.$rbase.x.$arch
- elif [ -r $BUILDTOOLS/OS/$os.$rel$sfx ]; then
- oscf=$os.$rel$sfx
- elif [ -r $BUILDTOOLS/OS/$os.$rel ]; then
- oscf=$os.$rel
- elif [ -r $BUILDTOOLS/OS/$os.$rroot$sfx ]; then
- oscf=$os.$rroot$sfx
- elif [ -r $BUILDTOOLS/OS/$os.$rroot ]; then
- oscf=$os.$rroot
- elif [ -r $BUILDTOOLS/OS/$os.$rbase.x$sfx ]; then
- oscf=$os.$rbase.x$sfx
- elif [ -r $BUILDTOOLS/OS/$os.$rbase.x ]; then
- oscf=$os.$rbase.x
- elif [ -r $BUILDTOOLS/OS/$os.$arch$sfx ]; then
- oscf=$os.$arch$sfx
- elif [ -r $BUILDTOOLS/OS/$os.$arch ]; then
- oscf=$os.$arch
- elif [ -r $BUILDTOOLS/OS/$rel.$arch$sfx ]; then
- oscf=$rel.$arch$sfx
- elif [ -r $BUILDTOOLS/OS/$rel.$arch ]; then
- oscf=$rel.$arch
- elif [ -r $BUILDTOOLS/OS/$rroot.$arch$sfx ]; then
- oscf=$rroot.$arch$sfx
- elif [ -r $BUILDTOOLS/OS/$rroot.$arch ]; then
- oscf=$rroot.$arch
- elif [ -r $BUILDTOOLS/OS/$rbase.x.$arch$sfx ]; then
- oscf=$rbase.x.$arch$sfx
- elif [ -r $BUILDTOOLS/OS/$rbase.x.$arch ]; then
- oscf=$rbase.x.$arch
- elif [ -r $BUILDTOOLS/OS/$os$sfx ]; then
- oscf=$os$sfx
- elif [ -r $BUILDTOOLS/OS/$os ]; then
- oscf=$os
- elif [ -r $BUILDTOOLS/OS/$arch$sfx ]; then
- oscf=$arch$sfx
- elif [ -r $BUILDTOOLS/OS/$arch ]; then
- oscf=$arch
- elif [ -r $BUILDTOOLS/OS/$rel$sfx ]; then
- oscf=$rel$sfx
- elif [ -r $BUILDTOOLS/OS/$rel ]; then
- oscf=$rel
- elif [ -r $BUILDTOOLS/OS/$rel$sfx ]; then
- oscf=$rel$sfx
- else
- echo "Cannot determine how to support $arch.$os.$rel" >&2
- exit $EX_UNAVAILABLE
- fi
- M4=`sh $BUILDTOOLS/bin/find_m4.sh`
- ret=$?
- if [ $ret -ne 0 ]
- then
- exit $ret
- fi
- echo "Using M4=$M4"
- export M4
- if [ "$mflag" ]
- then
- echo "Will run in virgin $obj using $BUILDTOOLS/OS/$oscf"
- exit $EX_OK
- fi
-
- echo "Creating $obj using $BUILDTOOLS/OS/$oscf"
- ${mkdir} $obj
-
- # If this is WINNT then compile with relative paths
- # (based on REL_SRC_DIR), so we don't need to do any "linking"
- if [ ! $os = "WINNT" ]
- then
- ln="ln -s"
- (cd $obj; $ln ${obj_rel_base_dir}/${src_dir}/*.[ch13458] .)
- (cd $obj
- # This glob doesn't actually glob to something everywhere,
- # thus the protective measures.
- for i in ${obj_rel_base_dir}/${src_dir}/*.0
- do
- if [ -f $i ]
- then
- $ln $i `basename $i`.dist
- fi
- done)
- if [ -f helpfile ]
- then
- (cd $obj; $ln ${obj_rel_base_dir}/${src_dir}/helpfile .)
- fi
- fi
-
- rm -f $obj/.settings$$
- echo 'divert(-1)' > $obj/.settings$$
- cat $BUILDTOOLS/M4/header.m4 >> $obj/.settings$$
- cat $BUILDTOOLS/OS/$oscf >> $obj/.settings$$
-
- if [ $os = "WINNT" ]
- then
- # Append C: onto pwd's which don't have the preceding //
- # so that we can compile on non-network drives.
- # (Is there a way to get the real drive letter?)
- dir_prefix=`echo $absolute_base_dir | sed 's#\(..\).*#\1#'`
- if [ ! $dir_prefix = "//" ]
- then
- absolute_base_dir="//C$absolute_base_dir"
- fi
-
- # Convert sh's //X to X: drive letters to make make (and cl) happy
- obj_rel_base_dir=`echo $absolute_base_dir | sed 's#^//\([a-zA-Z]\)#\1:#'`
- cur_dir=`pwd`
- cd $obj/..
- absolute_obj_dir=`pwd | sed 's#/#\\\\\\\\#g'`
- cd $cur_dir
- echo "ifdef(\`bldABS_OBJ_DIR',,define(\`bldABS_OBJ_DIR', \`$absolute_obj_dir'))" >> $obj/.settings$$
- rel_src_dir="$obj_rel_base_dir/$src_dir"
- echo "define(\`bldREL_SRC_DIR', \`$rel_src_dir')" >> $obj/.settings$$
- else
- cur_dir=`pwd`
- cd $obj/..
- absolute_obj_dir=`pwd`
- cd $cur_dir
- echo "ifdef(\`bldABS_OBJ_DIR',,define(\`bldABS_OBJ_DIR', \`$absolute_obj_dir'))" >> $obj/.settings$$
- rel_src_dir="$obj_rel_base_dir/$src_dir"
- echo "define(\`bldREL_SRC_DIR', \`$rel_src_dir')" >> $obj/.settings$$
- fi
-
- if [ ! -z "$pfx" ]
- then
- # They gave us a specific prefix, let's try it out.
- if [ -f $BUILDTOOLS/Site/$pfx.$oscf$sfx.m4 ]
- then
- siteconfig=$BUILDTOOLS/Site/$pfx.$oscf$sfx.m4
- elif [ -f $BUILDTOOLS/Site/$pfx.$oscf.m4 ]
- then
- siteconfig=$BUILDTOOLS/Site/$pfx.$oscf.m4
- fi
- if [ -f $BUILDTOOLS/Site/$pfx.config.m4 ]
- then
- siteconfig="$BUILDTOOLS/Site/$pfx.config.m4 $siteconfig"
- fi
- elif [ -z "$siteconfig" ]
- then
- # none specified, use defaults
- if [ -f $BUILDTOOLS/Site/site.$oscf$sfx.m4 ]
- then
- siteconfig=$BUILDTOOLS/Site/site.$oscf$sfx.m4
- elif [ -f $BUILDTOOLS/Site/site.$oscf.m4 ]
- then
- siteconfig=$BUILDTOOLS/Site/site.$oscf.m4
- fi
- if [ -f $BUILDTOOLS/Site/site.config.m4 ]
- then
- siteconfig="$BUILDTOOLS/Site/site.config.m4 $siteconfig"
- fi
- if [ -f $BUILDTOOLS/Site/site.post.m4 ]
- then
- siteconfig="$siteconfig $BUILDTOOLS/Site/site.post.m4"
- fi
- fi
- if [ ! -z "$siteconfig" ]
- then
- echo "Including $siteconfig"
- cat $siteconfig >> $obj/.settings$$
- fi
- if [ "$libdirs" ]
- then
- echo "define(\`confLIBDIRS', confLIBDIRS \`\`$libdirs'')" >> $obj/.settings$$
- fi
- if [ "$incdirs" ]
- then
- echo "define(\`confINCDIRS', \`\`$incdirs'' confINCDIRS)" >> $obj/.settings$$
- fi
- echo "define(\`_SRC_PATH_', \`\`$obj_rel_base_dir'')" >> $obj/.settings$$
- echo 'divert(0)dnl' >> $obj/.settings$$
- libdirs=`(cat $obj/.settings$$; echo "_SRIDBIL_= confLIBDIRS" ) | \
- sed -e 's/\(.\)include/\1_include_/g' -e 's/#define/#_define_/g' | \
- ${M4} -DconfBUILDTOOLSDIR=$BUILDTOOLS - | \
- grep "^_SRIDBIL_=" | \
- sed -e 's/#_define_/#define/g' -e 's/_include_/include/g' -e "s/^_SRIDBIL_=//"`
- libsrch=`(cat $obj/.settings$$; echo "_HCRSBIL_= confLIBSEARCH" ) | \
- sed -e 's/\(.\)include/\1_include_/g' -e 's/#define/#_define_/g' | \
- ${M4} -DconfBUILDTOOLSDIR=$BUILDTOOLS - | \
- grep "^_HCRSBIL_=" | \
- sed -e 's/#_define_/#define/g' -e 's/_include_/include/g' -e "s/^_HCRSBIL_=//"`
- libpath=`(cat $obj/.settings$$; echo "_HCRSBIL_= confLIBSEARCHPATH" ) | \
- sed -e 's/\(.\)include/\1_include_/g' -e 's/#define/#_define_/g' | \
- ${M4} -DconfBUILDTOOLSDIR=$BUILDTOOLS - | \
- grep "^_HCRSBIL_=" | \
- sed -e 's/#_define_/#define/g' -e 's/_include_/include/g' -e "s/^_HCRSBIL_=//"`
- echo 'divert(-1)' >> $obj/.settings$$
- LIBDIRS="$libdirs" LIBSRCH="$libsrch" LIBPATH="$libpath" SITECONFIG="$siteconfig" sh $BUILDTOOLS/bin/configure.sh $sflag $oscf >> $obj/.settings$$
- echo 'divert(0)dnl' >> $obj/.settings$$
- sed -e 's/\(.\)include/\1_include_/g' -e 's/#define/#_define_/g' -e 's/\r//g' $obj/.settings$$ | \
- ${M4} -DconfBUILDTOOLSDIR=$BUILDTOOLS - Makefile.m4 | \
- sed -e 's/#_define_/#define/g' -e 's/_include_/include/g' -e 's/\r//g' > $obj/Makefile
- # That ^M up there was added by quoting it in emacs.
- # Make has problems if lines end in ^M^M, but not in ^M apparently
- if [ $? -ne 0 -o ! -s $obj/Makefile ]
- then
- echo "ERROR: ${M4} failed; You may need a newer version of M4, at least as new as System V or GNU" 1>&2
- rm -rf $obj
- exit $EX_UNAVAILABLE
- fi
- rm -f $obj/.settings$$
- echo "Making dependencies in $obj"
- (cd $obj; ${MAKE-make} depend)
-fi
-
-if [ "$mflag" ]
-then
- makefile=`ls -l $obj/Makefile | sed 's/.* //'`
- if [ -z "$makefile" ]
- then
- echo "ERROR: $obj exists but has no Makefile" >&2
- exit $EX_NOINPUT
- fi
- echo "Will run in existing $obj using $makefile"
- exit $EX_OK
-fi
-
-echo "Making in $obj"
-cd $obj
-eval exec ${MAKE-make} SENDMAIL_BUILD_FLAGS=\"$SENDMAIL_BUILD_FLAGS\" $makeargs
+++ /dev/null
-#!/bin/sh
-
-# Copyright (c) 1998-2000 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-# $Sendmail: configure.sh,v 8.39 2000/02/26 01:32:07 gshapiro Exp $
-
-#
-# Special script to autoconfigure for M4 generation of Makefile
-#
-
-os=""
-resolver=""
-sflag=""
-bin_dir=`echo $0 | sed -e 's/\/[^/]*$//'`
-if [ ! -d $bin_dir ]
-then
- bin_dir="."
-fi
-find_prog=$bin_dir/find_in_path.sh
-
-while [ ! -z "$1" ]
-do
- case $1
- in
- -s) # skip auto-configure
- sflag=1
- shift
- ;;
-
- *) # OS definition
- os=$1
- shift
- ;;
- esac
-done
-
-usewhoami=0
-usehostname=0
-for p in `echo $PATH | sed 's/:/ /g'`
-do
- if [ "x$p" = "x" ]
- then
- p="."
- fi
- if [ -f $p/whoami ]
- then
- usewhoami=1
- if [ $usehostname -ne 0 ]
- then
- break;
- fi
- fi
- if [ -f $p/hostname ]
- then
- usehostname=1
- if [ $usewhoami -ne 0 ]
- then
- break;
- fi
- fi
-done
-if [ $usewhoami -ne 0 ]
-then
- user=`whoami`
-else
- user=$LOGNAME
-fi
-
-if [ $usehostname -ne 0 ]
-then
- host=`hostname`
-else
- host=`uname -n`
-fi
-echo "PUSHDIVERT(0)"
-echo "####################################################################"
-echo "##### This file is automatically generated -- edit at your own risk"
-echo '#####' Built by $user@$host
-echo '#####' on `date` using template OS/$os
-if [ ! -z "$SITECONFIG" ]
-then
- echo '#####' including $SITECONFIG
-fi
-echo '#####' in `pwd` | sed 's/\/tmp_mnt//'
-echo "####################################################################"
-echo ""
-echo "POPDIVERT"
-echo "define(\`__HOST__', \`$host')dnl"
-echo "ifdef(\`confMAPDEF',, \`define(\`confMAPDEF', \`')')dnl"
-echo "ifdef(\`confLIBS',, \`define(\`confLIBS', \`')')dnl"
-
-LIBDIRS="$LIBDIRS $LIBPATH"
-libs=""
-mapdef=""
-for l in $LIBSRCH
-do
- for p in `echo $LIBDIRS | sed -e 's/:/ /g' -e 's/^-L//g' -e 's/ -L/ /g'`
- do
- if [ "x$p" = "x" ]
- then
- p = "."
- fi
- if [ -f $p/lib$l.a -o -f $p/lib$l.so ]
- then
- case $l
- in
- db)
- mapdef="$mapdef -DNEWDB"
- ;;
- bind|resolv)
- if [ -n "$resolver" ]
- then
- continue
- else
- resolver=$l
- fi
- ;;
- 44bsd)
- if [ "x$resolver" != "xresolv" ]
- then
- continue
- fi
- ;;
- esac
- libs="$libs -l$l"
- break
- fi
- done
-done
-
-for p in `echo $PATH | sed 's/:/ /g'`
-do
- pbase=`echo $p | sed -e 's,/bin,,'`
- if [ "x$p" = "x" ]
- then
- p="."
- fi
- if [ -f $p/mkdep ]
- then
- echo "ifdef(\`confDEPEND_TYPE',, \`define(\`confDEPEND_TYPE', \`BSD')')dnl"
- fi
-done
-
-if [ -z "$sflag" ]
-then
- echo "define(\`confMAPDEF', \`$mapdef' confMAPDEF)dnl"
- echo "define(\`confLIBS', \`$libs' confLIBS)dnl"
-fi
-
-if [ ! -z "`sh $find_prog ranlib`" ]
-then
- echo "define(\`confRANLIB', \`ranlib')dnl"
-fi
-
-roff_progs="groff nroff"
-for roff_prog in $roff_progs
-do
- if [ ! -z "`sh $find_prog $roff_prog`" ]
- then
- found_roff=$roff_prog
- break;
- fi
-done
-
-case $found_roff
-in
- groff)
- echo "ifdef(\`confNROFF',,define(\`confNROFF', \`$found_roff -Tascii'))dnl"
- ;;
- nroff)
- echo "ifdef(\`confNROFF',,define(\`confNROFF', \`$found_roff'))dnl"
- ;;
- *)
- echo "ifdef(\`confNROFF',,define(\`confNO_MAN_BUILD'))dnl"
- ;;
-esac
+++ /dev/null
-#! /bin/sh
-#
-# $Sendmail: find_in_path.sh,v 8.2 1999/09/23 20:42:22 gshapiro Exp $
-#
-EX_OK=0
-EX_NOT_FOUND=1
-
-ifs="$IFS"; IFS="${IFS}:"
-for dir in $PATH /usr/5bin /usr/ccs/bin
-do
- if [ -r $dir/$1 ]
- then
- echo $dir/$1
- exit $EX_OK
- fi
-done
-IFS=$ifs
-
-exit $EX_NOT_FOUND
+++ /dev/null
-#!/bin/sh
-
-# Copyright (c) 1998, 1999 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-# $Sendmail: find_m4.sh,v 8.7 1999/02/07 07:25:58 gshapiro Exp $
-#
-
-# Try to find a working M4 program.
-# If $M4 is already set, we use it, otherwise we prefer GNU m4.
-
-EX_UNAVAILABLE=69
-
-test="ifdef(\`pushdef', \`',
-\`errprint(\`You need a newer version of M4, at least as new as System V or GNU')
-include(NoSuchFile)')
-define(\`BadNumber', \`10')
-ifdef(\`BadNumber', \`', \`errprint(\`This version of m4 is broken')')"
-
-if [ "$M4" ]
-then
- err=`(echo "$test" | $M4) 2>&1 >/dev/null`
- code=$?
-else
- firstfound=
- ifs="$IFS"; IFS="${IFS}:"
- for m4 in gm4 gnum4 pdm4 m4
- do
- for dir in $PATH /usr/5bin /usr/ccs/bin
- do
- [ -z "$dir" ] && dir=.
- if [ -f $dir/$m4 ]
- then
- err=`(echo "$test" | $dir/$m4) 2>&1 >/dev/null`
- ret=$?
- if [ $ret -eq 0 -a "X$err" = "X" ]
- then
- M4=$dir/$m4
- code=0
- break
- else
- case "$firstfound:$err" in
- :*version\ of*)
- firstfound=$dir/$m4
- firsterr="$err"
- firstcode=$ret
- ;;
- esac
- fi
- fi
- done
- [ "$M4" ] && break
- done
- IFS="$ifs"
- if [ ! "$M4" ]
- then
- if [ "$firstfound" ]
- then
- M4=$firstfound
- err="$firsterr"
- code=$firstcode
- else
- echo "ERROR: Can not locate an M4 program" >&2
- exit $EX_UNAVAILABLE
- fi
- fi
-fi
-if [ $code -ne 0 ]
-then
- echo "ERROR: Using M4=$M4: $err" | grep -v NoSuchFile >&2
- exit $EX_UNAVAILABLE
-elif [ "X$err" != "X" ]
-then
- echo "WARNING: $err" >&2
-fi
-echo $M4
-exit 0
-
+++ /dev/null
-#!/bin/sh
-
-# Copyright (c) 1998, 1999 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-# $Sendmail: install.sh,v 8.13 1999/02/22 21:34:38 gshapiro Exp $
-
-# Set default program
-program=mv
-owner=""
-group=""
-mode=""
-strip=""
-
-# chown program -- ultrix keeps it in /etc/chown and /usr/etc/chown
-if [ -f /etc/chown ]
-then
- chown=/etc/chown
-elif [ -f /usr/etc/chown ]
-then
- chown=/usr/etc/chown
-else
- chown=chown
-fi
-
-# Check arguments
-while [ ! -z "$1" ]
-do
- case $1
- in
- -o) owner=$2
- shift; shift
- ;;
-
- -g) group=$2
- shift; shift
- ;;
-
- -m) mode=$2
- shift; shift
- ;;
-
- -c) program=cp
- shift
- ;;
-
- -s) strip="strip"
- shift
- ;;
-
- -*) echo $0: Unknown option $1
- exit 1
- ;;
-
- *) break
- ;;
- esac
-done
-
-# Check source file
-if [ -z "$1" ]
-then
- echo "Source file required" >&2
- exit 1
-elif [ -f $1 -o $1 = /dev/null ]
-then
- src=$1
-else
- echo "Source file must be a regular file or /dev/null" >&2
- exit 1
-fi
-
-# Check destination
-if [ -z "$2" ]
-then
- echo "Destination required" >&2
- exit 1
-elif [ -d $2 ]
-then
- dst=$2/$src
-else
- dst=$2
-fi
-
-# Do install operation
-$program $src $dst
-if [ $? != 0 ]
-then
- exit 1
-fi
-
-# Strip if requested
-if [ ! -z "$strip" ]
-then
- $strip $dst
-fi
-
-# Change owner if requested
-if [ ! -z "$owner" ]
-then
- $chown $owner $dst
- if [ $? != 0 ]
- then
- exit 1
- fi
-fi
-
-# Change group if requested
-if [ ! -z "$group" ]
-then
- chgrp $group $dst
- if [ $? != 0 ]
- then
- exit 1
- fi
-fi
-
-# Change mode if requested
-if [ ! -z "$mode" ]
-then
- chmod $mode $dst
- if [ $? != 0 ]
- then
- exit 1
- fi
-fi
-
-exit 0
.de Ve
Version \\$2
..
-.Ve $Revision: 1.1.1.1 $
+.Ve $Revision: 1.2 $
.rm Ve
.sp
For Sendmail Version 8.10
.\".sz 10
.\"Eric Allman
.\".sp
-.\"Version $Revision: 1.1.1.1 $
+.\"Version $Revision: 1.2 $
.\".ce 0
.bp 3
.ce
+++ /dev/null
-#!/bin/sh
-
-# Copyright (c) 1999 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-# $Sendmail: Build,v 8.3 2000/01/20 21:51:50 geir Exp $
-
-exec ../devtools/bin/Build $*
-# $Sendmail: Makefile,v 1.1 1999/11/04 00:03:40 ca Exp $
+# $OpenBSD: Makefile,v 1.2 2000/04/02 19:48:31 millert Exp $
-SHELL= /bin/sh
-BUILD= ./Build
-OPTIONS= $(CONFIG) $(FLAGS)
+LIB= libmilter
+SRCS= main.c engine.c listener.c handler.c comm.c smfi.c signal.c sm_gethost.c
-all: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
-clean: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
-install: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
+# This is not a library that gets installed so only build the .a version
+# In the future we may wish to install it to ease the use of external filters.
+NOPROFILE=1
+NOPIC=1
-fresh: FRC
- $(SHELL) $(BUILD) $(OPTIONS) -c
-
-FRC:
+.include <bsd.lib.mk>
+++ /dev/null
-include(confBUILDTOOLSDIR`/M4/switch.m4')
-
-define(`confMT', `true')
-
-# sendmail dir
-SMSRCDIR= ifdef(`confSMSRCDIR', `confSMSRCDIR', `${SRCDIR}/sendmail')
-PREPENDDEF(`confINCDIRS', `-I${SMSRCDIR} ')
-
-bldPRODUCT_START(`library', `libmilter')
-define(`bldSOURCES', `main.c engine.c listener.c handler.c comm.c smfi.c signal.c sm_gethost.c ')
-bldPUSH_SMLIB(`smutil')
-bldPRODUCT_END
-APPENDDEF(`confENVDEF', `-DNOT_SENDMAIL')
-
-bldFINISH
/* eof */
-$Revision: 1.1.1.1 $, Last updated $Date: 2000/04/02 19:05:58 $
+$Revision: 1.2 $, Last updated $Date: 2000/04/02 19:48:31 $
+++ /dev/null
-#!/bin/sh
-
-# Copyright (c) 1999 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-# $Sendmail: Build,v 8.1 1999/03/10 23:18:41 peterh Exp $
-
-exec ../devtools/bin/Build $*
-# $Sendmail: Makefile,v 1.2 1999/09/23 22:36:29 ca Exp $
+# $OpenBSD: Makefile,v 1.2 2000/04/02 19:48:31 millert Exp $
-SHELL= /bin/sh
-BUILD= ./Build
-OPTIONS= $(CONFIG) $(FLAGS)
+LIB= smdb
+SRCS= smdb.c smdb1.c smdb2.c smndbm.c
+ENVDEF+=-DNOT_SENDMAIL
-all: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
-clean: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
-install: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
+# This is not a library that gets installed so only build the .a version
+NOPROFILE=1
+NOPIC=1
-fresh: FRC
- $(SHELL) $(BUILD) $(OPTIONS) -c
-
-FRC:
+.include <bsd.lib.mk>
+++ /dev/null
-include(confBUILDTOOLSDIR`/M4/switch.m4')
-
-# sendmail dir
-SMSRCDIR= ifdef(`confSMSRCDIR', `confSMSRCDIR', `${SRCDIR}/sendmail')
-PREPENDDEF(`confENVDEF', `confMAPDEF')
-PREPENDDEF(`confINCDIRS', `-I${SMSRCDIR} ')
-
-bldPRODUCT_START(`library', `libsmdb')
-define(`bldSOURCES', `smdb.c smdb1.c smdb2.c smndbm.c ')
-APPENDDEF(`confENVDEF', `-DNOT_SENDMAIL')
-bldPRODUCT_END
-
-bldFINISH
+++ /dev/null
-#!/bin/sh
-
-# Copyright (c) 1999 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-# $Sendmail: Build,v 8.1 1999/05/21 22:56:21 gshapiro Exp $
-
-exec ../devtools/bin/Build $*
-# $Sendmail: Makefile,v 1.2 1999/09/23 22:36:32 ca Exp $
+# $OpenBSD: Makefile,v 1.2 2000/04/02 19:48:31 millert Exp $
-SHELL= /bin/sh
-BUILD= ./Build
-OPTIONS= $(CONFIG) $(FLAGS)
+LIB= smutil
+SRCS= debug.c errstring.c lockfile.c safefile.c snprintf.c
+ENVDEF+=-DNOT_SENDMAIL
-all: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
-clean: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
-install: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
+# This is not a library that gets installed so only build the .a version
+NOPROFILE=1
+NOPIC=1
-fresh: FRC
- $(SHELL) $(BUILD) $(OPTIONS) -c
-
-FRC:
+.include <bsd.lib.mk>
+++ /dev/null
-include(confBUILDTOOLSDIR`/M4/switch.m4')
-
-# sendmail dir
-SMSRCDIR= ifdef(`confSMSRCDIR', `confSMSRCDIR', `${SRCDIR}/sendmail')
-PREPENDDEF(`confENVDEF', `confMAPDEF')
-PREPENDDEF(`confINCDIRS', `-I${SMSRCDIR} ')
-
-bldPRODUCT_START(`library', `libsmutil')
-define(`bldSOURCES', `debug.c errstring.c lockfile.c safefile.c snprintf.c strl.c ')
-APPENDDEF(`confENVDEF', `-DNOT_SENDMAIL')
-bldPRODUCT_END
-
-bldFINISH
+++ /dev/null
-#!/bin/sh
-
-# Copyright (c) 1999 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-# $Sendmail: Build,v 8.4 1999/03/02 02:32:28 peterh Exp $
-
-exec ../devtools/bin/Build $*
-# $Sendmail: Makefile,v 8.5 1999/10/05 16:39:32 ca Exp $
+# $OpenBSD: Makefile,v 1.2 2000/04/02 19:48:32 millert Exp $
-SHELL= /bin/sh
-BUILD= ./Build
-OPTIONS= $(CONFIG) $(FLAGS)
+PROG= mail.local
+MAN= mail.local.8
-all: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
-clean: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
-install: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
-force-install: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
+WANT_LIBSMUTIL=1
-fresh: FRC
- $(SHELL) $(BUILD) $(OPTIONS) -c
-
-FRC:
+.include "../../Makefile.inc"
+.include <bsd.prog.mk>
+++ /dev/null
-include(confBUILDTOOLSDIR`/M4/switch.m4')
-
-bldPRODUCT_START(`executable', `mail.local')
-define(`bldNO_INSTALL')
-define(`bldSOURCES', `mail.local.c ')
-bldPUSH_SMLIB(`smutil')
-PREPENDDEF(`confENVDEF', `confMAPDEF')
-bldPRODUCT_END
-
-bldPRODUCT_START(`manpage', `mail.local')
-define(`bldSOURCES', `mail.local.8')
-bldPRODUCT_END
-
-divert(bldTARGETS_SECTION)
-install:
- @echo "NOTE: This version of mail.local is not suited for some operating"
- @echo " systems such as HP-UX and Solaris. Please consult the"
- @echo " README file in the mail.local directory. You can force"
- @echo " the install using 'Build force-install'."
-
-force-install: install-mail.local ifdef(`confNO_MAN_BUILD',, `install-docs')
-
-install-mail.local: mail.local
- ${INSTALL} -c -o ${UBINOWN} -g ${UBINGRP} -m ${UBINMODE} mail.local ${DESTDIR}${EBINDIR}
-divert
-
-bldFINISH
-
-
in the .mc file.
-$Revision: 1.1.1.1 $, Last updated $Date: 2000/04/02 19:05:42 $
+$Revision: 1.2 $, Last updated $Date: 2000/04/02 19:48:32 $
+++ /dev/null
-
-
-
-MAIL.LOCAL(8) MAIL.LOCAL(8)
-
-
-N\bNA\bAM\bME\bE
- m\bma\bai\bil\bl.\b.l\blo\boc\bca\bal\bl - store mail in a mailbox
-
-S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
- m\bma\bai\bil\bl.\b.l\blo\boc\bca\bal\bl [-\b-7\b7] [-\b-d\bd] [-\b-l\bl] [-\b-f\bf _\bf_\br_\bo_\bm] _\bu_\bs_\be_\br _\b._\b._\b.
-
-D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
- M\bMa\bai\bil\bl.\b.l\blo\boc\bca\bal\bl reads the standard input up to an end-of-file
- and appends it to each _\bu_\bs_\be_\br_\b'_\bs m\bma\bai\bil\bl file. The _\bu_\bs_\be_\br must be
- a valid user name.
-
- The options are as follows:
-
- -\b-7\b7 Do not advertise 8BITMIME support in LMTP mode.
-
- -\b-b\bb Return a permanent error instead of a temporary
- error if a mailbox exceeds quota.
-
- -\b-d\bd Specify this is a delivery (for backward compat-
- ibility).
-
- -\b-f\bf _\bf_\br_\bo_\bm Specify the sender's name.
-
- -\b-l\bl Turn on LMTP mode.
-
- -\b-r\br _\bf_\br_\bo_\bm Specify the sender's name (for backward compati-
- bility).
-
- Individual mail messages in the mailbox are delimited by
- an empty line followed by a line beginning with the string
- ``From ''. A line containing the string ``From '', the
- sender's name and a time stamp is prepended to each deliv-
- ered mail message. A blank line is appended to each mes-
- sage. A greater-than character (``>'') is prepended to
- any line in the message which could be mistaken for a
- ``From '' delimiter line (that is, a line beginning with
- the five characters ``From '' following a blank line).
-
- The mail files are exclusively locked with flock(2) while
- mail is appended, and a u\bus\bse\ber\br.\b.l\blo\boc\bck\bk file also is created
- while the mailbox is locked for compatibility with older
- MUAs.
-
- If the ``biff'' service is returned by getservbyname(3),
- the biff server is notified of delivered mail.
-
- The m\bma\bai\bil\bl.\b.l\blo\boc\bca\bal\bl utility exits 0 on success, and >0 if an
- error occurs.
-
-E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT
- TZ Used to set the appropriate time zone on the times-
- tamp.
-
-
-
-
-
- $Date: 2000/04/02 19:05:42 $ 1
-
-
-
-
-
-MAIL.LOCAL(8) MAIL.LOCAL(8)
-
-
-F\bFI\bIL\bLE\bES\bS
- /tmp/local.XXXXXX temporary files
- /var/mail/user user's mailbox directory
- /var/mail/user.lock lock file for a user's mailbox
-
-S\bSE\bEE\bE A\bAL\bLS\bSO\bO
- mail(1), xsend(1), flock(2), getservbyname(3), comsat(8),
- sendmail(8)
-
-H\bHI\bIS\bST\bTO\bOR\bRY\bY
- A superset of m\bma\bai\bil\bl.\b.l\blo\boc\bca\bal\bl (handling mailbox reading as well
- as mail delivery) appeared in Version 7 AT&T UNIX as the
- program m\bma\bai\bil\bl.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- $Date: 2000/04/02 19:05:42 $ 2
-
-
.\"
.\" $Sendmail: mail.local.8,v 8.14 1999/08/26 15:49:20 ca Exp $
.\"
-.TH MAIL.LOCAL 8 "$Date: 2000/04/02 19:05:42 $"
+.TH MAIL.LOCAL 8 "$Date: 2000/04/02 19:48:32 $"
.SH NAME
.B mail.local
\- store mail in a mailbox
+++ /dev/null
-#!/bin/sh
-
-# Copyright (c) 1999 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-# $Sendmail: Build,v 8.4 1999/03/02 02:33:27 peterh Exp $
-
-exec ../devtools/bin/Build $*
-# $Sendmail: Makefile,v 8.5 1999/09/23 22:36:36 ca Exp $
+# $OpenBSD: Makefile,v 1.2 2000/04/02 19:48:32 millert Exp $
-SHELL= /bin/sh
-BUILD= ./Build
-OPTIONS= $(CONFIG) $(FLAGS)
+PROG= mailstats
+MAN= mailstats.8
+ENVDEF+=-DNOT_SENDMAIL
-all: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
-clean: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
-install: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
+WANT_LIBSMUTIL=1
-fresh: FRC
- $(SHELL) $(BUILD) $(OPTIONS) -c
-
-FRC:
+.include "../../Makefile.inc"
+.include <bsd.prog.mk>
+++ /dev/null
-include(confBUILDTOOLSDIR`/M4/switch.m4')
-
-# sendmail dir
-SMSRCDIR= ifdef(`confSMSRCDIR', `confSMSRCDIR', `${SRCDIR}/sendmail')
-PREPENDDEF(`confENVDEF', `confMAPDEF')
-PREPENDDEF(`confINCDIRS', `-I${SMSRCDIR} ')
-
-bldPRODUCT_START(`executable', `mailstats')
-define(`bldINSTALL_DIR', `S')
-define(`bldSOURCES', `mailstats.c ')
-bldPUSH_SMLIB(`smutil')
-APPENDDEF(`confENVDEF', `-DNOT_SENDMAIL')
-bldPRODUCT_END
-
-bldPRODUCT_START(`manpage', `mailstats')
-define(`bldSOURCES', `mailstats.8')
-bldPRODUCT_END
-
-bldFINISH
-
+++ /dev/null
-
-
-
-MAILSTATS(1) MAILSTATS(1)
-
-
-N\bNA\bAM\bME\bE
- m\bma\bai\bil\bls\bst\bta\bat\bts\bs - display mail statistics
-
-S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
- m\bma\bai\bil\bls\bst\bta\bat\bts\bs [-\b-o\bo] [-\b-p\bp] [-\b-C\bC _\bc_\bf_\bf_\bi_\bl_\be] [-\b-f\bf _\bs_\bt_\bf_\bi_\bl_\be]
-
-D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
- The m\bma\bai\bil\bls\bst\bta\bat\bts\bs utility displays the current mail statis-
- tics.
-
- First, the time at which statistics started being kept is
- displayed, in the format specified by ctime(3). Then, the
- statistics for each mailer are displayed on a single line,
- each with the following whitespace separated fields:
-
- M\bM The mailer number.
- m\bms\bsg\bgs\bsf\bfr\br Number of messages from the mailer.
- b\bby\byt\bte\bes\bs_\b_f\bfr\bro\bom\bm Kbytes from the mailer.
- m\bms\bsg\bgs\bst\bto\bo Number of messages to the mailer.
- b\bby\byt\bte\bes\bs_\b_t\bto\bo Kbytes to the mailer.
- m\bms\bsg\bgs\bsr\bre\bej\bj Number of messages rejected.
- m\bms\bsg\bgs\bsd\bdi\bis\bs Number of messages discarded.
- M\bMa\bai\bil\ble\ber\br The name of the mailer.
-
- After this display, a line totaling the values for all of
- the mailers is displayed (preceeded with a ``T''), sepa-
- rated from the previous information by a line containing
- only equals (``='') characters. Another line preceeded
- with a ``C'' lists the number of connections.
-
- The options are as follows:
-
- -\b-C\bC Read the specified file instead of the default
- s\bse\ben\bnd\bdm\bma\bai\bil\bl ``cf'' file.
-
- -\b-f\bf Read the specified statistics file instead of the
- statistics file specified in the s\bse\ben\bnd\bdm\bma\bai\bil\bl ``cf''
- file.
-
- -\b-p\bp Output information in program-readable mode and
- clear statistics.
-
- -\b-o\bo Don't display the name of the mailer in the output.
-
- The m\bma\bai\bil\bls\bst\bta\bat\bts\bs utility exits 0 on success, and >0 if an
- error occurs.
-
-F\bFI\bIL\bLE\bES\bS
- /etc/mail/sendmail.cf The default s\bse\ben\bnd\bdm\bma\bai\bil\bl ``cf'' file.
- /etc/mail/statistics The default s\bse\ben\bnd\bdm\bma\bai\bil\bl statistics
- file.
-
-S\bSE\bEE\bE A\bAL\bLS\bSO\bO
- mailq(1), sendmail(8)
-
-
-
- April 25, 1996 1
-
-
+++ /dev/null
-#!/bin/sh
-
-# Copyright (c) 1999 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-# $Sendmail: Build,v 8.4 1999/03/02 02:33:50 peterh Exp $
-
-exec ../devtools/bin/Build $*
-# $Sendmail: Makefile,v 8.7 1999/09/23 22:36:37 ca Exp $
+# $OpenBSD: Makefile,v 1.2 2000/04/02 19:48:32 millert Exp $
-SHELL= /bin/sh
-BUILD= ./Build
-OPTIONS= $(CONFIG) $(FLAGS)
+PROG= makemap
+MAN= makemap.8
+ENVDEF+=-DNOT_SENDMAIL
-all: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
-clean: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
-install: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
+WANT_LIBSMDB=1
+WANT_LIBSMUTIL=1
-fresh: FRC
- $(SHELL) $(BUILD) $(OPTIONS) -c
-
-FRC:
+.include "../../Makefile.inc"
+.include <bsd.prog.mk>
+++ /dev/null
-include(confBUILDTOOLSDIR`/M4/switch.m4')
-
-# sendmail dir
-SMSRCDIR= ifdef(`confSMSRCDIR', `confSMSRCDIR', `${SRCDIR}/sendmail')
-PREPENDDEF(`confENVDEF', `confMAPDEF')
-PREPENDDEF(`confINCDIRS', `-I${SMSRCDIR} ')
-
-bldPRODUCT_START(`executable', `makemap')
-define(`bldSOURCES', `makemap.c ')
-define(`bldINSTALL_DIR', `S')
-bldPUSH_SMLIB(`smutil')
-bldPUSH_SMLIB(`smdb')
-APPENDDEF(`confENVDEF', `-DNOT_SENDMAIL')
-bldPRODUCT_END
-
-bldPRODUCT_START(`manpage', `makemap')
-define(`bldSOURCES', `makemap.8')
-bldPRODUCT_END
-
-bldFINISH
+++ /dev/null
-
-
-
-MAKEMAP(8) MAKEMAP(8)
-
-
-N\bNA\bAM\bME\bE
- m\bma\bak\bke\bem\bma\bap\bp - create database maps for sendmail
-
-S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
- m\bma\bak\bke\bem\bma\bap\bp [-\b-C\bC _\bf_\bi_\bl_\be] [-\b-N\bN] [-\b-c\bc _\bc_\ba_\bc_\bh_\be_\bs_\bi_\bz_\be] [-\b-d\bd] [-\b-e\be] [-\b-f\bf] [-\b-l\bl]
- [-\b-o\bo] [-\b-r\br] [-\b-s\bs] [-\b-u\bu] [-\b-v\bv] _\bm_\ba_\bp_\bt_\by_\bp_\be _\bm_\ba_\bp_\bn_\ba_\bm
-
-D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
- M\bMa\bak\bke\bem\bma\bap\bp creates the database maps used by the keyed map
- lookups in sendmail(8). It reads input from the standard
- input and outputs them to the indicated _\bm_\ba_\bp_\bn_\ba_\bm_\be_\b.
-
- Depending on how it is compiled, m\bma\bak\bke\bem\bma\bap\bp handles up to
- three different database formats, selected using the _\bm_\ba_\bp_\b-
- _\bt_\by_\bp_\be parameter. They may be
-
- dbm DBM format maps. This requires the ndbm(3)
- library.
-
- btree B-Tree format maps. This requires the new Berkeley
- DB library.
-
- hash Hash format maps. This also requires the Berkeley
- DB library.
-
- In all cases, m\bma\bak\bke\bem\bma\bap\bp reads lines from the standard input
- consisting of two words separated by white space. The
- first is the database key, the second is the value. The
- value may contain ``%_\bn'' strings to indicate parameter
- substitution. Literal percents should be doubled
- (``%%''). Blank lines and lines beginning with ``#'' are
- ignored.
-
- If the _\bT_\br_\bu_\bs_\bt_\be_\bd_\bU_\bs_\be_\br option is set in the sendmail configu-
- ration file and m\bma\bak\bke\bem\bma\bap\bp is invoked as root, the generated
- files will be owned by the specified _\bT_\br_\bu_\bs_\bt_\be_\bd_\bU_\bs_\be_\br_\b.
-
- F\bFl\bla\bag\bgs\bs
- -\b-C\bC Use the specified sendmail configuration file for
- looking up the TrustedUser option.
-
- -\b-N\bN Include the null byte that terminates strings in
- the map. This must match the -N flag in the send-
- mail.cf ``K'' line.
-
- -\b-c\bc Use the specified hash and B-Tree cache size.
-
- -\b-d\bd Allow duplicate keys in the map. This is only
- allowed on B-Tree format maps. If two identical
- keys are read, they will both be inserted into the
- map.
-
- -\b-e\be Allow empty value (right hand side).
-
-
-
-
- November 16, 1992 1
-
-
-
-
-
-MAKEMAP(8) MAKEMAP(8)
-
-
- -\b-f\bf Normally all upper case letters in the key are
- folded to lower case. This flag disables that
- behaviour. This is intended to mesh with the -f
- flag in the K\bK line in sendmail.cf. The value is
- never case folded.
-
- -\b-l\bl List supported map types.
-
- -\b-o\bo Append to an old file. This allows you to augment
- an existing file.
-
- -\b-r\br Allow replacement of existing keys. Normally
- m\bma\bak\bke\bem\bma\bap\bp complains if you repeat a key, and does not
- do the insert.
-
- -\b-s\bs Ignore safety checks on maps being created. This
- includes checking for hard or symbolic links in
- world writable directories.
-
- -\b-u\bu dump (unmap) the content of the database to stan-
- dard output.
-
- -\b-v\bv Verbosely print what it is doing.
-
-S\bSE\bEE\bE A\bAL\bLS\bSO\bO
- sendmail(8)
-
-H\bHI\bIS\bST\bTO\bOR\bRY\bY
- The m\bma\bak\bke\bem\bma\bap\bp command appeared in 4.4BSD.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- November 16, 1992 2
-
-
+++ /dev/null
-#!/bin/sh
-
-# Copyright (c) 1999 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-# $Sendmail: Build,v 8.4 1999/03/02 02:34:32 peterh Exp $
-
-exec ../devtools/bin/Build $*
-# $Sendmail: Makefile,v 8.5 1999/09/23 22:36:39 ca Exp $
+# $OpenBSD: Makefile,v 1.2 2000/04/02 19:48:33 millert Exp $
-SHELL= /bin/sh
-BUILD= ./Build
-OPTIONS= $(CONFIG) $(FLAGS)
+PROG= praliases
+MAN= praliases.1
+ENVDEF+=-DNOT_SENDMAIL
-all: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
-clean: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
-install: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
+WANT_LIBSMDB=1
+WANT_LIBSMUTIL=1
-fresh: FRC
- $(SHELL) $(BUILD) $(OPTIONS) -c
-
-FRC:
+.include "../../Makefile.inc"
+.include <bsd.prog.mk>
+++ /dev/null
-include(confBUILDTOOLSDIR`/M4/switch.m4')
-
-# sendmail dir
-SMSRCDIR= ifdef(`confSMSRCDIR', `confSMSRCDIR', `${SRCDIR}/sendmail')
-PREPENDDEF(`confENVDEF', `confMAPDEF')
-PREPENDDEF(`confINCDIRS', `-I${SMSRCDIR} ')
-
-bldPRODUCT_START(`executable', `praliases')
-define(`bldINSTALL_DIR', `S')
-define(`bldSOURCES', `praliases.c ')
-bldPUSH_SMLIB(`smutil')
-bldPUSH_SMLIB(`smdb')
-APPENDDEF(`confENVDEF', `-DNOT_SENDMAIL')
-bldPRODUCT_END
-
-bldPRODUCT_START(`manpage', `praliases')
-define(`bldSOURCES', `praliases.8')
-bldPRODUCT_END
-
-bldFINISH
-
+++ /dev/null
-
-
-
-PRALIASES(1) PRALIASES(1)
-
-
-N\bNA\bAM\bME\bE
- p\bpr\bra\bal\bli\bia\bas\bse\bes\bs - display system mail aliases
-
-S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
- p\bpr\bra\bal\bli\bia\bas\bse\bes\bs [-\b-C\bC _\bf_\bi_\bl_\be] [-\b-f\bf _\bf_\bi_\bl_\be]
-
-D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
- The p\bpr\bra\bal\bli\bia\bas\bse\bes\bs utility displays the current system aliases,
- one per line, in no particular order. The special inter-
- nal @:@ alias will be displayed if present.
-
- The options are as follows:
-
- -\b-C\bC Read the specified sendmail configuration file
- instead of the default s\bse\ben\bnd\bdm\bma\bai\bil\bl configuration file.
-
- -\b-f\bf Read the specified file instead of the configured
- s\bse\ben\bnd\bdm\bma\bai\bil\bl system aliases file(s).
-
- The p\bpr\bra\bal\bli\bia\bas\bse\bes\bs utility exits 0 on success, and >0 if an
- error occurs.
-
-F\bFI\bIL\bLE\bES\bS
- /etc/mail/sendmail.cf The default s\bse\ben\bnd\bdm\bma\bai\bil\bl configura-
- tion file.
-
-S\bSE\bEE\bE A\bAL\bLS\bSO\bO
- mailq(1), sendmail(8)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- April 25, 1996 1
-
-
--- /dev/null
+.\" Copyright (c) 1998, 1999 Sendmail, Inc. and its suppliers.
+.\" All rights reserved.
+.\"
+.\" By using this file, you agree to the terms and conditions set
+.\" forth in the LICENSE file which can be found at the top level of
+.\" the sendmail distribution.
+.\"
+.\"
+.\" $Sendmail: praliases.8,v 8.12 1999/09/01 22:15:16 gshapiro Exp $
+.\"
+.TH PRALIASES 1 "April 25, 1996"
+.SH NAME
+.B praliases
+\- display system mail aliases
+.SH SYNOPSIS
+.B praliases
+.RB [ \-C
+.IR file ]
+.RB [ \-f
+.IR file ]
+.SH DESCRIPTION
+The
+.B praliases
+utility displays the current system aliases,
+one per line, in no particular order.
+The special internal @:@ alias will be displayed if present.
+.PP
+The options are as follows:
+.TP
+.B \-C
+Read the specified sendmail configuration file instead of the default
+.B sendmail
+configuration file.
+.TP
+.B \-f
+Read the specified file instead of the configured
+.B sendmail
+system aliases file(s).
+.PP
+The
+.B praliases
+utility exits 0 on success, and >0 if an error occurs.
+.SH FILES
+.TP 2.5i
+/etc/mail/sendmail.cf
+The default
+.B sendmail
+configuration file.
+.SH SEE ALSO
+mailq(1),
+sendmail(8)
+++ /dev/null
-.\" Copyright (c) 1998, 1999 Sendmail, Inc. and its suppliers.
-.\" All rights reserved.
-.\"
-.\" By using this file, you agree to the terms and conditions set
-.\" forth in the LICENSE file which can be found at the top level of
-.\" the sendmail distribution.
-.\"
-.\"
-.\" $Sendmail: praliases.8,v 8.12 1999/09/01 22:15:16 gshapiro Exp $
-.\"
-.TH PRALIASES 1 "April 25, 1996"
-.SH NAME
-.B praliases
-\- display system mail aliases
-.SH SYNOPSIS
-.B praliases
-.RB [ \-C
-.IR file ]
-.RB [ \-f
-.IR file ]
-.SH DESCRIPTION
-The
-.B praliases
-utility displays the current system aliases,
-one per line, in no particular order.
-The special internal @:@ alias will be displayed if present.
-.PP
-The options are as follows:
-.TP
-.B \-C
-Read the specified sendmail configuration file instead of the default
-.B sendmail
-configuration file.
-.TP
-.B \-f
-Read the specified file instead of the configured
-.B sendmail
-system aliases file(s).
-.PP
-The
-.B praliases
-utility exits 0 on success, and >0 if an error occurs.
-.SH FILES
-.TP 2.5i
-/etc/mail/sendmail.cf
-The default
-.B sendmail
-configuration file.
-.SH SEE ALSO
-mailq(1),
-sendmail(8)
+++ /dev/null
-#!/bin/sh
-
-# Copyright (c) 1999 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-# $Sendmail: Build,v 8.4 1999/03/02 02:34:45 peterh Exp $
-
-exec ../devtools/bin/Build $*
-# $Sendmail: Makefile,v 8.5 1999/10/05 16:39:19 ca Exp $
+# $OpenBSD: Makefile,v 1.2 2000/04/02 19:48:34 millert Exp $
-SHELL= /bin/sh
-BUILD= ./Build
-OPTIONS= $(CONFIG) $(FLAGS)
+PROG= rmail
+MAN= rmail.8
-all: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
-clean: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
-install: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
-force-install: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
+WANT_LIBSMUTIL=1
-fresh: FRC
- $(SHELL) $(BUILD) $(OPTIONS) -c
-
-FRC:
+.include "../../Makefile.inc"
+.include <bsd.prog.mk>
+++ /dev/null
-include(confBUILDTOOLSDIR`/M4/switch.m4')
-
-PREPENDDEF(`confENVDEF', `confMAPDEF')
-
-bldPRODUCT_START(`executable', `rmail')
-define(`bldNO_INSTALL')
-define(`bldSOURCES', `rmail.c ')
-bldPUSH_SMLIB(`smutil')
-bldPRODUCT_END
-
-bldPRODUCT_START(`manpage', `rmail')
-define(`bldSOURCES', `rmail.8')
-bldPRODUCT_END
-
-RMAIL=ifdef(`confFORCE_RMAIL', `force-install', `defeat-install')
-
-divert(bldTARGETS_SECTION)
-install: ${RMAIL}
-
-defeat-install:
- @echo "NOTE: This version of rmail is not suited for some operating"
- @echo " systems. You can force the install using"
- @echo " 'Build force-install'."
-
-force-install: install-rmail ifdef(`confNO_MAN_BUILD',, `install-docs')
-
-install-rmail: rmail
- ${INSTALL} -c -o ${UBINOWN} -g ${UBINGRP} -m ${UBINMODE} rmail ${DESTDIR}${UBINDIR}
-divert
-
-bldFINISH
-
+++ /dev/null
-
-
-
-RMAIL(8) RMAIL(8)
-
-
-N\bNA\bAM\bME\bE
- r\brm\bma\bai\bil\bl - handle remote mail received via uucp
-
-S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
- r\brm\bma\bai\bil\bl _\bu_\bs_\be_\br _\b._\b._\b.
-
-D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
- R\bRm\bma\bai\bil\bl interprets incoming mail received via uucp(1), col-
- lapsing ``From'' lines in the form generated by
- mail.local(8) into a single line of the form ``return-
- path!sender'', and passing the processed mail on to send-
- mail(8).
-
- R\bRm\bma\bai\bil\bl is explicitly designed for use with uucp and send-
- mail.
-
-S\bSE\bEE\bE A\bAL\bLS\bSO\bO
- uucp(1), mail.local(8), sendmail(8)
-
-H\bHI\bIS\bST\bTO\bOR\bRY\bY
- The r\brm\bma\bai\bil\bl program appeared in 4.2BSD.
-
-B\bBU\bUG\bGS\bS
- R\bRm\bma\bai\bil\bl should not reside in /bin.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- $Date: 2000/04/02 19:05:57 $ 1
-
-
.\"
.\" $Sendmail: rmail.8,v 8.1 1999/06/22 20:41:33 tony Exp $
.\"
-.TH RMAIL 8 "$Date: 2000/04/02 19:05:57 $"
+.TH RMAIL 8 "$Date: 2000/04/02 19:48:34 $"
.SH NAME
.B rmail
\- handle remote mail received via uucp
+++ /dev/null
-#!/bin/sh
-
-# Copyright (c) 1999 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-# $Sendmail: Build,v 8.4 1999/03/02 02:34:01 peterh Exp $
-
-exec ../devtools/bin/Build $*
-# $Sendmail: Makefile,v 8.11 1999/09/23 22:36:42 ca Exp $
+# $OpenBSD: Makefile,v 1.2 2000/04/02 19:48:34 millert Exp $
-SHELL= /bin/sh
-BUILD= ./Build
-OPTIONS= $(CONFIG) $(FLAGS)
+PROG= sendmail
-all: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
-clean: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
-install: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
+WANT_LIBWRAP=1
+WANT_LIBSMUTIL=1
-fresh: FRC
- $(SHELL) $(BUILD) $(OPTIONS) -c
+SRCS= main.c alias.c arpadate.c bf_torek.c clock.c collect.c \
+ conf.c control.c convtime.c daemon.c deliver.c domain.c \
+ envelope.c err.c headers.c macro.c map.c mci.c milter.c \
+ mime.c parseaddr.c queue.c readcf.c recipient.c savemail.c \
+ sfsasl.c shmticklib.c srvrsmtp.c stab.c stats.c sysexits.c \
+ timers.c trace.c udb.c usersmtp.c util.c version.c
+MAN= aliases.5 mailq.1 newaliases.1 sendmail.8
+BINDIR= /usr/libexec/sendmail
+BINOWN= root
+BINGRP= bin
+BINMODE=4555
-FRC:
+beforeinstall:
+ # Force user to make the world sane for us
+ @if [ -f /etc/sendmail.cf ]; then \
+ if [ ! -f /etc/mail/sendmail.cf ]; then \
+ echo "Error: /etc/sendmail.cf exists but /etc/mail/sendmail.cf does not. Please move /etc/sendmail.cf to /etc/mail/sendmail.cf."; \
+ false; \
+ else \
+ echo "Warning: both /etc/mail/sendmail.cf and /etc/sendmail.cf exist. Sendmail will use /etc/mail/sendmail.cf."; \
+ fi ; \
+ fi
+ ${INSTALL} ${INSTALL_COPY} -o ${BINOWN} -g ${BINGRP} -m 444 \
+ ${.CURDIR}/helpfile ${DESTDIR}/etc/mail/helpfile
+ ${INSTALL} ${INSTALL_COPY} -o ${BINOWN} -g ${BINGRP} -m 644 \
+ /dev/null ${DESTDIR}/var/log/sendmail.st
+
+.include "../../Makefile.inc"
+.include <bsd.prog.mk>
+++ /dev/null
-include(confBUILDTOOLSDIR`/M4/switch.m4')
-
-bldPRODUCT_START(`executable', `sendmail')
-define(`bldBIN_TYPE', `S')
-define(`bldINSTALL_DIR', `')
-define(`bldSOURCES', `main.c alias.c arpadate.c bf_'ifdef(`confSTDIO_TYPE', `confSTDIO_TYPE', `portable')`.c clock.c collect.c conf.c control.c convtime.c daemon.c deliver.c domain.c envelope.c err.c headers.c macro.c map.c mci.c milter.c mime.c parseaddr.c queue.c readcf.c recipient.c savemail.c sfsasl.c shmticklib.c srvrsmtp.c stab.c stats.c sysexits.c timers.c trace.c udb.c usersmtp.c util.c version.c ')
-PREPENDDEF(`confENVDEF', `confMAPDEF')
-bldPUSH_SMLIB(`smutil')
-
-define(`bldTARGET_LINKS', ifdef(`confLINKS', `confLINKS',
-`${DESTDIR}${UBINDIR}/newaliases ${DESTDIR}${UBINDIR}/mailq ${DESTDIR}${UBINDIR}/hoststat ${DESTDIR}${UBINDIR}/purgestat')
-)dnl
-
-# location of sendmail statistics file (usually /etc/mail/ or /var/log)
-STDIR= ifdef(`confSTDIR', `confSTDIR', `/etc/mail')
-
-# full path to installed statistics file (usually ${STDIR}/statistics)
-STFILE= ${STDIR}/ifdef(`confSTFILE', `confSTFILE', `statistics')
-
-# location of sendmail helpfile file (usually /etc/mail)
-HFDIR= ifdef(`confHFDIR', `confHFDIR', `/etc/mail')
-
-# full path to installed help file (usually ${HFDIR}/helpfile)
-HFFILE= ${HFDIR}/ifdef(`confHFFILE', `confHFFILE', `helpfile')
-
-ifdef(`confSMSRCADD', `APPENDDEF(`confSRCADD', `confSMSRCADD')')
-ifdef(`confSMOBJADD', `APPENDDEF(`confOBJADD', `confSMOBJADD')')
-
-bldPUSH_TARGET(`statistics')
-divert(bldTARGETS_SECTION)
-statistics:
- ${CP} /dev/null statistics
-
-divert(0)
-
-ifdef(`confNO_HELPFILE_INSTALL',, `bldPUSH_INSTALL_TARGET(`install-hf')')
-ifdef(`confNO_STATISTICS_INSTALL',, `bldPUSH_INSTALL_TARGET(`install-st')')
-divert(bldTARGETS_SECTION)
-install-hf:
- if [ ! -d ${DESTDIR}${HFDIR} ]; then mkdir -p ${DESTDIR}${HFDIR}; fi
- ${INSTALL} -c -o ${UBINOWN} -g ${UBINGRP} -m 444 helpfile ${DESTDIR}${HFFILE}
-
-install-st: statistics
- if [ ! -d ${DESTDIR}${STDIR} ]; then mkdir -p ${DESTDIR}${STDIR}; fi
- ${INSTALL} -c -o ${SBINOWN} -g ${UBINGRP} -m 644 statistics ${DESTDIR}${STFILE}
-divert(0)
-bldPRODUCT_END
-
-bldPRODUCT_START(`manpage', `sendmail')
-define(`bldSOURCES', `sendmail.8 aliases.5 mailq.1 newaliases.1')
-bldPRODUCT_END
-
-bldFINISH
version of sendmail. Theoretically, this gets
modified on every change.
-(Version $Revision: 1.1.1.1 $, last update $Date: 2000/04/02 19:05:43 $ )
+(Version $Revision: 1.2 $, last update $Date: 2000/04/02 19:48:34 $ )
+++ /dev/null
-
-
-
-ALIASES(5) ALIASES(5)
-
-
-N\bNA\bAM\bME\bE
- a\bal\bli\bia\bas\bse\bes\bs - aliases file for sendmail
-
-S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
- a\bal\bli\bia\bas\bse\bes\bs
-
-D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
- This file describes user ID aliases used by sendmail. The
- file resides in /etc/mail and is formatted as a series of
- lines of the form
-
- name: addr_1, addr_2, addr_3, . . .
-
- The _\bn_\ba_\bm_\be is the name to alias, and the _\ba_\bd_\bd_\br_\b__\bn are the
- aliases for that name. _\ba_\bd_\bd_\br_\b__\bn can be another alias, a
- local username, a local filename, a command, an include
- file, or an external address.
-
- L\bLo\boc\bca\bal\bl U\bUs\bse\ber\brn\bna\bam\bme\be
- username
-
- The username must be available via getpwnam(3).
-
- L\bLo\boc\bca\bal\bl F\bFi\bil\ble\ben\bna\bam\bme\be
- /path/name
-
- Messages are appended to the file specified by the
- full pathname (starting with a slash (/))
-
- C\bCo\bom\bmm\bma\ban\bnd\bd
- |command
-
- A command starts with a pipe symbol (|), it
- receives messages via standard input.
-
- I\bIn\bnc\bcl\blu\bud\bde\be F\bFi\bil\ble\be
- :include: /path/name
-
- The aliases in pathname are added to the aliases
- for _\bn_\ba_\bm_\be_\b.
-
- E\bE-\b-M\bMa\bai\bil\bl A\bAd\bdd\bdr\bre\bes\bss\bs
- user@domain
-
- An e-mail address in RFC 822 format.
-
- Lines beginning with white space are continuation lines.
- Another way to continue lines is by placing a backslash
- directly before a newline. Lines beginning with # are
- comments.
-
- Aliasing occurs only on local names. Loops can not occur,
- since no message will be sent to any person more than
- once.
-
-
-
- $Date: 2000/04/02 19:05:43 $ 1
-
-
-
-
-
-ALIASES(5) ALIASES(5)
-
-
- After aliasing has been done, local and valid recipients
- who have a ``.forward'' file in their home directory have
- messages forwarded to the list of users defined in that
- file.
-
- This is only the raw data file; the actual aliasing infor-
- mation is placed into a binary format in the file
- /etc/mail/aliases.db using the program newaliases(1). A
- newaliases command should be executed each time the
- aliases file is changed for the change to take effect.
-
-S\bSE\bEE\bE A\bAL\bLS\bSO\bO
- newaliases(1), dbopen(3), dbm(3), sendmail(8)
-
- _\bS_\bE_\bN_\bD_\bM_\bA_\bI_\bL _\bI_\bn_\bs_\bt_\ba_\bl_\bl_\ba_\bt_\bi_\bo_\bn _\ba_\bn_\bd _\bO_\bp_\be_\br_\ba_\bt_\bi_\bo_\bn _\bG_\bu_\bi_\bd_\be_\b.
-
- _\bS_\bE_\bN_\bD_\bM_\bA_\bI_\bL _\bA_\bn _\bI_\bn_\bt_\be_\br_\bn_\be_\bt_\bw_\bo_\br_\bk _\bM_\ba_\bi_\bl _\bR_\bo_\bu_\bt_\be_\br_\b.
-
-B\bBU\bUG\bGS\bS
- If you have compiled sendmail with DBM support instead of
- NEWDB, you may have encountered problems in dbm(3)
- restricting a single alias to about 1000 bytes of informa-
- tion. You can get longer aliases by ``chaining''; that
- is, make the last name in the alias be a dummy name which
- is a continuation alias.
-
-H\bHI\bIS\bST\bTO\bOR\bRY\bY
- The a\bal\bli\bia\bas\bse\bes\bs file format appeared in 4.0BSD.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- $Date: 2000/04/02 19:05:43 $ 2
-
-
.\"
.\" $Sendmail: aliases.5,v 8.15 2000/02/26 01:12:21 ca Exp $
.\"
-.TH ALIASES 5 "$Date: 2000/04/02 19:05:43 $"
+.TH ALIASES 5 "$Date: 2000/04/02 19:48:34 $"
.SH NAME
.B aliases
\- aliases file for sendmail
void
seed_random()
{
-#if HASSRANDOMDEV
+#if HASARC4RANDOM
+ arc4random_stir();
+#else /* HASARC4RANDOM */
+# if HASSRANDOMDEV
srandomdev();
-#else /* HASSRANDOMDEV */
+# else /* HASSRANDOMDEV */
long seed;
struct timeval t;
if (gettimeofday(&t, NULL) >= 0)
seed += t.tv_sec + t.tv_usec;
-# if HASRANDOM
+# if HASRANDOM
(void) srandom(seed);
-# else /* HASRANDOM */
+# else /* HASRANDOM */
(void) srand((unsigned int) seed);
-# endif /* HASRANDOM */
-#endif /* HASSRANDOMDEV */
+# endif /* HASRANDOM */
+# endif /* HASSRANDOMDEV */
+#endif /* HASARC4RANDOM */
}
\f/*
** SM_SYSLOG -- syslog wrapper to keep messages under SYSLOG_BUFSIZE
#if FAST_PID_RECYCLE
"FAST_PID_RECYCLE",
#endif /* FAST_PID_RECYCLE */
+#if HASARC4RANDOM
+ "HASARC4RANDOM",
+#endif /* HASARC4RANDOM */
#if HASFCHOWN
"HASFCHOWN",
#endif /* HASFCHOWN */
# if __FreeBSD_version >= 222000 /* 2.2.2-release and later */
# define HASSETUSERCONTEXT 1 /* BSDI-style login classes */
# endif /* __FreeBSD_version >= 222000 */
+# if __FreeBSD_version >= 226000 /* 2.2.6-release and later */
+# define HASARC4RANDOM 1 /* has arc4random(3) function */
+# endif /* __FreeBSD_version >= 226000 */
# if __FreeBSD_version >= 330000 /* 3.3.0-release and later */
# ifndef HASSTRL
# define HASSTRL 1 /* has strlc{py,at}(3) functions */
# undef SPT_TYPE
# define SPT_TYPE SPT_BUILTIN /* setproctitle is in libc */
# define HASSETLOGIN 1 /* has setlogin(2) */
+# define HASARC4RANDOM 1 /* has arc4random(3) function */
/* strlcat(3) is broken in OpenBSD 2.5 and earlier */
-# define HASSTRL 0 /* has strlc{py,at}(3) functions */
+# if OpenBSD < 199912
+# define HASSTRL 0 /* strlcat(3) is broken in 2.5 and earlier */
+# else
+# define HASSTRL 1 /* has strlc{py,at}(3) functions */
+# endif /* OpenBSD < 199912 */
# endif /* defined(__OpenBSD__) */
#endif /* defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) */
/* random routine -- set above using #ifdef _osname_ or in Makefile */
-#if HASRANDOM
-# define get_random() random()
-#else /* HASRANDOM */
-# define get_random() ((long) rand())
-# ifndef RANDOMSHIFT
-# define RANDOMSHIFT 8
-# endif /* RANDOMSHIFT */
-#endif /* HASRANDOM */
+#if HASARC4RANDOM
+# define get_random() arc4random()
+#else
+# if HASRANDOM
+# define get_random() random()
+# else /* HASRANDOM */
+# define get_random() ((long) rand())
+# ifndef RANDOMSHIFT
+# define RANDOMSHIFT 8
+# endif /* RANDOMSHIFT */
+# endif /* HASRANDOM */
+#endif /* HASARC4RANDOM */
/*
** Default to using scanf in readcf.
+++ /dev/null
-
-
-
-MAILQ(1) MAILQ(1)
-
-
-N\bNA\bAM\bME\bE
- m\bma\bai\bil\blq\bq - print the mail queue
-
-S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
- m\bma\bai\bil\blq\bq [-\b-v\bv]
-
-D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
- M\bMa\bai\bil\blq\bq prints a summary of the mail messages queued for
- future delivery.
-
- The first line printed for each message shows the internal
- identifier used on this host for the message, the size of
- the message in bytes, the date and time the message was
- accepted into the queue, and the envelope sender of the
- message. The second line shows the error message that
- caused this message to be retained in the queue; it will
- not be present if the message is being processed for the
- first time. The following lines show message recipients,
- one per line.
-
- M\bMa\bai\bil\blq\bq is identical to ``sendmail -bp''.
-
- The options are as follows:
-
- -\b-v\bv Print verbose information. This adds the priority
- of the message and a single character indicator
- (``+'' or blank) indicating whether a warning mes-
- sage has been sent on the first line of the mes-
- sage. Additionally, extra lines may be intermixed
- with the recipients indicating the ``controlling
- user'' information; this shows who will own any
- programs that are executed on behalf of this mes-
- sage and the name of the alias this command
- expanded from, if any.
-
- The m\bma\bai\bil\blq\bq utility exits 0 on success, and >0 if an error
- occurs.
-
-S\bSE\bEE\bE A\bAL\bLS\bSO\bO
- sendmail(8)
-
-H\bHI\bIS\bST\bTO\bOR\bRY\bY
- The m\bma\bai\bil\blq\bq command appeared in 4.0BSD.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- $Date: 2000/04/02 19:05:45 $ 1
-
-
.\"
.\" $Sendmail: mailq.1,v 8.14 1999/06/22 20:41:34 tony Exp $
.\"
-.TH MAILQ 1 "$Date: 2000/04/02 19:05:45 $"
+.TH MAILQ 1 "$Date: 2000/04/02 19:48:35 $"
.SH NAME
.B mailq
\- print the mail queue
+++ /dev/null
-
-
-
-NEWALIASES(1) NEWALIASES(1)
-
-
-N\bNA\bAM\bME\bE
- n\bne\bew\bwa\bal\bli\bia\bas\bse\bes\bs - rebuild the data base for the mail aliases
- file
-
-S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
- n\bne\bew\bwa\bal\bli\bia\bas\bse\bes\bs
-
-D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
- N\bNe\bew\bwa\bal\bli\bia\bas\bse\bes\bs rebuilds the random access data base for the
- mail aliases file /etc/mail/aliases. It must be run each
- time this file is changed in order for the change to take
- effect.
-
- N\bNe\bew\bwa\bal\bli\bia\bas\bse\bes\bs is identical to ``sendmail -bi''.
-
- The n\bne\bew\bwa\bal\bli\bia\bas\bse\bes\bs utility exits 0 on success, and >0 if an
- error occurs.
-
-F\bFI\bIL\bLE\bES\bS
- /etc/mail/aliases The mail aliases file
-
-S\bSE\bEE\bE A\bAL\bLS\bSO\bO
- aliases(5), sendmail(8)
-
-H\bHI\bIS\bST\bTO\bOR\bRY\bY
- The n\bne\bew\bwa\bal\bli\bia\bas\bse\bes\bs command appeared in 4.0BSD.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- $Date: 2000/04/02 19:05:46 $ 1
-
-
.\"
.\" $Sendmail: newaliases.1,v 8.15 1999/06/22 20:41:34 tony Exp $
.\"
-.TH NEWALIASES 1 "$Date: 2000/04/02 19:05:46 $"
+.TH NEWALIASES 1 "$Date: 2000/04/02 19:48:35 $"
.SH NAME
.B newaliases
\- rebuild the data base for the mail aliases file
+++ /dev/null
-
-
-
-SENDMAIL(8) SENDMAIL(8)
-
-
-N\bNA\bAM\bME\bE
- s\bse\ben\bnd\bdm\bma\bai\bil\bl - an electronic mail transport agent
-
-S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
- s\bse\ben\bnd\bdm\bma\bai\bil\bl [_\bf_\bl_\ba_\bg_\bs] [_\ba_\bd_\bd_\br_\be_\bs_\bs _\b._\b._\b.]
- n\bne\bew\bwa\bal\bli\bia\bas\bse\bes\bs
- m\bma\bai\bil\blq\bq [-\b-v\bv]
- h\bho\bos\bst\bts\bst\bta\bat\bt
- p\bpu\bur\brg\bge\bes\bst\bta\bat\bt
- s\bsm\bmt\btp\bpd\bd
-
-D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
- S\bSe\ben\bnd\bdm\bma\bai\bil\bl sends a message to one or more _\br_\be_\bc_\bi_\bp_\bi_\be_\bn_\bt_\bs_\b, rout-
- ing the message over whatever networks are necessary.
- S\bSe\ben\bnd\bdm\bma\bai\bil\bl does internetwork forwarding as necessary to
- deliver the message to the correct place.
-
- S\bSe\ben\bnd\bdm\bma\bai\bil\bl is not intended as a user interface routine;
- other programs provide user-friendly front ends; s\bse\ben\bnd\bdm\bma\bai\bil\bl
- is used only to deliver pre-formatted messages.
-
- With no flags, s\bse\ben\bnd\bdm\bma\bai\bil\bl reads its standard input up to an
- end-of-file or a line consisting only of a single dot and
- sends a copy of the message found there to all of the
- addresses listed. It determines the network(s) to use
- based on the syntax and contents of the addresses.
-
- Local addresses are looked up in a file and aliased appro-
- priately. Aliasing can be prevented by preceding the
- address with a backslash. Beginning with 8.10, the sender
- is included in any alias expansions, e.g., if `john' sends
- to `group', and `group' includes `john' in the expansion,
- then the letter will also be delivered to `john'.
-
- P\bPa\bar\bra\bam\bme\bet\bte\ber\brs\bs
- -\b-B\bB_\bt_\by_\bp_\be Set the body type to _\bt_\by_\bp_\be. Current legal values
- are 7BIT or 8BITMIME.
-
- -\b-b\bba\ba Go into ARPANET mode. All input lines must end
- with a CR-LF, and all messages will be generated
- with a CR-LF at the end. Also, the ``From:'' and
- ``Sender:'' fields are examined for the name of the
- sender.
-
- -\b-b\bbd\bd Run as a daemon. This requires Berkeley IPC.
- S\bSe\ben\bnd\bdm\bma\bai\bil\bl will fork and run in background listening
- on socket 25 for incoming SMTP connections. This
- is normally run from /etc/rc.
-
- -\b-b\bbD\bD Same as -\b-b\bbd\bd except runs in foreground.
-
- -\b-b\bbh\bh Print the persistent host status database.
-
- -\b-b\bbH\bH Purge expired entries from the persistent host
-
-
-
- $Date: 2000/04/02 19:05:47 $ 1
-
-
-
-
-
-SENDMAIL(8) SENDMAIL(8)
-
-
- status database.
-
- -\b-b\bbi\bi Initialize the alias database.
-
- -\b-b\bbm\bm Deliver mail in the usual way (default).
-
- -\b-b\bbp\bp Print a listing of the queue.
-
- -\b-b\bbs\bs Use the SMTP protocol as described in RFC821 on
- standard input and output. This flag implies all
- the operations of the -\b-b\bba\ba flag that are compatible
- with SMTP.
-
- -\b-b\bbt\bt Run in address test mode. This mode reads
- addresses and shows the steps in parsing; it is
- used for debugging configuration tables.
-
- -\b-b\bbv\bv Verify names only - do not try to collect or
- deliver a message. Verify mode is normally used
- for validating users or mailing lists.
-
- -\b-C\bC_\bf_\bi_\bl_\be Use alternate configuration file. S\bSe\ben\bnd\bdm\bma\bai\bil\bl refuses
- to run as root if an alternate configuration file
- is specified.
-
- -\b-d\bd_\bX Set debugging value to _\bX.
-
- -\b-F\bF_\bf_\bu_\bl_\bl_\bn_\ba_\bm_\be
- Set the full name of the sender.
-
- -\b-f\bf_\bn_\ba_\bm_\be Sets the name of the ``from'' person (i.e., the
- envelope sender of the mail). This address may
- also be used in the From: header if that header is
- missing during initial submission. The envelope
- sender address is used as the recipient for deliv-
- ery status notifications and may also appear in a
- Return-Path: header. -\b-f\bf should only be used by
- ``trusted'' users (normally _\br_\bo_\bo_\bt, _\bd_\ba_\be_\bm_\bo_\bn, and _\bn_\be_\bt_\b-
- _\bw_\bo_\br_\bk) or if the person you are trying to become is
- the same as the person you are. Otherwise, an X-
- Authentication-Warning header will be added to the
- message.
-
- -\b-h\bh_\bN Set the hop count to _\bN. The hop count is incre-
- mented every time the mail is processed. When it
- reaches a limit, the mail is returned with an error
- message, the victim of an aliasing loop. If not
- specified, ``Received:'' lines in the message are
- counted.
-
- -\b-i\bi Ignore dots alone on lines by themselves in incom-
- ing messages. This should be set if you are read-
- ing data from a file.
-
-
-
-
- $Date: 2000/04/02 19:05:47 $ 2
-
-
-
-
-
-SENDMAIL(8) SENDMAIL(8)
-
-
- -\b-L\bL _\bt_\ba_\bg Set the identifier used in syslog messages to the
- supplied _\bt_\ba_\bg.
-
- -\b-N\bN _\bd_\bs_\bn Set delivery status notification conditions to _\bd_\bs_\bn,
- which can be `never' for no notifications or a
- comma separated list of the values `failure' to be
- notified if delivery failed, `delay' to be notified
- if delivery is delayed, and `success' to be noti-
- fied when the message is successfully delivered.
-
- -\b-n\bn Don't do aliasing.
-
- -\b-O\bO _\bo_\bp_\bt_\bi_\bo_\bn=_\bv_\ba_\bl_\bu_\be
- Set option _\bo_\bp_\bt_\bi_\bo_\bn to the specified _\bv_\ba_\bl_\bu_\be. This
- form uses long names. See below for more details.
-
- -\b-o\bo_\bx _\bv_\ba_\bl_\bu_\be
- Set option _\bx to the specified _\bv_\ba_\bl_\bu_\be. This form
- uses single character names only. The short names
- are not described in this manual page; see the
- _\bS_\be_\bn_\bd_\bm_\ba_\bi_\bl _\bI_\bn_\bs_\bt_\ba_\bl_\bl_\ba_\bt_\bi_\bo_\bn _\ba_\bn_\bd _\bO_\bp_\be_\br_\ba_\bt_\bi_\bo_\bn _\bG_\bu_\bi_\bd_\be for
- details.
-
- -\b-p\bp_\bp_\br_\bo_\bt_\bo_\bc_\bo_\bl
- Set the name of the protocol used to receive the
- message. This can be a simple protocol name such
- as ``UUCP'' or a protocol and hostname, such as
- ``UUCP:ucbvax''.
-
- -\b-q\bq[_\bt_\bi_\bm_\be]
- Processed saved messages in the queue at given
- intervals. If _\bt_\bi_\bm_\be is omitted, process the queue
- once. _\bT_\bi_\bm_\be is given as a tagged number, with `s'
- being seconds, `m' being minutes, `h' being hours,
- `d' being days, and `w' being weeks. For example,
- `-q1h30m' or `-q90m' would both set the timeout to
- one hour thirty minutes. If _\bt_\bi_\bm_\be is specified,
- s\bse\ben\bnd\bdm\bma\bai\bil\bl will run in the background. This option
- can be used safely with -\b-b\bbd\bd.
-
- -\b-q\bqI\bI_\bs_\bu_\bb_\bs_\bt_\br
- Limit processed jobs to those containing _\bs_\bu_\bb_\bs_\bt_\br as
- a substring of the queue id.
-
- -\b-q\bqR\bR_\bs_\bu_\bb_\bs_\bt_\br
- Limit processed jobs to those containing _\bs_\bu_\bb_\bs_\bt_\br as
- a substring of one of the recipients.
-
- -\b-q\bqS\bS_\bs_\bu_\bb_\bs_\bt_\br
- Limit processed jobs to those containing _\bs_\bu_\bb_\bs_\bt_\br as
- a substring of the sender.
-
- -\b-R\bR _\br_\be_\bt_\bu_\br_\bn
- Set the amount of the message to be returned if the
-
-
-
- $Date: 2000/04/02 19:05:47 $ 3
-
-
-
-
-
-SENDMAIL(8) SENDMAIL(8)
-
-
- message bounces. The _\br_\be_\bt_\bu_\br_\bn parameter can be
- `full' to return the entire message or `hdrs' to
- return only the headers. In the latter case also
- local bounces return only the headers.
-
- -\b-r\br_\bn_\ba_\bm_\be An alternate and obsolete form of the -\b-f\bf flag.
-
- -\b-t\bt Read message for recipients. To:, Cc:, and Bcc:
- lines will be scanned for recipient addresses. The
- Bcc: line will be deleted before transmission.
-
- -\b-U\bU Initial (user) submission. This should _\ba_\bl_\bw_\ba_\by_\bs be
- set when called from a user agent such as M\bMa\bai\bil\bl or
- e\bex\bxm\bmh\bh and _\bn_\be_\bv_\be_\br be set when called by a network
- delivery agent such as r\brm\bma\bai\bil\bl.
-
- -\b-V\bV _\be_\bn_\bv_\bi_\bd
- Set the original envelope id. This is propagated
- across SMTP to servers that support DSNs and is
- returned in DSN-compliant error messages.
-
- -\b-v\bv Go into verbose mode. Alias expansions will be
- announced, etc.
-
- -\b-X\bX _\bl_\bo_\bg_\bf_\bi_\bl_\be
- Log all traffic in and out of mailers in the indi-
- cated log file. This should only be used as a last
- resort for debugging mailer bugs. It will log a
- lot of data very quickly.
-
- -\b--\b- Stop processing command flags and use the rest of
- the arguments as addresses.
-
- O\bOp\bpt\bti\bio\bon\bns\bs
- There are also a number of processing options that may be
- set. Normally these will only be used by a system admin-
- istrator. Options may be set either on the command line
- using the -\b-o\bo flag (for short names), the -\b-O\bO flag (for long
- names), or in the configuration file. This is a partial
- list limited to those options that are likely to be useful
- on the command line and only shows the long names; for a
- complete list (and details), consult the _\bS_\be_\bn_\bd_\bm_\ba_\bi_\bl _\bI_\bn_\bs_\bt_\ba_\bl_\b-
- _\bl_\ba_\bt_\bi_\bo_\bn _\ba_\bn_\bd _\bO_\bp_\be_\br_\ba_\bt_\bi_\bo_\bn _\bG_\bu_\bi_\bd_\be. The options are:
-
- AliasFile=_\bf_\bi_\bl_\be
- Use alternate alias file.
-
- HoldExpensive
- On mailers that are considered ``expensive'' to
- connect to, don't initiate immediate connection.
- This requires queueing.
-
- CheckpointInterval=_\bN
- Checkpoint the queue file after every _\bN successful
-
-
-
- $Date: 2000/04/02 19:05:47 $ 4
-
-
-
-
-
-SENDMAIL(8) SENDMAIL(8)
-
-
- deliveries (default 10). This avoids excessive
- duplicate deliveries when sending to long mailing
- lists interrupted by system crashes.
-
- DeliveryMode=_\bx
- Set the delivery mode to _\bx. Delivery modes are `i'
- for interactive (synchronous) delivery, `b' for
- background (asynchronous) delivery, `q' for queue
- only - i.e., actual delivery is done the next time
- the queue is run, and `d' for deferred - the same
- as `q' except that database lookups for maps which
- have set the -D option (default for the host map)
- are avoided.
-
- ErrorMode=_\bx
- Set error processing to mode _\bx. Valid modes are
- `m' to mail back the error message, `w' to
- ``write'' back the error message (or mail it back
- if the sender is not logged in), `p' to print the
- errors on the terminal (default), `q' to throw away
- error messages (only exit status is returned), and
- `e' to do special processing for the BerkNet. If
- the text of the message is not mailed back by modes
- `m' or `w' and if the sender is local to this
- machine, a copy of the message is appended to the
- file _\bd_\be_\ba_\bd_\b._\bl_\be_\bt_\bt_\be_\br in the sender's home directory.
-
- SaveFromLine
- Save UNIX-style From lines at the front of mes-
- sages.
-
- MaxHopCount=_\bN
- The maximum number of times a message is allowed to
- ``hop'' before we decide it is in a loop.
-
- IgnoreDots
- Do not take dots on a line by themselves as a mes-
- sage terminator.
-
- SendMimeErrors
- Send error messages in MIME format. If not set,
- the DSN (Delivery Status Notification) SMTP exten-
- sion is disabled.
-
- ConnectionCacheTimeout=_\bt_\bi_\bm_\be_\bo_\bu_\bt
- Set connection cache timeout.
-
- ConnectionCacheSize=_\bN
- Set connection cache size.
-
- LogLevel=_\bn
- The log level.
-
-
-
-
-
- $Date: 2000/04/02 19:05:47 $ 5
-
-
-
-
-
-SENDMAIL(8) SENDMAIL(8)
-
-
- MeToo=_\bF_\ba_\bl_\bs_\be
- Don't send to ``me'' (the sender) if I am in an
- alias expansion.
-
- CheckAliases
- Validate the right hand side of aliases during a
- newaliases(1) command.
-
- OldStyleHeaders
- If set, this message may have old style headers.
- If not set, this message is guaranteed to have new
- style headers (i.e., commas instead of spaces
- between addresses). If set, an adaptive algorithm
- is used that will correctly determine the header
- format in most cases.
-
- QueueDirectory=_\bq_\bu_\be_\bu_\be_\bd_\bi_\br
- Select the directory in which to queue messages.
-
- StatusFile=_\bf_\bi_\bl_\be
- Save statistics in the named file.
-
- Timeout.queuereturn=_\bt_\bi_\bm_\be
- Set the timeout on undelivered messages in the
- queue to the specified time. After delivery has
- failed (e.g., because of a host being down) for
- this amount of time, failed messages will be
- returned to the sender. The default is five days.
-
- UserDatabaseSpec=_\bu_\bs_\be_\br_\bd_\ba_\bt_\ba_\bb_\ba_\bs_\be
- If set, a user database is consulted to get for-
- warding information. You can consider this an
- adjunct to the aliasing mechanism, except that the
- database is intended to be distributed; aliases are
- local to a particular host. This may not be avail-
- able if your sendmail does not have the USERDB
- option compiled in.
-
- ForkEachJob
- Fork each job during queue runs. May be convenient
- on memory-poor machines.
-
- SevenBitInput
- Strip incoming messages to seven bits.
-
- EightBitMode=_\bm_\bo_\bd_\be
- Set the handling of eight bit input to seven bit
- destinations to _\bm_\bo_\bd_\be: m (mimefy) will convert to
- seven-bit MIME format, p (pass) will pass it as
- eight bits (but violates protocols), and s (strict)
- will bounce the message.
-
- MinQueueAge=_\bt_\bi_\bm_\be_\bo_\bu_\bt
- Sets how long a job must ferment in the queue
-
-
-
- $Date: 2000/04/02 19:05:47 $ 6
-
-
-
-
-
-SENDMAIL(8) SENDMAIL(8)
-
-
- between attempts to send it.
-
- DefaultCharSet=_\bc_\bh_\ba_\br_\bs_\be_\bt
- Sets the default character set used to label 8-bit
- data that is not otherwise labelled.
-
- DialDelay=_\bs_\bl_\be_\be_\bp_\bt_\bi_\bm_\be
- If opening a connection fails, sleep for _\bs_\bl_\be_\be_\bp_\bt_\bi_\bm_\be
- seconds and try again. Useful on dial-on-demand
- sites.
-
- NoRecipientAction=_\ba_\bc_\bt_\bi_\bo_\bn
- Set the behaviour when there are no recipient head-
- ers (To:, Cc: or Bcc:) in the message to _\ba_\bc_\bt_\bi_\bo_\bn:
- none leaves the message unchanged, add-to adds a
- To: header with the envelope recipients, add-appar-
- ently-to adds an Apparently-To: header with the
- envelope recipients, add-bcc adds an empty Bcc:
- header, and add-to-undisclosed adds a header read-
- ing `To: undisclosed-recipients:;'.
-
- MaxDaemonChildren=_\bN
- Sets the maximum number of children that an incom-
- ing SMTP daemon will allow to spawn at any time to
- _\bN.
-
- ConnectionRateThrottle=_\bN
- Sets the maximum number of connections per second
- to the SMTP port to _\bN.
-
- In aliases, the first character of a name may be a verti-
- cal bar to cause interpretation of the rest of the name as
- a command to pipe the mail to. It may be necessary to
- quote the name to keep s\bse\ben\bnd\bdm\bma\bai\bil\bl from suppressing the
- blanks from between arguments. For example, a common
- alias is:
-
- msgs: "|/usr/bin/msgs -s"
-
- Aliases may also have the syntax ``:include:_\bf_\bi_\bl_\be_\bn_\ba_\bm_\be'' to
- ask s\bse\ben\bnd\bdm\bma\bai\bil\bl to read the named file for a list of recipi-
- ents. For example, an alias such as:
-
- poets: ":include:/usr/local/lib/poets.list"
-
- would read _\b/_\bu_\bs_\br_\b/_\bl_\bo_\bc_\ba_\bl_\b/_\bl_\bi_\bb_\b/_\bp_\bo_\be_\bt_\bs_\b._\bl_\bi_\bs_\bt for the list of
- addresses making up the group.
-
- S\bSe\ben\bnd\bdm\bma\bai\bil\bl returns an exit status describing what it did.
- The codes are defined in <_\bs_\by_\bs_\be_\bx_\bi_\bt_\bs_\b._\bh>:
-
- EX_OK Successful completion on all addresses.
-
-
-
-
-
- $Date: 2000/04/02 19:05:47 $ 7
-
-
-
-
-
-SENDMAIL(8) SENDMAIL(8)
-
-
- EX_NOUSER
- User name not recognized.
-
- EX_UNAVAILABLE
- Catchall meaning necessary resources were not
- available.
-
- EX_SYNTAX
- Syntax error in address.
-
- EX_SOFTWARE
- Internal software error, including bad arguments.
-
- EX_OSERR
- Temporary operating system error, such as ``cannot
- fork''.
-
- EX_NOHOST
- Host name not recognized.
-
- EX_TEMPFAIL
- Message could not be sent immediately, but was
- queued.
-
- If invoked as n\bne\bew\bwa\bal\bli\bia\bas\bse\bes\bs, s\bse\ben\bnd\bdm\bma\bai\bil\bl will rebuild the alias
- database. If invoked as m\bma\bai\bil\blq\bq, s\bse\ben\bnd\bdm\bma\bai\bil\bl will print the
- contents of the mail queue. If invoked as h\bho\bos\bst\bts\bst\bta\bat\bt, s\bse\ben\bnd\bd-\b-
- m\bma\bai\bil\bl will print the persistent host status database. If
- invoked as p\bpu\bur\brg\bge\bes\bst\bta\bat\bt, s\bse\ben\bnd\bdm\bma\bai\bil\bl will purge expired entries
- from the persistent host status database. If invoked as
- s\bsm\bmt\btp\bpd\bd, s\bse\ben\bnd\bdm\bma\bai\bil\bl will act as a daemon, as if the -\b-b\bbd\bd option
- were specified.
-
-N\bNO\bOT\bTE\bES\bS
- s\bse\ben\bnd\bdm\bma\bai\bil\bl often gets blamed for many problems that are
- actually the result of other problems, such as overly per-
- missive modes on directories. For this reason, s\bse\ben\bnd\bdm\bma\bai\bil\bl
- checks the modes on system directories and files to deter-
- mine if they can be trusted. Although these checks can be
- turned off and your system security reduced by setting the
- D\bDo\bon\bnt\btB\bBl\bla\bam\bme\beS\bSe\ben\bnd\bdm\bma\bai\bil\bl option, the permission problems should
- be fixed. For more information, see:
-
- _\bh_\bt_\bt_\bp_\b:_\b/_\b/_\bw_\bw_\bw_\b._\bs_\be_\bn_\bd_\bm_\ba_\bi_\bl_\b._\bo_\br_\bg_\b/_\bt_\bi_\bp_\bs_\b/_\bD_\bo_\bn_\bt_\bB_\bl_\ba_\bm_\be_\bS_\be_\bn_\bd_\bm_\ba_\bi_\bl_\b._\bh_\bt_\bm_\bl
-
-F\bFI\bIL\bLE\bES\bS
- Except for the file _\b/_\be_\bt_\bc_\b/_\bm_\ba_\bi_\bl_\b/_\bs_\be_\bn_\bd_\bm_\ba_\bi_\bl_\b._\bc_\bf itself the fol-
- lowing pathnames are all specified in _\b/_\be_\bt_\bc_\b/_\bm_\ba_\bi_\bl_\b/_\bs_\be_\bn_\bd_\b-
- _\bm_\ba_\bi_\bl_\b._\bc_\bf. Thus, these values are only approximations.
-
-
- /etc/mail/aliases
- raw data for alias names
-
-
-
-
- $Date: 2000/04/02 19:05:47 $ 8
-
-
-
-
-
-SENDMAIL(8) SENDMAIL(8)
-
-
- /etc/mail/aliases.db
- data base of alias names
-
- /etc/mail/sendmail.cf
- configuration file
-
- /etc/mail/helpfile
- help file
-
- /etc/mail/statistics
- collected statistics
-
- /var/spool/mqueue/*
- temp files
-
-S\bSE\bEE\bE A\bAL\bLS\bSO\bO
- binmail(1), mail(1), rmail(1), syslog(3), aliases(5),
- mailaddr(7), rc(8)
-
- DARPA Internet Request For Comments _\bR_\bF_\bC_\b8_\b1_\b9, _\bR_\bF_\bC_\b8_\b2_\b1,
- _\bR_\bF_\bC_\b8_\b2_\b2. _\bS_\be_\bn_\bd_\bm_\ba_\bi_\bl _\b- _\bA_\bn _\bI_\bn_\bt_\be_\br_\bn_\be_\bt_\bw_\bo_\br_\bk _\bM_\ba_\bi_\bl _\bR_\bo_\bu_\bt_\be_\br, No. 9,
- SMM. _\bS_\be_\bn_\bd_\bm_\ba_\bi_\bl _\bI_\bn_\bs_\bt_\ba_\bl_\bl_\ba_\bt_\bi_\bo_\bn _\ba_\bn_\bd _\bO_\bp_\be_\br_\ba_\bt_\bi_\bo_\bn _\bG_\bu_\bi_\bd_\be, No. 8,
- SMM.
-
- http://www.sendmail.org/
-
-H\bHI\bIS\bST\bTO\bOR\bRY\bY
- The s\bse\ben\bnd\bdm\bma\bai\bil\bl command appeared in 4.2BSD.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- $Date: 2000/04/02 19:05:47 $ 9
-
-
.\"
.\" $Sendmail: sendmail.8,v 8.36 2000/02/01 05:49:57 gshapiro Exp $
.\"
-.TH SENDMAIL 8 "$Date: 2000/04/02 19:05:47 $"
+.TH SENDMAIL 8 "$Date: 2000/04/02 19:48:35 $"
.SH NAME
.B sendmail
\- an electronic mail transport agent
+++ /dev/null
-#!/bin/sh
-
-# Copyright (c) 1999 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-# $Sendmail: Build,v 8.4 1999/03/02 02:34:57 peterh Exp $
-
-exec ../devtools/bin/Build $*
-# $Sendmail: Makefile,v 8.5 1999/09/23 22:36:43 ca Exp $
+# $OpenBSD: Makefile,v 1.2 2000/04/02 19:48:36 millert Exp $
-SHELL= /bin/sh
-BUILD= ./Build
-OPTIONS= $(CONFIG) $(FLAGS)
+PROG= smrsh
+MAN= smrsh.8
+ENVDEF+=-DNOT_SENDMAIL -DCMDDIR=\"/usr/libexec/sm.bin\"
-all: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
-clean: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
-install: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
+WANT_LIBSMUTIL=1
-fresh: FRC
- $(SHELL) $(BUILD) $(OPTIONS) -c
-
-FRC:
+.include "../../Makefile.inc"
+.include <bsd.prog.mk>
+++ /dev/null
-include(confBUILDTOOLSDIR`/M4/switch.m4')
-
-PREPENDDEF(`confENVDEF', `confMAPDEF')
-
-bldPRODUCT_START(`executable', `smrsh')
-define(`bldINSTALL_DIR', `E')
-define(`bldSOURCES', `smrsh.c ')
-bldPUSH_SMLIB(`smutil')
-bldPRODUCT_END
-
-bldPRODUCT_START(`manpage', `smrsh')
-define(`bldSOURCES', `smrsh.8')
-bldPRODUCT_END
-
-bldFINISH
host.domain# /usr/sbin/sendmail -bd -q30m
-$Revision: 1.1.1.1 $, Last updated $Date: 2000/04/02 19:05:42 $
+$Revision: 1.2 $, Last updated $Date: 2000/04/02 19:48:36 $
+++ /dev/null
-
-
-
-SMRSH(8) SMRSH(8)
-
-
-N\bNA\bAM\bME\bE
- smrsh - restricted shell for sendmail
-
-S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
- s\bsm\bmr\brs\bsh\bh -\b-c\bc command
-
-D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
- The _\bs_\bm_\br_\bs_\bh program is intended as a replacement for _\bs_\bh for
- use in the ``prog'' mailer in _\bs_\be_\bn_\bd_\bm_\ba_\bi_\bl(8) configuration
- files. It sharply limits the commands that can be run
- using the ``|program'' syntax of _\bs_\be_\bn_\bd_\bm_\ba_\bi_\bl in order to
- improve the over all security of your system. Briefly,
- even if a ``bad guy'' can get sendmail to run a program
- without going through an alias or forward file, _\bs_\bm_\br_\bs_\bh lim-
- its the set of programs that he or she can execute.
-
- Briefly, _\bs_\bm_\br_\bs_\bh limits programs to be in the directory
- /usr/adm/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 ``', `<',
- `>', `;', `$', `(', `)', `\r' (carriage return), or `\n'
- (newline) on the command line to prevent ``end run''
- attacks. It allows ``||'' and ``&&'' to enable commands
- like: ``"|exec /usr/local/bin/procmail -f- /etc/procmail-
- rcs/user || exit 75"''
-
- Initial pathnames on programs are stripped, so forwarding
- to ``/usr/ucb/vacation'', ``/usr/bin/vacation'',
- ``/home/server/mydir/bin/vacation'', and ``vacation'' all
- actually forward to ``/usr/adm/sm.bin/vacation''.
-
- System administrators should be conservative about popu-
- lating /usr/adm/sm.bin. Reasonable additions are _\bv_\ba_\bc_\ba_\b-
- _\bt_\bi_\bo_\bn(1), _\bp_\br_\bo_\bc_\bm_\ba_\bi_\bl(1), and the like. No matter how brow-
- beaten you may be, never include any shell or shell-like
- program (such as _\bp_\be_\br_\bl(1)) in the sm.bin directory. Note
- that this does not restrict the use of shell or perl
- scripts in the sm.bin directory (using the ``#!'' syntax);
- it simply disallows execution of arbitrary programs.
-
-C\bCO\bOM\bMP\bPI\bIL\bLA\bAT\bTI\bIO\bON\bN
- Compilation should be trivial on most systems. You may
- need to use -DPATH=\"_\bp_\ba_\bt_\bh\" to adjust the default search
- path (defaults to ``/bin:/usr/bin:/usr/ucb'') and/or
- -DCMDBIN=\"_\bd_\bi_\br\" to change the default program directory
- (defaults to ``/usr/adm/sm.bin'').
-
-F\bFI\bIL\bLE\bES\bS
- /usr/adm/sm.bin - directory for restricted programs
-
-S\bSE\bEE\bE A\bAL\bLS\bSO\bO
- sendmail(8)
-
-
-
-
- 11/02/93 1
-
-
+++ /dev/null
-The following are results of running t_setreuid on various architectures.
-
-OPSYS VERSION STATUS DATE TESTER/NOTES
-===== ======= ====== ==== ============
-
-SunOS 4.1 OK 93.07.19 eric
-SunOS 4.1.2 OK 93.07.19 eric
-SunOS 4.1.3 OK 93.09.25 Robert Elz
-
-BSD 4.4 OK 93.07.19 eric (wierd results, but functional)
-BSD 4.3Utah OK 93.07.19 eric
-
-FreeBSD 2.1-sta OK 96.04.14 Jaye Mathisen <mrcpu@cdsnet.net>
-
-Ultrix 4.2A OK 93.07.19 eric
-Ultrix 4.3A OK 93.07.19 Allan Johannesen
-Ultrix 4.5 OK 96.09.18 Gregory Neil Shapiro <gshapiro@wpi.edu>
-
-HP-UX 8.07 OK 93.07.19 eric (on 7xx series)
-HP-UX 8.02 OK 93.07.19 Michael Corrigan (on 8xx series)
-HP-UX 8.00 OK 93.07.21 Michael Corrigan (on 3xx/4xx series)
-HP-UX 9.01 OK 93.11.19 Cassidy (on 7xx series)
-
-Solaris 2.1
-Solaris 2.2 FAIL 93.07.19 Bill Wisner
-Solaris 2.3 FAIL 95.11.22 Scott J. Kramer <sjk@lux.com>
-Solaris 2.5 OK 96.02.29 Carson Gaspar <carson@lehman.com>
-Solaris 2.5.1 OK 96.11.29 Gregory Neil Shapiro <gshapiro@wpi.edu>
-
-OSF/1 T1.3-4 OK 93.07.19 eric (on DEC Alpha)
-OSF/1 1.3 OK 94.12.10 Jeff A. Earickson (on Intel Paragon)
-OSF/1 3.2D OK 96.09.18 Gregory Neil Shapiro <gshapiro@wpi.edu>
-OSF/1 4.0 OK 96.09.18 Gregory Neil Shapiro <gshapiro@wpi.edu>
-
-CxOS 11.5 OK 96.07.08 Eric Schnoebelen <eric@cirr.com>
-CxOS 11.0 OK 93.01.21 Eric Schnoebelen (CxOS 11.0 beta 1)
-CxOS 10.x OK 93.01.21 Eric Schnoebelen
-
-AIX 3.1.5 FAIL 93.08.07 David J. N. Begley
-AIX 3.2.3e FAIL 93.07.26 Steve Bauer <sbauer@silver.sdsmt.edu>
-AIX 3.2.4 FAIL 93.10.07 David J. N. Begley
-AIX 3.2.5 FAIL 94.05.17 Steve Bauer <sbauer@hpcmmib.hpc.sdsmt.edu>
-AIX 4.1 FAIL 96.10.21 Hakan Lindholm <hakan@af.lu.se>
-AIX 4.2 OK 96.10.16 Steve Bauer <sbauer@krypton.hpc.sdsmt.edu>
-
-IRIX 4.0.4 OK 93.09.25 Robert Elz
-IRIX 5.2 OK 94.12.06 Mark Andrews <mandrews@alias.com>
-IRIX 5.3 OK 94.12.06 Mark Andrews <mandrews@alias.com>
-IRIX 6.2 OK 96.09.16 Kari E. Hurtta <Kari.Hurtta@ozone.FMI.FI>
-IRIX 6.3 OK 97.02.10 Mark Andrews <mandrews@aw.sgi.com>
-
-SCO 3.2v4.0 OK 93.10.02 Peter Wemm (with -lsocket from 3.2v4 devsys)
-
-NeXT 2.1 OK 93.07.28 eric
-NeXT 3.0 OK 34.05.05 Kevin John Wang <kwang@lore.acs.calpoly.edu>
-
-Linux 0.99p10 OK 93.08.08 Karl London
-Linux 0.99p13 OK 93.09.27 Christian Kuhtz
-Linux 0.99p14 OK 93.11.30 Christian Kuhtz <chk@data-hh.Hanse.DE>
-Linux 1.0 OK 94.03.19 Shayne Smith <snsmith@rastus.brisnet.org.au>
-Linux 1.2.13 OK 95.11.02 Sven Neuhaus <sven@ping.de>
-Linux 2.0.17 OK 96.09.03 Horst von Brand <vonbrand@sleipnir.valparaiso.cl>
-Linux 2.1.109 OK 98.07.21 John Kennedy <jk@csuchico.edu>
-
-BSD/386 1.0 OK 93.11.13 Tony Sanders
-
-DELL 2.2 OK 93.11.15 Peter Wemm (using -DSETEUID)
-
-Pyramid 5.0d OK 95.01.14 David Miller <davem@nadzieja.rutgers.edu>
-
-
-
-The following are results of running t_seteuid on various architectures.
-
-OPSYS VERSION STATUS DATE TESTER/NOTES
-===== ======= ====== ==== ============
-
-Solaris 2.3 OK 95.11.22 Scott J. Kramer <sjk@lux.com>
-Solaris 2.4 OK 95.09.22 Thomas 'Mike' Michlmayr <mike@cosy.sbg.ac.at>
-Solaris 2.5 OK 96.02.29 Carson Gaspar <carson@lehman.com>
-Solaris 2.5.1 OK 96.11.29 Gregory Neil Shapiro <gshapiro@wpi.edu>
-
-Linux 1.2.13 FAIL 95.11.02 Sven Neuhaus <sven@ping.de>
-Linux 2.0.17 FAIL 96.09.03 Horst von Brand <vonbrand@sleipnir.valparaiso.cl>
-Linux 2.1.109 FAIL 98.07.21 John Kennedy <jk@csuchico.edu>
-
-AIX 4.1 OK 96.10.21 Hakan Lindholm <hakan@af.lu.se>
-
-IRIX 5.2 OK 95.12.01 Mark Andrews <mandrews@aw.sgi.com>
-IRIX 5.3 OK 95.12.01 Mark Andrews <mandrews@aw.sgi.com>
-IRIX 6.2 OK 96.09.16 Kari E. Hurtta <Kari.Hurtta@ozone.FMI.FI>
-IRIX 6.3 OK 97.02.10 Mark Andrews <mandrews@aw.sgi.com>
-
-FreeBSD 2.1-sta OK 96.04.14 Jaye Mathisen <mrcpu@cdsnet.net>
-
-Ultrix 4.5 FAIL 96.09.18 Gregory Neil Shapiro <gshapiro@wpi.edu>
-
-OSF/1 3.2D OK 96.09.18 Gregory Neil Shapiro <gshapiro@wpi.edu>
-OSF/1 4.0 OK 96.09.18 Gregory Neil Shapiro <gshapiro@wpi.edu>
-
-CxOS 11.5 FAIL 96.07.08 Eric Schnoebelen <eric@cirr.com>
-
-
-The following are the results of running t_pathconf.c. Safe means that
-the underlying filesystem (in NFS, the filesystem on the server) does not
-permit regular (non-root) users to chown their files to another user.
-Unsafe means that they can. Typically, BSD-based systems do not permit
-giveaway and System V-based systems do. However, some systems (e.g.,
-Solaris) can set this on a per-system or per-filesystem basis. Entries
-are the return value of pathconf, the errno value, and a * if chown
-disagreed with the result of the pathconf call, and a ? if the test has
-not been run. A mark of [R] means that the local filesystem has
-chown set to be restricted, [U] means that it is set to be unrestricted.
-
- Safe Filesystem Unsafe Filesystem
-SYSTEM LOCAL NFS-V2 NFS-V3 NFS-V2 NFS-V3
-
-SunOS 4.1.3_U1 1/0 -1/EINVAL* n/a -1/EINVAL? n/a
-SunOS 4.1.4 1/0 -1/EINVAL* n/a -1/EINVAL n/a
-
-AIX 3.2 0/0 0/0
-
-Solaris 2.4 1/0 -1/EINVAL*
-Solaris 2.5 1/0 -1/EINVAL* 1/0 0/0?
-Solaris 2.5.1 1/0 -1/EINVAL* 0/0
-
-DEC OSF1 3.0 0/0 0/0
-DEC OSF1 3.2D-2 0/0 0/0 0/0
-DEC OSF1 4.0A 0/0 0/0 0/0
-DEC OSF 4.0B 0/0 0/0 0/0
-
-Ultrix 4.3 0/0 0/0 n/a n/a
-Ultrix 4.5 1/0 1/0
-
-HP-UX 9.05 -1/0 -1/EOPNOTSUPP* -1/EOPNOTSUPP
-HP-UX 9.05[R] 1/0 -1/EOPNOTSUPP* -1/EOPNOTSUPP*
-HP-UX 10.10 -1/0 -1/EOPNOTSUPP* -1/EOPNOTSUPP
-HP-UX 10.20 -1/EOPNOTSUPP? -1/EOPNOTSUPP?
-HP-UX 10.30 -1/0 -1/EOPNOTSUPP -1/EOPNOTSUPP
-
-BSD/OS 2.1 1/0
-
-FreeBSD 2.1.7 1/0 -1/EINVAL* -1/EINVAL
-
-Irix 5.3 -1/0* -1/0
-Irix 6.2 1/0 -1/0 0/0*
-Irix 6.2 -1/0 -1/0
-Irix 6.3 R10000 -1/0 -1/0 0/0*
-
-A/UX 3.1.1 1/0
-
-DomainOS [R] -1/0*
-DomainOS [U] -1/0
-
-NCR MP-RAS 2 -1/0
-NCR MP-RAS 3 -1/0
-
-Linux 2.0.27 1/0 1/0
-
-$Revision: 1.1.1.1 $, Last updated $Date: 2000/04/02 19:05:49 $
+++ /dev/null
-/*
-** This program tests your system to see if you have the lovely
-** security-defeating semantics that an open with O_CREAT|O_EXCL
-** set will successfully open a file named by a symbolic link that
-** points to a non-existent file. Sadly, Posix is mute on what
-** should happen in this situation.
-**
-** Results to date:
-** AIX 3.2 OK
-** BSD family OK
-** BSD/OS 2.1 OK
-** FreeBSD 2.1 OK
-** DEC OSF/1 3.0 OK
-** HP-UX 9.04 FAIL
-** HP-UX 9.05 FAIL
-** HP-UX 9.07 OK
-** HP-UX 10.01 OK
-** HP-UX 10.10 OK
-** HP-UX 10.20 OK
-** Irix 5.3 OK
-** Irix 6.2 OK
-** Irix 6.3 OK
-** Irix 6.4 OK
-** Linux OK
-** NeXT 2.1 OK
-** Solaris 2.x OK
-** SunOS 4.x OK
-** Ultrix 4.3 OK
-*/
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <unistd.h>
-
-#ifndef lint
-static char id[] = "@(#)$Sendmail: t_exclopen.c,v 8.5 1999/08/28 00:25:28 gshapiro Exp $";
-#endif /* ! lint */
-
-static char Attacker[128];
-static char Attackee[128];
-
-static void
-bail(status)
- int status;
-{
- (void) unlink(Attacker);
- (void) unlink(Attackee);
- exit(status);
-}
-
-int
-main(argc, argv)
- int argc;
- char **argv;
-{
- struct stat st;
-
- sprintf(Attacker, "/tmp/attacker.%d.%ld", getpid(), time(NULL));
- sprintf(Attackee, "/tmp/attackee.%d.%ld", getpid(), time(NULL));
-
- if (symlink(Attackee, Attacker) < 0)
- {
- printf("Could not create %s->%s symlink: %d\n",
- Attacker, Attackee, errno);
- bail(1);
- }
- (void) unlink(Attackee);
- if (stat(Attackee, &st) >= 0)
- {
- printf("%s already exists -- remove and try again.\n",
- Attackee);
- bail(1);
- }
- if (open(Attacker, O_WRONLY|O_CREAT|O_EXCL, 0644) < 0)
- {
- int save_errno = errno;
-
- if (stat(Attackee, &st) >= 0)
- {
- printf("Weird. Open failed but %s was created anyhow (errno = %d)\n",
- Attackee, save_errno);
- bail(1);
- }
- printf("Good show! Exclusive open works properly with symbolic links (errno = %d).\n",
- save_errno);
- bail(0);
- }
- if (stat(Attackee, &st) < 0)
- {
- printf("Weird. Open succeeded but %s was not created\n",
- Attackee);
- bail(2);
- }
- printf("Bad news: you can do an exclusive open through a symbolic link\n");
- printf("\tBe sure you #define BOGUS_O_EXCL in conf.h\n");
- bail(1);
-
- /* NOTREACHED */
- exit(0);
-}
+++ /dev/null
-/*
-** The following test program tries the pathconf(2) routine. It should
-** be run in a non-NFS-mounted directory (e.g., /tmp) and on remote (NFS)
-** mounted directories running both NFS-v2 and NFS-v3 from systems that
-** both do and do not permit file giveaway.
-*/
-
-#include <sys/types.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <unistd.h>
-#ifdef EX_OK
-# undef EX_OK /* unistd.h may have another use for this */
-#endif /* EX_OK */
-#include <sysexits.h>
-
-#ifndef lint
-static char id[] = "@(#)$Sendmail: t_pathconf.c,v 8.5 1999/08/28 00:25:28 gshapiro Exp $";
-#endif /* ! lint */
-
-int
-main(argc, argv)
- int argc;
- char **argv;
-{
- int fd;
- int i;
- char tbuf[100];
- extern int errno;
-
- if (geteuid() == 0)
- {
- printf("*** Run me as a non-root user! ***\n");
- exit(EX_USAGE);
- }
-
- strcpy(tbuf, "TXXXXXX");
- fd = mkstemp(tbuf);
- if (fd < 0)
- {
- printf("*** Could not create test file %s\n", tbuf);
- exit(EX_CANTCREAT);
- }
- errno = 0;
- i = pathconf(".", _PC_CHOWN_RESTRICTED);
- printf("pathconf(.) returns %2d, errno = %d\n", i, errno);
- errno = 0;
- i = pathconf(tbuf, _PC_CHOWN_RESTRICTED);
- printf("pathconf(%s) returns %2d, errno = %d\n", tbuf, i, errno);
- errno = 0;
- i = fpathconf(fd, _PC_CHOWN_RESTRICTED);
- printf("fpathconf(%s) returns %2d, errno = %d\n", tbuf, i, errno);
- if (errno == 0 && i >= 0)
- {
- /* so it claims that it doesn't work -- try anyhow */
- printf(" fpathconf claims that chown is safe ");
- if (fchown(fd, 1, 1) >= 0)
- printf("*** but fchown works anyhow! ***\n");
- else
- printf("and fchown agrees\n");
- }
- else
- {
- /* well, let's see what really happens */
- printf(" fpathconf claims that chown is not safe ");
- if (fchown(fd, 1, 1) >= 0)
- printf("as indeed it is not\n");
- else
- printf("*** but in fact it is safe ***\n");
- }
- (void) unlink(tbuf);
- exit(EX_OK);
-}
+++ /dev/null
-/*
-** This program checks to see if your version of seteuid works.
-** Compile it, make it setuid root, and run it as yourself (NOT as
-** root). If it won't compile or outputs any MAYDAY messages, don't
-** define USESETEUID in conf.h.
-**
-** NOTE: It is not sufficient to have seteuid in your library.
-** You must also have saved uids that function properly.
-**
-** Compilation is trivial -- just "cc t_seteuid.c". Make it setuid,
-** root and then execute it as a non-root user.
-*/
-
-#include <sys/types.h>
-#include <unistd.h>
-#include <stdio.h>
-
-#ifndef lint
-static char id[] = "@(#)$Sendmail: t_seteuid.c,v 8.4 1999/08/28 00:25:28 gshapiro Exp $";
-#endif /* ! lint */
-
-#ifdef __hpux
-# define seteuid(e) setresuid(-1, e, -1)
-#endif /* __hpux */
-
-static void
-printuids(str, r, e)
- char *str;
- int r, e;
-{
- printf("%s (should be %d/%d): r/euid=%d/%d\n", str, r, e,
- getuid(), geteuid());
-}
-
-int
-main(argc, argv)
- int argc;
- char **argv;
-{
- int fail = 0;
- uid_t realuid = getuid();
-
- printuids("initial uids", realuid, 0);
-
- if (geteuid() != 0)
- {
- printf("SETUP ERROR: re-run setuid root\n");
- exit(1);
- }
-
- if (getuid() == 0)
- {
- printf("SETUP ERROR: must be run by a non-root user\n");
- exit(1);
- }
-
- if (seteuid(1) < 0)
- printf("seteuid(1) failure\n");
- printuids("after seteuid(1)", realuid, 1);
-
- if (geteuid() != 1)
- {
- fail++;
- printf("MAYDAY! Wrong effective uid\n");
- }
-
- /* do activity here */
-
- if (seteuid(0) < 0)
- {
- fail++;
- printf("seteuid(0) failure\n");
- }
- printuids("after seteuid(0)", realuid, 0);
-
- if (geteuid() != 0)
- {
- fail++;
- printf("MAYDAY! Wrong effective uid\n");
- }
- if (getuid() != realuid)
- {
- fail++;
- printf("MAYDAY! Wrong real uid\n");
- }
- printf("\n");
-
- if (seteuid(2) < 0)
- {
- fail++;
- printf("seteuid(2) failure\n");
- }
- printuids("after seteuid(2)", realuid, 2);
-
- if (geteuid() != 2)
- {
- fail++;
- printf("MAYDAY! Wrong effective uid\n");
- }
-
- /* do activity here */
-
- if (seteuid(0) < 0)
- {
- fail++;
- printf("seteuid(0) failure\n");
- }
- printuids("after seteuid(0)", realuid, 0);
-
- if (geteuid() != 0)
- {
- fail++;
- printf("MAYDAY! Wrong effective uid\n");
- }
- if (getuid() != realuid)
- {
- fail++;
- printf("MAYDAY! Wrong real uid\n");
- }
-
- if (fail)
- {
- printf("\nThis system cannot use seteuid\n");
- exit(1);
- }
-
- printf("\nIt is safe to define USESETEUID on this system\n");
- exit(0);
-}
+++ /dev/null
-/*
-** This program checks to see if your version of setreuid works.
-** Compile it, make it setuid root, and run it as yourself (NOT as
-** root). If it won't compile or outputs any MAYDAY messages, don't
-** define HASSETREUID in conf.h.
-**
-** Compilation is trivial -- just "cc t_setreuid.c". Make it setuid,
-** root and then execute it as a non-root user.
-*/
-
-#include <sys/types.h>
-#include <unistd.h>
-#include <stdio.h>
-
-#ifndef lint
-static char id[] = "@(#)$Sendmail: t_setreuid.c,v 8.4 1999/08/28 00:25:28 gshapiro Exp $";
-#endif /* ! lint */
-
-#ifdef __hpux
-# define setreuid(r, e) setresuid(r, e, -1)
-#endif /* __hpux */
-
-static void
-printuids(str, r, e)
- char *str;
- int r, e;
-{
- printf("%s (should be %d/%d): r/euid=%d/%d\n", str, r, e,
- getuid(), geteuid());
-}
-
-int
-main(argc, argv)
- int argc;
- char **argv;
-{
- int fail = 0;
- uid_t realuid = getuid();
-
- printuids("initial uids", realuid, 0);
-
- if (geteuid() != 0)
- {
- printf("SETUP ERROR: re-run setuid root\n");
- exit(1);
- }
-
- if (getuid() == 0)
- {
- printf("SETUP ERROR: must be run by a non-root user\n");
- exit(1);
- }
-
- if (setreuid(0, 1) < 0)
- {
- fail++;
- printf("setreuid(0, 1) failure\n");
- }
- printuids("after setreuid(0, 1)", 0, 1);
-
- if (geteuid() != 1)
- {
- fail++;
- printf("MAYDAY! Wrong effective uid\n");
- }
-
- /* do activity here */
-
- if (setreuid(-1, 0) < 0)
- {
- fail++;
- printf("setreuid(-1, 0) failure\n");
- }
- printuids("after setreuid(-1, 0)", 0, 0);
- if (setreuid(realuid, 0) < 0)
- {
- fail++;
- printf("setreuid(%d, 0) failure\n", realuid);
- }
- printuids("after setreuid(realuid, 0)", realuid, 0);
-
- if (geteuid() != 0)
- {
- fail++;
- printf("MAYDAY! Wrong effective uid\n");
- }
- if (getuid() != realuid)
- {
- fail++;
- printf("MAYDAY! Wrong real uid\n");
- }
- printf("\n");
-
- if (setreuid(0, 2) < 0)
- {
- fail++;
- printf("setreuid(0, 2) failure\n");
- }
- printuids("after setreuid(0, 2)", 0, 2);
-
- if (geteuid() != 2)
- {
- fail++;
- printf("MAYDAY! Wrong effective uid\n");
- }
-
- /* do activity here */
-
- if (setreuid(-1, 0) < 0)
- {
- fail++;
- printf("setreuid(-1, 0) failure\n");
- }
- printuids("after setreuid(-1, 0)", 0, 0);
- if (setreuid(realuid, 0) < 0)
- {
- fail++;
- printf("setreuid(%d, 0) failure\n", realuid);
- }
- printuids("after setreuid(realuid, 0)", realuid, 0);
-
- if (geteuid() != 0)
- {
- fail++;
- printf("MAYDAY! Wrong effective uid\n");
- }
- if (getuid() != realuid)
- {
- fail++;
- printf("MAYDAY! Wrong real uid\n");
- }
-
- if (fail)
- {
- printf("\nThis system cannot use setreuid\n");
- exit(1);
- }
-
- printf("\nIt is safe to define HASSETREUID on this system\n");
- exit(0);
-}
+++ /dev/null
-#!/bin/sh
-
-# Copyright (c) 1999 Sendmail, Inc. and its suppliers.
-# All rights reserved.
-#
-# By using this file, you agree to the terms and conditions set
-# forth in the LICENSE file which can be found at the top level of
-# the sendmail distribution.
-#
-#
-# $Sendmail: Build,v 8.2 1999/03/02 02:35:21 peterh Exp $
-
-exec ../devtools/bin/Build $*
-# $Sendmail: Makefile,v 8.5 1999/09/23 22:36:45 ca Exp $
+# $OpenBSD: Makefile,v 1.2 2000/04/02 19:48:37 millert Exp $
-SHELL= /bin/sh
-BUILD= ./Build
-OPTIONS= $(CONFIG) $(FLAGS)
+PROG= vacation
+ENVDEF+=-DNOT_SENDMAIL
-all: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
-clean: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
-install: FRC
- $(SHELL) $(BUILD) $(OPTIONS) $@
+WANT_LIBSMDB=1
+WANT_LIBSMUTIL=1
-fresh: FRC
- $(SHELL) $(BUILD) $(OPTIONS) -c
-
-FRC:
+.include "../../Makefile.inc"
+.include <bsd.prog.mk>
+++ /dev/null
-include(confBUILDTOOLSDIR`/M4/switch.m4')
-
-# sendmail dir
-SMSRCDIR= ifdef(`confSMSRCDIR', `confSMSRCDIR', `${SRCDIR}/sendmail')
-PREPENDDEF(`confENVDEF', `confMAPDEF')
-PREPENDDEF(`confINCDIRS', `-I${SMSRCDIR} ')
-
-bldPRODUCT_START(`executable', `vacation')
-define(`bldSOURCES', `vacation.c ')
-bldPUSH_SMLIB(`smutil')
-bldPUSH_SMLIB(`smdb')
-APPENDDEF(`confENVDEF', `-DNOT_SENDMAIL')
-bldPRODUCT_END
-
-bldPRODUCT_START(`manpage', `vacation')
-define(`bldSOURCES', `vacation.1')
-bldPRODUCT_END
-
-bldFINISH
+++ /dev/null
-
-
-
-VACATION(1) VACATION(1)
-
-
-N\bNA\bAM\bME\bE
- v\bva\bac\bca\bat\bti\bio\bon\bn - return ``I am not here'' indication
-
-S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
- v\bva\bac\bca\bat\bti\bio\bon\bn -\b-i\bi [-\b-r\br _\bi_\bn_\bt_\be_\br_\bv_\ba_\bl] [-\b-x\bx] v\bva\bac\bca\bat\bti\bio\bon\bn [-\b-a\ba _\ba_\bl_\bi_\ba_\bs] [-\b-f\bf
- _\bd_\ba_\bt_\ba_\bb_\ba_\bs_\be] [-\b-m\bm _\bm_\be_\bs_\bs_\ba_\bg_\be] [-\b-s\bs _\ba_\bd_\bd_\br_\be_\bs_\bs] [-\b-z\bz] _\bl_\bo_\bg_\bi_\bn
-
-D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
- V\bVa\bac\bca\bat\bti\bio\bon\bn returns a message to the sender of a message
- telling them that you are currently not reading your mail.
- The intended use is in a _\b._\bf_\bo_\br_\bw_\ba_\br_\bd file. For example, your
- _\b._\bf_\bo_\br_\bw_\ba_\br_\bd file might have:
-
- \eric, "|/usr/bin/vacation -a allman eric"
-
- which would send messages to you (assuming your login name
- was eric) and reply to any messages for ``eric'' or ``all-
- man''.
-
- Available options:
-
- -\b-a\ba _\ba_\bl_\bi_\ba_\bs
- Handle messages for in the same manner as those
- received for the user's login name.
-
- -\b-f\bf _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
- Use _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be as name of the database instead of
- _\b~_\b/_\b._\bv_\ba_\bc_\ba_\bt_\bi_\bo_\bn_\b._\bd_\bb. Unless the _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be starts with /
- it is relative to ~.
-
- -\b-i\bi Initialize the vacation database files. It should
- be used before you modify your _\b._\bf_\bo_\br_\bw_\ba_\br_\bd file.
-
- -\b-m\bm _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
- Use _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be as name of the file containing the
- message to send instead of _\b~_\b/_\b._\bv_\ba_\bc_\ba_\bt_\bi_\bo_\bn_\b._\bm_\bs_\bg. Unless
- the _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be starts with / it is relative to ~.
-
- -\b-r\br _\bi_\bn_\bt_\be_\br_\bv_\ba_\bl
- Set the reply interval to _\bi_\bn_\bt_\be_\br_\bv_\ba_\bl days. The
- default is one week. An interval of ``0'' or
- ``infinite'' (actually, any non-numeric character)
- will never send more than one reply.
-
- -\b-s\bs _\ba_\bd_\bd_\br_\be_\bs_\bs
- Use _\ba_\bd_\bd_\br_\be_\bs_\bs instead of the sender address in the
- _\bF_\br_\bo_\bm line to determine the reply address.
-
- -\b-x\bx reads an exclusion list from stdin (one address per
- line). Mails coming from an address in this exclu-
- sion list won't get a reply by v\bva\bac\bca\bat\bti\bio\bon\bn. It is
- possible to exclude complete domains by specifying
- ``@domain'' as element of the exclusion list.
-
-
-
-
- $Date: 2000/04/02 19:05:58 $ 1
-
-
-
-
-
-VACATION(1) VACATION(1)
-
-
- -\b-z\bz Set the sender of the vacation message to ``<>''
- instead of the user. This probably violates the
- RFCs since vacation messages are not required by a
- standards-track RFC to have a null reverse-path.
-
- No message will be sent unless _\bl_\bo_\bg_\bi_\bn (or an _\ba_\bl_\bi_\ba_\bs supplied
- using the -\b-a\ba option) is part of either the ``To:'' or
- ``Cc:'' headers of the mail. No messages from
- ``???-REQUEST'', ``Postmaster'', ``UUCP'', ``MAILER'', or
- ``MAILER-DAEMON'' will be replied to (where these strings
- are case insensitive) nor is a notification sent if a
- ``Precedence: bulk'' or ``Precedence: junk'' line is
- included in the mail headers. The people who have sent
- you messages are maintained as a db(3) database in the
- file _\b._\bv_\ba_\bc_\ba_\bt_\bi_\bo_\bn_\b._\bd_\bb in your home directory.
-
- V\bVa\bac\bca\bat\bti\bio\bon\bn expects a file _\b._\bv_\ba_\bc_\ba_\bt_\bi_\bo_\bn_\b._\bm_\bs_\bg, in your home direc-
- tory, containing a message to be sent back to each sender.
- It should be an entire message (including headers). For
- example, it might contain:
-
- From: eric@CS.Berkeley.EDU (Eric Allman)
- Subject: I am on vacation
- Delivered-By-The-Graces-Of: The Vacation program
- Precedence: bulk
-
- I am on vacation until July 22. If you have something urgent,
- please contact Keith Bostic <bostic@CS.Berkeley.EDU>.
- --eric
-
- V\bVa\bac\bca\bat\bti\bio\bon\bn reads the first line from the standard input for
- a UNIX ``From'' line to determine the sender. Sendmail(8)
- includes this ``From'' line automatically.
-
- Fatal errors, such as calling v\bva\bac\bca\bat\bti\bio\bon\bn with incorrect
- arguments, or with non-existent _\bl_\bo_\bg_\bi_\bns, are logged in the
- system log file, using syslog(8).
-
-F\bFI\bIL\bLE\bES\bS
- ~/.vacation.db database file
-
- ~/.vacation.msg message to send
-
-S\bSE\bEE\bE A\bAL\bLS\bSO\bO
- sendmail(8), syslog(8)
-
-H\bHI\bIS\bST\bTO\bOR\bRY\bY
- The v\bva\bac\bca\bat\bti\bio\bon\bn command appeared in 4.3BSD.
-
-
-
-
-
-
-
-
-
- $Date: 2000/04/02 19:05:58 $ 2
-
-
.\"
.\" $Sendmail: vacation.1,v 8.9 1999/10/27 03:42:07 ca Exp $
.\"
-.TH VACATION 1 "$Date: 2000/04/02 19:05:58 $"
+.TH VACATION 1 "$Date: 2000/04/02 19:48:37 $"
.SH NAME
.B vacation
\- return ``I am not here'' indication