diff options
author | 1998-07-12 17:09:17 +0000 | |
---|---|---|
committer | 1998-07-12 17:09:17 +0000 | |
commit | 9f10690ddec870ec23333353809cf00c10f801b1 (patch) | |
tree | f26d202a00375ff1c980e5c53973bebccdda2900 | |
parent | more BUGS. (diff) | |
download | wireguard-openbsd-9f10690ddec870ec23333353809cf00c10f801b1.tar.xz wireguard-openbsd-9f10690ddec870ec23333353809cf00c10f801b1.zip |
sendmail 8.9.1
137 files changed, 9567 insertions, 387 deletions
diff --git a/usr.sbin/sendmail/BuildTools/M4/depend/BSD.m4 b/usr.sbin/sendmail/BuildTools/M4/depend/BSD.m4 new file mode 100644 index 00000000000..661f69ec12e --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/M4/depend/BSD.m4 @@ -0,0 +1,8 @@ +# @(#)BSD.m4 8.3 (Berkeley) 2/9/98 +depend: ${BEFORE} + @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} *.c + +# End of BSD.m4 diff --git a/usr.sbin/sendmail/BuildTools/M4/depend/CC-M.m4 b/usr.sbin/sendmail/BuildTools/M4/depend/CC-M.m4 new file mode 100644 index 00000000000..01d82662b1b --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/M4/depend/CC-M.m4 @@ -0,0 +1,8 @@ +# @(#)CC-M.m4 8.2 (Berkeley) 2/19/98 +depend: ${BEFORE} + @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} *.c >> Makefile + +# End of CC-M.m4 diff --git a/usr.sbin/sendmail/BuildTools/M4/depend/NCR.m4 b/usr.sbin/sendmail/BuildTools/M4/depend/NCR.m4 new file mode 100644 index 00000000000..03e0c10dd38 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/M4/depend/NCR.m4 @@ -0,0 +1,8 @@ +# @(#)NCR.m4 8.3 (Berkeley) 2/19/98 +depend: ${BEFORE} + @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} *.c >> Makefile + +# End of NCR.m4 diff --git a/usr.sbin/sendmail/BuildTools/M4/depend/Solaris.m4 b/usr.sbin/sendmail/BuildTools/M4/depend/Solaris.m4 new file mode 100644 index 00000000000..cbdc618abfc --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/M4/depend/Solaris.m4 @@ -0,0 +1,8 @@ +# @(#)Solaris.m4 8.1 (Berkeley) 3/5/98 +depend: ${BEFORE} + @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} *.c >> Makefile + +# End of Solaris.m4 diff --git a/usr.sbin/sendmail/BuildTools/M4/depend/X11.m4 b/usr.sbin/sendmail/BuildTools/M4/depend/X11.m4 new file mode 100644 index 00000000000..27f90361f4c --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/M4/depend/X11.m4 @@ -0,0 +1,5 @@ +# @(#)X11.m4 8.1 (Berkeley) 4/8/98 +depend: ${BEFORE} + makedepend -- ${COPTS} -- *.c + +# End of X11.m4 diff --git a/usr.sbin/sendmail/BuildTools/M4/depend/generic.m4 b/usr.sbin/sendmail/BuildTools/M4/depend/generic.m4 new file mode 100644 index 00000000000..e7452d9e329 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/M4/depend/generic.m4 @@ -0,0 +1,8 @@ +# @(#)generic.m4 8.2 (Berkeley) 2/9/98 +# dependencies +# gross overkill, and yet still not quite enough.... +${OBJS}: ${SRCDIR}/sendmail.h ${SRCDIR}/conf.h + +# give a null "depend" list so that the startup script will work +depend: +# End of generic.m4 diff --git a/usr.sbin/sendmail/BuildTools/M4/header.m4 b/usr.sbin/sendmail/BuildTools/M4/header.m4 new file mode 100644 index 00000000000..df216bb9671 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/M4/header.m4 @@ -0,0 +1,32 @@ +# +# Copyright (c) 1998 Sendmail, Inc. 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 +# +# @(#)header.m4 8.14 (Berkeley) 5/19/98 +# +changecom(^A) +undefine(`format') +undefine(`hpux') +ifdef(`pushdef', `', + `errprint(`You need a newer version of M4, at least as new as +System V or GNU') + include(NoSuchFile)') +define(`confABI', `') +define(`confCC', `cc') +define(`confSHELL', `/bin/sh') +define(`confBEFORE', `') +define(`confLIBDIRS', `') +define(`confINCDIRS', `') +define(`confLIBSEARCH', `db bind resolv 44bsd') +define(`confSITECONFIG', `site.config') +define(`confBUILDBIN', `../../BuildTools/bin') +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'))') diff --git a/usr.sbin/sendmail/BuildTools/OS/386BSD b/usr.sbin/sendmail/BuildTools/OS/386BSD new file mode 100644 index 00000000000..34af745c8a5 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/386BSD @@ -0,0 +1,7 @@ +# @(#)386BSD 8.1 (Berkeley) 1/30/98 +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') diff --git a/usr.sbin/sendmail/BuildTools/OS/A-UX b/usr.sbin/sendmail/BuildTools/OS/A-UX new file mode 100644 index 00000000000..782106d7e15 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/A-UX @@ -0,0 +1,11 @@ +# @(#)A-UX 8.4 (Berkeley) 3/12/98 +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') +define(`confSTDIR', `/usr/lib') +define(`confHFDIR', `/usr/lib') diff --git a/usr.sbin/sendmail/BuildTools/OS/AIX b/usr.sbin/sendmail/BuildTools/OS/AIX new file mode 100644 index 00000000000..ebf1f123262 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/AIX @@ -0,0 +1,10 @@ +# @(#)AIX 8.6 (Berkeley) 3/12/98 +define(`confMAPDEF', `-DNDBM -DNIS') +define(`confENVDEF', `-D_AIX3 ') +define(`confOPTIMIZE', `-g') +define(`confLIBS', `-ldbm') +define(`confEBINDIR', `/usr/lib') +define(`confSBINGRP', `system') +define(`confSTDIR', `/etc') +define(`confHFDIR', `/usr/lib') +define(`confINSTALL', `/usr/ucb/install') diff --git a/usr.sbin/sendmail/BuildTools/OS/AIX.2 b/usr.sbin/sendmail/BuildTools/OS/AIX.2 new file mode 100644 index 00000000000..3838e893631 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/AIX.2 @@ -0,0 +1,18 @@ +# @(#)AIX.2 8.8 (Berkeley) 3/12/98 +PUSHDIVERT(1) +SMROOT= /usr/local/newmail +POPDIVERT +define(`confMAPDEF', `-DNIS') +define(`confENVDEF', `-DBSD -DBSD_INCLUDES -DBSD_REMAP_SIGNAL_TO_SIGVEC \ + -D_PATH_SENDMAILCF=\"${SMROOT}/sendmail.cf\"\ + -D_PATH_SENDMAILPID=\"${SMROOT}/sendmail.pid\"') +define(`confOPTIMIZE', `-g') +define(`confINCDIRS', `-I/u/markw/src/db.1.85/PORT/aixrt/include -I/u/markw/src/db.1.85/PORT/aixrt -I/fs/work/src/bind/include') +define(`confLIBS', `-lbsd /u/markw/src/db.1.85/PORT/aixrt/libdb.a /usr/local/lib/libgldavg.a /fs/work/src/bind/res/libresolv.a') +define(`confMBINDIR', `${SMROOT}/bin') +define(`confSBINDIR', `/usr/etc') +define(`confEBINDIR', `/usr/lib') +define(`confSBINGRP', `system') +define(`confSTDIR', `${SMROOT}') +define(`confHFDIR', `${SMROOT}') +define(`confINSTALL', `/usr/ucb/install') diff --git a/usr.sbin/sendmail/BuildTools/OS/AIX.4.2 b/usr.sbin/sendmail/BuildTools/OS/AIX.4.2 new file mode 100644 index 00000000000..e302f5a1136 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/AIX.4.2 @@ -0,0 +1,11 @@ +# @(#)AIX.4.2 8.5 (Berkeley) 3/14/98 +define(`confMAPDEF', `-DNDBM -DNIS -DMAP_REGEX') +define(`confENVDEF', `-D_AIX4=40200 ') +define(`confOPTIMIZE', `-O3') +define(`confLIBS', `-ldbm') +define(`confSTDIR', `/etc') +define(`confHFDIR', `/usr/lib') +define(`confINSTALL', `/usr/ucb/install') +define(`confEBINDIR', `/usr/lib') +define(`confSBINGRP', `system') +define(`confDEPEND_TYPE', `CC-M') diff --git a/usr.sbin/sendmail/BuildTools/OS/AIX.4.3 b/usr.sbin/sendmail/BuildTools/OS/AIX.4.3 new file mode 100644 index 00000000000..75a4272f04b --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/AIX.4.3 @@ -0,0 +1,12 @@ +# @(#)AIX.4.3 8.4 (Berkeley) 3/14/98 +define(`confMAPDEF', `-DNDBM -DNIS -DMAP_REGEX') +define(`confENVDEF', `-D_AIX4=40300 ') +define(`confOPTIMIZE', `-O3') +define(`confCC', `/usr/bin/xlc') +define(`confLIBS', `-ldbm') +define(`confSTDIR', `/etc') +define(`confHFDIR', `/usr/lib') +define(`confINSTALL', `/usr/ucb/install') +define(`confEBINDIR', `/usr/lib') +define(`confSBINGRP', `system') +define(`confDEPEND_TYPE', `CC-M') diff --git a/usr.sbin/sendmail/BuildTools/OS/AIX.4.x b/usr.sbin/sendmail/BuildTools/OS/AIX.4.x new file mode 100644 index 00000000000..f08bfcb4a35 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/AIX.4.x @@ -0,0 +1,10 @@ +# @(#)AIX.4.x 8.7 (Berkeley) 3/14/98 +define(`confMAPDEF', `-DNDBM -DNIS -DMAP_REGEX') +define(`confENVDEF', `-D_AIX4 ') +define(`confOPTIMIZE', `-O3') +define(`confLIBS', `-ldbm') +define(`confSTDIR', `/etc') +define(`confHFDIR', `/usr/lib') +define(`confINSTALL', `/usr/ucb/install') +define(`confEBINDIR', `/usr/lib') +define(`confSBINGRP', `system') diff --git a/usr.sbin/sendmail/BuildTools/OS/Altos b/usr.sbin/sendmail/BuildTools/OS/Altos new file mode 100644 index 00000000000..9c1f301d18d --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/Altos @@ -0,0 +1,12 @@ +# @(#)Altos 8.6 (Berkeley) 2/19/98 +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(`confSTDIR', `/usr/lib') +define(`confHFDIR', `/usr/lib') +define(`confINSTALL', `${BUILDBIN}/install.sh') +define(`confDEPEND_TYPE', `CC-M') diff --git a/usr.sbin/sendmail/BuildTools/OS/BSD-OS b/usr.sbin/sendmail/BuildTools/OS/BSD-OS new file mode 100644 index 00000000000..58586dd596f --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/BSD-OS @@ -0,0 +1,8 @@ +# @(#)BSD-OS 8.8 (Berkeley) 6/3/98 +define(`confMAPDEF', `-DNEWDB -DMAP_REGEX') +define(`confENVDEF', `-DNETISO') +define(`confLIBS', `-lutil -lkvm') +define(`confOPTIMIZE', `-O2') +define(`confMAN1EXT', `0') +define(`confMAN5EXT', `0') +define(`confMAN8EXT', `0') diff --git a/usr.sbin/sendmail/BuildTools/OS/BSD43 b/usr.sbin/sendmail/BuildTools/OS/BSD43 new file mode 100644 index 00000000000..1bbccea2c7f --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/BSD43 @@ -0,0 +1,21 @@ +# @(#)BSD43 8.5 (Berkeley) 3/12/98 +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') +define(`confSTDIR', `/usr/lib') +define(`confHFDIR', `/usr/lib') +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 diff --git a/usr.sbin/sendmail/BuildTools/OS/CLIX b/usr.sbin/sendmail/BuildTools/OS/CLIX new file mode 100644 index 00000000000..69f422965bb --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/CLIX @@ -0,0 +1,14 @@ +# @(#)CLIX 8.8 (Berkeley) 3/12/98 +define(`confCC', `gcc') +define(`confMAPDEF', `-DNDBM') +define(`confENVDEF', `-DCLIX ') +define(`confINCDIRS', `-I/usr/include') +define(`confLIBS', `-lnsl -lbsd') +define(`confMBINDIR', `/usr/lib') +define(`confSBINDIR', `/usr/etc') +define(`confEBINDIR', `/usr/lib') +define(`confSBINGRP', `mail') +define(`confSTDIR', `/usr/lib') +define(`confHFDIR', `/usr/lib') +define(`confINSTALL', `cp') +define(`confDEPEND_TYPE', `CC-M') diff --git a/usr.sbin/sendmail/BuildTools/OS/CRAYT3E.2.0.x b/usr.sbin/sendmail/BuildTools/OS/CRAYT3E.2.0.x new file mode 100644 index 00000000000..6f5abb5de39 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/CRAYT3E.2.0.x @@ -0,0 +1,11 @@ +# @(#)CRAYT3E.2.0.x 8.1 (Berkeley) 4/21/98 +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') +define(`confSTDIR', ` //usr/spool/mqueue') +define(`confHFDIR', ` /usr/lib') diff --git a/usr.sbin/sendmail/BuildTools/OS/CSOS b/usr.sbin/sendmail/BuildTools/OS/CSOS new file mode 100644 index 00000000000..3a995c9496f --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/CSOS @@ -0,0 +1,9 @@ +# @(#)CSOS 8.5 (Berkeley) 2/8/98 +define(`confLIBS', `-lnet') +define(`confMBINDIR', `/usr/lib') +define(`confSBINDIR', `/usr/etc') +define(`confEBINDIR', `/usr/lib') +define(`confUBINDIR', `/usr/ucb') +define(`confSTDIR', `/usr/lib') +define(`confHFDIR', `/usr/lib') +define(`confINSTALL', `${BUILDBIN}/install.sh') diff --git a/usr.sbin/sendmail/BuildTools/OS/ConvexOS b/usr.sbin/sendmail/BuildTools/OS/ConvexOS new file mode 100644 index 00000000000..8ea990c6e66 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/ConvexOS @@ -0,0 +1,11 @@ +# @(#)ConvexOS 8.6 (Berkeley) 3/12/98 +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') +define(`confSTDIR', `/usr/lib') +define(`confHFDIR', `/usr/lib') diff --git a/usr.sbin/sendmail/BuildTools/OS/Dell b/usr.sbin/sendmail/BuildTools/OS/Dell new file mode 100644 index 00000000000..2b9c1ea44a1 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/Dell @@ -0,0 +1,15 @@ +# @(#)Dell 8.8 (Berkeley) 3/12/98 +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(`confSTDIR', `/usr/ucblib') +define(`confHFDIR', `/usr/ucblib') +define(`confINSTALL', `/usr/ucb/install') +define(`confDEPEND_TYPE', `CC-M') diff --git a/usr.sbin/sendmail/BuildTools/OS/DomainOS b/usr.sbin/sendmail/BuildTools/OS/DomainOS new file mode 100644 index 00000000000..ee6be2726b8 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/DomainOS @@ -0,0 +1,18 @@ +# @(#)DomainOS 8.6 (Berkeley) 6/24/98 +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') +define(`confSTDIR', `/usr/lib') +define(`confHFDIR', `/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 diff --git a/usr.sbin/sendmail/BuildTools/OS/DomainOS.10.4 b/usr.sbin/sendmail/BuildTools/OS/DomainOS.10.4 new file mode 100644 index 00000000000..a92051b6bef --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/DomainOS.10.4 @@ -0,0 +1,15 @@ +# @(#)DomainOS.10.4 8.1 (Berkeley) 6/24/98 +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') +define(`confSTDIR', `/usr/lib') +define(`confHFDIR', `/usr/lib') +PUSHDIVERT(3) +dirent.h: + echo "#include <sys/dir.h>" > dirent.h + echo "#define dirent direct" >> dirent.h +POPDIVERT diff --git a/usr.sbin/sendmail/BuildTools/OS/Dynix b/usr.sbin/sendmail/BuildTools/OS/Dynix new file mode 100644 index 00000000000..2781e49d1c1 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/Dynix @@ -0,0 +1,13 @@ +# @(#)Dynix 8.7 (Berkeley) 2/26/98 +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(`confSTDIR', `/usr/lib') +define(`confHFDIR', `/usr/lib') +define(`confOBJADD', `strtol.o') +define(`confDEPEND_TYPE', `CC-M') diff --git a/usr.sbin/sendmail/BuildTools/OS/EWS-UX_V b/usr.sbin/sendmail/BuildTools/OS/EWS-UX_V new file mode 100644 index 00000000000..bf11275a2cd --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/EWS-UX_V @@ -0,0 +1,29 @@ +# @(#)EWS-UX_V 8.6 (Berkeley) 3/12/98 +define(`confCC', `/usr/abiccs/bin/cc -KOlimit=900') +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(`confHFDIR', `/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 diff --git a/usr.sbin/sendmail/BuildTools/OS/FreeBSD b/usr.sbin/sendmail/BuildTools/OS/FreeBSD new file mode 100644 index 00000000000..bec2c599060 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/FreeBSD @@ -0,0 +1,3 @@ +# @(#)FreeBSD 8.5 (Berkeley) 3/12/98 +define(`confMAPDEF', `-DNEWDB -DNIS -DMAP_REGEX') +define(`confLIBS', `-lutil') diff --git a/usr.sbin/sendmail/BuildTools/OS/HP-UX b/usr.sbin/sendmail/BuildTools/OS/HP-UX new file mode 100644 index 00000000000..66d71a45eed --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/HP-UX @@ -0,0 +1,12 @@ +# @(#)HP-UX 8.9 (Berkeley) 3/14/98 +define(`confCC', `cc -Aa -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(`confSTDIR', `/usr/lib') +define(`confHFDIR', `/usr/lib') +define(`confINSTALL', `${BUILDBIN}/install.sh') diff --git a/usr.sbin/sendmail/BuildTools/OS/HP-UX.10.x b/usr.sbin/sendmail/BuildTools/OS/HP-UX.10.x new file mode 100644 index 00000000000..a4b3a816048 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/HP-UX.10.x @@ -0,0 +1,11 @@ +# @(#)HP-UX.10.x 8.10 (Berkeley) 3/21/98 +define(`confCC', `cc -Aa -D_HPUX_SOURCE') +define(`confMAPDEF', `-DNDBM -DNIS -DMAP_REGEX') +define(`confENVDEF', `-DV4FS ') +define(`confOPTIMIZE', `+O3') +define(`confLIBS', `-lndbm') +define(`confSHELL', `/usr/bin/sh') +define(`confSTDIR', `/etc/mail') +define(`confHFDIR', `/usr/share/lib') +define(`confINSTALL', `${BUILDBIN}/install.sh') +define(`confSBINGRP', `mail') diff --git a/usr.sbin/sendmail/BuildTools/OS/HP-UX.11.x b/usr.sbin/sendmail/BuildTools/OS/HP-UX.11.x new file mode 100644 index 00000000000..9e13c58e979 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/HP-UX.11.x @@ -0,0 +1,11 @@ +# @(#)HP-UX.11.x 8.7 (Berkeley) 3/30/98 +define(`confCC', `cc -Ae') +define(`confMAPDEF', `-DNDBM -DNIS -DMAP_REGEX') +define(`confENVDEF', `-DV4FS -DHPUX11 ') +define(`confOPTIMIZE', `+O3') +define(`confLIBS', `-ldbm -lnsl') +define(`confSHELL', `/usr/bin/sh') +define(`confSTDIR', `/etc/mail') +define(`confHFDIR', `/usr/share/lib') +define(`confINSTALL', `${BUILDBIN}/install.sh') +define(`confSBINGRP', `mail') diff --git a/usr.sbin/sendmail/BuildTools/OS/IRIX b/usr.sbin/sendmail/BuildTools/OS/IRIX new file mode 100644 index 00000000000..dafbda6a5fb --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/IRIX @@ -0,0 +1,13 @@ +# @(#)IRIX 8.7 (Berkeley) 3/12/98 +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(`confSTDIR', `/usr/lib') +define(`confHFDIR', `/usr/lib') +define(`confINSTALL', `${BUILDBIN}/install.sh') +define(`confDEPEND_TYPE', `CC-M') diff --git a/usr.sbin/sendmail/BuildTools/OS/IRIX.5.x b/usr.sbin/sendmail/BuildTools/OS/IRIX.5.x new file mode 100644 index 00000000000..4ac44c29aea --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/IRIX.5.x @@ -0,0 +1,13 @@ +# @(#)IRIX.5.x 8.7 (Berkeley) 3/12/98 +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(`confHFDIR', `/etc') +define(`confINSTALL', `${BUILDBIN}/install.sh') +define(`confDEPEND_TYPE', `CC-M') diff --git a/usr.sbin/sendmail/BuildTools/OS/IRIX.6.5 b/usr.sbin/sendmail/BuildTools/OS/IRIX.6.5 new file mode 100644 index 00000000000..3056ff44912 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/IRIX.6.5 @@ -0,0 +1,35 @@ +# @(#)IRIX.6.5 8.2 (Berkeley) 4/24/98 +PUSHDIVERT(1) +# Select what ABI we are using -- see abi(5) for details +# -32 ~ IRIX 5.3 (default: -mips2) +# - long and pointer are 32 bit +# -n32 New to IRIX 6.2 (default: -mips3) +# - long and pointer are 32 bit +# -64 ~ IRIX 6.1 (default: -mips4) +# - long and pointer are 64 bit +# We force ABI here, so then it does not depend on CPU +# +# With IDO 6.2 (IRIX 6.2) you need subsystem compiler_dev.sw32.lib +# for compilation with ABI=-n32 -- alternatively you can set ABI=-32 +# ABI=-64 requires subsystem compiler_dev.sw64.lib, but this runs +# only with IRIX64 (ie. 64 bit kernels) +# +# NOTE: Do not set `confABI' in a site configuration file! The ABI MUST +# be given on the Build command line using the -E parameter, e.g.: +# +# Build -E ABI=-n32 +# +ABI= confABI +POPDIVERT +define(`confMAPDEF', `-DNDBM -DNIS -DMAP_REGEX') +define(`confENVDEF', `-DIRIX6 -DHASSNPRINTF=1 ${ABI} ') +define(`confLDOPTS', `${ABI}') +define(`confMBINDIR', `/usr/lib') +define(`confSBINDIR', `/usr/etc') +define(`confUBINDIR', `/usr/bsd') +define(`confEBINDIR', `/usr/lib') +define(`confSBINGRP', `sys') +define(`confSTDIR', `/var') +define(`confHFDIR', `/etc') +define(`confINSTALL', `${BUILDBIN}/install.sh') +define(`confDEPEND_TYPE', `CC-M') diff --git a/usr.sbin/sendmail/BuildTools/OS/IRIX.6.x b/usr.sbin/sendmail/BuildTools/OS/IRIX.6.x new file mode 100644 index 00000000000..c52fd4ea41d --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/IRIX.6.x @@ -0,0 +1,35 @@ +# @(#)IRIX.6.x 8.11 (Berkeley) 4/24/98 +PUSHDIVERT(1) +# Select what ABI we are using -- see abi(5) for details +# -32 ~ IRIX 5.3 (default: -mips2) +# - long and pointer are 32 bit +# -n32 New to IRIX 6.2 (default: -mips3) +# - long and pointer are 32 bit +# -64 ~ IRIX 6.1 (default: -mips4) +# - long and pointer are 64 bit +# We force ABI here, so then it does not depend on CPU +# +# With IDO 6.2 (IRIX 6.2) you need subsystem compiler_dev.sw32.lib +# for compilation with ABI=-n32 -- alternatively you can set ABI=-32 +# ABI=-64 requires subsystem compiler_dev.sw64.lib, but this runs +# only with IRIX64 (ie. 64 bit kernels) +# +# NOTE: Do not set `confABI' in a site configuration file! The ABI MUST +# be given on the Build command line using the -E parameter, e.g.: +# +# Build -E ABI=-n32 +# +ABI= confABI +POPDIVERT +define(`confMAPDEF', `-DNDBM -DNIS -DMAP_REGEX') +define(`confENVDEF', `-DIRIX6 ${ABI} ') +define(`confLDOPTS', `${ABI}') +define(`confMBINDIR', `/usr/lib') +define(`confSBINDIR', `/usr/etc') +define(`confUBINDIR', `/usr/bsd') +define(`confEBINDIR', `/usr/lib') +define(`confSBINGRP', `sys') +define(`confSTDIR', `/var') +define(`confHFDIR', `/etc') +define(`confINSTALL', `${BUILDBIN}/install.sh') +define(`confDEPEND_TYPE', `CC-M') diff --git a/usr.sbin/sendmail/BuildTools/OS/IRIX64.6.0 b/usr.sbin/sendmail/BuildTools/OS/IRIX64.6.0 new file mode 100644 index 00000000000..5226bb535c5 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/IRIX64.6.0 @@ -0,0 +1,34 @@ +# @(#)IRIX64.6.0 8.10 (Berkeley) 3/12/98 +PUSHDIVERT(1) +# Select what ABI we are using -- see abi(5) for details +# -32 ~ IRIX 5.3 (default: -mips2) +# - long and pointer are 32 bit +# -64 ~ IRIX 6.1 (default: -mips4) +# - long and pointer are 64 bit +# We force ABI here, so then it does not depend on CPU +# +# With IDO 6.2 (IRIX 6.2) you need subsystem compiler_dev.sw32.lib +# for compilation with ABI=-n32 -- alternatively you can set ABI=-32 +# ABI=-64 requires subsystem compiler_dev.sw64.lib, but this runs +# only with IRIX64 (ie. 64 bit kernels) +# +# NOTE: Do not set `confABI' in a site configuration file! The ABI MUST +# be given on the Build command line using the -E parameter, e.g.: +# +# Build -E ABI=-32 +# +ABI= confABI +POPDIVERT +define(`confMAPDEF', `-DNDBM') +define(`confENVDEF', `-DIRIX64 ${ABI} ') +define(`confLDOPTS', `${ABI}') +define(`confLIBS', `-lelf -lmalloc') +define(`confMBINDIR', `/usr/lib') +define(`confSBINDIR', `/usr/etc') +define(`confUBINDIR', `/usr/bsd') +define(`confEBINDIR', `/usr/lib') +define(`confSBINGRP', `sys') +define(`confSTDIR', `/usr/lib') +define(`confHFDIR', `/usr/lib') +define(`confINSTALL', `${BUILDBIN}/install.sh') +define(`confDEPEND_TYPE', `CC-M') diff --git a/usr.sbin/sendmail/BuildTools/OS/IRIX64.6.1 b/usr.sbin/sendmail/BuildTools/OS/IRIX64.6.1 new file mode 100644 index 00000000000..4876a8807a4 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/IRIX64.6.1 @@ -0,0 +1,34 @@ +# @(#)IRIX64.6.1 8.10 (Berkeley) 3/12/98 +PUSHDIVERT(1) +# Select what ABI we are using -- see abi(5) for details +# -32 ~ IRIX 5.3 (default: -mips2) +# - long and pointer are 32 bit +# -64 ~ IRIX 6.1 (default: -mips4) +# - long and pointer are 64 bit +# We force ABI here, so then it does not depend on CPU +# +# With IDO 6.2 (IRIX 6.2) you need subsystem compiler_dev.sw32.lib +# for compilation with ABI=-n32 -- alternatively you can set ABI=-32 +# ABI=-64 requires subsystem compiler_dev.sw64.lib, but this runs +# only with IRIX64 (ie. 64 bit kernels) +# +# NOTE: Do not set `confABI' in a site configuration file! The ABI MUST +# be given on the Build command line using the -E parameter, e.g.: +# +# Build -E ABI=-32 +# +ABI= confABI +POPDIVERT +define(`confMAPDEF', `-DNDBM') +define(`confENVDEF', `-DIRIX64 ${ABI} ') +define(`confLDOPTS', `${ABI}') +define(`confLIBS', `-lelf -lmalloc') +define(`confMBINDIR', `/usr/lib') +define(`confSBINDIR', `/usr/etc') +define(`confUBINDIR', `/usr/bsd') +define(`confEBINDIR', `/usr/lib') +define(`confSBINGRP', `sys') +define(`confSTDIR', `/usr/lib') +define(`confHFDIR', `/usr/lib') +define(`confINSTALL', `${BUILDBIN}/install.sh') +define(`confDEPEND_TYPE', `CC-M') diff --git a/usr.sbin/sendmail/BuildTools/OS/IRIX64.6.x b/usr.sbin/sendmail/BuildTools/OS/IRIX64.6.x new file mode 100644 index 00000000000..503df04b42c --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/IRIX64.6.x @@ -0,0 +1,35 @@ +# @(#)IRIX64.6.x 8.11 (Berkeley) 4/24/98 +PUSHDIVERT(1) +# Select what ABI we are using -- see abi(5) for details +# -32 ~ IRIX 5.3 (default: -mips2) +# - long and pointer are 32 bit +# -n32 New to IRIX 6.2 (default: -mips3) +# - long and pointer are 32 bit +# -64 ~ IRIX 6.1 (default: -mips4) +# - long and pointer are 64 bit +# We force ABI here, so then it does not depend on CPU +# +# With IDO 6.2 (IRIX 6.2) you need subsystem compiler_dev.sw32.lib +# for compilation with ABI=-n32 -- alternatively you can set ABI=-32 +# ABI=-64 requires subsystem compiler_dev.sw64.lib, but this runs +# only with IRIX64 (ie. 64 bit kernels) +# +# NOTE: Do not set `confABI' in a site configuration file! The ABI MUST +# be given on the Build command line using the -E parameter, e.g.: +# +# Build -E ABI=-n32 +# +ABI= confABI +POPDIVERT +define(`confMAPDEF', `-DNDBM -DNIS -DMAP_REGEX') +define(`confENVDEF', `-DIRIX6 ${ABI} ') +define(`confLDOPTS', `${ABI}') +define(`confMBINDIR', `/usr/lib') +define(`confSBINDIR', `/usr/etc') +define(`confUBINDIR', `/usr/bsd') +define(`confEBINDIR', `/usr/lib') +define(`confSBINGRP', `sys') +define(`confSTDIR', `/var') +define(`confHFDIR', `/etc') +define(`confINSTALL', `${BUILDBIN}/install.sh') +define(`confDEPEND_TYPE', `CC-M') diff --git a/usr.sbin/sendmail/BuildTools/OS/ISC b/usr.sbin/sendmail/BuildTools/OS/ISC new file mode 100644 index 00000000000..f07093f660b --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/ISC @@ -0,0 +1,10 @@ +# @(#)ISC 8.5 (Berkeley) 3/12/98 +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') +define(`confHFDIR', `/usr/lib') diff --git a/usr.sbin/sendmail/BuildTools/OS/KSR b/usr.sbin/sendmail/BuildTools/OS/KSR new file mode 100644 index 00000000000..d3931a46405 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/KSR @@ -0,0 +1,7 @@ +# @(#)KSR 8.4 (Berkeley) 3/12/98 +define(`confMAPDEF', `-DNDBM -DNIS') +define(`confLIBDIRS', `-L/usr/shlib -L/usr/lib') +define(`confLIBS', `-ldbm') +define(`confSTDIR', `/var/adm/sendmail') +define(`confHFDIR', `/usr/share/lib') +define(`confINSTALL', `installbsd') diff --git a/usr.sbin/sendmail/BuildTools/OS/LUNA b/usr.sbin/sendmail/BuildTools/OS/LUNA new file mode 100644 index 00000000000..2a0fe1d78c2 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/LUNA @@ -0,0 +1,46 @@ +# @(#)LUNA 8.8 (Berkeley) 3/12/98 +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') +define(`confSTDIR', `/usr/lib') +define(`confHFDIR', `/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 diff --git a/usr.sbin/sendmail/BuildTools/OS/Linux b/usr.sbin/sendmail/BuildTools/OS/Linux new file mode 100644 index 00000000000..e908c478a94 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/Linux @@ -0,0 +1,5 @@ +# @(#)Linux 8.4 (Berkeley) 3/22/98 +define(`confSTDIR', `/etc') +define(`confHFDIR', `/usr/lib') +define(`confDEPEND_TYPE', `CC-M') +define(`confMANROOT', `/usr/man/man') diff --git a/usr.sbin/sendmail/BuildTools/OS/Linux.ppc b/usr.sbin/sendmail/BuildTools/OS/Linux.ppc new file mode 100644 index 00000000000..d2c3cafa7ca --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/Linux.ppc @@ -0,0 +1,3 @@ +# @(#)Linux.ppc 8.3 (Berkeley) 2/12/98 +define(`confHFDIR', `/usr/lib') +define(`confSBINGRP', `mail') diff --git a/usr.sbin/sendmail/BuildTools/OS/Mach386 b/usr.sbin/sendmail/BuildTools/OS/Mach386 new file mode 100644 index 00000000000..98147812046 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/Mach386 @@ -0,0 +1,11 @@ +# @(#)Mach386 8.6 (Berkeley) 3/12/98 +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(`confSTDIR', `/usr/lib') +define(`confHFDIR', `/usr/lib') +define(`confDEPEND_TYPE', `CC-M') diff --git a/usr.sbin/sendmail/BuildTools/OS/NCR.MP-RAS.2.x b/usr.sbin/sendmail/BuildTools/OS/NCR.MP-RAS.2.x new file mode 100644 index 00000000000..74d73340167 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/NCR.MP-RAS.2.x @@ -0,0 +1,15 @@ +# @(#)NCR.MP-RAS.2.x 8.9 (Berkeley) 3/12/98 +define(`confMAPDEF', `-DNDBM') +define(`confENVDEF', `-DNCR_MP_RAS2 ') +define(`confOPTIMIZE', `-O2') +define(`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(`confHFDIR', `/usr/ucblib') +define(`confINSTALL', `/usr/ucb/install') +define(`confDEPEND_TYPE', `NCR') diff --git a/usr.sbin/sendmail/BuildTools/OS/NCR.MP-RAS.3.x b/usr.sbin/sendmail/BuildTools/OS/NCR.MP-RAS.3.x new file mode 100644 index 00000000000..14e02e3ab05 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/NCR.MP-RAS.3.x @@ -0,0 +1,15 @@ +# @(#)NCR.MP-RAS.3.x 8.9 (Berkeley) 3/12/98 +define(`confMAPDEF', `-DNDBM') +define(`confENVDEF', `-DNCR_MP_RAS3 ') +define(`confOPTIMIZE', `-O2') +define(`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(`confHFDIR', `/usr/ucblib') +define(`confINSTALL', `/usr/ucb/install') +define(`confDEPEND_TYPE', `NCR') diff --git a/usr.sbin/sendmail/BuildTools/OS/NEWS-OS.4.x b/usr.sbin/sendmail/BuildTools/OS/NEWS-OS.4.x new file mode 100644 index 00000000000..4fa83bbb7c4 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/NEWS-OS.4.x @@ -0,0 +1,14 @@ +# @(#)NEWS-OS.4.x 8.6 (Berkeley) 3/12/98 +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') +define(`confSTDIR', `/usr/lib') +define(`confHFDIR', `/usr/lib') +PUSHDIVERT(3) +limits.h: + touch limits.h +POPDIVERT diff --git a/usr.sbin/sendmail/BuildTools/OS/NEWS-OS.6.x b/usr.sbin/sendmail/BuildTools/OS/NEWS-OS.6.x new file mode 100644 index 00000000000..dec79b5e9ec --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/NEWS-OS.6.x @@ -0,0 +1,28 @@ +# @(#)NEWS-OS.6.x 8.8 (Berkeley) 3/12/98 +define(`confCC', `/bin/cc') +define(`confBEFORE', `sysexits.h ndbm.o') +define(`confMAPDEF', `-DNDBM -DNIS') +define(`confENVDEF', `-DSYSLOG_BUFSIZE=256 # -DSPT_TYPE=SPT_NONE ') +define(`confLIBS', `ndbm.o -lelf -lsocket -lnsl # # with NDBM') +define(`confMBINDIR', `/usr/lib') +define(`confSBINDIR', `/usr/etc') +define(`confUBINDIR', `/usr/ucb') +define(`confEBINDIR', `/usr/lib') +define(`confSBINGRP', `sys') +define(`confSTDIR', `/etc') +define(`confHFDIR', `/usr/lib') +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 diff --git a/usr.sbin/sendmail/BuildTools/OS/NEXTSTEP.4.x b/usr.sbin/sendmail/BuildTools/OS/NEXTSTEP.4.x new file mode 100644 index 00000000000..4fd6b038608 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/NEXTSTEP.4.x @@ -0,0 +1,28 @@ +# @(#)NEXTSTEP.4.x 8.1 (Berkeley) 3/21/98 +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(`confSTDIR', `/etc/sendmail') +define(`confHFDIR', `/usr/lib') +define(`confINSTALL', `${BUILDBIN}/install.sh') +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 diff --git a/usr.sbin/sendmail/BuildTools/OS/NeXT.2.x b/usr.sbin/sendmail/BuildTools/OS/NeXT.2.x new file mode 100644 index 00000000000..d8f46949504 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/NeXT.2.x @@ -0,0 +1,20 @@ +# @(#)NeXT.2.x 8.7 (Berkeley) 3/12/98 +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(`confSTDIR', `/etc/sendmail') +define(`confHFDIR', `/usr/lib') +define(`confINSTALL', `${BUILDBIN}/install.sh') +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 diff --git a/usr.sbin/sendmail/BuildTools/OS/NeXT.3.x b/usr.sbin/sendmail/BuildTools/OS/NeXT.3.x new file mode 100644 index 00000000000..05aad6f85a5 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/NeXT.3.x @@ -0,0 +1,28 @@ +# @(#)NeXT.3.x 8.7 (Berkeley) 3/12/98 +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(`confSTDIR', `/etc/sendmail') +define(`confHFDIR', `/usr/lib') +define(`confINSTALL', `${BUILDBIN}/install.sh') +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 diff --git a/usr.sbin/sendmail/BuildTools/OS/NeXT.4.x b/usr.sbin/sendmail/BuildTools/OS/NeXT.4.x new file mode 100644 index 00000000000..35f3bdb35e5 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/NeXT.4.x @@ -0,0 +1,29 @@ +# @(#)NeXT.4.x 8.8 (Berkeley) 5/25/98 +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/lib/man/cat') +define(`confMBINDIR', `/usr/lib') +define(`confSBINDIR', `/usr/etc') +define(`confUBINDIR', `/usr/ucb') +define(`confEBINDIR', `/usr/lib') +define(`confSTDIR', `/etc/sendmail') +define(`confHFDIR', `/usr/lib') +define(`confINSTALL', `${BUILDBIN}/install.sh') +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 diff --git a/usr.sbin/sendmail/BuildTools/OS/NetBSD b/usr.sbin/sendmail/BuildTools/OS/NetBSD new file mode 100644 index 00000000000..595fd2df289 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/NetBSD @@ -0,0 +1,4 @@ +# @(#)NetBSD 8.6 (Berkeley) 3/12/98 +define(`confMAPDEF', `-DNEWDB -DNIS -DMAP_REGEX') +define(`confENVDEF', ` -DNETISO') +define(`confDEPEND_TYPE', `CC-M') diff --git a/usr.sbin/sendmail/BuildTools/OS/NetBSD.8.3 b/usr.sbin/sendmail/BuildTools/OS/NetBSD.8.3 new file mode 100644 index 00000000000..6576660f44e --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/NetBSD.8.3 @@ -0,0 +1,3 @@ +# @(#)NetBSD.8.3 8.6 (Berkeley) 3/12/98 +define(`confMAPDEF', `-DNEWDB -DNIS -DMAP_REGEX') +define(`confENVDEF', ` # -DNETISO') diff --git a/usr.sbin/sendmail/BuildTools/OS/NonStop-UX b/usr.sbin/sendmail/BuildTools/OS/NonStop-UX new file mode 100644 index 00000000000..02bdb7801d4 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/NonStop-UX @@ -0,0 +1,16 @@ +# @(#)NonStop-UX 8.8 (Berkeley) 3/12/98 +define(`confCC', `gcc') +define(`confMAPDEF', `-DNDBM') +define(`confENVDEF', `-DNonStop_UX_BXX -D_SVID ') +define(`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(`confSTDIR', `/usr/ucblib') +define(`confHFDIR', `/usr/ucblib') +define(`confINSTALL', `/usr/ucb/install') +define(`confDEPEND_TYPE', `CC-M') diff --git a/usr.sbin/sendmail/BuildTools/OS/OSF1 b/usr.sbin/sendmail/BuildTools/OS/OSF1 new file mode 100644 index 00000000000..cc65dbc7844 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/OSF1 @@ -0,0 +1,9 @@ +# @(#)OSF1 8.7 (Berkeley) 3/14/98 +define(`confCC', `cc -Olimit 1000') +define(`confMAPDEF', `-DNDBM -DNIS -DMAP_REGEX') +define(`confLIBS', `-ldbm') +define(`confSTDIR', `/var/adm/sendmail') +define(`confHFDIR', `/usr/share/lib') +define(`confINSTALL', `installbsd') +define(`confUBINDIR', `${BINDIR}') +define(`confDEPEND_TYPE', `CC-M') diff --git a/usr.sbin/sendmail/BuildTools/OS/OpenBSD b/usr.sbin/sendmail/BuildTools/OS/OpenBSD new file mode 100644 index 00000000000..fb7bc8f42c3 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/OpenBSD @@ -0,0 +1,3 @@ +# @(#)OpenBSD 8.5 (Berkeley) 3/12/98 +define(`confMAPDEF', `-DNEWDB -DNIS -DMAP_REGEX') +define(`confENVDEF', ` -DNETISO') diff --git a/usr.sbin/sendmail/BuildTools/OS/PTX b/usr.sbin/sendmail/BuildTools/OS/PTX new file mode 100644 index 00000000000..9af372792a8 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/PTX @@ -0,0 +1,10 @@ +# @(#)PTX 8.6 (Berkeley) 3/12/98 +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') +define(`confSTDIR', `/usr/lib') +define(`confHFDIR', `/usr/lib') diff --git a/usr.sbin/sendmail/BuildTools/OS/Paragon b/usr.sbin/sendmail/BuildTools/OS/Paragon new file mode 100644 index 00000000000..e16e051f734 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/Paragon @@ -0,0 +1,8 @@ +# @(#)Paragon 8.3 (Berkeley) 3/12/98 +define(`confMAPDEF', `-DNDBM') +define(`confLIBDIRS', `-L/usr/shlib -L/usr/lib') +define(`confLIBS', `-ldbm') +define(`confSTDIR', `/var/adm/sendmail') +define(`confHFDIR', `/usr/share/lib') +define(`confINSTALL', `installbsd') +define(`confUBINDIR', `${BINDIR}') diff --git a/usr.sbin/sendmail/BuildTools/OS/PowerUX b/usr.sbin/sendmail/BuildTools/OS/PowerUX new file mode 100644 index 00000000000..b0f133d0a8c --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/PowerUX @@ -0,0 +1,9 @@ +# @(#)PowerUX 8.5 (Berkeley) 2/12/98 +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') diff --git a/usr.sbin/sendmail/BuildTools/OS/QNX b/usr.sbin/sendmail/BuildTools/OS/QNX new file mode 100644 index 00000000000..3cc01821afc --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/QNX @@ -0,0 +1,15 @@ +# @(#)QNX 8.4 (Berkeley) 2/19/98 +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__') +define(`confINCDIRS', `${DBMINC}') +define(`confLIBDIRS', `${DBMLIB}') +define(`confLIBS', `-lsocket') +define(`confLDOPTS', `-M -N256k') +define(`confINSTALL', `${BUILDBIN}/install.sh') diff --git a/usr.sbin/sendmail/BuildTools/OS/RISCos b/usr.sbin/sendmail/BuildTools/OS/RISCos new file mode 100644 index 00000000000..1888ae69161 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/RISCos @@ -0,0 +1,25 @@ +# @(#)RISCos 8.5 (Berkeley) 3/12/98 +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(`confSTDIR', `/etc') +define(`confHFDIR', `/usr/lib') +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 diff --git a/usr.sbin/sendmail/BuildTools/OS/RISCos.4_0 b/usr.sbin/sendmail/BuildTools/OS/RISCos.4_0 new file mode 100644 index 00000000000..e057fb433cf --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/RISCos.4_0 @@ -0,0 +1,25 @@ +# @(#)RISCos.4_0 8.6 (Berkeley) 3/12/98 +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(`confSTDIR', `/usr/lib') +define(`confHFDIR', `/usr/lib') +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 diff --git a/usr.sbin/sendmail/BuildTools/OS/SCO b/usr.sbin/sendmail/BuildTools/OS/SCO new file mode 100644 index 00000000000..a72ba53eebe --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/SCO @@ -0,0 +1,9 @@ +# @(#)SCO 8.3 (Berkeley) 2/8/98 +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') +define(`confSTDIR', `/usr/lib') +define(`confHFDIR', `/usr/lib') diff --git a/usr.sbin/sendmail/BuildTools/OS/SCO.4.2 b/usr.sbin/sendmail/BuildTools/OS/SCO.4.2 new file mode 100644 index 00000000000..027f7300667 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/SCO.4.2 @@ -0,0 +1,11 @@ +# @(#)SCO.4.2 8.5 (Berkeley) 6/30/98 +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(`confSTDIR', `/usr/lib') +define(`confHFDIR', `/usr/lib') +define(`confINSTALL', `${BUILDBIN}/install.sh') diff --git a/usr.sbin/sendmail/BuildTools/OS/SCO.5.x b/usr.sbin/sendmail/BuildTools/OS/SCO.5.x new file mode 100644 index 00000000000..8f095ac5aed --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/SCO.5.x @@ -0,0 +1,10 @@ +# @(#)SCO.5.x 8.10 (Berkeley) 6/30/98 +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(`confSTDIR', `/usr/lib') +define(`confHFDIR', `/usr/lib') diff --git a/usr.sbin/sendmail/BuildTools/OS/SINIX b/usr.sbin/sendmail/BuildTools/OS/SINIX new file mode 100644 index 00000000000..93cc7813501 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/SINIX @@ -0,0 +1,12 @@ +# @(#)SINIX 8.5 (Berkeley) 2/12/98 +define(`confCC', `/usr/bin/cc') +define(`confENVDEF', `-D__svr4__ ') +define(`confLIBS', `-lsocket -lnsl -lelf') +define(`confMBINDIR', `/usr/ucblib') +define(`confSBINDIR', `/usr/ucbetc') +define(`confUBINDIR', `/usr/ucb') +define(`confEBINDIR', `/usr/ucblib') +define(`confSBINGRP', `mail') +define(`confSTDIR', `/usr/ucblib') +define(`confHFDIR', `/usr/ucblib') +define(`confINSTALL', `/usr/ucb/install') diff --git a/usr.sbin/sendmail/BuildTools/OS/SVR4 b/usr.sbin/sendmail/BuildTools/OS/SVR4 new file mode 100644 index 00000000000..f342c3feeb3 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/SVR4 @@ -0,0 +1,14 @@ +# @(#)SVR4 8.6 (Berkeley) 3/12/98 +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(`confSTDIR', `/usr/ucblib') +define(`confHFDIR', `/usr/ucblib') +define(`confINSTALL', `/usr/ucb/install') +define(`confDEPEND_TYPE', `CC-M') diff --git a/usr.sbin/sendmail/BuildTools/OS/SunOS b/usr.sbin/sendmail/BuildTools/OS/SunOS new file mode 100644 index 00000000000..2a8897825ac --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/SunOS @@ -0,0 +1,10 @@ +# @(#)SunOS 8.6 (Berkeley) 3/12/98 +define(`confMAPDEF', `-DNDBM -DNIS') +define(`confLDOPTS', `-Bstatic') +define(`confMBINDIR', `/usr/lib') +define(`confSBINDIR', `/usr/etc') +define(`confUBINDIR', `/usr/ucb') +define(`confEBINDIR', `/usr/lib') +define(`confSTDIR', `/etc') +define(`confHFDIR', `/usr/lib') +define(`confDEPEND_TYPE', `CC-M') diff --git a/usr.sbin/sendmail/BuildTools/OS/SunOS.4.0 b/usr.sbin/sendmail/BuildTools/OS/SunOS.4.0 new file mode 100644 index 00000000000..05bbc57d504 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/SunOS.4.0 @@ -0,0 +1,15 @@ +# @(#)SunOS.4.0 8.6 (Berkeley) 3/12/98 +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') +define(`confSTDIR', `/etc') +define(`confHFDIR', `/usr/lib') +PUSHDIVERT(3) +stddef.h stdlib.h limits.h: + cp /dev/null $@ +POPDIVERT diff --git a/usr.sbin/sendmail/BuildTools/OS/SunOS.5.1 b/usr.sbin/sendmail/BuildTools/OS/SunOS.5.1 new file mode 100644 index 00000000000..2383609ef14 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/SunOS.5.1 @@ -0,0 +1,22 @@ +# @(#)SunOS.5.1 8.8 (Berkeley) 3/21/98 +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(`confSTDIR', `/etc/mail') +define(`confHFDIR', `/etc/mail') +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 diff --git a/usr.sbin/sendmail/BuildTools/OS/SunOS.5.2 b/usr.sbin/sendmail/BuildTools/OS/SunOS.5.2 new file mode 100644 index 00000000000..5e635db694e --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/SunOS.5.2 @@ -0,0 +1,22 @@ +# @(#)SunOS.5.2 8.8 (Berkeley) 3/21/98 +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(`confSTDIR', `/etc/mail') +define(`confHFDIR', `/etc/mail') +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 diff --git a/usr.sbin/sendmail/BuildTools/OS/SunOS.5.3 b/usr.sbin/sendmail/BuildTools/OS/SunOS.5.3 new file mode 100644 index 00000000000..8f64d219b7b --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/SunOS.5.3 @@ -0,0 +1,20 @@ +# @(#)SunOS.5.3 8.8 (Berkeley) 3/21/98 +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(`confSTDIR', `/etc/mail') +define(`confHFDIR', `/etc/mail') +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 diff --git a/usr.sbin/sendmail/BuildTools/OS/SunOS.5.4 b/usr.sbin/sendmail/BuildTools/OS/SunOS.5.4 new file mode 100644 index 00000000000..65e84002c7b --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/SunOS.5.4 @@ -0,0 +1,20 @@ +# @(#)SunOS.5.4 8.10 (Berkeley) 3/21/98 +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(`confSTDIR', `/etc/mail') +define(`confHFDIR', `/etc/mail') +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 diff --git a/usr.sbin/sendmail/BuildTools/OS/SunOS.5.5 b/usr.sbin/sendmail/BuildTools/OS/SunOS.5.5 new file mode 100644 index 00000000000..267f16d22a1 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/SunOS.5.5 @@ -0,0 +1,20 @@ +# @(#)SunOS.5.5 8.11 (Berkeley) 3/21/98 +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(`confSTDIR', `/etc/mail') +define(`confHFDIR', `/etc/mail') +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 diff --git a/usr.sbin/sendmail/BuildTools/OS/SunOS.5.6 b/usr.sbin/sendmail/BuildTools/OS/SunOS.5.6 new file mode 100644 index 00000000000..0537007008d --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/SunOS.5.6 @@ -0,0 +1,20 @@ +# @(#)SunOS.5.6 8.10 (Berkeley) 3/21/98 +define(`confCC', `gcc') +define(`confBEFORE', `sysexits.h') +define(`confMAPDEF', `-DNDBM -DNIS -DNISPLUS -DMAP_REGEX') +define(`confENVDEF', `-DSOLARIS=20600 ') +define(`confLIBS', `-lsocket -lnsl -lkstat') +define(`confMBINDIR', `/usr/lib') +define(`confEBINDIR', `/usr/lib') +define(`confSBINGRP', `sys') +define(`confSTDIR', `/etc/mail') +define(`confHFDIR', `/etc/mail') +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 diff --git a/usr.sbin/sendmail/BuildTools/OS/SunOS.5.7 b/usr.sbin/sendmail/BuildTools/OS/SunOS.5.7 new file mode 100644 index 00000000000..b030e77c650 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/SunOS.5.7 @@ -0,0 +1,20 @@ +# @(#)SunOS.5.7 8.11 (Berkeley) 3/21/98 +define(`confCC', `gcc') +define(`confBEFORE', `sysexits.h') +define(`confMAPDEF', `-DNDBM -DNIS -DNISPLUS -DMAP_REGEX') +define(`confENVDEF', `-DSOLARIS=20700 ') +define(`confLIBS', `-lsocket -lnsl') +define(`confMBINDIR', `/usr/lib') +define(`confEBINDIR', `/usr/lib') +define(`confSBINGRP', `sys') +define(`confSTDIR', `/etc/mail') +define(`confHFDIR', `/etc/mail') +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 diff --git a/usr.sbin/sendmail/BuildTools/OS/Titan b/usr.sbin/sendmail/BuildTools/OS/Titan new file mode 100644 index 00000000000..b66820089fd --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/Titan @@ -0,0 +1,13 @@ +# @(#)Titan 8.5 (Berkeley) 3/12/98 +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 diff --git a/usr.sbin/sendmail/BuildTools/OS/ULTRIX b/usr.sbin/sendmail/BuildTools/OS/ULTRIX new file mode 100644 index 00000000000..f5df633e52e --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/ULTRIX @@ -0,0 +1,10 @@ +# @(#)ULTRIX 8.7 (Berkeley) 3/12/98 +define(`confCC', `cc -Olimit 950') +define(`confMAPDEF', `-DNDBM -DNIS') +define(`confENVDEF', `-DIDENTPROTO=0 ') +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') diff --git a/usr.sbin/sendmail/BuildTools/OS/UMAX b/usr.sbin/sendmail/BuildTools/OS/UMAX new file mode 100644 index 00000000000..450c91da750 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/UMAX @@ -0,0 +1,15 @@ +# @(#)UMAX 8.5 (Berkeley) 3/12/98 +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 diff --git a/usr.sbin/sendmail/BuildTools/OS/UNICOS b/usr.sbin/sendmail/BuildTools/OS/UNICOS new file mode 100644 index 00000000000..7984fa927c9 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/UNICOS @@ -0,0 +1,9 @@ +# @(#)UNICOS 8.7 (Berkeley) 2/26/98 +define(`confENVDEF', `-DUNICOS ') +define(`confOPTIMIZE', `-O') +define(`confMBINDIR', `/usr/lib') +define(`confSBINDIR', `/usr/etc') +define(`confUBINDIR', `/usr/ucb') +define(`confEBINDIR', `/usr/lib') +define(`confSTDIR', ` /etc/mail') +define(`confHFDIR', ` /etc/mail') diff --git a/usr.sbin/sendmail/BuildTools/OS/UNIX_SV.4.x.i386 b/usr.sbin/sendmail/BuildTools/OS/UNIX_SV.4.x.i386 new file mode 100644 index 00000000000..a6865e786ae --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/UNIX_SV.4.x.i386 @@ -0,0 +1,14 @@ +# @(#)UNIX_SV.4.x.i386 8.6 (Berkeley) 3/12/98 +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(`confSTDIR', `/usr/ucblib') +define(`confHFDIR', `/usr/ucblib') +define(`confINSTALL', `/usr/ucb/install') +define(`confDEPEND_TYPE', `CC-M') diff --git a/usr.sbin/sendmail/BuildTools/OS/UX4800 b/usr.sbin/sendmail/BuildTools/OS/UX4800 new file mode 100644 index 00000000000..207b370baa0 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/UX4800 @@ -0,0 +1,24 @@ +# @(#)UX4800 8.8 (Berkeley) 3/12/98 +define(`confCC', `/usr/abiccs/bin/cc -KOlimit=900') +define(`confBEFORE', `sysexits.h ndbm.h') +define(`confMAPDEF', `-DNDBM -DNIS # without NEWDB') +define(`confENVDEF', `-DHASSNPRINTF=1 ') +define(`confLIBS', `-lsocket -lnsl -lelf # # without NEWDB') +define(`confMBINDIR', `/usr/ucblib') +define(`confSBINDIR', `/usr/ucbetc') +define(`confUBINDIR', `/usr/ucb') +define(`confEBINDIR', `/usr/ucblib') +define(`confSBINGRP', `sys') +define(`confSTDIR', `/var/ucblib') +define(`confHFDIR', `/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 diff --git a/usr.sbin/sendmail/BuildTools/OS/UXPDS.V10 b/usr.sbin/sendmail/BuildTools/OS/UXPDS.V10 new file mode 100644 index 00000000000..bf301403437 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/UXPDS.V10 @@ -0,0 +1,15 @@ +# @(#)UXPDS.V10 8.9 (Berkeley) 3/12/98 +define(`confCC', `/usr/ccs/bin/cc') +define(`confMAPDEF', `-DNDBM -DNIS') +define(`confENVDEF', `-DUXPDS=10 ') +define(`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(`confSTDIR', `/usr/ucblib') +define(`confHFDIR', `/usr/ucblib') +define(`confINSTALL', `/usr/ucb/install') +define(`confMANROOT', `/usr/local/man/man') diff --git a/usr.sbin/sendmail/BuildTools/OS/UXPDS.V20 b/usr.sbin/sendmail/BuildTools/OS/UXPDS.V20 new file mode 100644 index 00000000000..cacdb4af68b --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/UXPDS.V20 @@ -0,0 +1,22 @@ +# @(#)UXPDS.V20 8.8 (Berkeley) 3/12/98 +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(`confSTDIR', `/usr/ucblib') +define(`confHFDIR', `/usr/ucblib') +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 diff --git a/usr.sbin/sendmail/BuildTools/OS/dcosx.1.x.NILE b/usr.sbin/sendmail/BuildTools/OS/dcosx.1.x.NILE new file mode 100644 index 00000000000..900afcd632b --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/dcosx.1.x.NILE @@ -0,0 +1,6 @@ +# @(#)dcosx.1.x.NILE 8.3 (Berkeley) 2/8/98 +define(`confENVDEF', `-D__svr4__ -DDCOSx ') +define(`confLIBS', `-lsocket -lnsl -lelf') +define(`confHFDIR', `/usr/share/lib/mail') +define(`confINSTALL', `/usr/ucb/install') +define(`confSBINGRP', `sys') diff --git a/usr.sbin/sendmail/BuildTools/OS/dgux b/usr.sbin/sendmail/BuildTools/OS/dgux new file mode 100644 index 00000000000..7d6d867b1ec --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/dgux @@ -0,0 +1,10 @@ +# @(#)dgux 8.5 (Berkeley) 3/12/98 +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') +define(`confSTDIR', `/usr/lib') +define(`confHFDIR', `/etc') diff --git a/usr.sbin/sendmail/BuildTools/OS/maxion b/usr.sbin/sendmail/BuildTools/OS/maxion new file mode 100644 index 00000000000..3bb6e0e2e2c --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/maxion @@ -0,0 +1,14 @@ +# @(#)maxion 8.6 (Berkeley) 3/12/98 +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(`confHFDIR', `/etc/ucbmail') +define(`confINSTALL', `/usr/ucb/install') diff --git a/usr.sbin/sendmail/BuildTools/OS/uts.systemV b/usr.sbin/sendmail/BuildTools/OS/uts.systemV new file mode 100644 index 00000000000..c5f841fb5ab --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/OS/uts.systemV @@ -0,0 +1,26 @@ +# @(#)uts.systemV 8.10 (Berkeley) 3/12/98 +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') +define(`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(`confSTDIR', `/usr/lib') +define(`confHFDIR', `/usr/lib') +define(`confINSTALL', `${BUILDBIN}/install.sh') +PUSHDIVERT(3) +stddef.h: + echo "#include <sys/types.h>" > stddef.h +POPDIVERT diff --git a/usr.sbin/sendmail/BuildTools/README b/usr.sbin/sendmail/BuildTools/README new file mode 100644 index 00000000000..0efc1548b39 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/README @@ -0,0 +1,110 @@ +This directory contains tools. Do not attempt to actually build +anything in this directory. + +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. + +While building a site configuration file, you can 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 definitons +are: + +confBEFORE [empty] Files to create before sendmail is + compiled. The methods must be defined + in the Makefile using PUSHDIVERT(3). +confBUILDBIN ../../BuildTools/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 CC as ${O}. +confDEPEND_TYPE generic How to build dependencies. This should + be the name of a file in + BuildTools/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 cc. +confHFDIR /usr/share/misc Location of the sendmail help file. +confINCDIRS [empty] -I flags passed to cc. +confINSTALL install The BSD-compatible install program. + Use ${BUILDBIN}/install.sh if none + is available on your system. +confLDOPTS [empty] Linker options passed to ld. +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. +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. +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. +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 -mandoc 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 a libdb.a can be found. +confNO_MAN_INSTALL [undefined] If defined, don't install the man + pages 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. +confSBINDIR /usr/sbin The location of root-oriented + commands, such as makemap. +confSBINOWN root The owner for setuid binaries. +confSBINGRP kmem 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. +confSRCDIR ../../src The sendmail source directory + relative to support program obj.* + directories. +confSTDIR /var/log The directory in which to store the + sendmail status file. +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. + + +@(#)README 8.22 (Berkeley) 6/30/98 diff --git a/usr.sbin/sendmail/BuildTools/Site/README b/usr.sbin/sendmail/BuildTools/Site/README new file mode 100644 index 00000000000..d5ecb96001d --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/Site/README @@ -0,0 +1,16 @@ +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.OS.$SENDMAIL_SUFFIX.m4 + site.OS.m4 + site.config.m4 + +OS is the name of the operating system file selected from the BuildTools/OS +directory. SENDMAIL_SUFFIX is a user environment variable which can be +used to further distinguish between site configuration files in this +directory. + +See the README in the BuildTools directory for more information. + +@(#)README 8.3 (Berkeley) 3/27/98 diff --git a/usr.sbin/sendmail/BuildTools/bin/Build b/usr.sbin/sendmail/BuildTools/bin/Build new file mode 100644 index 00000000000..ab8a49d78ca --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/bin/Build @@ -0,0 +1,513 @@ +#!/bin/sh + +# Copyright (c) 1998 Sendmail, Inc. 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. +# +# +# @(#)Build 8.93 (Berkeley) 6/24/98 +# + +# +# 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="" +sflag="" +makeargs="" +libdirs="" +incdirs="" +libsrch="" +siteconfig="" +EX_USAGE=64 +EX_NOINPUT=66 +EX_UNAVAILABLE=69 + +while [ ! -z "$1" ] +do + case $1 + in + -c) # clean out existing $obj tree + cflag=1 + shift + ;; + + -m) # show Makefile name only + mflag=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;=.*;;'` + ;; + *) # bad format + echo "Bad format for -E argument ($arg)" >&2 + exit $EX_USAGE + ;; + esac + shift + fi + ;; + + -L*) # set up LIBDIRS + libdirs="$libdirs $1" + shift + ;; + + -I*) # set up INCDIRS + incdirs="$incdirs $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 [ "$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 + fi + fi + ;; + + -S) # skip auto-configure + sflag="-s" + shift + ;; + + *) # pass argument to make + makeargs="$makeargs \"$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'` + os=`uname -s | sed -e 's/\//-/g' -e 's/ //g'` + rel=`uname -r | sed -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`;; +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` + case $rel in + 2) arch="" + ;; + 4) if [ "$rela" = "3" ] + then + arch=$rela + fi + ;; + esac + 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;; + SINIX-?) os=SINIX;; + DomainOS) case $rel in + 10.4*) rel=10.4;; + esac + ;; +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 + +echo "Configuration: os=$os, rel=$rel, rbase=$rbase, rroot=$rroot, arch=$arch, sfx=$sfx" + + +SMROOT=${SMROOT-..} +BUILDTOOLS=${BUILDTOOLS-$SMROOT/BuildTools} +export SMROOT BUILDTOOLS + +# see if we are in a Build-able directory +if [ ! -f Makefile.m4 ]; then + echo "Makefile.m4 not found. Build can only be run from a source directory." + exit $EX_UNAVAILABLE +fi + +# now try to find a reasonable object directory +if [ -r obj.$os.$rel.$arch$sfx ]; then + obj=obj.$os.$rel.$arch$sfx +elif [ -r obj.$os.$rroot.$arch$sfx ]; then + obj=obj.$os.$rroot.$arch$sfx +elif [ -r obj.$os.$rbase.x.$arch$sfx ]; then + obj=obj.$os.$rbase.x.$arch$sfx +elif [ -r obj.$os.$rel$sfx ]; then + obj=obj.$os.$rel$sfx +elif [ -r obj.$os.$rbase.x$sfx ]; then + obj=obj.$os.$rbase.x$sfx +elif [ -r obj.$os.$arch$sfx ]; then + obj=obj.$os.$arch$sfx +elif [ -r obj.$rel.$arch$sfx ]; then + obj=obj.$rel.$arch$sfx +elif [ -r obj.$rbase.x.$arch$sfx ]; then + obj=obj.$rbase.x.$arch$sfx +elif [ -r obj.$os$sfx ]; then + obj=obj.$os$sfx +elif [ -r obj.$arch$sfx ]; then + obj=obj.$arch$sfx +elif [ -r obj.$rel$sfx ]; then + obj=obj.$rel$sfx +elif [ -r obj$sfx ]; then + obj=obj$sfx +fi +if [ -z "$obj" -o "$cflag" ] +then + if [ -n "$obj" ] + then + echo "Clearing out existing $obj tree" + rm -rf $obj + else + # no existing obj directory -- try to create one if Makefile found + obj=obj.$os.$rel.$arch$sfx + fi + 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 0 + fi + if [ "$ABI" ] + then + echo "Using ABI $ABI" + fi + echo "Creating $obj using $BUILDTOOLS/OS/$oscf" + mkdir $obj + (cd $obj; ln -s ../*.[ch158] .) + if [ -f sendmail.hf ] + then + (cd $obj; ln -s ../sendmail.hf .) + fi + + rm -f $obj/.settings$$ + echo 'divert(-1)' > $obj/.settings$$ + cat $BUILDTOOLS/M4/header.m4 >> $obj/.settings$$ + if [ "$ABI" ] + then + echo "define(\`confABI', \`$ABI')" >> $obj/.settings$$ + fi + cat $BUILDTOOLS/OS/$oscf >> $obj/.settings$$ + + if [ -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 + 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', confINCDIRS \`\`$incdirs'')" >> $obj/.settings$$ + fi + 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_=//"` + echo 'divert(-1)' >> $obj/.settings$$ + LIBDIRS="$libdirs" LIBSRCH="$libsrch" 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' $obj/.settings$$ | \ + ${M4} -DconfBUILDTOOLSDIR=$BUILDTOOLS - Makefile.m4 | \ + sed -e 's/#_define_/#define/g' -e 's/_include_/include/g' > $obj/Makefile + 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 0 +fi + +echo "Making in $obj" +cd $obj +eval exec ${MAKE-make} $makeargs diff --git a/usr.sbin/sendmail/BuildTools/bin/configure.sh b/usr.sbin/sendmail/BuildTools/bin/configure.sh new file mode 100644 index 00000000000..eb149b2cdd4 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/bin/configure.sh @@ -0,0 +1,163 @@ +#!/bin/sh + +# Copyright (c) 1998 Sendmail, Inc. 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. +# +# +# @(#)configure.sh 8.27 (Berkeley) 5/19/98 + +# +# Special script to autoconfigure for M4 generation of Makefile +# + +os="" +resolver="" +sflag="" + +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" + +# If user did not supply ABI for Build, use SGI_ABI +# so the proper libraries are checked below. +if [ -z "$ABI" ] +then + ABI="$SGI_ABI" +fi + +case $ABI +in + -n32) LIBDIRS="$LIBDIRS /lib32 /usr/lib32" + ;; + -64) LIBDIRS="$LIBDIRS /lib64 /usr/lib64" + ;; + *) LIBDIRS="$LIBDIRS /lib /usr/lib /usr/shlib" + ;; +esac + +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 diff --git a/usr.sbin/sendmail/BuildTools/bin/find_m4.sh b/usr.sbin/sendmail/BuildTools/bin/find_m4.sh new file mode 100644 index 00000000000..d2cf66556d8 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/bin/find_m4.sh @@ -0,0 +1,82 @@ +#!/bin/sh + +# Copyright (c) 1998 Sendmail, Inc. 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. +# +# +# @(#)find_m4.sh 8.4 (Berkeley) 5/19/98 +# + +# 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 + diff --git a/usr.sbin/sendmail/BuildTools/bin/install.sh b/usr.sbin/sendmail/BuildTools/bin/install.sh new file mode 100644 index 00000000000..58f7623a147 --- /dev/null +++ b/usr.sbin/sendmail/BuildTools/bin/install.sh @@ -0,0 +1,128 @@ +#!/bin/sh + +# Copyright (c) 1998 Sendmail, Inc. 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. +# +# +# @(#)install.sh 8.9 (Berkeley) 5/19/98 + +# Set default program +program=mv + +# 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 diff --git a/usr.sbin/sendmail/LICENSE b/usr.sbin/sendmail/LICENSE new file mode 100644 index 00000000000..bb1c3a79c7f --- /dev/null +++ b/usr.sbin/sendmail/LICENSE @@ -0,0 +1,89 @@ + SENDMAIL LICENSE + +The following license terms and conditions apply, unless a different +license is obtained from Sendmail, Inc., 1401 Park Avenue, Emeryville, CA +94608, or by electronic mail at license@sendmail.com. + +License Terms: + +Use, Modification and Redistribution (including distribution of any +modified or derived work) in source and binary forms is permitted only if +each of the following conditions is met: + +1. Redistributions qualify as "freeware" or "Open Source Software" under + one of the following terms: + + (a) Redistributions are made at no charge beyond the reasonable cost of + materials and delivery. + + (b) Redistributions are accompanied by a copy of the Source Code or by an + irrevocable offer to provide a copy of the Source Code for up to three + years at the cost of materials and delivery. Such redistributions + must allow further use, modification, and redistribution of the Source + Code under substantially the same terms as this license. For the + purposes of redistribution "Source Code" means the complete source + code of sendmail including all modifications. + + Other forms of redistribution are allowed only under a separate royalty- + free agreement permitting such redistribution subject to standard + commercial terms and conditions. A copy of such agreement may be + obtained from Sendmail, Inc. at the above address. + +2. Redistributions of source code must retain the copyright notices as they + appear in each source code file, these license terms, and the + disclaimer/limitation of liability set forth as paragraph 6 below. + +3. Redistributions in binary form must reproduce the Copyright Notice, + these license terms, and the disclaimer/limitation of liability set + forth as paragraph 6 below, in the documentation and/or other materials + provided with the distribution. For the purposes of binary distribution + the "Copyright Notice" refers to the following language: + "Copyright (c) 1998 Sendmail, Inc. All rights reserved." + +4. Neither the name of Sendmail, Inc. nor the University of California nor + the names of their contributors may be used to endorse or promote + products derived from this software without specific prior written + permission. The name "sendmail" is a trademark of Sendmail, Inc. + +5. All redistributions must comply with the conditions imposed by the + University of California on certain embedded code, whose copyright + notice and conditions for redistribution are as follows: + + (a) Copyright (c) 1988, 1993 The Regents of the University of + California. All rights reserved. + + (b) Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + (i) Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + (ii) 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. + + (iii) 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." + + (iv) 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. + +6. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY + SENDMAIL, INC. 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 SENDMAIL, INC., THE REGENTS OF THE UNIVERSITY OF + CALIFORNIA 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 DAMAGES. + +(Version 8.6, last updated 6/24/98) diff --git a/usr.sbin/sendmail/Makefile.dist b/usr.sbin/sendmail/Makefile.dist new file mode 100644 index 00000000000..0b44c420319 --- /dev/null +++ b/usr.sbin/sendmail/Makefile.dist @@ -0,0 +1,26 @@ +# @(#)Makefile.dist 8.2 (Berkeley) 2/17/98 + +SHELL= /bin/sh +SUBDIRS= src mail.local mailstats makemap praliases rmail smrsh +BUILD= ./Build +OPTIONS= $(CONFIG) $(FLAGS) + +all clean 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: diff --git a/usr.sbin/sendmail/README b/usr.sbin/sendmail/README new file mode 100644 index 00000000000..5de10764212 --- /dev/null +++ b/usr.sbin/sendmail/README @@ -0,0 +1,386 @@ +/*- + * @(#)README 8.48 (Berkeley) 5/19/98 + */ + + SENDMAIL RELEASE 8 + +This directory has the latest sendmail(TM) software from Sendmail, Inc. +See doc/changes/changes.me for a summary of changes since 5.67. + +Report any bugs to sendmail-bugs@sendmail.ORG + +There is a web site at http://WWW.Sendmail.ORG -- see that site for +the latest updates. + +****************************************************************** +** DO NOT USE MAKE to compile sendmail. Instead, cd src and ** +** use the "Build" shell script. On many environments this ** +** will do everything for you, no fuss, no muss. See ** +** src/README for more details of compilation. See cf/README ** +** for details about building a runtime configuration file. ** +****************************************************************** + +Sendmail is a trademark of Sendmail, Inc. + ++-----------------------+ +| DIRECTORY PERMISSIONS | ++-----------------------+ + +Sendmail often gets blamed for many problems that are actually the +result of other problems, such as overly permissive modes on directories. +For this reason, sendmail checks the modes on system directories and +files to determine if can have been trusted. For sendmail to run +without complaining, you MUST execute the following command: + + chmod go-w / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue + chown root / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue + +You will probably have to tweak this for your environment (for example, +some systems put the spool directory into /usr/spool instead of +/var/spool and use /etc/mail for aliases file instead of /etc). If you +set the RunAsUser option in your sendmail.cf, the /var/spool/mqueue +directory will have to be owned by the RunAsUser user. As a general rule, +after you have compiled sendmail, run the command + + sendmail -v -bi + +to initialize the alias database. If it gives messages such as + + WARNING: writable directory /etc + WARNING: writable directory /usr/spool/mqueue + +then the directories listed have inappropriate write permissions and +should be secured to avoid various possible security attacks. + +Beginning with sendmail 8.9, these checks have become more strict to +prevent users from being able to access files they would normally not +be able to read. In particular, .forward and :include: files in unsafe +directory paths (directory paths which are group or world writable) will +no longer be allowed. This would mean that if user joe's home directory +was writable by group staff, sendmail would not use his .forward file. +This behavior can be altered, at the expense of system security, by +setting the DontBlameSendmail option. For example, to allow .forward +files in group writable directories: + + O DontBlameSendmail=forwardfileingroupwritabledirpath + +Or to allow them in both group and world writable directories: + + O DontBlameSendmail=forwardfileinunsafedirpath + +Items from these unsafe .forward and :include: files will be marked +as unsafe addresses -- the items can not be deliveries to files or +programs. This behavior can also be altered via DontBlameSendmail: + + O DontBlameSendmail=forwardfileinunsafedirpath, + forwardfileinunsafedirpathsafe + +The first flag allows the .forward file to be read, the second allows +the items in the file to be marked as safe for file and program +delivery. + +Other files affected by this strengthened security include class +files (i.e. Fw /etc/sendmail.cw), persistent host status files, and +the files specified by the ErrorHeader and HelpFile options. Similar +DontBlameSendmail flags are available for the class, ErrorHeader, and +HelpFile files. + +If you have an unsafe configuration of .forward and :include: +files, you can make it safe by finding all such files, and doing +a "chmod go-w $FILE" on each. Also, do a "chmod go-w $DIR" for +each directory in the file's path. + + ++--------------+ +| MANUAL PAGES | ++--------------+ + +The sendmail manual pages use contemporary Berkeley troff macros. If +your system does not process these manual pages, you can pick up the +new macros in a BSD Net/2 FTP site (e.g. on FTP.UU.NET, the files +/systems/unix/bsd-sources/share/tmac/*). + +The strip.sed file is only used in installation. + +After installation, edit tmac.doc and tmac.andoc to reflect the +installation path of the tmac files. Those files contain pointers to +/usr/share/tmac/, and those pointers are not changed by the `make +install` process. There's also a bug in those files -- make the +following patch: + +*** tmac.an~ Tue Jul 12 14:29:09 1994 +--- tmac.an Fri Jul 15 13:17:54 1994 +*************** +*** 50,55 **** + .de TH + .rn TH xX + .so /usr/share/lib/tmac/tmac.an.old +! .TH \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 + .rm xX + .. +--- 50,55 ---- + .de TH + .rn TH xX + .so /usr/share/lib/tmac/tmac.an.old +! .TH "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" + .rm xX + .. + +Rename the existing tmac.an to be tmac.an.old, and rename tmac.andoc +to be tmac.an. + +tmac.an will choose between tmac.an.old, your old macros, or tmac.doc, +which are the new macros, so that both the new man pages and the +existing man pages will be translated properly. + +I'm also told that the groff distribution from MIT has a tmac.doc +macro set that is compatible with these macros. + + ++-----------------------+ +| RELATED DOCUMENTATION | ++-----------------------+ + +There are other files you should read. Rooted in this directory are: + + doc/changes/changes.ps + Describes changes between Release 5 and Release 8 of sendmail. + There are some things that may behave somewhat differently. + For example, the rules governing when :include: files will + be read have been tightened up for security reasons. + FAQ + Answers to Frequently Asked Questions. + KNOWNBUGS + Known bugs in the current release. I try to keep this up + to date -- get the latest version from FTP.Sendmail.ORG + in /ucb/sendmail/KNOWNBUGS. + RELEASE_NOTES + A detailed description of the changes in each version. This + is quite long, but informative. + src/README + Details on compiling and installing sendmail. + cf/README + Details on configuring sendmail. + doc/op/op.me + The sendmail Installation & Operations Guide. Be warned: if + you are running this off on SunOS or some other system with an + old version of -me, you need to add the following macro to the + macros: + + .de sm + \s-1\\$1\\s0\\$2 + .. + + This sets a word in a smaller pointsize. + + ++--------------+ +| RELATED RFCS | ++--------------+ + +There are several related RFCs that you may wish to read -- they are +available via anonymous FTP to several sites, including: + + ftp://nic.ddn.mil/rfc/ + ftp://nis.nsf.net/documents/rfc/ + ftp://nisc.jvnc.net/rfc/ + ftp://venera.isi.edu/in-notes/ + ftp://wuarchive.wustl.edu/doc/rfc/ + +For a list of the primary repositories see: + + http://www.isi.edu/in-notes/rfc-retrieval.txt + +They are also online at: + + http://www.ietf.org/ + +They can also be retrieved via electronic mail by sending +email to one of: + + mail-server@nisc.sri.com + Put "send rfcNNN" in message body + nis-info@nis.nsf.net + Put "send RFCnnn.TXT-1" in message body + sendrfc@jvnc.net + Put "RFCnnn" as Subject: line + +For further instructions see: + + http://www.isi.edu/in-notes/rfc-editor/rfc-info + +Important RFCs for electronic mail are: + + RFC821 SMTP protocol + RFC822 Mail header format + RFC974 MX routing + RFC976 UUCP mail format + RFC1123 Host requirements (modifies 821, 822, and 974) + RFC1413 Identification server + RFC1869 SMTP Service Extensions (ESMTP spec) + RFC1652 SMTP Service Extension for 8bit-MIMEtransport + RFC1870 SMTP Service Extension for Message Size Declaration + RFC2045 Multipurpose Internet Mail Extensions (MIME) Part One: + Format of Internet Message Bodies + RFC1344 Implications of MIME for Internet Mail Gateways + RFC1428 Transition of Internet Mail from Just-Send-8 to + 8-bit SMTP/MIME + RFC1891 SMTP Service Extension for Delivery Status Notifications + RFC1892 Multipart/Report Content Type for the Reporting of + Mail System Administrative Messages + RFC1893 Enhanced Mail System Status Codes + RFC1894 An Extensible Message Format for Delivery Status + Notifications + RFC1985 SMTP Service Extension for Remote Message Queue Starting + +Other standards that may be of interest (but which are less directly +relevant to sendmail) are: + + RFC987 Mapping between RFC822 and X.400 + RFC1049 Content-Type header field (extension to RFC822) + +Warning to AIX users: this version of sendmail does not implement +MB, MR, or MG DNS resource records, as defined (as experiments) in +RFC1035. + + ++-------------------+ +| DATABASE ROUTINES | ++-------------------+ + +IF YOU WANT TO RUN THE NEW BERKELEY DB SOFTWARE: **** DO NOT **** +use the version that was on the Net2 tape -- it has a number of +nefarious bugs that were bad enough when I got them; you shouldn't have +to go through the same thing. Instead, get a new version via the web at +http://www.sleepycat.com/. This software is highly recommended; it gets +rid of several stupid limits, it's much faster, and the interface is +nicer to animals and plants. If the Berkeley DB include files +are installed in a location other than those which your compiler searches, +you will need to provide that directory when building: + + Build -I/path/to/include/directory + +If you are using Berkeley DB versions 1.85 or 1.86, you are *strongly* +urged to upgrade to DB version 2, available from http://www.sleepycat.com/. +Berkeley DB versions 1.85 and 1.86 are known to be broken in various nasty +ways (see http://www.sleepycat.com/db.185.html), and can cause sendmail +to dump core. In addition, the newest versions of gcc and the Solaris +compilers perform optimizations in those versions that may cause fairly +random core dumps. + +If you have no choice but to use Berkeley DB 1.85 or 1.86, and you are +using both Berkeley DB and files in the UNIX ndbm format, remove ndbm.h +and ndbm.o from the DB library after building it. You should also apply +all of the patches for DB 1.85 and 1.86 found at the Sleepycat web site +(see http://www.sleepycat.com/db.185.html), as they fix some of the known +problems. + +If you are using a version of Berkeley DB 2 previous to 2.3.15, and you +are using both Berkeley DB and files in the UNIX ndbm format, remove dbm.o +from the DB library after building it. No other changes are necessary. + +If you are using Berkeley DB version 2.3.15 or greater, no changes are +necessary. + +The underlying database file formats changed between Berkeley DB versions +1.85 and 1.86, and again between DB 1.86 and version 2.0. If you are +upgrading from one of those versions, you must recreate your database +file(s). Do this by rebuilding all maps with makemap and rebuilding the +alias file with newaliases. + + ++--------------------+ +| HOST NAME SERVICES | ++--------------------+ + +If you are using NIS or /etc/hosts, it is critical that you +list the long (fully qualified) name somewhere (preferably first) in +the /etc/hosts file used to build the NIS database. For example, the +line should read + + 128.32.149.68 mastodon.CS.Berkeley.EDU mastodon + +**** NOT **** + + 128.32.149.68 mastodon + +If you do not include the long name, sendmail will complain loudly +about ``unable to qualify my own domain name (mastodon) -- using +short name'' and conclude that your canonical name is the short +version and use that in messages. The name "mastodon" doesn't mean +much outside of Berkeley, and so this creates incorrect and unreplyable +messages. + + ++-------------+ +| USE WITH MH | ++-------------+ + +This version of sendmail notices and reports certain kinds of SMTP +protocol violations that were ignored by older versions. If you +are running MH you may wish to install the patch in contrib/mh.patch +that will prevent these warning reports. This patch also works +with the old version of sendmail, so it's safe to go ahead and +install it. + + ++----------------+ +| USE WITH IDENT | ++----------------+ + +Sendmail 8 supports the IDENT protocol, as defined by RFC 1413. +No ident server is included with this distribution. I have found +copies available on: + + ftp.lysator.liu.se /pub/ident/servers + romulus.ucs.uoknor.edu /networking/ident/servers + ftp.cyf-kr.edu.pl /agh/uciagh/network/ident + +If you want to run an IDENT server, I suggest getting a copy from +one of those sites. Versions are available for several different +systems, including Apollo, BSD, NeXT, AIX, TOPS20, and VMS. + + ++---------------------+ +| DIRECTORY STRUCTURE | ++---------------------+ + +The structure of this directory tree is: + +cf Source for sendmail configuration files. These are + different than what you've seen before. They are a + fairly dramatic rewrite, requiring the new sendmail + (since they use new features). +contrib Some contributed tools to help with sendmail. THESE + ARE NOT SUPPORTED by sendmail -- contact the original + authors if you have problems. (This directory is not + on the 4.4BSD tape.) +doc Documentation. If you are getting source, read + op.me -- it's long, but worth it. +mail.local The source for the local delivery agent used for 4.4BSD. + THIS IS NOT PART OF SENDMAIL! and may not compile + everywhere, since it depends on some 4.4-isms. Warning: + it does mailbox locking differently than other systems. +mailstats Statistics printing program. It has the pathname of + sendmail.st compiled in, so if you've changed that, + beware. +makemap A program that creates the keyed maps used by the $( ... $) + construct in sendmail. It is primitive but effective. + It takes a very simple input format, so you will probably + expect to preprocess must human-convenient formats + using sed scripts before this program will like them. + But it should be functionally complete. +praliases A program to print the DBM or NEWDB version of the + aliases file. +rmail Source for rmail(8). This is used as a delivery + agent for for UUCP, and could presumably be used by + other non-socket oriented mailers. Older versions of + rmail are probably deficient. RMAIL IS NOT PART OF + SENDMAIL!!! The 4.4BSD source is included for you to + look at or try to port to your system. I know it doesn't + compile on {SunOS, HP-UX, OSF/1, other} (pick one). +smrsh The "sendmail restricted shell", which can be used as + a replacement for /bin/sh in the prog mailer to provide + increased security control. NOT PART OF SENDMAIL! +src Source for the sendmail program itself. +test Some test scripts (currently only for compilation aids). diff --git a/usr.sbin/sendmail/cf/cf/Build b/usr.sbin/sendmail/cf/cf/Build new file mode 100644 index 00000000000..3efaffdcdba --- /dev/null +++ b/usr.sbin/sendmail/cf/cf/Build @@ -0,0 +1,28 @@ +#!/bin/sh + +# Copyright (c) 1998 Sendmail, Inc. 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. +# +# +# @(#)Build 8.3 (Berkeley) 5/19/98 +# + +# +# A quick-and-dirty script to create cf files. +# + +SMROOT=${SMROOT-../..} +BUILDTOOLS=${BUILDTOOLS-$SMROOT/BuildTools} + +M4=`sh $BUILDTOOLS/bin/find_m4.sh` +ret=$? +if [ $ret -ne 0 ] +then + exit $ret +fi +echo "Using M4=$M4" + +eval exec ${MAKE-make} M4=$M4 $* diff --git a/usr.sbin/sendmail/cf/feature/accept_unqualified_senders.m4 b/usr.sbin/sendmail/cf/feature/accept_unqualified_senders.m4 new file mode 100644 index 00000000000..16bef782539 --- /dev/null +++ b/usr.sbin/sendmail/cf/feature/accept_unqualified_senders.m4 @@ -0,0 +1,15 @@ +divert(-1) +# +# Copyright (c) 1998 Sendmail, Inc. 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. +# +# + +divert(0) +VERSIONID(`@(#)accept_unqualified_senders.m4 8.3 (Berkeley) 5/19/98') +divert(-1) + +define(`_ACCEPT_UNQUALIFIED_SENDERS_', 1) diff --git a/usr.sbin/sendmail/cf/feature/accept_unresolvable_domains.m4 b/usr.sbin/sendmail/cf/feature/accept_unresolvable_domains.m4 new file mode 100644 index 00000000000..5b7241a314e --- /dev/null +++ b/usr.sbin/sendmail/cf/feature/accept_unresolvable_domains.m4 @@ -0,0 +1,15 @@ +divert(-1) +# +# Copyright (c) 1998 Sendmail, Inc. 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. +# +# + +divert(0) +VERSIONID(`@(#)accept_unresolvable_domains.m4 8.7 (Berkeley) 5/19/98') +divert(-1) + +define(`_ACCEPT_UNRESOLVABLE_DOMAINS_', 1) diff --git a/usr.sbin/sendmail/cf/feature/access_db.m4 b/usr.sbin/sendmail/cf/feature/access_db.m4 new file mode 100644 index 00000000000..85820723dee --- /dev/null +++ b/usr.sbin/sendmail/cf/feature/access_db.m4 @@ -0,0 +1,18 @@ +divert(-1) +# +# Copyright (c) 1998 Sendmail, Inc. 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. +# +# + +divert(0) +VERSIONID(`@(#)access_db.m4 8.8 (Berkeley) 5/19/98') +divert(-1) + +define(`ACCESS_TABLE', + ifelse(_ARG_, `', + DATABASE_MAP_TYPE` -o /etc/mail/access', + `_ARG_'))dnl diff --git a/usr.sbin/sendmail/cf/feature/allmasquerade.m4 b/usr.sbin/sendmail/cf/feature/allmasquerade.m4 index c7cbffa78ea..42121e5cc48 100644 --- a/usr.sbin/sendmail/cf/feature/allmasquerade.m4 +++ b/usr.sbin/sendmail/cf/feature/allmasquerade.m4 @@ -1,40 +1,18 @@ divert(-1) # -# Copyright (c) 1983 Eric P. Allman +# 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. # -# 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. +# 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 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. # divert(0) -VERSIONID(`@(#)allmasquerade.m4 8.2 (Berkeley) 1/22/94') +VERSIONID(`@(#)allmasquerade.m4 8.7 (Berkeley) 5/19/98') divert(-1) diff --git a/usr.sbin/sendmail/cf/feature/always_add_domain.m4 b/usr.sbin/sendmail/cf/feature/always_add_domain.m4 index dd572c8130d..e609bf00027 100644 --- a/usr.sbin/sendmail/cf/feature/always_add_domain.m4 +++ b/usr.sbin/sendmail/cf/feature/always_add_domain.m4 @@ -1,40 +1,18 @@ divert(-1) # -# Copyright (c) 1983 Eric P. Allman +# 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. # -# 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. +# 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 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. # divert(0) -VERSIONID(`@(#)always_add_domain.m4 8.1 (Berkeley) 6/7/93') +VERSIONID(`@(#)always_add_domain.m4 8.6 (Berkeley) 5/19/98') divert(-1) define(`_ALWAYS_ADD_DOMAIN_', 1) diff --git a/usr.sbin/sendmail/cf/feature/bitdomain.m4 b/usr.sbin/sendmail/cf/feature/bitdomain.m4 index 85c8cf0017f..be5155bd324 100644 --- a/usr.sbin/sendmail/cf/feature/bitdomain.m4 +++ b/usr.sbin/sendmail/cf/feature/bitdomain.m4 @@ -1,49 +1,18 @@ divert(-1) # -# Copyright (c) 1983 Eric P. Allman +# 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. # -# 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. +# 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 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. # divert(0) -VERSIONID(`@(#)bitdomain.m4 8.6 (Berkeley) 2/19/94') +VERSIONID(`@(#)bitdomain.m4 8.13 (Berkeley) 5/19/98') divert(-1) - -PUSHDIVERT(6) -Kbitdomain ifelse(_ARG_, `', `hash -o /etc/bitdomain', `_ARG_') -POPDIVERT - - -PUSHDIVERT(2) -# handle BITNET mapping -R$* < @ $+ .BITNET > $* $: $1 < @ $(bitdomain $2 $: $2.BITNET $) > $3 -POPDIVERT +define(`BITDOMAIN_TABLE', ifelse(_ARG_, `', DATABASE_MAP_TYPE` -o /etc/bitdomain', `_ARG_'))dnl diff --git a/usr.sbin/sendmail/cf/feature/blacklist_recipients.m4 b/usr.sbin/sendmail/cf/feature/blacklist_recipients.m4 new file mode 100644 index 00000000000..4417fe09369 --- /dev/null +++ b/usr.sbin/sendmail/cf/feature/blacklist_recipients.m4 @@ -0,0 +1,18 @@ +divert(-1) +# +# Copyright (c) 1998 Sendmail, Inc. 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. +# +# + +divert(0) +VERSIONID(`@(#)blacklist_recipients.m4 8.9 (Berkeley) 5/19/98') +divert(-1) + +ifdef(`ACCESS_TABLE', + `define(`_BLACKLIST_RCPT_', 1)', + `errprint(`*** ERROR: FEATURE(blacklist_recipients) requires FEATURE(access_db) +')') diff --git a/usr.sbin/sendmail/cf/feature/domaintable.m4 b/usr.sbin/sendmail/cf/feature/domaintable.m4 index bfad1bcecc4..0bf9f05fb34 100644 --- a/usr.sbin/sendmail/cf/feature/domaintable.m4 +++ b/usr.sbin/sendmail/cf/feature/domaintable.m4 @@ -1,40 +1,18 @@ divert(-1) # -# Copyright (c) 1983 Eric P. Allman +# 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. # -# 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. +# 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 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. # divert(0) -VERSIONID(`@(#)domaintable.m4 8.2 (Berkeley) 8/9/93') +VERSIONID(`@(#)domaintable.m4 8.8 (Berkeley) 5/19/98') divert(-1) -define(`DOMAIN_TABLE', ifelse(_ARG_, `', `hash -o /etc/domaintable', `_ARG_'))dnl +define(`DOMAIN_TABLE', ifelse(_ARG_, `', DATABASE_MAP_TYPE` -o /etc/domaintable', `_ARG_'))dnl diff --git a/usr.sbin/sendmail/cf/feature/local_lmtp.m4 b/usr.sbin/sendmail/cf/feature/local_lmtp.m4 new file mode 100644 index 00000000000..f323b5b1908 --- /dev/null +++ b/usr.sbin/sendmail/cf/feature/local_lmtp.m4 @@ -0,0 +1,20 @@ +divert(-1) +# +# Copyright (c) 1998 Sendmail, Inc. 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. +# +# + +divert(0) +VERSIONID(`@(#)local_lmtp.m4 8.5 (Berkeley) 5/19/98') +divert(-1) + +define(`LOCAL_MAILER_PATH', + ifelse(_ARG_, `', + ifdef(`confEBINDIR', confEBINDIR, `/usr/libexec')`/mail.local', + _ARG_)) +define(`LOCAL_MAILER_FLAGS', `SXfmnz9') +define(`LOCAL_MAILER_ARGS', `mail.local -l') diff --git a/usr.sbin/sendmail/cf/feature/loose_relay_check.m4 b/usr.sbin/sendmail/cf/feature/loose_relay_check.m4 new file mode 100644 index 00000000000..6e3584b02ed --- /dev/null +++ b/usr.sbin/sendmail/cf/feature/loose_relay_check.m4 @@ -0,0 +1,15 @@ +divert(-1) +# +# Copyright (c) 1998 Sendmail, Inc. 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. +# +# + +divert(0) +VERSIONID(`@(#)loose_relay_check.m4 8.3 (Berkeley) 5/19/98') +divert(-1) + +define(`_LOOSE_RELAY_CHECK_', 1) diff --git a/usr.sbin/sendmail/cf/feature/mailertable.m4 b/usr.sbin/sendmail/cf/feature/mailertable.m4 index fa399973bf7..3078261a452 100644 --- a/usr.sbin/sendmail/cf/feature/mailertable.m4 +++ b/usr.sbin/sendmail/cf/feature/mailertable.m4 @@ -1,40 +1,18 @@ divert(-1) # -# Copyright (c) 1983 Eric P. Allman +# 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. # -# 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. +# 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 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. # divert(0) -VERSIONID(`@(#)mailertable.m4 8.3 (Berkeley) 8/7/93') +VERSIONID(`@(#)mailertable.m4 8.9 (Berkeley) 5/19/98') divert(-1) -define(`MAILER_TABLE', ifelse(_ARG_, `', `hash -o /etc/mailertable', `_ARG_'))dnl +define(`MAILER_TABLE', ifelse(_ARG_, `', DATABASE_MAP_TYPE` -o /etc/mailertable', `_ARG_'))dnl diff --git a/usr.sbin/sendmail/cf/feature/nocanonify.m4 b/usr.sbin/sendmail/cf/feature/nocanonify.m4 index 0157e6b9e48..6211a8ebec5 100644 --- a/usr.sbin/sendmail/cf/feature/nocanonify.m4 +++ b/usr.sbin/sendmail/cf/feature/nocanonify.m4 @@ -1,40 +1,18 @@ divert(-1) # -# Copyright (c) 1983 Eric P. Allman +# 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. # -# 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. +# 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 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. # divert(0) -VERSIONID(`@(#)nocanonify.m4 8.1 (Berkeley) 6/7/93') +VERSIONID(`@(#)nocanonify.m4 8.6 (Berkeley) 5/19/98') divert(-1) define(`_NO_CANONIFY_', 1) diff --git a/usr.sbin/sendmail/cf/feature/nodns.m4 b/usr.sbin/sendmail/cf/feature/nodns.m4 index 465a5ae4653..26458fc3af8 100644 --- a/usr.sbin/sendmail/cf/feature/nodns.m4 +++ b/usr.sbin/sendmail/cf/feature/nodns.m4 @@ -1,40 +1,21 @@ divert(-1) # -# Copyright (c) 1983 Eric P. Allman +# 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. # -# 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. +# 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 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. # divert(0) -VERSIONID(`@(#)nodns.m4 8.1 (Berkeley) 8/6/93') +VERSIONID(`@(#)nodns.m4 8.8 (Berkeley) 5/19/98') divert(-1) undefine(`confBIND_OPTS')dnl +errprint(`FEATURE(nodns) is no-op. +Use ServiceSwitchFile ('ifdef(`confSERVICE_SWITCH_FILE',confSERVICE_SWITCH_FILE,`/etc/service.switch' if your OS does not provide its own)`) instead. +') diff --git a/usr.sbin/sendmail/cf/feature/nouucp.m4 b/usr.sbin/sendmail/cf/feature/nouucp.m4 index 8723437b3c7..3c1098cac4e 100644 --- a/usr.sbin/sendmail/cf/feature/nouucp.m4 +++ b/usr.sbin/sendmail/cf/feature/nouucp.m4 @@ -1,40 +1,18 @@ divert(-1) # -# Copyright (c) 1983 Eric P. Allman +# 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. # -# 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. +# 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 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. # divert(0) -VERSIONID(`@(#)nouucp.m4 8.1 (Berkeley) 6/7/93') +VERSIONID(`@(#)nouucp.m4 8.6 (Berkeley) 5/19/98') divert(-1) define(`_NO_UUCP_', 1) diff --git a/usr.sbin/sendmail/cf/feature/promiscuous_relay.m4 b/usr.sbin/sendmail/cf/feature/promiscuous_relay.m4 new file mode 100644 index 00000000000..975afab752d --- /dev/null +++ b/usr.sbin/sendmail/cf/feature/promiscuous_relay.m4 @@ -0,0 +1,15 @@ +divert(-1) +# +# Copyright (c) 1998 Sendmail, Inc. 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. +# +# + +divert(0) +VERSIONID(`@(#)promiscuous_relay.m4 8.7 (Berkeley) 5/19/98') +divert(-1) + +define(`_PROMISCUOUS_RELAY_', 1) diff --git a/usr.sbin/sendmail/cf/feature/rbl.m4 b/usr.sbin/sendmail/cf/feature/rbl.m4 new file mode 100644 index 00000000000..a9251e04978 --- /dev/null +++ b/usr.sbin/sendmail/cf/feature/rbl.m4 @@ -0,0 +1,15 @@ +divert(-1) +# +# Copyright (c) 1998 Sendmail, Inc. 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. +# +# + +divert(0) +VERSIONID(`@(#)rbl.m4 8.8 (Berkeley) 5/19/98') +divert(-1) + +define(`_RBL_', ifelse(_ARG_, `', `rbl.maps.vix.com', `_ARG_'))dnl diff --git a/usr.sbin/sendmail/cf/feature/relay_based_on_MX.m4 b/usr.sbin/sendmail/cf/feature/relay_based_on_MX.m4 new file mode 100644 index 00000000000..44d07116ceb --- /dev/null +++ b/usr.sbin/sendmail/cf/feature/relay_based_on_MX.m4 @@ -0,0 +1,15 @@ +divert(-1) +# +# Copyright (c) 1998 Sendmail, Inc. 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. +# +# + +divert(0) +VERSIONID(`@(#)relay_based_on_MX.m4 8.7 (Berkeley) 5/19/98') +divert(-1) + +define(`_RELAY_MX_SERVED_', 1) diff --git a/usr.sbin/sendmail/cf/feature/relay_entire_domain.m4 b/usr.sbin/sendmail/cf/feature/relay_entire_domain.m4 new file mode 100644 index 00000000000..823da1e50ff --- /dev/null +++ b/usr.sbin/sendmail/cf/feature/relay_entire_domain.m4 @@ -0,0 +1,15 @@ +divert(-1) +# +# Copyright (c) 1998 Sendmail, Inc. 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. +# +# + +divert(0) +VERSIONID(`@(#)relay_entire_domain.m4 8.7 (Berkeley) 5/19/98') +divert(-1) + +define(`_RELAY_ENTIRE_DOMAIN_', 1) diff --git a/usr.sbin/sendmail/cf/feature/relay_hosts_only.m4 b/usr.sbin/sendmail/cf/feature/relay_hosts_only.m4 new file mode 100644 index 00000000000..98f72c8f82d --- /dev/null +++ b/usr.sbin/sendmail/cf/feature/relay_hosts_only.m4 @@ -0,0 +1,15 @@ +divert(-1) +# +# Copyright (c) 1998 Sendmail, Inc. 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. +# +# + +divert(0) +VERSIONID(`@(#)relay_hosts_only.m4 8.7 (Berkeley) 5/19/98') +divert(-1) + +define(`_RELAY_HOSTS_ONLY_', 1) diff --git a/usr.sbin/sendmail/cf/feature/relay_local_from.m4 b/usr.sbin/sendmail/cf/feature/relay_local_from.m4 new file mode 100644 index 00000000000..549bc9c7423 --- /dev/null +++ b/usr.sbin/sendmail/cf/feature/relay_local_from.m4 @@ -0,0 +1,15 @@ +divert(-1) +# +# Copyright (c) 1998 Sendmail, Inc. 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. +# +# + +divert(0) +VERSIONID(`@(#)relay_local_from.m4 8.2 (Berkeley) 5/19/98') +divert(-1) + +define(`_RELAY_LOCAL_FROM_', 1) diff --git a/usr.sbin/sendmail/cf/feature/use_cw_file.m4 b/usr.sbin/sendmail/cf/feature/use_cw_file.m4 index 33b5ad56ed0..9abf2c1b499 100644 --- a/usr.sbin/sendmail/cf/feature/use_cw_file.m4 +++ b/usr.sbin/sendmail/cf/feature/use_cw_file.m4 @@ -1,40 +1,18 @@ divert(-1) # -# Copyright (c) 1983 Eric P. Allman +# 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. # -# 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. +# 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 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. # divert(0) -VERSIONID(`@(#)use_cw_file.m4 8.1 (Berkeley) 6/7/93') +VERSIONID(`@(#)use_cw_file.m4 8.6 (Berkeley) 5/19/98') divert(-1) # if defined, the sendmail.cf will read the /etc/sendmail.cw file diff --git a/usr.sbin/sendmail/cf/feature/uucpdomain.m4 b/usr.sbin/sendmail/cf/feature/uucpdomain.m4 index 77cc97bbe4a..1c6a33a81fa 100644 --- a/usr.sbin/sendmail/cf/feature/uucpdomain.m4 +++ b/usr.sbin/sendmail/cf/feature/uucpdomain.m4 @@ -1,49 +1,18 @@ divert(-1) # -# Copyright (c) 1983 Eric P. Allman +# 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. # -# 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. +# 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 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. # divert(0) -VERSIONID(`@(#)uucpdomain.m4 8.6 (Berkeley) 2/19/94') +VERSIONID(`@(#)uucpdomain.m4 8.13 (Berkeley) 5/19/98') divert(-1) - -PUSHDIVERT(6) -Kuudomain ifelse(_ARG_, `', `hash -o /etc/uudomain', `_ARG_') -POPDIVERT - - -PUSHDIVERT(2) -# handle UUCP mapping -R$* < @ $+ .UUCP > $* $: $1 < @ $(uudomain $2 $: $2.UUCP $) > $3 -POPDIVERT +define(`UUDOMAIN_TABLE', ifelse(_ARG_, `', DATABASE_MAP_TYPE` -o /etc/uudomain', `_ARG_'))dnl diff --git a/usr.sbin/sendmail/cf/hack/cssubdomain.m4 b/usr.sbin/sendmail/cf/hack/cssubdomain.m4 index 4f270c05f06..b79b69b5b11 100644 --- a/usr.sbin/sendmail/cf/hack/cssubdomain.m4 +++ b/usr.sbin/sendmail/cf/hack/cssubdomain.m4 @@ -1,39 +1,17 @@ divert(-1) # -# Copyright (c) 1983 Eric P. Allman +# 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. # -# 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. +# 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 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. # divert(0) -VERSIONID(`@(#)cssubdomain.m4 8.1 (Berkeley) 6/7/93') +VERSIONID(`@(#)cssubdomain.m4 8.6 (Berkeley) 5/19/98') divert(2) # find possible (old & new) versions of our name via short circuit hack diff --git a/usr.sbin/sendmail/cf/ostype/qnx.m4 b/usr.sbin/sendmail/cf/ostype/qnx.m4 new file mode 100644 index 00000000000..10624dde39f --- /dev/null +++ b/usr.sbin/sendmail/cf/ostype/qnx.m4 @@ -0,0 +1,21 @@ +divert(-1) +# +# Copyright (c) 1998 Sendmail, Inc. All rights reserved. +# Copyright (c) 1997 Eric P. Allman. 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. +# +# +# Contributed by Glen McCready <glen@qnx.com> +# + +divert(0) +VERSIONID(`@(#)qnx.m4 8.7 (Berkeley) 5/19/98') +define(`QUEUE_DIR', /usr/spool/mqueue)dnl +define(`HELP_FILE', /etc/sendmail.hf)dnl +define(`LOCAL_MAILER_ARGS', `mail $u')dnl +define(`LOCAL_MAILER_FLAGS', `Sh')dnl +define(`LOCAL_MAILER_PATH', /usr/bin/mailx)dnl +define(`UUCP_MAILER_ARGS', `uux - -r -z -a$f $h!rmail ($u)')dnl diff --git a/usr.sbin/sendmail/contrib/converting.sun.configs b/usr.sbin/sendmail/contrib/converting.sun.configs index 0fcd9196730..e6a3a9e8bd9 100644 --- a/usr.sbin/sendmail/contrib/converting.sun.configs +++ b/usr.sbin/sendmail/contrib/converting.sun.configs @@ -353,7 +353,7 @@ out of my makefile: # -DNDBM -DNEWDB -DYPCOMPAT -- use both plus YP compatility # -DNIS -- include client NIS support # The really old (V7) DBM library is no longer supported. - # See READ_ME for a description of how these flags interact. + # See README for a description of how these flags interact. #DBMDEF= -DNDBM -DNEWDB DBMDEF= -DNDBM -DNIS diff --git a/usr.sbin/sendmail/contrib/doublebounce.pl b/usr.sbin/sendmail/contrib/doublebounce.pl new file mode 100644 index 00000000000..a853ec14f37 --- /dev/null +++ b/usr.sbin/sendmail/contrib/doublebounce.pl @@ -0,0 +1,232 @@ +#!/usr/bin/perl +# doublebounce.pl +# attempt to return a doubly-bounced email to a postmaster +# jr@terra.net, 12/4/97 +# +# invoke by creating an mail alias such as: +# doublebounce: "|/usr/local/sbin/doublebounce" +# then adding this line to your sendmail.cf: +# O DoubleBounceAddress=doublebounce +# +# optionally, add a "-d" flag in the aliases file, to send a +# debug trace to your own postmaster showing what is going on +# +# this allows the "postmaster" address to still go to a human being, +# while bounce messages can go to this script, which will bounce them +# back to the postmaster at the sending site. +# +# the algorithm is to scan the double-bounce error report generated +# by sendmail on stdin, for the original message (it starts after the +# second "Orignal message follows" marker), look for From, Sender, and +# Received headers from the point closest to the sender back to the point +# closest to us, and try to deliver a double-bounce report back to a +# postmaster at one of these sites in the hope that they can +# return the message to the original sender, or do something about +# the fact that that sender's return address is not valid. + + +use Socket; + +# look for debug flag +# +$dflag = 0; +$dflag = 1 if ($ARGV[0] eq "-d"); + +# get local host name +# you may need to edit these two lines for however your system does this +# +$host = `hostname`; chop($host); +$domain = `dnsdomainname`; chop($domain); + +# get temp file name +$tmp = "/tmp/doubb$$"; + +# save message from STDIN to a file +# I thought about reading it into a buffer here, but some messages +# are 10+Mb so a buffer may not be a good idea +# +if (! open(MSG, "+> $tmp")) { + # can't open temp file -- send message to local postmaster + # open(MAIL, "| /usr/sbin/sendmail -oeq postmaster"); + print MAIL <STDIN>; + close(MAIL); + exit(1); +} +print MSG <STDIN>; + +# scan message for list of possible sender sites +# note that original message appears after the second +# "Original message follows" marker +# look for From, Sender, and Reply-To and try them, too +# +$inhdr = 0; +$hdrs = 0; +$skip = 0; +seek(MSG, 0, 0); +while (<MSG>) { + chop; + if (/^ ----- Original message follows -----$/ + || /^ ----Unsent message follows----$/) { + $i = 0; + $inhdr = 1; + $hdrs++; + $skip = 1; + next; + } + if ($skip) { + $skip--; + next; + } + if (/^$/) { + last if ($hdrs >= 2); + $inhdr = 0; + next; + } + if (! $inhdr) { + next; + } + if (! /^[ \t]/) { $hdr[$i++] = $_ } + else { + $i--; + $hdr[$i++] .= $_; + } +} +$rcvd = 0; +for ($j = 0; $j < $i; $j++) { + print STDERR "DEBUG hdr[$j] = $hdr[$j]\n"; + if ($hdr[$j] =~ /^received:/i) { + ($addr[$rcvd++]) = $hdr[$j] =~ m/.*\sby\s([^\s]+)\s.*/; + } + if ($hdr[$j] =~ /^reply-to:/i) { + ($addr1{"reply-to"} = $hdr[$j]) =~ s/^reply-to: *//i; + } + if ($hdr[$j] =~ /^sender:/i) { + ($addr1{"sender"} = $hdr[$j]) =~ s/^sender: *//i; + } + if ($hdr[$j] =~ /^from:/i) { + ($addr1{"from"} = $hdr[$j]) =~ s/^from: *//i; + } +} + +# %addr and %addr1 arrays now contain lists of possible sites (or From headers). +# Go through them parsing for the site name, and attempting to send +# to the named person or postmaster@ each site in turn until successful +# +if ($dflag) { + open(DEBUG, "|/usr/sbin/sendmail postmaster"); + print DEBUG "Subject: double bounce dialog\n"; +} +$sent = 0; +# foreach $x ("from", "sender", "reply-to") { +foreach $x ("from", "sender") { + $y = &parseaddr($addr1{$x}); + if ($y) { + print DEBUG "Trying $y\n" if ($dflag); + if (&sendbounce("$y")) { + $sent++; + last; + } + $y =~ s/.*@//; + print DEBUG "Trying postmaster\@$y\n" if ($dflag); + if (&sendbounce("postmaster\@$y")) { + $sent++; + last; + } + } +} +if (! $sent) { + $rcvd--; + for ($i = $rcvd; $i >= 0; $i--) { + $y = &parseaddr($addr[$i]); + $y =~ s/.*@//; + if ($y) { + print DEBUG "Trying postmaster\@$y\n" if ($dflag); + if (&sendbounce("postmaster\@$y")) { + $sent++; + last; + } + } + } +} +if (! $sent) { + # queer things are happening to me + # $addr[0] should be own domain, so we should have just + # tried postmaster@our.domain. theoretically, we should + # not get here... + if ($dflag) { + print DEBUG "queer things are happening to me\n"; + print DEBUG "Trying postmaster\n"; + } + &sendbounce("postmaster"); +} + +# clean up and get out +# +if ($dflag) { + seek(MSG, 0, 0); + print DEBUG "\n---\n"; print DEBUG <MSG>; + close(DEBUG); +} +close(MSG); +unlink("$tmp"); +exit(0); + + + + + +# parseaddr() +# parse hostname from From: header +# +sub parseaddr { + local($hdr) = @_; + local($addr); + + if ($hdr =~ /<.*>/) { + ($addr) = $hdr =~ m/<(.*)>/; + return $addr; + } + if ($addr =~ /\s*\(/) { + ($addr) = $hdr =~ m/\s*(.*)\s*\(/; + return $addr; + } + ($addr) = $hdr =~ m/\s*(.*)\s*/; + return $addr; +} + + +# sendbounce() +# send bounce to postmaster +# +# this re-invokes sendmail in immediate and quiet mode to try +# to deliver to a postmaster. sendmail's exit status tells us +# wether the delivery attempt really was successful. +# +sub sendbounce { + local($dest) = @_; + local($st); + + open(MAIL, "| /usr/sbin/sendmail -ocn -odi -oeq $dest"); + print MAIL <<EOT; +From: Mail Delivery Subsystem <mail-router\@$domain> +Subject: Postmaster notify: double bounce +Reply-To: nobody\@$domain +Errors-To: nobody\@$domain +Precedence: junk +Auto-Submitted: auto-generated (postmaster notification) + +The following message was received at $host.$domain for an invalid +recipient. The sender's address was also invalid. Since the message +originated at or transited through your mailer, this notification is being +sent to you in the hope that you will determine the real originator and +have them correct their From or Sender address. + +The invalid sender address was: $addr1{"from"}. + + ----- The following is a double bounce at $host.$domain ----- + +EOT + seek(MSG, 0, 0); + print MAIL <MSG>; + return close(MAIL); +} diff --git a/usr.sbin/sendmail/contrib/mail.local.linux b/usr.sbin/sendmail/contrib/mail.local.linux new file mode 100644 index 00000000000..42d2c3c3d9c --- /dev/null +++ b/usr.sbin/sendmail/contrib/mail.local.linux @@ -0,0 +1,205 @@ +From: Karl London <karl@borg.demon.co.uk> +Message-Id: <199308111712.SAA05454@borg.demon.co.uk> +Subject: Final port of mail.local to Linux +To: eric@cs.berkeley.edu +Date: Wed, 11 Aug 1993 18:12:27 +0100 (BST) +X-Mailer: ELM [version 2.4 PL21] +MIME-Version: 1.0 +Content-Type: text/plain; charset=US-ASCII +Content-Transfer-Encoding: 7bit +Content-Length: 11415 + +Hi, + Sorry about this.. This is a final version of mail.local for +linux.. + +This is what I would like to see distributed with 8.6 if poss... + +Karl + +-------------- + +begin 600 mail.local.linux.tar.Z +M'YV0;<*D8>."S9LQ8=B\`,"PH<.'$"-*G$BQHL6*(&C`N`$#!@@`($#$N%'# +M(TB1)$V&7,D2A$<0-6C,D$%3QHT8+V/HI$$#9(V+0(,*'4HT8ITY=,+("0E@ +MC5(V12<ZE0,UJM6K6+-JW<KU:L"!!0\F?`$G#!TT;L*T*3/'!9JN<*WBA*%1 +M)<J2'T..Q'NRY0P;,6:$+`DC!@V:,VK(T#MCQDV0,.)*GFP4J5*F4ZMNS4RY +ML^?/H#^_4-%"`0@5((:\@9-'3IHS:.B`0#$FA<@<.3Q205,&A)0R9\JXH3,' +MQ!LS(,[VKN(FC9TR<N:DH9/'./(A"=.8>2.G>1@7IE$'8<,&A&O8Q,VSA?Z< +M#/C3X7V7(9,&J6LQ=>BD>>,&1!@W9(!P5&]I]#?'&W7(,49O_P4H1H%*5;>= +M'&W,P0((=TR'AG%+97@6@G3$U\8;])F1!D+Z\7>A4KW!`5T;T]$Q'PAPR/&& +M'6F0,>-99B7'&PC;D?=&AFZ<`<(8_-&7HAMSQ,<B"&O1H4-\,;@@'WWVI8'? +MDL4=!\*!"2YX)(F]M7&4;'*4D52!/C(HQHV](<G:>;'%MY(;;^BWX(5GU0<" +M&_7)YB62`$ZW'Y/^`=@FD&\(2:216([!AD!KR?$>:C)8^1N6=-R7WZ'%L?E@ +M6G)(R%T;4)ZI7HTDUB&F<OZ]^=R8<[Y6YVDLX:EG&7RBX2>@2%DW9J%<)AH@ +MK$$:]"@(D4Z:1J4@L*F<G2&1<5`=:PUGUJ'&OL"=<<HM%9",KB54'*LXZAB@ +MAQO"RJFG2UX*P@Q6CE=>&&0\)X=^TA4)I5G0I6$NE,(M6:"19I1A5H)L<2C@ +M'+UYV6=Q!YI!QQTL4IMJL%C",6EUR#:J[,'^C;$&GG>P,5]PV4H97@*[^<DJ +M&:[*5J"D=>A(\7$7/ZGC<P:YZ"#(/S+G''3246?=R]@!.J%W%PH!W1IEJ%Q= +M@]&F1VBG6N;'75OQT6"E$V5H"-VB::TE+*Q&ZYMT=7@N!6O:#7LY77%;P_NU +MQ@%5)T9O`Q[[!@C"61M=Q$NQ.J*,--I(\QCIZ>A:>T#:B.K$7_*,<9H:LPOB +MERZ.H=V)C>_7H6MTR-B?BQ36)QU_E\9'!1))3`'"%$\80<4504A1!`BU@P"% +M%$]8D00111`!@A!9@##[[[X?48035-@>A!/*#_$$]5(D(4055#PAA>U@@!&$ +M[;6?<`((UQ,1W_7-%X'%\$5,8;OXP#<!!1-))`\"[U*0PO6HT+\I7"@)3A@" +M$ZI`!`0>(6K@`X$3GD`%$/"O"4F@@O_"=Z'GQ2<)^N.?_P`H0.H5$`2Y`T$3 +MBB"%(2!A@$$00A+X1X7FM0\$1LB@$^IG.R/@+PC"ZQT!AU`%)O1.>%60`A2> +M,(4BO,]W(&C@%!08!!`FSTK`<X($GP""(EAA>A6<P@N9P`3G(0%Z19`>]>XG +MA=1LCPK=^U[XQK>\W_$OADQP(JY\V$;X13$)OAL"%0Z(/4`609"$',+QP!@$ +M)EQH"E`X9!(:>2'Y%2&$O<O"A?"G/2<T,0I5`.,DF1`?(@2A"4&0GNU0@$`% +M,M"!$*S@!"MXP0QN\`D7&MX3B.B[%5(/A4:X716$,`4"4@%\OSO"$YY`A"G$ +M!W]-E(+QAE"_'5B0B?<+9A6:>"%34B$(FVRC+G-8/6OB[WM30"`/LZC!`%8! +M"@3<7@KB@X0G7,&++$Q-$+;IOQMNCWU.:-[SQ->\%-Y1AC34Y/_.^+PV(M"- +MW`L"(F\'QR0(,CX'G6$&%8J_.5:0E0E<8`.=<`0)II%_:J0F"MM(P3-*X0JU +M*X)M>E<[!V81H,WC71:>&<$4/@\$_`2F&8.'.]T!L`B5_*(6DQ#,(!#!>$U4 +MGD_/*#QL>D^C-01F?*90!1=&\92I+$+L3I,`(*!@!"DHRUGHUA8T)*`&+A`, +M"J0F!ZI9S38Q>,%(7I"#&(3G!0H8P<W8D+/>\$"M:&BK#Q006!V9R`V]^0(4 +M@C"[+S!AEU307P)$\`(ZM`$.+S`(0@B"A=*:5@0*"(UJ5_L5@HAV+*T-RVA= +M,(;5@F8N=<G+7>RR%[NP9"0PJ$$-!B.3FMBD(XSAR0T@8]OF#N5,E_D(9[@R +M7>=:][K8E<QH2H,KU=0*/;.IS6URX[P?_28XP^D2<MC6'+=-ISI>:IIVN.,= +M>=G+/+9*3YH@)H?VC!4UFPH4O+B%M0%%RT`(4A"#%#6J"#&*0A;"D(8<YKG\ +MB(A$HT/1H5:4)AJ]*$8S0E>.=H2&'H7,420CE))`Y:0.1VE*N*K2E03<M6)Y +M"4P*'I..-H8F-0FD/[`*@ZSBM)K6Y%=CNCH1KWSTJT`)2\6&XD]QL';BD?FK +M692"CKPR->,L;0E4!P9!@TOU8%29*5AIFIFK>A/D(=/*R.A!<IZ4W*LF!VM0 +M28HRHJC\HV0-B618?M;9I,4;C5EK#-@JV+;XTZUOY8DWX@)8N=AP+ANE:T;L +M6M2[:GPH>=&+?>3Q3[Z@PR^2C2M@`VO9H4B6L(7MUV$&EIBO=F:QS96!;ZKJ +MV,<6Y>=EA<%D*%,9&5A6,!BK`&:S;ERK('=@G.DL<[7V61F`MIH9B8%HRVDO +MTMZ[-++*]VD"B]K4JE:&JRGJ;L/BVI:^)B^Q2;!LX4*;6B*VWJ)I.SK<CIN\ +MUZ+>K.&-/^KV6G3X%@:_`0YB@B,<@+Z&.&4OKD6.JUEQ)'>T`)G!<DRF=<\X +MAZN55%@V<PA=ADOWK3N@3G4>;MT<7N>&_P[5=D7=7>]^%SQ=&@]YRF.>&=&H +MQNH!-'MOC"/XQ$<^\Z%O"NK[^?L"VL7Y^<Y^*\W?_OJG/!(.L(")%"DLEQ?! +M65H0A+94'@=W_L$04OU_O2LA`>LGU!6V\(74BR%6;8@]'.IPG7QD7Q"E,,0B +M'A$*25QB$Y_X.RE2T8I$P.)#)]A%I89QC&7\:?3`R$:(5E2.1*_CU_&H1]3D +MW8\-#.0@LQCZ0XZ^E8N,NR-O%TE%4K+IE]Q?)L,)T4^&TH2-+"5853F;5FJ= +MI+'<(BW!KD&QXU)XQ./E)<$H5*X2TYC(!($RF>E,7$&3A=.LYC6AGD)^=I.R +MX(SZ.#,X!7.V$9WJA#H"VRF%=\;3"?/$53WO^<4V#F&?4?TY"K7HQX%*H:#! +ME%$)=2%7P%`N=5.=!$<2-7K%U#T7A2L"N%&TYU&]%U*O1%(F=00H-3TJA3\M +MQ4(PU40SU3WIA($/Y4<ZQ5,5-%6_$U13152Y(W.^DU33`SQ-]50Q)57!]%." +METX(M5%:A2M<Y56FA$K2<RF`%5C:`2!E@!R`,AP*,`8EMA1R`F>QL05=``(] +MH``B8%9HE1I%1B>R01MXA1NZ85[`43#]QEY'@V]*$U_9`6[?P05NP`6F<5]B +M6!S[Q1[SX0)T*`([$%B%HQT@,!H@H"M_4B"RH0))*%AFP(1.J(@*8!EZ<B13 +M^"5C,`;20098J(4@T(5GE0*Q]5H$,09OY0(V,!MT95?E9ALVH%<YP%<Q`(B" +M6"C(88B(^(2+V(B#55@@P`-SD`=S0!9*H19NL5B"Y0;.9EC!.(R4>(Q*J(R$ +MM6/`*(PO<"`FHR;0F(S+^(O-^`(FHC+;V(O4"%GZ88XO4"#C*(V^6(US8!!G +ML([=R`-F,`;#01!H@(SD:%CF2`9B((_3:%AP<`?ND8_1.(_ZL18`V8YUT!Q( +M49#ZR([4"!W=\08+28T/N1\7R8QT0`:`\H\&R8T!Z8U<4R0;^8F(Q59N@5J- +MU80%4@8)8`3@QP0)D`!^-0*.]9(),$LR^4TT"0.,I8@)H".`HB\@\`62A0(H +MH(@7(H67H0(ID`*!:`=OD",)0)%'F91+.1Q-*66RX91+H0(7X@)D&953695D +MD`!)9@9Y\"!F@!Q("05*"9:G898*()1(P1V1I95T"952J0!4:95'$0;!D95R +MB0*!209VJ0!?X08HH!1G,`8<=@9V,$\)H(C^(0>1&8@)T)<J`)EV$(A[H`!7 +MB0?DTA^8N1KG2`:<60:F"1W]T9>J"9F<:1\U0R-AL'($>1H#R9F8*8478@9D +M<"'3EA"<60<Y\@6R@9RL29I]>7%OT`:!2)K5Y@;PB`(B,(IBP08B<"&7=022 +MQ4+$(P7>^03@B4HS])>D"9VHT@,25$1,P)EWX"LJ,QNTL2'N&1QTH)J/J9F2 +MF9F4>2$B0`9FH`-RH`,B$)4@$`+N602Y8YD),`<>(H7W:1NC69,(`3$@<`)D +M<`(Z4).&*`:_M@:;$R!(\EG;(@;UR8BD69-BD"9AL`:<V9FYV1LG8`8>VJ(9 +M:J-RX*$@BAHB:C(E.B8HJA\JVALL6I.7B1PHP)X0F@`L09$HT).OEYUUP`;Z +MX3&]T0+(H9J@DJ`SF@#LZ8FSJ9EA^J(*(Z,Z6J,;^@,Y6I..%097ZC)*.IC! +M@0)_69-]0)J0.08@T`+NZ:4`PIF@"0(K$*APL)K3N:2S$0*?J9F5V:)V6@9X +MNJBC09JXD@3(,::(&')E(#HF,A\78F!S,V^5$YT@H)_P6"!X&BWU=FM0BAK, +M^2]T((5L<2&/!AT9`C&CJJ&EJC9C"BMEH9O<87$#`:NX@B1RL%]PD&?^LI^+ +MPIS@$:N`E0"SFI]JPIR52IJ$B`(A,*8F8`*-VJ08AZUTL*J.J:!\P`>8NA(A +M@`(#Z8GZ.9!I0Z[1J:Y\0"-WT`(^,)!?,*L,*B`Y$I4M.J;N":]W(*]J,I#: +MRIP*^@/ZRJ_^2C<@H`.?^`,82XOK&2#NF9=I8J]MD*<3,AO%61[N"0/6]*B4 +M:4TKL`*@":$E"P)\X)Y$V89-.IRG\;*MB0?3@0(E^Y=[.HG[^;%.ZIR7J`+L +M*9JDF4-Y=!IF``><F9!EH)S)80?&R:W#`20X6S4OR9E]20=N<"%/6`9;(`-T +M@0-=L*A@ZXGV03-P@`*215E(8%F8I3]YVJTWZXEML`9(40:?A0)@JZ`]X)XM +M$`,RFZ_O^K2>*)S5>;,">@<KD*`$6Y-22J6K)P(-*63U":W5F1Q^VZQRX&#A +M6`9@2IJ(B98IT)!/N`:`ZP8BFR:4&KB+>KH#*[4H8`)T8+5LD*>TJYA/ZQK# +M809-"@<":@085P+%@;S=>:IMT)2VB[NZNY@),+9;``-9Z)XGP`4P<`*<.;(^ +M.[:>&`/69`;Z.0<H,+87(AUZ4`;'<;XOF0+IVY$%(I46VJ+=2KW6JX782X<G +M\*1<"UGA.Z-5HZ$76I/=^K^]$:Z)"%G5>[W8:P3KH\`A(`9C\+?H^XG&BZK+ +M6P.3JZ2]FU;Y,08H<`(^<`+!"0=Y2KG@>[(SNJ<U^<&_JXC"^[0"JKQB^[XS +MVJT)LZS<,;P=G`!H&J.<&;0)8(B:2C`K1YB]@8B0E3(OZ;FMDQ8R@K.0-2/_ +M03BF&;I6DJ3=&@(%HB-XX+Z0=2'9ZP;]"Z$?#`<A/,+\>\)Y:HA/D!]J+!MA +M<(AEX,2094VZLF2?JS3\-@=*/&4=EA#*TH>G4:UIO,9E;,)`@L*SFY@I\):$ +M-0=HX,.^R:0[;"-RX,,PNZQ3.I,"*B.?Q1VB>ZP8@CJ]09'<4;H)D"9TD"". +M*9Q`RU@UJR^.>XCS9IF8*9Q>>[1TH[01VBFW28E?(@:U*<S,-JP2&B`JT)M8 +M^Y4P.L47T@9B()P7X@9R<,UW@*MO>2']=;6=>8EN:085<@9;,!==<"'X809; +M@`,J@!,R0`/IC)MGL06H-#]RFT=.D+;4^994BV@VTLU_`C%EP+KJ6<0J@*FH +M003U0<A#PBQ<JR\@,S@->3)#TA]L]:<M`#J?*C#ET5IO@@<-@Q#]\3<*#0(E +M!B#"%F:P`C$`TEK^`2@U6ARC.ZV'S*U,^J[Q:J[TJA8H0#=16;^4Z\D\"<J? +M6-$H@]'S9K$VC,MKD<*N#,LH$`-Y2L0?''+`2P?"BU@U/(Q-';>5A9Y,$'K7 +MG,N+VL6T$<TSXIZ4EA1T`*]F@0878@)S(`8*&J[M&A(H4-<N@!1?8)T%L@8+ +MZIZ&NZZW\P6UPP1.L`1[_8]^/2(Z$M0@4,!26M0^V=46N[HS,KK+BUA0G:W= +M,=55S5@(?=*[`1UE<`)39AZ_UAN0MJ4;?3&#PRH+LG(-TR=N(-C*X3>/=B1J +M308GC2S'BD4Q4QQK\1_%(=SU2=*(^#<"`MBYW8<*7:UX2\W"J85Y;1PNXIA< +MC4)?$`10$$G8PP=/\`5#X#N41=Y?<`7$XP1,H%!3@-CM-P52P`?QG017L$U2 +MH*`\X!)"?95$34&6B]D@T-3=;1^JO,D4B2=V69-1'=I4/<2D_<TFZQ*<:8BF +M9;%/L-U?@@8(P@8!XM`):P:BM08G0#+*70;61-`9X0(T0$R)=].,VJ0EC@+6 +MC;.7-01+\`7RHZ"4'>!4,."?B+Q,/0>='=?QFR8\K.#+RN!0K;L!W*)GD"># +M(Z+-F0!$#-#'@1QL3="L>^,7`@.KUT1%L./30P2\"\E8+<,H,,[EW-5`4`(@ +M_H=EO19-F2!;?K=,2FEE4-"W+.:/5`1E_@5-1`6V,;BSL>7*F0*%^]^5:]0B +M(,J@6\HJ4^3+B^!+[K--_@8-WLI03M@S.N70:N423IKS:<I*B<V>"*-D<,OK +MG+YIL+[MN\Z2[0/^7;#?@@);[HDH:QW(T=_8K,=+`:B'N,V^;JCNZ09W\*1X +MJ^R>:'+30:E@+F9U@!PKX.O7+`?\[=^3W:)#O<F67:5$7N!&?B$'WBD)KND5 +MV>DU*>J#(\S*&*8NW*VJWM\PX.B>+.21_KFD3&:C:^E)GNX+SNE_">]C\*$) +M`,,&#S`V7LTXJ^5O^>0)$>583MJ7&JNWHR:+<M%G@S5G8"-U``=8A`2!PATG +M0LAYH,X%`M-IIC!3G''^$2(8KS!2^"\#`=%%"1UY@$57L,2#8Q!%<C;6DG$K +MLG+8@N(E9C.O>M(<'QV^`@<.PSHPLG)@=@>H;8G_$1S'\MH8DIO^H1ZYR6@C +M:RT'<]('8M,L:N4?VJUC\-NVT:(P+(47W?#6'+']>@?_FB/FOJ]W_P5G,+"/ +MC+IF$(S*2/>*N0,_&D7\<0*R@3'3\6`"`@=D`#!;C,B0+"EO`#&&+Y6)GP2? +M!2BBLYS6>1!K4/FDW<44#J%KV9;:(;QN/@=GD*</[IBI'XA!FY@*L/KC;..P +M;YE]6<[`3(FD8YO,AHU.009D(`=?P";XDOS'O"U^NLN>6+C'+`>WZ>%]F[4J +M@`902YK$#W)\J/TAYYM9JS)N<-8YW?R6TB]?8`9J,1!Y\-^&*#5?<JQ92XCC +M_"7LH62'F"?^8;4#07.5`=-GP'+:7H-ZYHJ_V(%K0S>PTSA;7IB+#,`!R?6D +M9E\.,X#<3V%]"*3``.<-=B)%V(\.4,!NIZ0JFX"#="`P\TD)<G?IT%VF&WCL +MS@*V*!>6`-1?7RL0[>_]L8'JX)ZX'[]"`U]`_5$'%S&C*%B100$^T`<`0?4W +MUVP@^V."*`T._,`O8/[.P%E(84X0!X(NV="QI*`/F`-?8`M*N!GWZUP""%!@ +M38IMD3XU@0*"@!%`;#N$`>V2'4<$CH``:0)A3G`1+JI&`@$<N#N!E^T3&3\U +M`?"^A`O49.K.R<TH&5CQII=P8%N=POSQOMAGJ$3")9L-+HT,[*<F-<U@G]@2 +M#F'N0NPU9`9R2)_ZJTLF``JJ+_8EO-3?Y&()`<O\=;(_&.0@728<=:VO$&(Z +M1`@#9QE@0DL*8%+A*05PH1Y=(,1<@"PX6"SM-%I`P!;@4LPK"PV(I4"67$#I +M"EJ.*"L5$R(P!)#201I)P*@C0:9M-,!NC4AJ1U8K=&DFQ5*+2@1CP7W9$"EM +MPV[X!12`E,),]<'])04VT)68Q%<Z6N2,#HRELB2(^)P]]&3YT"PDA.#4!NB` +M+KM_<T`?@K/GU!`YD]7Z`F1`4K1#[4`,2=-%!!9TK/O%0T)'!;BA-TP`%]$R +M[(O'1+R`1$/\2R.@''K$,/`%5.);"P..;".:`8_8C*[3=^)Q`80A"D3_D!-1 +M(DTL'"Q1S\V&A+@/81;/>FL13@'LJ>Q"%:NB5;R*6#$K:L6M*!&8X5AH`C'* +M):D,KJ@5<`MR.0F]1;>DQ;[0$F2`3B`N,Z$F<(2<(`-L@&)@+F2QN4"7I2!= +MGD)7J"YY,3`*1LDP`LI**`*+5&-TG2*YLHK(3?P3"7KE!L@BQJ)+CD`/2`!> +MD0TH`%3B!'#`9<R,+@`HR9`)<@6<P&6T$7E"`8S&)L!,BD`/H`'"I0:H1@02 +M>GK`"Q@5C,4%[*-?)`;F@'M@%?%H;RV6P4@<BZ-Q/(Z",3.^`-"(`Y!C13"+ +MO"4EJ$7IR!97@@VP`3>`!@R&CF`#8*,,4`RI2"0TAL?@$IPC9=B+F,$O4A?U +M:![;HWMD"'Y(!("A[Q(;PDL9(B^G33Z@E_0@:[)-&WH;PN+;T!>!`1[B(Z@I +M#WE(/2A`Z18?%8"!##!>YE,PF@*CH=@$CA$36&/,F`H(<R$R3<G1$"#"07(! +M^0C9,LRB"5N9J45\F-018BS-B-EZ)J;/B(P_XR^@#)<0D?+Q2;P8'"D2-,5\ +MH#%?1LH(BPM)9';,F>DQ:P+(_`@A`R?>C!CBD7=BSNP)F`<2GTR>*19\IC?T +M&D!3'R1%EK$4/)++0,B`4RQ$!83P=Z>"QZR*B/,JEJ2;J4)/TD!&R5U19XI# +ME<0SQ`+,9$E&@6*N3)=T%M""T-P:.5DMKD7+.)&-9BGDJDA#+CQ:I;D1+U+" +MG`5-`R0E9,OAD9_FON`+?5%J_,6IF33&K6"L&G_1:E[9J_D6L:;>^(F*L7$& +MY8AD"4>26=0'CU%P>,V,]#7`9D@(&V(S'*9$?$0V,H--V@R)U#!8I:V!:-1& +M:(@9;`-4[@V`/`XX,@$(R.X0;I;'N+$:QL+?I!N]$1T*Y*MT-V3#;,B-'T&Q +M^F.S_(_YYEO\JKJ!'-!-WJ@Q>X-0_@N#\S!VQ.`H'`PGZEF./`%QEDWD"!B4 +M(U@E&V.9,>3EQ^%HH(ITU`C3<<I`S.KX,%0/=N!('CD[8)!1F3G`PW;8G$62 +M<P0*59D\:T3_)""A,T>*SOG(F$FG??!(/R(_Z`?W<2AF9X2DG:M3/[+.!7H@ +M7$>64)"O@T&*C_,X/A[$0(*0J2,S`PC-S"8JA(6X$!CR@[+*#2$G.P3J?)Z] +MTW>,B#@)/$S$B1A(C&EXC`CB43Q:A/'@DU\B1AI)Y/F8:83R1)V1Z3V&#AT1 +M`G9DD@B!/,(C/P_3*3T3A38:DKR90%)/((0DDN3U6!),\G]H3R>Q/:(D]QC( +M(A165HGON9G!Q^O4$I\Y=G2)\O$E*RB8.)]BDD&BS_1I)CSR^D@3BZ)]+@OW +MT2;<Y*M\$]HS?LI)U$$_41-]4`_QY'Z2@#SAD?,'G]@?_--/ZLX_Z3]GA*`( +ME0A40PB0`<HG#V5D+J!'4E$NBH$DGAREC5`@D.)*1DI)V2$:*`FDE-_A@1I* +M")(I[(,$V903Q'12D(%\`CUE!U$5%Z0^+:8,0BJ-IP8Q%?:!@_(/"ZHJ]N.J +M)!2M8B"'$!+X*D9(K$S,7^F%1)%`<"W;R07@@`1@`Q2H*KJ6K2@CO`";,!D; +MI`L@`@$B""S,\F`3+D0,P`U^Y8+*!K'F`G)<(P$!.,!!/H$FX0*FP(9P`J=$ +M:SH!,W-`94M"<)!.($!XK#)Q0,-,'0-I;P`/.$@7>CNRP`2!`NG$F;B`&6KS +M$.AH4:%0SPB4!^00!)8">W*05;1>4D.R-$0W!/*8(MT#GMA.)X!#4058!`ND +M2`&PNN3V(RP#@%`*`:)`S+'(EQP&QQ4K'"W@.'`I4X8U<.)V(P.A0C9`*YJ' +M!K#H4IB&&XJ%0H$?>D`50$U3`*?-D&I1QJ0JG%L=TUTY0HLZM0'H(*$`'("D +M/\)+"<DGX?5ZS1SPE4*@/+2`I&`D6D"&T(0;`@_(TBOJ`I*`;)"B0()]6%'+ +MH0"F@,AA2XLB$T('U;9)"V01T(PNP),J@"10*-)%'9AX,.V/!3*6]B.`*!Y( +MD3CO642[H9$H",=GH0X*`'SU&FMS-198;_@;?\\--`=_D6E:6DDR$N4C@Z$* +M]0$>@`CXVAH_!NGUABSA+^(IQE$?O6*?%HYA6APH5A]-#H+&$*J%3QHLR\`? +MM9>$X]=LB%J&V@)$-&4+R9"3`A$5]1\$&_CR$WYTH"8<0HK$,FH]355J30ZL +MTI2&]4(7Y#@;**!\E+#^%2TJC4,5J74T452'CZHDRP1&56(*X-35/"1QI1Q$ +MF0@48;$_C*PZYD]15=*I63""7)C3`JE,\R-,&UV"+)7A`9PA'8#&3EV#ZV+" +M.$@L8$5+'`B0`4&5/O'0FP=2X<!#=0^=]),>,5A1/L99TE&`_,]/S#YR.E:7 +M0OEB#QU0;0@&%J``8$7^6Y!+P4^LI30P([P$14T3%K6&QE50.BB9:&8,AOH! +M4"@-UX1N/`*CF0.NHK9%&*SA`SP"(;JC2\XX9*($`39:Z(:8'L:CO6%.!YE* +M_Q0K_5.O=%)^L8+A(&UI%[$#SD,+*(`J@'!R*L00I$O2K=J(A0DP$*K:T`/\ +M(6+T5.?*%I+"9S&FR)2(,JWZ05M5Z6UUI3EB4G:6SQ):$JAI,2U_ZD25!<C1 +M6V7#(BU$G@6TD"(7<%Y+2V'E=^I00APK%NI;W^L+2(?+\8"^@&D8#/D+,;6F +MLC)-0`[ND`<<Y#'MHK=#T+$/)H`[^FH3%0D@@+#2UZ6`!S(AAM6P9!5(F-7% +M`&+]JII0@(&U-PQ6"WNB`)ELP`$9UL)F0IB60ETK"*`=Q82@*``@`EI9QW%= +M&DN4AJ+1[:0`D&"#>$)&`L&R.I+A]:Q>J/%Z,.VQQC\%$%)91!QU`UA4-MB! +M&P`"P(/7$U8VXN.IA3)Z8<'#>SRS:#;-JMDURV;;K)M]LW`VSLK9.4MGZZR= +HO;-X-L_JV3W+9_NLG_VS@#;0"MI!2V@+K:$]M(@VT2K:1<MH&^UD`$MG +` +end diff --git a/usr.sbin/sendmail/doc/changes/changes.ps b/usr.sbin/sendmail/doc/changes/changes.ps new file mode 100644 index 00000000000..041948ab023 --- /dev/null +++ b/usr.sbin/sendmail/doc/changes/changes.ps @@ -0,0 +1,1129 @@ +%!PS-Adobe-3.0 +%%Creator: groff version 1.10 +%%CreationDate: Tue May 19 16:37:14 1998 +%%DocumentNeededResources: font Times-Roman +%%+ font Times-Italic +%%+ font Times-Bold +%%+ font Symbol +%%DocumentSuppliedResources: procset grops 1.10 0 +%%Pages: 11 +%%PageOrder: Ascend +%%Orientation: Portrait +%%EndComments +%%BeginProlog +%%BeginResource: procset grops 1.10 0 +/setpacking where{ +pop +currentpacking +true setpacking +}if +/grops 120 dict dup begin +/SC 32 def +/A/show load def +/B{0 SC 3 -1 roll widthshow}bind def +/C{0 exch ashow}bind def +/D{0 exch 0 SC 5 2 roll awidthshow}bind def +/E{0 rmoveto show}bind def +/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def +/G{0 rmoveto 0 exch ashow}bind def +/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def +/I{0 exch rmoveto show}bind def +/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def +/K{0 exch rmoveto 0 exch ashow}bind def +/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def +/M{rmoveto show}bind def +/N{rmoveto 0 SC 3 -1 roll widthshow}bind def +/O{rmoveto 0 exch ashow}bind def +/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def +/Q{moveto show}bind def +/R{moveto 0 SC 3 -1 roll widthshow}bind def +/S{moveto 0 exch ashow}bind def +/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def +/SF{ +findfont exch +[exch dup 0 exch 0 exch neg 0 0]makefont +dup setfont +[exch/setfont cvx]cvx bind def +}bind def +/MF{ +findfont +[5 2 roll +0 3 1 roll +neg 0 0]makefont +dup setfont +[exch/setfont cvx]cvx bind def +}bind def +/level0 0 def +/RES 0 def +/PL 0 def +/LS 0 def +/MANUAL{ +statusdict begin/manualfeed true store end +}bind def +/PLG{ +gsave newpath clippath pathbbox grestore +exch pop add exch pop +}bind def +/BP{ +/level0 save def +1 setlinecap +1 setlinejoin +72 RES div dup scale +LS{ +90 rotate +}{ +0 PL translate +}ifelse +1 -1 scale +}bind def +/EP{ +level0 restore +showpage +}bind def +/DA{ +newpath arcn stroke +}bind def +/SN{ +transform +.25 sub exch .25 sub exch +round .25 add exch round .25 add exch +itransform +}bind def +/DL{ +SN +moveto +SN +lineto stroke +}bind def +/DC{ +newpath 0 360 arc closepath +}bind def +/TM matrix def +/DE{ +TM currentmatrix pop +translate scale newpath 0 0 .5 0 360 arc closepath +TM setmatrix +}bind def +/RC/rcurveto load def +/RL/rlineto load def +/ST/stroke load def +/MT/moveto load def +/CL/closepath load def +/FL{ +currentgray exch setgray fill setgray +}bind def +/BL/fill load def +/LW/setlinewidth load def +/RE{ +findfont +dup maxlength 1 index/FontName known not{1 add}if dict begin +{ +1 index/FID ne{def}{pop pop}ifelse +}forall +/Encoding exch def +dup/FontName exch def +currentdict end definefont pop +}bind def +/DEFS 0 def +/EBEGIN{ +moveto +DEFS begin +}bind def +/EEND/end load def +/CNT 0 def +/level1 0 def +/PBEGIN{ +/level1 save def +translate +div 3 1 roll div exch scale +neg exch neg exch translate +0 setgray +0 setlinecap +1 setlinewidth +0 setlinejoin +10 setmiterlimit +[]0 setdash +/setstrokeadjust where{ +pop +false setstrokeadjust +}if +/setoverprint where{ +pop +false setoverprint +}if +newpath +/CNT countdictstack def +userdict begin +/showpage{}def +}bind def +/PEND{ +clear +countdictstack CNT sub{end}repeat +level1 restore +}bind def +end def +/setpacking where{ +pop +setpacking +}if +%%EndResource +%%IncludeResource: font Times-Roman +%%IncludeResource: font Times-Italic +%%IncludeResource: font Times-Bold +%%IncludeResource: font Symbol +grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 +def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron +/scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent +/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen +/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon +/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O +/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex +/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y +/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft +/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl +/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut +/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash +/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen +/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft +/logicalnot/minus/registered/macron/degree/plusminus/twosuperior +/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior +/ordmasculine/guilsinglright/onequarter/onehalf/threequarters +/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE +/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex +/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis +/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn +/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla +/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis +/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash +/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def +/Times-Bold@0 ENC0/Times-Bold RE/Times-Italic@0 ENC0/Times-Italic RE +/Times-Roman@0 ENC0/Times-Roman RE +%%EndProlog +%%Page: 1 1 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 14/Times-Roman@0 SF(Changes in Sendmail V)196.615 141 Q(ersion 8*) +-1.554 E/F1 10/Times-Roman@0 SF(Eric Allman)263.42 165 Q/F2 10 +/Times-Italic@0 SF(Univer)220.2 183 Q(sity of California, Berk)-.1 E +(ele)-.1 E(y)-.3 E(Mammoth Pr)251.98 195 Q(oject)-.45 E F1(ABSTRA) +262.085 227.4 Q(CT)-.4 E -1.11(Ve)112 243.6 S 1.709(rsion 8 of)1.11 F F2 +(sendmail)4.209 E F1 1.709(includes a number of major changes from pre) +4.209 F 1.71(vious v)-.25 F(ersions.)-.15 E .701(This paper gi)112 255.6 +R -.15(ve)-.25 G 3.201(sav).15 G .701(ery short history of)-3.351 F F2 +(sendmail)3.201 E F1 3.201(,as)C .7(ummary of the major dif)-3.201 F +(ferences)-.25 E .953(between v)112 267.6 R .954 +(ersion 5 \(the last publically a)-.15 F -.25(va)-.2 G .954(ilable v).25 +F .954(ersion\) and v)-.15 F .954(ersion 8, and some dis-)-.15 F +(cussion of future directions.)112 279.6 Q .48 +(In 1987, the author stopped major w)97 324 R .48(ork on)-.1 F F2 +(sendmail)2.98 E F1 .48(due to other time committments, only to return) +2.98 F(to acti)72 336 Q .3 -.15(ve w)-.25 H(ork in 1991.).05 E +(This paper e)5 E(xplores wh)-.15 E 2.5(yw)-.05 G +(ork resumed and what changes ha)-2.6 E .3 -.15(ve b)-.2 H(een made.).15 +E .58(Section 1 gi)97 352.2 R -.15(ve)-.25 G 3.08(sas).15 G .58 +(hort history of)-3.08 F F2(sendmail)3.08 E F1 .58(through v)3.08 F .58 +(ersion 5 and the moti)-.15 F -.25(va)-.25 G .58(tion behind w).25 F .58 +(orking on)-.1 F -.15(ve)72 364.2 S .126(rsion 8.).15 F .126(Section 2 has a rather detailed description of what has changed between v) +5.126 F .125(ersion 5 and v)-.15 F .125(ersion 8.)-.15 F +(The paper \214nishes of)72 376.2 Q 2.5(fw)-.25 G +(ith some thoughts about what still needs to be done.)-2.5 E/F3 10 +/Times-Bold@0 SF 2.5(1. HIST)72 400.2 R(OR)-.18 E(Y)-.35 E F1 .151 +(As discussed else)112 416.4 R .151 +(where, [Allman83a, Allman83b, Allman&Amos85] sendmail has e)-.25 F .151 +(xisted in v)-.15 F(ar)-.25 E(-)-.2 E .405(ious forms since 1980.)87 +428.4 R .405(It w)5.405 F .405(as released under the name)-.1 F F2 +(delivermail)2.905 E F1 .404(in 4BSD and 4.1BSD, and as)2.905 F F2 +(send-)2.904 E(mail)87 440.4 Q F1(in 4.2BSD.)2.5 E +(It quickly became the dominant mail system for netw)5 E(ork)-.1 E +(ed UNIX systems.)-.1 E 1.569(Prior the release of 4.3BSD in No)112 +456.6 R -.15(ve)-.15 G 1.569(mber 1986, the author had left the Uni).15 +F -.15(ve)-.25 G 1.57(rsity for pri).15 F -.25(va)-.25 G(te).25 E +(industry)87 468.6 Q 3.347(,b)-.65 G .847(ut continued to do some w) +-3.547 F .847(ork on)-.1 F F2(sendmail)3.347 E F1 .847(with acti)3.347 F +.846(vity slo)-.25 F .846(wly trailing of)-.25 F 3.346(fu)-.25 G .846 +(ntil ef)-3.346 F(fecti)-.25 E -.15(ve)-.25 G(ly).15 E .255 +(stopping after February 1987.)87 480.6 R .255(There w)5.255 F .255 +(as minimal support done by man)-.1 F 2.756(yp)-.15 G .256(eople for se) +-2.756 F -.15(ve)-.25 G .256(ral years, until).15 F +(July of 1991 when the original author)87 492.6 Q 2.5(,w)-.4 G +(ho had returned the Uni)-2.5 E -.15(ve)-.25 G(rsity).15 E 2.5(,s)-.65 G +(tarted acti)-2.5 E .3 -.15(ve w)-.25 H(ork on it ag).05 E(ain.)-.05 E +1.271(There were se)112 508.8 R -.15(ve)-.25 G 1.271 +(ral reasons for rene).15 F 1.271(wed w)-.25 F 1.271(ork on)-.1 F F2 +(sendmail)3.771 E F1 6.271(.T)C 1.271(here w)-6.271 F 1.27 +(as a desire at Berk)-.1 F(ele)-.1 E 3.77(yt)-.15 G(o)-3.77 E(con)87 +520.8 Q -.15(ve)-.4 G .097(rt to a subdomained structure so that indi) +.15 F .098(viduals were identi\214ed by their subdomain rather than by) +-.25 F 1.758(their indi)87 532.8 R 1.758(vidual w)-.25 F 1.758(orkstation; although possible in the old code, there were some problems, and the) +-.1 F .66(author w)87 544.8 R .66(as the ob)-.1 F .66 +(vious person to address them.)-.15 F .66 +(The Computer Systems Research Group \(CSRG\), the)5.66 F 1.89 +(group that produced the Berk)87 556.8 R(ele)-.1 E 4.39(yS)-.15 G(oftw) +-4.39 E 1.89(are Distrib)-.1 F 1.89(utions, w)-.2 F 1.89(as w)-.1 F 1.89 +(orking on 4.4BSD, and w)-.1 F 1.89(anted an)-.1 F .053 +(update to the mail system.)87 568.8 R .053(Bryan Costales w)5.053 F +.053(as w)-.1 F .053(orking on a book on)-.1 F F2(sendmail)2.553 E F1 +.053(that w)2.553 F .053(as being re)-.1 F(vie)-.25 E(wed)-.25 E .923 +(by the author)87 580.8 R 3.423(,w)-.4 G .923 +(hich encouraged him to mak)-3.423 F 3.422(es)-.1 G .922(ome re)-3.422 F +3.422(visions. And)-.25 F .922(the author w)3.422 F .922 +(anted to try to unify)-.1 F(some of the disparate v)87 592.8 Q +(ersions of)-.15 E F2(sendmail)2.5 E F1 +(that had been permitted to proliferate.)2.5 E .023 +(During the 1987\25591 f)112 609 R(allo)-.1 E 2.523(wp)-.25 G .023 +(eriod, man)-2.523 F 2.523(yv)-.15 G .023(endors and outside v)-2.673 F +.023(olunteers had produced v)-.2 F .024(ariants of)-.25 F F2(sendmail) +87 621 Q F1 5.518(.P)C .517(erhaps the best kno)-5.518 F .517 +(wn is the ID)-.25 F 3.017(Av)-.4 G .517(ersion [ID)-3.167 F 3.017 +(A87]. Originally)-.4 F .517(intended to be a ne)3.017 F 3.017(ws)-.25 G +.517(et of)-3.017 F .268(con\214guration \214les, ID)87 633 R 2.768(Ae) +-.4 G .269(xpanded into a f)-2.918 F .269(airly lar)-.1 F .269 +(ge set of patches for the code.)-.18 F .269(Originally produced in) +5.269 F .471(Sweden, ID)87 645 R 2.971(Ad)-.4 G -2.15 -.25(ev e)-2.971 H +.471(lopment passed to the Uni).25 F -.15(ve)-.25 G .471 +(rsity of Illinois, and w).15 F .47(as widely used by the f)-.1 F .47 +(airly lar)-.1 F(ge)-.18 E .077 +(set of people who prefer to get and compile their o)87 657 R .077 +(wn source code rather than use v)-.25 F(endor)-.15 E .078 +(-supplied bina-)-.2 F(ries.)87 669 Q .32 LW 76 678.6 72 678.6 DL 80 +678.6 76 678.6 DL 84 678.6 80 678.6 DL 88 678.6 84 678.6 DL 92 678.6 88 +678.6 DL 96 678.6 92 678.6 DL 100 678.6 96 678.6 DL 104 678.6 100 678.6 +DL 108 678.6 104 678.6 DL 112 678.6 108 678.6 DL 116 678.6 112 678.6 DL +120 678.6 116 678.6 DL 124 678.6 120 678.6 DL 128 678.6 124 678.6 DL 132 +678.6 128 678.6 DL 136 678.6 132 678.6 DL 140 678.6 136 678.6 DL 144 +678.6 140 678.6 DL 148 678.6 144 678.6 DL 152 678.6 148 678.6 DL 156 +678.6 152 678.6 DL 160 678.6 156 678.6 DL 164 678.6 160 678.6 DL 168 +678.6 164 678.6 DL 172 678.6 168 678.6 DL 176 678.6 172 678.6 DL 180 +678.6 176 678.6 DL 184 678.6 180 678.6 DL 188 678.6 184 678.6 DL 192 +678.6 188 678.6 DL 196 678.6 192 678.6 DL 200 678.6 196 678.6 DL 204 +678.6 200 678.6 DL 208 678.6 204 678.6 DL 212 678.6 208 678.6 DL 216 +678.6 212 678.6 DL/F4 8/Times-Roman@0 SF .045(*An earlier v)93.6 690.6 R +.045(ersion of this paper w)-.12 F .044 +(as printed in the Proceedings of the 1994 A)-.08 F .044 +(UUG Queensland Summer T)-.44 F .044(echnical Conference,)-.56 F(Gate)72 +700.2 Q -.08(wa)-.2 G 2(yH).08 G(otel, Brisbane, March 1994.)-2 E F3 +(Changes in Sendmail V)72 756 Q(ersion 8)-1 E(1)294.65 E EP +%%Page: 2 2 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF 294.65(2C)72 60 S(hanges in Sendmail V)-294.65 E +(ersion 8)-1 E/F1 10/Times-Roman@0 SF .151 +(In about the same time frame, attempts were made to clean up and e)112 +96 R .151(xtend the Simple Mail T)-.15 F(rans-)-.35 E .468 +(port Protocol \(SMTP\) [RFC821].)87 108 R .468(This in)5.468 F -.2(vo) +-.4 G(lv).2 E .469 +(ed clari\214cations of some ambiguities in the protocol, and)-.15 F +.085(correction of some problem areas [RFC1123], as well as e)87 120 R +.084(xtensions for additional functionality \(dubbed)-.15 F 1.052 +(Extended Simple Mail T)87 132 R 1.053 +(ransport Protocol, or ESMTP\) [RFC1425, RFC1426, RFC1427] and a richer) +-.35 F 1.376(set of semantics in the body of messages \(the Multipurpose Internet Mail Extensions, a.k.a. MIME\)) +87 144 R .497([RFC1521, RFC1344].)87 156 R .497(Neither the ID)5.497 F +2.998(Ag)-.4 G .498(roup nor most v)-2.998 F .498(endors were modifying) +-.15 F/F2 10/Times-Italic@0 SF(sendmail)2.998 E F1 .498(to conform)2.998 +F 1.7(to these ne)87 168 R 4.2(ws)-.25 G 4.2(tandards. It)-4.2 F 1.699 +(seemed clear that these were `)4.2 F 1.699(`good things')-.74 F 4.199 +('t)-.74 G 1.699(hat should be encouraged.)-4.199 F(Ho)87 180 Q(we)-.25 +E -.15(ve)-.25 G 1.635 -.4(r, s).15 H .835(ince no one w).4 F .835(as w) +-.1 F .835(orking on a publically a)-.1 F -.25(va)-.2 G .835(ilable v) +.25 F .836(ersion of)-.15 F F2(sendmail)3.336 E F1 .836 +(with these updates,)3.336 F(the)87 192 Q 2.5(yw)-.15 G(ere unlik)-2.5 E +(ely to be widely deplo)-.1 E(yed an)-.1 E 2.5(yt)-.15 G +(ime in the near future.)-2.5 E .466 +(There are, of course, other mail transport agents a)112 208.2 R -.25 +(va)-.2 G .465(ilable, such as).25 F F2 .465(MMDF zmailer smail)2.965 F +F1(and)2.965 E F2(PP)2.965 E F1(Ho)87 220.2 Q(we)-.25 E -.15(ve)-.25 G +.842 -.4(r, n).15 H .042(one of these seemed to be g).4 F .043 +(aining the prominence of)-.05 F F2(sendmail)2.543 E F1 2.543(;i)C 2.543 +(ta)-2.543 G .043(ppeared that most compa-)-2.543 F .238(nies w)87 232.2 +R .238(ould not con)-.1 F -.15(ve)-.4 G .238 +(rt to another mail transport agent an).15 F 2.737(yt)-.15 G .237 +(ime in the forseeable future.)-2.737 F(Ho)5.237 E(we)-.25 E -.15(ve) +-.25 G 1.037 -.4(r, t).15 H(he).4 E(y)-.15 E(might be persuaded to con) +87 244.2 Q -.15(ve)-.4 G(rt to a ne).15 E(wer v)-.25 E(ersion of)-.15 E +F2(sendmail)2.5 E F1(.)A .841(All of these con)112 260.4 R .841 +(vinced the author to w)-.4 F .841(ork on a updated v)-.1 F .841 +(ersion of)-.15 F F2(sendmail)3.342 E F1 .842(for public distrib)3.342 F +(u-)-.2 E(tion.)87 272.4 Q 1.024(The ne)112 288.6 R 3.524(wv)-.25 G +1.023(ersion of)-3.674 F F2(sendmail)3.523 E F1 1.023 +(is referred to as v)3.523 F 1.023(ersion eight \(V8\).)-.15 F -1.11(Ve) +6.023 G 1.023(rsions six and se)1.11 F -.15(ve)-.25 G 3.523(nw).15 G +(ere)-3.523 E 1.281 +(skipped because of an agreement that all \214les in 4.4BSD w)87 300.6 R +1.281(ould be numbered as \2318.1\232.)-.1 F 1.282(Rather than)6.282 F +(ha)87 312.6 Q 2.05 -.15(ve a)-.2 H 4.25(ne).15 G 1.75(xternal v)-4.4 F +1.75(ersion number that dif)-.15 F 1.75(fered from the \214le v)-.25 F +1.75(ersion numbers,)-.15 F F2(sendmail)4.25 E F1 1.75(just jumped)4.25 +F(directly to V8.)87 324.6 Q F0 2.5(2. CHANGES)72 348.6 R +(IN VERSION EIGHT)2.5 E F1 .138(The follo)112 364.8 R .139 +(wing is a summary of the changes between the last commonly a)-.25 F +-.25(va)-.2 G .139(ilable v).25 F .139(ersion of send-)-.15 F +(mail from Berk)87 376.8 Q(ele)-.1 E 2.5(y\()-.15 G +(5.67\) and the latest v)-2.5 E(ersion \(8.6.6\).)-.15 E(Man)112 393 Q +2.5(yo)-.15 G 2.5(ft)-2.5 G(hese are ideas that had been tried in ID) +-2.5 E(A, b)-.4 E(ut man)-.2 E 2.5(yo)-.15 G 2.5(ft)-2.5 G +(hem were generalized in V8.)-2.5 E F0 2.5(2.1. P)87 417 R(erf)-.2 E +(ormance Enhancements)-.25 E F1 .549 +(Instead of closing SMTP connections immediately)127 433.2 R 3.049(,o) +-.65 G .549(pen connections are cached for possible)-3.049 F .029 +(future use.)102 445.2 R .029(There is a limit to the number of simultaneous open connections and the idle time of an) +5.029 F(y)-.15 E(indi)102 457.2 Q(vidual connection.)-.25 E 1.219(This is of best help during queue processing \(since there is the potential of man) +127 473.4 R 3.719(yd)-.15 G(if)-3.719 E(ferent)-.25 E 1.113(messages going to one site\), although it can also help when processing MX records which aren') +102 485.4 R(t)-.18 E(handled by MX Piggybacking.)102 497.4 Q 1.258 +(If tw)127 513.6 R 3.757(oh)-.1 G 1.257(osts with dif)-3.757 F 1.257 +(ferent names in a single message happen to ha)-.25 F 1.557 -.15(ve t) +-.2 H 1.257(he same set of MX).15 F .94(hosts, the)102 525.6 R 3.44(yc) +-.15 G .94(an be sent in the same transaction.)-3.44 F -1.11(Ve)5.94 G +.94(rsion 8 notices this and tries to batch the mes-)1.11 F(sages.)102 +537.6 Q -.15(Fo)127 553.8 S 3.638(re).15 G 1.138(xample, if tw)-3.788 F +3.637(os)-.1 G 1.137(ites `)-3.637 F(`foo.com')-.74 E 3.637('a)-.74 G +1.137(nd `)-3.637 F(`bar)-.74 E(.com')-.55 E 3.637('a)-.74 G 1.137 +(re both serv)-3.637 F 1.137(ed by UUNET)-.15 F 3.637(,t)-.74 G(he) +-3.637 E 3.637(yw)-.15 G(ill)-3.637 E(ha)102 565.8 Q .557 -.15(ve t)-.2 +H .257(he same set of MX hosts and will be sent in one transaction.).15 +F .258(UUNET will then split the mes-)5.258 F +(sage and send it to the tw)102 577.8 Q 2.5(oi)-.1 G(ndi)-2.5 E +(vidual hosts.)-.25 E F0 2.5(2.2. RFC)87 601.8 R(1123 Changes)2.5 E F1 +2.607(An)127 618 S .107(umber of changes ha)-2.607 F .407 -.15(ve b)-.2 +H .106(een made to mak).15 F 2.606(es)-.1 G .106(endmail `)-2.606 F .106 +(`conditionally compliant')-.74 F 2.606('\()-.74 G .106(that is, it) +-2.606 F(satis\214es all of the MUST clauses and most b)102 630 Q +(ut not all of the SHOULD clauses in RFC 1123\).)-.2 E(The major areas of change are \(numbers are RFC 1123 section numbers\):) +127 646.2 Q 26.5(\2475.2.7 Response)102 662.4 R .565 +(to RCPT command is f)3.065 F 3.065(ast. Pre)-.1 F(viously)-.25 E 3.065 +(,s)-.65 G .565(endmail e)-3.065 F .565(xpanded all aliases as f)-.15 F +(ar)-.1 E .686(as it could \212 this could tak)156 674.4 R 3.186(eav)-.1 +G .685(ery long time, particularly if there were name serv)-3.336 F(er) +-.15 E 3.891(delays. V)156 686.4 R 1.391(ersion 8 only checks for the e) +-1.11 F 1.392(xistence of an alias and does the e)-.15 F(xpansion)-.15 E +(later)156 698.4 Q 5.176(.I)-.55 G 2.676(td)-5.176 G .176 +(oes still do a DNS lookup if there is an e)-2.676 F .175 +(xplicit host name in the RCPT com-)-.15 F(mand, b)156 710.4 Q +(ut this time is bounded.)-.2 E EP +%%Page: 3 3 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF(Changes in Sendmail V)72 60 Q(ersion 8)-1 E(3) +294.65 E/F1 10/Times-Roman@0 SF 26.5(\2475.2.8 Numeric)102 96 R .612 +(IP addresses are logged in Recei)3.112 F -.15(ve)-.25 G .613(d: lines.) +.15 F .613(This helps tracing spoofed mes-)5.613 F(sages.)156 108 Q 21.5 +(\2475.2.17 Self)102 124.2 R .127(domain literal is properly handled.) +2.627 F(Pre)5.126 E(viously)-.25 E 2.626(,i)-.65 G 2.626(fs)-2.626 G +.126(omeone sent to user@[1.2.3.4],)-2.626 F .12 +(where 1.2.3.4 is your IP address, the mail w)156 136.2 R .12 +(ould probably be rejected with a `)-.1 F(`con\214gu-)-.74 E +(ration error')156 148.2 Q 2.5('. V)-.74 F +(ersion 8 can handle these addresses.)-1.11 E 26.5(\2475.3.2 Better)102 +164.4 R 1.189(control o)3.69 F -.15(ve)-.15 G 3.689(ri).15 G(ndi)-3.689 +E 1.189(vidual timeouts.)-.25 F 1.189(RFC 821 speci\214ed no timeouts.) +6.189 F 1.189(Older v)6.189 F(er)-.15 E(-)-.2 E .002 +(sions of sendmail had a single timeout, typically set to tw)156 176.4 R +2.502(oh)-.1 G 2.502(ours. V)-2.502 F .002(ersion 8 allo)-1.11 F .002 +(ws the)-.25 F(con\214guration \214le to set timeouts for v)156 188.4 Q +(arious SMTP commands indi)-.25 E(vidually)-.25 E(.)-.65 E 26.5 +(\2475.3.3 Error)102 204.6 R 1.06(messages are sent as From:<>.)3.56 F +1.059(This w)6.059 F 1.059(as ur)-.1 F 1.059 +(ged by RFC 821 and reiterated by)-.18 F .237(RFC 1123, b)156 216.6 R +.237(ut older v)-.2 F .237(ersions of sendmail ne)-.15 F -.15(ve)-.25 G +2.737(rr).15 G .237(eally did it properly)-2.737 F 5.237(.V)-.65 G .238 +(ersion 8 does.)-6.347 F(Ho)156 228.6 Q(we)-.25 E -.15(ve)-.25 G 1.934 +-.4(r, s).15 H 1.134(ome systems cannot handle this perfectly le).4 F +-.05(ga)-.15 G 3.633(la).05 G 1.133(ddress; if necessary)-3.633 F 3.633 +(,y)-.65 G(ou)-3.633 E +(can create a special mailer that uses the `g' \215ag to disable this.) +156 240.6 Q 26.5(\2475.3.3 Error)102 256.8 R 3.212(messages are ne)5.712 +F -.15(ve)-.25 G 5.712(rs).15 G 3.212(ent to <>.)-5.712 F(Pre)8.213 E +(viously)-.25 E 5.713(,s)-.65 G 3.213(endmail w)-5.713 F 3.213(as happ) +-.1 F 5.713(yt)-.1 G 5.713(os)-5.713 G(end)-5.713 E 6(responses-to-responses which sometimes resulted in responses-to-responses-to-) +156 268.8 R(responses which resulted in ....)156 280.8 Q +(you get the idea.)5 E 26.5(\2475.3.3 Route-addrs)102 297 R .111 +(\(the ugly `)2.611 F(`<@hosta,@hostb:user@hostc>')-.74 E 2.611('s)-.74 +G .111(yntax\) are pruned.)-2.611 F .112(RFC 821)5.112 F(ur)156 309 Q +1.001(ged the use of this bletcherous syntax.)-.18 F 1 +(RFC 1123 has seen the light and of)6.001 F(\214cially)-.25 E 1.124 +(deprecates them, further ur)156 321 R 1.125 +(ging that you eliminate all b)-.18 F 1.125(ut `)-.2 F(`user@hostc')-.74 +E 3.625('s)-.74 G 1.125(hould you)-3.625 F(recei)156 333 Q 1.698 -.15 +(ve o)-.25 H 1.398(ne of these things.).15 F -1.11(Ve)6.398 G 1.398 +(rsion 8 is slightly more generous than the standards)1.11 F .753 +(suggest; instead of stripping of)156 345 R 3.253(fa)-.25 G .753 +(ll the route addressees, it only strips hosts of)-3.253 F 3.254(fu)-.25 +G 3.254(pt)-3.254 G(o)-3.254 E 1.29(the one before the last one kno)156 +357 R 1.289(wn to DNS, thus allo)-.25 F 1.289(wing you to ha)-.25 F +1.589 -.15(ve p)-.2 H(seudo-hosts).15 E(such as foo.BITNET)156 369 Q 5 +(.T)-.74 G(he `R' option will turn this of)-5 E(f.)-.25 E +(The areas in which sendmail is not `)102 385.2 Q +(`unconditionally compliant')-.74 E 2.5('a)-.74 G(re:)-2.5 E 26.5 +(\2475.2.6 Sendmail)102 401.4 R(does do header munging.)2.5 E 21.5 +(\2475.2.10 Sendmail)102 417.6 R(doesn')3.2 E 3.2(ta)-.18 G -.1(lwa)-3.2 +G .7(ys use the e).1 F .701(xact SMTP message te)-.15 F .701 +(xt from RFC 821.)-.15 F .701(This is a)5.701 F +(rather silly requirement.)156 429.6 Q 19(\2475.3.1.1 Sendmail)102 445.8 +R(doesn')3.512 E 3.512(tg)-.18 G 1.012 +(uarantee only one connect for each host on queue runs.)-3.512 F +(Connec-)6.011 E(tion caching gi)156 457.8 Q -.15(ve)-.25 G 2.5(sy).15 G +(ou most of this, b)-2.5 E(ut it does not pro)-.2 E(vide a guarantee.) +-.15 E 19(\2475.3.1.1 Sendmail)102 474 R(doesn')2.843 E 2.843(ta)-.18 G +-.1(lwa)-2.843 G .343(ys pro).1 F .343 +(vide an adequate limit on concurrenc)-.15 F 4.144 -.65(y. T)-.15 H .344 +(hat is, there can).65 F .757(be se)156 486 R -.15(ve)-.25 G .757 +(ral independent sendmails running at once.).15 F .757 +(My feeling is that doing an abso-)5.757 F 1.047(lute limit w)156 498 R +1.047(ould be a mistak)-.1 F 3.547(e\()-.1 G 1.048 +(it might result in lost mail\).)-3.547 F(Ho)6.048 E(we)-.25 E -.15(ve) +-.25 G 1.848 -.4(r, i).15 H 3.548(fy).4 G 1.048(ou use the)-3.548 F .801 +(XLA contrib)156 510 R .801(uted softw)-.2 F .801 +(are, most of this will be guaranteed \(b)-.1 F .801(ut I don')-.2 F 3.3 +(tg)-.18 G .8(uarantee the)-3.3 F(guarantee\).)156 522 Q F0 2.5 +(2.3. Extended)87 546 R(SMTP Support)2.5 E F1 -1.11(Ve)127 562.2 S .154 +(rsion 8 includes both sending and recei)1.11 F .155 +(ving support for Extended SMTP support as de\214ned)-.25 F .229(by RFC 1425 \(basic\) and RFC 1427 \(SIZE\); and limited support for RFC 1426 \(BOD) +102 574.2 R 2.729(Y\). The)-.55 F(body)2.729 E .275(support is minimal because the \2318BITMIME\232 body type is not currently adv) +102 586.2 R 2.776(ertised. Although)-.15 F(such)2.776 E 3.076(ab)102 +598.2 S .576(ody type will be accepted, it will not be correctly con) +-3.076 F -.15(ve)-.4 G .576(rted to 7 bits if speaking to a non-8-bit-) +.15 F(MIME a)102 610.2 Q -.1(wa)-.15 G(re SMTP serv).1 E(er)-.15 E(.) +-.55 E/F2 10/Times-Italic@0 SF(Sendmail)127 626.4 Q F1 .287 +(tries to speak ESMTP if you ha)2.787 F .588 -.15(ve t)-.2 H .288 +(he `a' \215ag set in the \215ags for the mailer descrip-).15 F(tor)102 +638.4 Q 3.322(,o)-.4 G 3.322(ri)-3.322 G 3.322(ft)-3.322 G .822 +(he other end adv)-3.322 F .822(ertises the f)-.15 F .822 +(act that it speaks ESMTP)-.1 F 5.822(.T)-1.11 G .821 +(his is a non-standard adv)-5.822 F(ertise-)-.15 E(ment:)102 650.4 Q F2 +(sendmail)2.98 E F1 .48(announces \231ESMTP spok)2.98 F .48 +(en here\232 during the initial connection message, and client)-.1 F +.587(sendmails search for this message.)102 662.4 R .586 +(This creates some problems for some PC-based mailers, which)5.586 F +(do not understand tw)102 674.4 Q +(o-line greeting messages as required by RFC 821.)-.1 E EP +%%Page: 4 4 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF 294.65(4C)72 60 S(hanges in Sendmail V)-294.65 E +(ersion 8)-1 E 2.5(2.4. Eight-Bit)87 96 R(Clean)2.5 E/F1 10 +/Times-Roman@0 SF(Pre)127 112.2 Q 1.263(vious v)-.25 F 1.263 +(ersions of sendmail used the 0200 bit for quoting.)-.15 F 1.264(This v) +6.264 F 1.264(ersion a)-.15 F -.2(vo)-.2 G 1.264(ids that use.).2 F(Ho) +102 124.2 Q(we)-.25 E -.15(ve)-.25 G 1.119 -.4(r, y).15 H .318 +(ou can set option `7' to get se).4 F -.15(ve)-.25 G 2.818(nb).15 G .318 +(it stripping for compatibility with RFC 821, which is)-2.818 F 2.5(a7) +102 136.2 S(-bit protocol.)-2.5 E(This option says `)5 E +(`strip to 7 bits on input')-.74 E('.)-.74 E(Indi)127 152.4 Q .375 +(vidual mailers can still produce se)-.25 F -.15(ve)-.25 G 2.875(nb).15 +G .376(it out put using the `7' mailer \215ag.)-2.875 F .376 +(This \215ag says)5.376 F -.74(``)102 164.4 S +(strip to 7 bits on output').74 E('.)-.74 E F0 2.5(2.5. User)87 188.4 R +(Database)2.5 E F1 1.926(The User Database \(UDB\) is an as-yet e)127 +204.6 R 1.926(xperimental attempt to pro)-.15 F 1.925 +(vide uni\214ed lar)-.15 F(ge-site)-.18 E .396(name support.)102 216.6 R +1.996 -.8(We a)5.396 H .396(re installing it at Berk).8 F(ele)-.1 E .396 +(y; future v)-.15 F .396(ersions may sho)-.15 F 2.897(ws)-.25 G .397 +(igni\214cant modi\214cations.)-2.897 F(Brie\215y)102 228.6 Q 3.583(,U) +-.65 G 1.083 +(DB contains a database that is intended to contain all the per)-3.583 F +1.082(-user information for your)-.2 F -.1(wo)102 240.6 S .172 +(rkgroup, such as people').1 F 2.673(sf)-.55 G .173(ull names, their .plan information, their outgoing mail name, and their) +-2.673 F(mail drop.)102 252.6 Q .438(The user database allo)127 268.8 R +.438(ws you to map both incoming and outgoing addresses, much lik)-.25 F +2.937(eI)-.1 G -.4(DA)-2.937 G(.).4 E(Ho)102 280.8 Q(we)-.25 E -.15(ve) +-.25 G 1.799 -.4(r, t).15 H .999(he interf).4 F .999 +(ace is still better with ID)-.1 F .999(A; in particular)-.4 F 3.499(,t) +-.4 G 1(he alias \214le with incoming/outgoing)-3.499 F(marks pro)102 +292.8 Q(vides better locality of information.)-.15 E F0 2.5(2.6. Impr)87 +316.8 R -.1(ove)-.18 G 2.5(dB).1 G(IND Support)-2.5 E F1 .262 +(The BIND support, particularly for MX records, had a number of anno)127 +333 R .261(ying `)-.1 F(`features')-.74 E 2.761('w)-.74 G(hich)-2.761 E +(ha)102 345 Q 1.212 -.15(ve b)-.2 H .912(een remo).15 F -.15(ve)-.15 G +3.412(di).15 G 3.412(nt)-3.412 G .912(his release.)-3.412 F .912 +(In particular)5.912 F 3.412(,t)-.4 G .912 +(hese more tightly bind \(pun intended\) the name)-3.412 F(serv)102 357 +Q(er to sendmail, so that the name serv)-.15 E +(er resolution rules are incorporated directly into sendmail.)-.15 E +.688(The major change has been that the $[ ... $] operator didn')127 +373.2 R 3.188(tf)-.18 G .688(ully qualify names that were in)-3.188 F +(DNS as A or MX records.)102 385.2 Q -1.11(Ve)5 G +(rsion 8 does this quali\214cation.)1.11 E .429(This has pro)127 401.4 R +-.15(ve)-.15 G 2.929(nt).15 G 2.929(ob)-2.929 G 2.929(ea)-2.929 G 2.929 +(na)-2.929 G(nno)-2.929 E .43 +(yance in Sun shops, who often still run without BIND support.)-.1 F(Ho) +102 413.4 Q(we)-.25 E -.15(ve)-.25 G 1.001 -.4(r, i).15 H 2.701(ti).4 G +2.701(sr)-2.701 G .201 +(eally critical that this be supported, since MX records are mandatory) +-2.701 F 5.2(.I)-.65 G 2.7(nS)-5.2 G .2(unOS you)-2.7 F .101 +(can choose either MX support or NIS support, b)102 425.4 R .101 +(ut not both.)-.2 F .101(This is \214x)5.101 F .101 +(ed in Solaris, and some)-.15 F/F2 10/Times-Italic@0 SF(send-)2.602 E +(mail)102 437.4 Q F1(support to allo)2.5 E 2.5(wt)-.25 G +(his in SunOS should be forthcoming in a future release.)-2.5 E F0 2.5 +(2.7. K)87 461.4 R(ey)-.25 E(ed Files)-.1 E F1 .242(Generalized k)127 +477.6 R -.15(ey)-.1 G .242(ed \214les is an idea tak).15 F .241 +(en directly from ID)-.1 F 2.741(As)-.4 G .241 +(endmail \(albeit with a completely)-2.741 F(dif)102 489.6 Q +(ferent implementation\).)-.25 E(The)5 E 2.5(yc)-.15 G +(an be useful on lar)-2.5 E(ge sites.)-.18 E -1.11(Ve)127 505.8 S +(rsion 8 includes the follo)1.11 E(wing b)-.25 E(uilt-in map classes:) +-.2 E 33.72(dbm Support)102 522 R(for the ndbm\(3\) library)2.5 E(.)-.65 +E 33.17(hash Support)102 538.2 R 1.229(for the `)3.729 F(`Hash')-.74 E +3.729('t)-.74 G 1.229(ype from the ne)-3.729 F 3.729(wB)-.25 G(erk) +-3.729 E(ele)-.1 E 3.729(yd)-.15 G 1.229(b\(3\) library)-3.729 F 6.23 +(.t)-.65 G 1.23(his library pro-)-6.23 F 4.094(vides substantially better database support than ndbm\(3\), including in-memory) +156 550.2 R(caching, arbitrarily long k)156 562.2 Q -.15(ey)-.1 G 2.5 +(sa).15 G(nd v)-2.5 E(alues, and better disk utilization.)-.25 E 31.51 +(btree Support)102 578.4 R .547(for the `)3.047 F(`B-T)-.74 E(ree')-.35 +E 3.047('t)-.74 G .547(ype from the ne)-3.047 F 3.048(wB)-.25 G(erk) +-3.048 E(ele)-.1 E 3.048(yd)-.15 G .548(b\(3\) library)-3.048 F 5.548 +(.B)-.65 G(-T)-5.548 E .548(rees pro)-.35 F(vide)-.15 E .521(better clustering than Hashed \214les if you are fetching lots of records that ha) +156 590.4 R .821 -.15(ve s)-.2 H(imilar).15 E -.1(ke)156 602.4 S +(ys, such as searching a dictionary for w)-.05 E(ords be)-.1 E +(ginning with `)-.15 E(`detr')-.74 E('.)-.74 E 39.83(nis Support)102 +618.6 R(for NIS \(a.k.a. YP\) maps.)2.5 E +(NIS+ is not supported in this v)5 E(ersion.)-.15 E 34.83(host Support) +102 634.8 R(for DNS lookups.)2.5 E 19.84(dequote A)102 651 R -.74(``) +2.642 G(pseudo-map').74 E 2.642('\()-.74 G .142 +(that is, once that does not ha)-2.642 F .442 -.15(ve a)-.2 H .442 -.15 +(ny ex).15 H .142(ternal data\) that allo).15 F .142(ws a con-)-.25 F +.099(\214guration \214le to break apart a quoted string in the address.) +156 663 R .098(This is necessary primarily)5.098 F .726 +(for DECnet addresses, which often ha)156 675 R 1.026 -.15(ve q)-.2 H +.726(uoted addresses that need to be unwrapped).15 F(on g)156 687 Q(ate) +-.05 E -.1(wa)-.25 G(ys.).1 E EP +%%Page: 5 5 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF(Changes in Sendmail V)72 60 Q(ersion 8)-1 E(5) +294.65 E 2.5(2.8. Multi-W)87 96 R(ord Classes & Macr)-.75 E +(os in Classes)-.18 E/F1 10/Times-Roman@0 SF(Classes can no)127 112.2 Q +2.5(wb)-.25 G 2.5(em)-2.5 G(ultiple w)-2.5 E 2.5(ords. F)-.1 F(or e)-.15 +E(xample,)-.15 E(CShofmann.CS.Berk)142 128.4 Q(ele)-.1 E -.65(y.)-.15 G +(EDU).65 E(allo)102 144.6 Q 2.395(ws you to match the entire string `) +-.25 F(`hofmann.CS.Berk)-.74 E(ele)-.1 E -.65(y.)-.15 G(EDU').65 E 4.894 +('u)-.74 G 2.394(sing the single construct)-4.894 F -.74(``)102 156.6 S +($=S').74 E('.)-.74 E(Class de\214nitions are no)127 172.8 Q 2.5(wa)-.25 +G(llo)-2.5 E(wed to include macros \212 for e)-.25 E(xample:)-.15 E +(Cw$k)142 189 Q(is le)102 205.2 Q -.05(ga)-.15 G(l.).05 E F0 2.5 +(2.9. IDENT)87 229.2 R(Pr)2.5 E(otocol Support)-.18 E F1 .633 +(The IDENT protocol as de\214ned in RFC 1413 [RFC1413] is supported.)127 +245.4 R(Ho)5.633 E(we)-.25 E -.15(ve)-.25 G 1.433 -.4(r, m).15 H(an).4 E +3.134(ys)-.15 G(ys-)-3.134 E .909(tems ha)102 257.4 R 1.209 -.15(ve a T) +-.2 H .909(CP/IP b).15 F .908 +(ug that renders this useless, and the feature must be turned of)-.2 F +3.408(f. Roughly)-.25 F 3.408(,i)-.65 G(f)-3.408 E 8.538 +(one of these system recei)102 269.4 R -.15(ve)-.25 G 11.038(sa\231).15 +G 8.539(No route to host\232 message \(ICMP message)-11.038 F +(ICMP_UNREA)102 281.4 Q .829(CH_HOST\) on)-.4 F/F2 10/Times-Italic@0 SF +(any)3.329 E F1 .828 +(connection, all connections to that host are closed.)3.329 F .828 +(Some \214re-)5.828 F -.1(wa)102 293.4 S .087(lls return this error if you try to connect to the IDENT port, so you can') +.1 F 2.587(tr)-.18 G(ecei)-2.587 E .387 -.15(ve e)-.25 H .087 +(mail from these).15 F 1.712(hosts on these systems.)102 305.4 R(It') +6.712 E 4.212(sp)-.55 G 1.712(ossible that if the \214re)-4.212 F -.1 +(wa)-.25 G 1.712(ll used a more speci\214c message \(such as).1 F +(ICMP_UNREA)102 317.4 Q(CH_PR)-.4 E -1.88 -.4(OT O)-.4 H 4.316 +(COL, ICMP_UNREA).4 F(CH_POR)-.4 E 6.817(To)-.6 G 6.817(rI)-6.817 G +(CMP_UNREA)-6.817 E(CH_NET_PR)-.4 E(O-)-.4 E(HIB\) it w)102 329.4 Q +(ould w)-.1 E(ork, b)-.1 E(ut this hasn')-.2 E 2.5(tb)-.18 G(een v)-2.5 +E(eri\214ed.)-.15 E .678(IDENT protocol support cannot be used on 4.3BSD, Apollo DomainOS, Apple A/UX, Con-) +127 345.6 R -.15(vex)102 357.6 S .949 +(OS, Data General DG/UX, HP-UX, Sequent Dynix, or Ultrix 4.x, x).15 F/F3 +10/Symbol SF<a3>3.449 E F1 3.449(3. It)3.449 F .949(seems to w)3.449 F +.949(ork on)-.1 F +(4.4BSD, IBM AIX 3.x, OSF/1, SGI IRIX, Solaris, SunOS, and Ultrix 4.4.) +102 369.6 Q F0 2.5(2.10. Separate)87 393.6 R(En)2.5 E -.1(ve)-.4 G +(lope/Header Pr).1 E(ocessing)-.18 E F1 .854 +(Since the From: line is passed in separately from the en)127 409.8 R +-.15(ve)-.4 G .854(lope sender).15 F 3.354(,t)-.4 G .854(hese ha)-3.354 +F 1.154 -.15(ve b)-.2 H .854(oth been).15 F .427 +(made visible; the $g macro is set to the en)102 421.8 R -.15(ve)-.4 G +.428(lope sender during processing of mailer ar).15 F .428(gument v)-.18 +F(ec-)-.15 E(tors and the header sender during processing of headers.) +102 433.8 Q .085(It is also possible to specify separate per)127 450 R +.085(-mailer en)-.2 F -.15(ve)-.4 G .084(lope and header processing.).15 +F .084(The Sender)5.084 F(-)-.2 E -.55(RW)102 462 S 1.085 +(Set and RecipientR).55 F 1.085(Wset ar)-.55 F 1.085 +(guments for mailers can be speci\214ed as `)-.18 F(`en)-.74 E -.15(ve) +-.4 G(lope/header').15 E 3.585('t)-.74 G 3.585(og)-3.585 G -2.15 -.25 +(iv e)-3.585 H(dif)102 474 Q(ferent re)-.25 E(writings for en)-.25 E +-.15(ve)-.4 G(lope v).15 E(ersus header addresses.)-.15 E F0 2.5 +(2.11. Owner)87 498 R(-List Pr)-.37 E(opagates to En)-.18 E -.1(ve)-.4 G +(lope).1 E F1 1.168(When an alias has an associated o)127 514.2 R(wner) +-.25 E 1.168(-list name, that alias is used to change the en)-.2 F -.15 +(ve)-.4 G(lope).15 E(sender address.)102 526.2 Q(This will cause do)5 E +(wnstream errors to be returned to that o)-.25 E(wner)-.25 E(.)-.55 E +1.813(Some people \214nd this confusing because the en)127 542.4 R -.15 +(ve)-.4 G 1.813(lope sender is what appears in the \214rst).15 F -.74 +(``)102 554.4 S(From_').74 E 3.127('l)-.74 G .627 +(ine in UNIX messages \(that is, the line be)-3.127 F .627(ginning `) +-.15 F(`From<space>')-.74 E 3.127('i)-.74 G .627(nstead of `)-3.127 F +(`From:')-.74 E(';)-.74 E .502(the latter is the header from, which)102 +566.4 R F2(does)3.002 E F1 .503(indicate the sender of the message\).) +3.002 F .503(In pre)5.503 F .503(vious v)-.25 F(ersions,)-.15 E F2 +(sendmail)102 578.4 Q F1 .057(has tried to a)2.557 F -.2(vo)-.2 G .057 +(id changing the en).2 F -.15(ve)-.4 G .056 +(lope sender for back compatibility with UNIX con).15 F -.15(ve)-.4 G +(n-).15 E .177 +(tion; at this point that back compatibility is creating too man)102 +590.4 R 2.678(yp)-.15 G .178(roblems, and it is necessary to mo)-2.678 F +-.15(ve)-.15 G(forw)102 602.4 Q(ard into the 1980s.)-.1 E F0 2.5 +(2.12. Command)87 626.4 R(Line Flags)2.5 E F1(The)127 642.6 Q F0<ad42> +2.5 E F1(\215ag has been added to pass in body type information.)2.5 E +(The)127 658.8 Q F0<ad70>3.057 E F1 .557 +(\215ag has been added to pass in protocol information that w)3.057 F +.557(as pre)-.1 F .556(viously passed in by)-.25 F(de\214ning the)102 +670.8 Q F0($r)2.5 E F1(and)2.5 E F0($s)2.5 E F1(macros.)2.5 E(The)127 +687 Q F0<ad58>2.6 E F1 .1(\215ag has been added to allo)2.6 F 2.6(wl) +-.25 G .1(ogging of all protocol in and out of sendmail for deb)-2.6 F +(ug-)-.2 E 2.732(ging. Y)102 699 R .232(ou can set \231\255X \214lename\232 and a complete transcript will be logged in that \214le.) +-1.1 F .231(This gets big)5.231 F -.1(fa)102 711 S +(st: the option is only for deb).1 E(ugging.)-.2 E EP +%%Page: 6 6 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF 294.65(6C)72 60 S(hanges in Sendmail V)-294.65 E +(ersion 8)-1 E/F1 10/Times-Roman@0 SF(The)127 96 Q F0<ad71>4.006 E F1 +1.507(\215ag can limit limit a queue run to speci\214c recipients, senders, or queue ids using) +4.006 F(\255qRsubstring, \255qSsubstring, or \255qIsubstring respecti) +102 108 Q -.15(ve)-.25 G(ly).15 E(.)-.65 E F0 2.5(2.13. New)87 132 R +(Con\214guration Line T)2.5 E(ypes)-.74 E F1 .674(The `T' \(T)127 148.2 +R .674(rusted users\) con\214guration line has been deleted.)-.35 F .674 +(It will still be accepted b)5.674 F .674(ut will)-.2 F(be ignored.)102 +160.2 Q(The `K' line has been added to declare database maps.)127 176.4 +Q(The `V' line has been added to declare the con\214guration v)127 192.6 +Q(ersion le)-.15 E -.15(ve)-.25 G(l.).15 E(The `M' \(mailer\) line tak) +127 208.8 Q(es a D= \214eld to specify e)-.1 E -.15(xe)-.15 G +(cution directory).15 E(.)-.65 E F0 2.5(2.14. New)87 232.8 R +(and Extended Options)2.5 E F1(Se)127 249 Q -.15(ve)-.25 G .9(ral ne).15 +F 3.4(wo)-.25 G .9(ptions ha)-3.4 F 1.2 -.15(ve b)-.2 H .9 +(een added, man).15 F 3.4(yt)-.15 G 3.4(os)-3.4 G .9(upport ne)-3.4 F +3.4(wf)-.25 G .9(eatures, others to allo)-3.4 F 3.4(wt)-.25 G(uning)-3.4 +E(that w)102 261 Q(as pre)-.1 E(viously a)-.25 E -.25(va)-.2 G +(ilable only by recompiling.).25 E(Brie\215y:)5 E 28.78(AT)102 277.2 S +.099(he alias \214le speci\214cation can no)-28.78 F 2.599(wb)-.25 G +2.599(eal)-2.599 G .099(ist of alias \214les.)-2.599 F .098 +(Also, the con\214guration can spec-)5.099 F(ify a class of \214le.)138 +289.2 Q -.15(Fo)5 G 2.5(re).15 G +(xample, to search the NIS aliases, use \231O)-2.65 E +(Anis:mail.aliases\232.)-.35 E 31(bI)102 305.4 S +(nsist on a minimum number of disk blocks.)-31 E 29.33(CD)102 321.6 S +(eli)-29.33 E -.15(ve)-.25 G .24(ry checkpoint interv).15 F 2.74 +(al. Checkpoint)-.25 F .24(the queue \(to a)2.74 F -.2(vo)-.2 G .24 +(id duplicate deli).2 F -.15(ve)-.25 G .24(ries\) e).15 F -.15(ve)-.25 G +.24(ry C).15 F(addresses.)138 333.6 Q 29.89(ED)102 349.8 S(ef)-29.89 E +.712(ault error message.)-.1 F .711 +(This message \(or the contents of the indicated \214le\) are prepended) +5.712 F(to error messages.)138 361.8 Q 28.78(GE)102 378 S .785 +(nable GECOS matching.)-28.78 F .785(If you can')5.785 F 3.285<748c>-.18 +G .786(nd a local user name and this option is enabled,)-3.285 F .59 +(do a sequential scan of the passwd \214le to match ag)138 390 R .589 +(ainst full names.)-.05 F(Pre)5.589 E .589(viously a compile)-.25 F +(option.)138 402 Q 31(hM)102 418.2 S(aximum hop count.)-31 E(Pre)5 E +(viously this w)-.25 E(as compiled in.)-.1 E 32.67(IT)102 434.4 S +(his option has been e)-32.67 E(xtended to allo)-.15 E 2.5(ws)-.25 G +(etting of resolv)-2.5 E(er parameters.)-.15 E 33.22(jS)102 450.6 S +(end errors in MIME-encapsulated format.)-33.22 E 32.11(JF)102 466.8 S +(orw)-32.26 E(ard \214le path.)-.1 E(Where to search for .forw)5 E +(ard \214les \212 def)-.1 E(aults to $HOME/.forw)-.1 E(ard.)-.1 E 31(kC) +102 483 S .05(onnection cache size.)-31 F .05 +(The total number of connections that will be k)5.05 F .05 +(ept open at an)-.1 F 2.55(yt)-.15 G(ime.)-2.55 E 28.78(KC)102 499.2 S +1.395(onnection cache lifetime.)-28.78 F 1.395(The amount of time an) +6.395 F 3.895(yc)-.15 G 1.394(onnection will be permitted to sit)-3.895 +F(idle.)138 511.2 Q 33.22(lE)102 527.4 S .333(nable Errors-T)-33.22 F +.333(o: header)-.8 F 5.334(.T)-.55 G .334 +(hese headers violate RFC 1123; this option is included to pro-)-5.334 F +(vide back compatibility with old v)138 539.4 Q(ersions of sendmail.) +-.15 E 28.78(OI)102 555.6 S +(ncoming daemon options \(e.g., use alternate SMTP port\).)-28.78 E 31 +(pP)102 571.8 S(ri)-31 E -.25(va)-.25 G .3 -.15(cy o).25 H 2.5 +(ptions. These).15 F(can be used to mak)2.5 E 2.5(ey)-.1 G +(our SMTP serv)-2.5 E(er less friendly)-.15 E(.)-.65 E 32.67(rT)102 588 +S .67(his option has been e)-32.67 F .67(xtended to allo)-.15 F 3.17 +<778c>-.25 G .67(ner grained control o)-3.17 F -.15(ve)-.15 G 3.17(rt) +.15 G 3.17(imeouts. F)-3.17 F .67(or e)-.15 F(xample,)-.15 E +(you can set the timeout for SMTP commands indi)138 600 Q(vidually)-.25 +E(.)-.65 E 29.33(RD)102 616.2 S(on')-29.33 E 11.797(tp)-.18 G 9.297 +(rune route-addrs.)-11.797 F(Normally)14.297 E 11.797(,i)-.65 G 11.797 +(fv)-11.797 G 9.297(ersion 8 sees an address lik)-11.947 F(e)-.1 E 1.256 +("<@hostA,@hostB:user@hostC>, sendmail will try to strip of)138 628.2 R +3.755(fa)-.25 G 3.755(sm)-3.755 G 1.255(uch as it can \(up to)-3.755 F +(user@hostC\) as suggested by RFC 1123.)138 640.2 Q +(This option disables that beha)5 E(viour)-.2 E(.)-.55 E 29.89(TT)102 +656.4 S 1.485(he \231Return T)-29.89 F 3.985(oS)-.8 G 1.485 +(ender\232 timeout has been e)-3.985 F 1.485(xtended to allo)-.15 F +3.986(ws)-.25 G 1.486(peci\214cation of a w)-3.986 F(arning)-.1 E .789 +(message interv)138 668.4 R .789 +(al, typically something on the order of four hours.)-.25 F .788 +(If a message cannot be)5.788 F(deli)138 680.4 Q -.15(ve)-.25 G 1.245 +(red in that interv).15 F 1.245(al, a w)-.25 F 1.245 +(arning message is sent back to the sender b)-.1 F 1.246(ut the message) +-.2 F(continues to be tried.)138 692.4 Q 28.78(UU)102 708.6 S +(ser database spec.)-28.78 E(This is still e)5 E(xperimental.)-.15 E EP +%%Page: 7 7 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF(Changes in Sendmail V)72 60 Q(ersion 8)-1 E(7) +294.65 E/F1 10/Times-Roman@0 SF 28.78(VF)102 96 S .758(allback `)-28.93 +F(`MX')-.74 E 3.258('h)-.74 G 3.258(ost. This)-3.258 F .757 +(can be thought of as an MX host that applies to all addresses)3.258 F +(that has a v)138 108 Q(ery high preference v)-.15 E +(alue \(that is, use it only if e)-.25 E -.15(ve)-.25 G(rything else f) +.15 E(ails\).)-.1 E 28.78(wI)102 124.2 S 3.066(fs)-28.78 G .566(et, assume that if you are the best MX host for a host, you should send directly to that) +-3.066 F 3.213(host. This)138 136.2 R .713 +(is intended for compatibility with UIUC sendmail, and may ha)3.213 F +1.013 -.15(ve s)-.2 H .712(ome use on).15 F(\214re)138 148.2 Q -.1(wa) +-.25 G(lls.).1 E 31(7D)102 164.4 S 2.758(on)-31 G .258 +(ot run eight bit clean.)-2.758 F -.7(Te)5.258 G(chnically).7 E 2.758 +(,y)-.65 G .258(ou ha)-2.758 F .558 -.15(ve t)-.2 H 2.758(oa).15 G .259 +(ssert this option to be RFC 821 com-)-2.758 F(patible.)138 176.4 Q F0 +2.5(2.15. New)87 200.4 R(Mailer De\214nitions)2.5 E F1 21.75(L= Set)102 +216.6 R .93(the allo)3.43 F -.1(wa)-.25 G .93(ble line length.).1 F .93 +(In V5, the L mailer \215ag implied a line length limit of 990)5.93 F +(characters; this is no)138 228.6 Q 2.5(ws)-.25 G +(ettable to an arbitrary v)-2.5 E(alue.)-.25 E 17.86(F=a T)102 244.8 R +(ry to use ESMTP)-.35 E 5(.I)-1.11 G 2.5(tw)-5 G(ill f)-2.5 E +(all back to SMTP if the initial EHLO pack)-.1 E(et is rejected.)-.1 E +17.3(F=b Ensure)102 261 R 2.5(ab)2.5 G +(lank line at the end of messages.)-2.5 E(Useful on the *\214le* mailer) +5 E(.)-.55 E 17.86(F=c Strip)102 277.2 R .68(all comments from addresses; this should only be used as a last resort when dealing) +3.18 F(with crank)138 289.2 Q 2.5(ym)-.15 G(ailers.)-2.5 E 17.3(F=g Ne) +102 305.4 R -.15(ve)-.25 G 2.88(ru).15 G .38 +(se the null sender as the en)-2.88 F -.15(ve)-.4 G .379(lope sender).15 +F 2.879(,e)-.4 G -.15(ve)-3.129 G 2.879(nw).15 G .379(hen running SMTP) +-2.879 F 5.379(.T)-1.11 G .379(his violates)-5.379 F(RFC 1123.)138 317.4 +Q 17.3(F=7 Strip)102 333.6 R(all output to this mailer to 7 bits.)2.5 E +16.19(F=L Used)102 349.8 R .198 +(to set the line limit to 990 bytes for SMTP compatibility)2.697 F 5.198 +(.I)-.65 G 2.698(tn)-5.198 G .698 -.25(ow d)-2.698 H .198 +(oes that only if the).25 F(L= k)138 361.8 Q -.15(ey)-.1 G +(letter is not speci\214ed.).15 E +(This \215ag is obsolete and should not be used.)5 E F0 2.5(2.16. New)87 +385.8 R(or Changed Pr)2.5 E(e-De\214ned Macr)-.18 E(os)-.18 E F1 23.5 +($k UUCP)102 402 R(node name from uname\(2\).)2.5 E 20.72($m Domain)102 +418.2 R(part of our full hostname.)2.5 E 23.5($_ RFC)102 434.4 R +(1413-pro)2.5 E(vided sender address.)-.15 E 21.28($w Pre)102 450.6 R +.148(viously w)-.25 F .148 +(as sometimes the full domain name, sometimes just the \214rst w)-.1 F +2.647(ord. No)-.1 F 2.647(wg)-.25 G(uar)-2.647 E(-)-.2 E +(anteed to be the \214rst w)138 462.6 Q +(ord of the domain name \(i.e., the host name\).)-.1 E 25.72($j Pre)102 +478.8 R .193(viously had to be de\214ned \212 it is no)-.25 F 2.693(wp) +-.25 G .194(rede\214ned to be the full domain name, if that can)-2.693 F +(be determined.)138 490.8 Q(That is, it is equi)5 E -.25(va)-.25 G +(lent to $w).25 E(.$m.)-.65 E F0 2.5(2.17. New)87 514.8 R +(and Changed Classes)2.5 E F1 17.86($=k Initialized)102 531 R +(to contain $k.)2.5 E 15.64($=w No)102 547.2 R 3.069(wi)-.25 G .569 +(ncludes \231[1.2.3.4]\232 \(where 1.2.3.4 is your IP address\) to allo) +-3.069 F 3.068(wt)-.25 G .568(he con\214guration \214le)-3.068 F +(to recognize your o)138 559.2 Q(wn IP address.)-.25 E F0 2.5(2.18. New) +87 583.2 R(Rewriting T)2.5 E(ok)-.92 E(ens)-.1 E F1(The)127 599.4 Q F0 +($&)3.25 E F1 .75(construct has been adopted from ID)3.25 F 3.25(At)-.4 +G 3.25(od)-3.25 G .75(efer macro e)-3.25 F -.25(va)-.25 G 3.25 +(luation. Normally).25 F 3.25(,m)-.65 G(acros)-3.25 E .476 +(in rulesets are bound when the rule is \214rst parsed during startup.) +102 611.4 R .476(Some macros change during pro-)5.476 F .046 +(cessing and are uninteresting during startup.)102 623.4 R(Ho)5.046 E +(we)-.25 E -.15(ve)-.25 G .846 -.4(r, t).15 H .047 +(hat macro can be referenced using \231$&x\232 to).4 F(defer the e)102 +635.4 Q -.25(va)-.25 G(ulation of $x until the rule is processed.).25 E +(The tok)127 651.6 Q(ens)-.1 E F0($\()2.5 E F1(and)2.5 E F0($\))2.5 E F1 +(ha)2.5 E .3 -.15(ve b)-.2 H(een added to allo).15 E 2.5(ws)-.25 G +(peci\214cation of map re)-2.5 E(writing.)-.25 E -1.11(Ve)127 667.8 S +1.499(rsion 8 allo)1.11 F(ws)-.25 E F0($@)3.999 E F1 1.499 +(on the Left Hand Side of an `R' line to match zero tok)3.999 F 3.998 +(ens. This)-.1 F(is)3.998 E +(intended to be used to match the null input.)102 679.8 Q EP +%%Page: 8 8 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF 294.65(8C)72 60 S(hanges in Sendmail V)-294.65 E +(ersion 8)-1 E 2.5(2.19. Bigger)87 96 R(Defaults)2.5 E/F1 10 +/Times-Roman@0 SF -1.11(Ve)127 112.2 S 1.283(rsion 8 allo)1.11 F 1.284 +(ws up to 100 rulesets instead of 30.)-.25 F 1.284 +(It is recommended that rulesets 0\2559 be)6.284 F(reserv)102 124.2 Q +(ed for sendmail')-.15 E 2.5(sd)-.55 G(edicated use in future releases.) +-2.5 E +(The total number of MX records that can be used has been raised to 20.) +127 140.4 Q .335(The number of queued messages that can be handled at one time has been raised from 600 to) +127 156.6 R(1000.)102 168.6 Q F0 2.5(2.20. Differ)87 192.6 R +(ent Default T)-.18 E(uning P)-.92 E(arameters)-.1 E F1 -1.11(Ve)127 +208.8 S .8(rsion 8 has changed the def)1.11 F .8 +(ault parameters for tuning queue costs to mak)-.1 F 3.3(et)-.1 G .8 +(he number of)-3.3 F .712(recipients more important than the size of the message \(for small messages\).) +102 220.8 R .712(This is reasonable if)5.712 F +(you are connected with reasonably f)102 232.8 Q(ast links.)-.1 E F0 2.5 +(2.21. A)87 256.8 R(uto-Quoting in Addr)-.5 E(esses)-.18 E F1(Pre)127 +273 Q(viously)-.25 E 3.2(,t)-.65 G .701(he `)-3.2 F .701 +(`Full Name <email address>')-.74 F 3.201('s)-.74 G .701(yntax w)-3.201 +F .701(ould generate incorrect protocol out-)-.1 F .006(put if `)102 285 +R .006(`Full Name')-.74 F 2.506('h)-.74 G .006 +(ad special characters such as dot.)-2.506 F .005(This v)5.006 F .005 +(ersion puts quotes around such names.)-.15 F F0 2.5(2.22. Symbolic)87 +309 R(Names On Err)2.5 E(or Mailer)-.18 E F1(Se)127 325.2 Q -.15(ve)-.25 +G(ral names ha).15 E .3 -.15(ve b)-.2 H(een b).15 E +(uilt in to the $@ portion of the $#error mailer)-.2 E 5(.F)-.55 G(or e) +-5.15 E(xample:)-.15 E($#error $@NOHOST $: Host unkno)142 341.4 Q(wn) +-.25 E(Prints the indicated message and sets the e)102 357.6 Q +(xit status of)-.15 E/F2 10/Times-Italic@0 SF(sendmail)2.5 E F1(to)2.5 E +/F3 9/Times-Roman@0 SF(EX_NOHOST)2.5 E F1(.)A F0 2.5(2.23. New)87 381.6 +R(Built-In Mailers)2.5 E F1 -1 -.8(Tw o)127 397.8 T(ne)3.901 E 3.101(wm) +-.25 G .601(ailers, *\214le* and *include*, are included to de\214ne options when mailing to a \214le) +-3.101 F(or a :include: \214le respecti)102 409.8 Q -.15(ve)-.25 G(ly) +.15 E 5(.P)-.65 G(re)-5 E(viously these were o)-.25 E -.15(ve)-.15 G +(rloaded on the local mailer).15 E(.)-.55 E F0 2.5(2.24. SMTP)87 433.8 R +(VRFY Doesn't Expand)2.5 E F1(Pre)127 450 Q 1.438(vious v)-.25 F 1.438 +(ersions of sendmail treated VRFY and EXPN the same.)-.15 F 1.437 +(In this v)6.437 F 1.437(ersion, VRFY)-.15 F(doesn')102 462 Q 2.5(te) +-.18 G(xpand aliases or follo)-2.65 E 2.5(w.)-.25 G(forw)-2.5 E +(ard \214les.)-.1 E .663(As an optimization, if you run with your def) +127 478.2 R .664(ault deli)-.1 F -.15(ve)-.25 G .664 +(ry mode being queue-only).15 F 3.164(,t)-.65 G .664(he RCPT)-3.164 F +1.09(command will also not chase aliases and .forw)102 490.2 R 1.09 +(ard \214les.)-.1 F 1.09(It will chase them when it processes the)6.09 F +2.5(queue. This)102 502.2 R(speeds up RCPT processing.)2.5 E F0 2.5 +(2.25. [IPC])87 526.2 R(Mailers Allo)2.5 E 2.5(wM)-.1 G(ultiple Hosts) +-2.5 E F1 .099(When an address resolv)127 542.4 R .099 +(es to a mailer that has `)-.15 F(`[IPC]')-.74 E 2.599('a)-.74 G 2.6(si) +-2.599 G .1(ts `)-2.6 F(`P)-.74 E(ath')-.15 E .1 +(', the $@ part \(host name\))-.74 F .138 +(can be a colon-separated list of hosts instead of a single hostname.) +102 554.4 R .137(This asks sendmail to search the)5.137 F .16 +(list for the \214rst entry that is a)102 566.4 R -.25(va)-.2 G .16 +(ilable e).25 F .161(xactly as though it were an MX record.)-.15 F .161 +(The intent is to route)5.161 F .738(internal traf)102 578.4 R .738 +(\214c through internal netw)-.25 F .738 +(orks without publishing an MX record to the net.)-.1 F .737(MX e)5.737 +F(xpan-)-.15 E(sion is still done on the indi)102 590.4 Q(vidual items.) +-.25 E F0 2.5(2.26. Aliases)87 614.4 R(Extended)2.5 E F1 .298 +(The implementation has been mer)127 630.6 R .298(ged with maps.)-.18 F +.299(Among other things, this supports multiple)5.298 F +(alias \214les and NIS-based aliases.)102 642.6 Q -.15(Fo)5 G 2.5(re).15 +G(xample:)-2.65 E -.35(OA)142 658.8 S(/etc/aliases,nis:mail.aliases).35 +E(will search \214rst the local database \231/etc/aliases\232 follo)102 +675 Q(wed by the NIS map)-.25 E EP +%%Page: 9 9 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF(Changes in Sendmail V)72 60 Q(ersion 8)-1 E(9) +294.65 E 2.5(2.27. P)87 96 R(ortability and Security Enhancements)-.2 E +/F1 10/Times-Roman@0 SF 2.5(An)127 112.2 S(umber of internal changes ha) +-2.5 E .3 -.15(ve b)-.2 H(een made to enhance portability).15 E(.)-.65 E +(Se)127 128.4 Q -.15(ve)-.25 G(ral \214x).15 E(es ha)-.15 E .3 -.15 +(ve b)-.2 H(een made to increase the paranoia f).15 E(actor)-.1 E(.)-.55 +E .46(In particular)127 144.6 R 2.96(,t)-.4 G .46 +(he permissions required for .forw)-2.96 F .46 +(ard and :include: \214les ha)-.1 F .76 -.15(ve b)-.2 H .46 +(een tightened up).15 F(considerably)102 156.6 Q 5.182(.V)-.65 G 2.683 +(5w)-5.182 G .183(ould pretty much read an)-2.783 F 2.683<798c>-.15 G +.183(le it could get to as root, which e)-2.683 F .183 +(xposed some secu-)-.15 F 1.02(rity holes.)102 168.6 R 1.02 +(V8 insists that all directories leading up to the .forw)6.02 F 1.02 +(ard or :include: \214le be searchable)-.1 F .334 +(\("x" permission\) by the controlling user" \(de\214ned belo)102 180.6 +R .335(w\), that the \214le itself be readable by the con-)-.25 F +(trolling user)102 192.6 Q 2.5(,a)-.4 G(nd that .forw)-2.5 E +(ard \214les be o)-.1 E(wned by the user who is being forw)-.25 E +(arded to or root.)-.1 E .565(The "controlling user" is the user on whose behalf the mail is being deli) +127 208.8 R -.15(ve)-.25 G 3.065(red. F).15 F .565(or e)-.15 F(xample,) +-.15 E .459 +(if you mail to "user1" then the controlling user for ~user1/.forw)102 +220.8 R .46(ard and an)-.1 F 2.96(ym)-.15 G .46(ailers in)-2.96 F -.2 +(vo)-.4 G -.1(ke).2 G 2.96(db).1 G 2.96(yt)-2.96 G(hat)-2.96 E(.forw)102 +232.8 Q(ard \214le, including :include: \214les.)-.1 E(Pre)127 249 Q +(viously)-.25 E 2.816(,a)-.65 G -.15(ny)-2.816 G .316 +(one who had a home directory could create a .forw).15 F .316 +(ard could forw)-.1 F .316(ard to a pro-)-.1 F 2.965(gram. No)102 261 R +1.765 -.65(w, s)-.25 H .466(endmail checks to mak).65 F 2.966(es)-.1 G +.466(ure that the)-2.966 F 2.966(yh)-.15 G -2.25 -.2(av e)-2.966 H .466 +(an "appro)3.166 F -.15(ve)-.15 G 2.966(ds).15 G .466 +(hell", that is, a shell listed)-2.966 F(in the /etc/shells \214le.)102 +273 Q F0 2.5(2.28. Miscellaneous)87 297 R(Fixes and Enhancements)2.5 E +F1 4.03(An)127 313.2 S 1.53(umber of small b)-4.03 F 1.53(ugs ha)-.2 F +1.53(ving to do with things lik)-.2 F 4.03(eb)-.1 G 1.53 +(ackslash-escaped quotes inside of)-4.03 F(comments ha)102 325.2 Q .3 +-.15(ve b)-.2 H(een \214x).15 E(ed.)-.15 E 1.552(The \214x)127 341.4 R +1.552(ed size limit on header lines \(such as \231T)-.15 F 1.553 +(o:\232 and \231Cc:\232\) has been eliminated; those)-.8 F -.2(bu)102 +353.4 S -.25(ff).2 G(ers are dynamically allocated no).25 E -.65(w.)-.25 +G .289(Sendmail writes a /etc/sendmail.pid \214le with the current process id and the current in) +127 369.6 R -.2(vo)-.4 G(cation).2 E(\215ags.)102 381.6 Q -1 -.8(Tw o) +127 397.8 T .218 +(people using the same program \(e.g., submit\) are considered "dif) +3.518 F .219(ferent" so that duplicate)-.25 F .508(elimination doesn') +102 409.8 R 3.008(td)-.18 G .508(elete one of them.)-3.008 F -.15(Fo) +5.508 G 3.008(re).15 G .508(xample, tw)-3.158 F 3.008(op)-.1 G .508 +(eople forw)-3.008 F .508(arding their email to |submit)-.1 F +(will be treated as tw)102 421.8 Q 2.5(or)-.1 G(ecipients.)-2.5 E .721(The mailstats program prints mailer names and gets the location of the sendmail.st \214le from) +127 438 R(/etc/sendmail.cf.)102 450 Q(Man)127 466.2 Q 2.5(ym)-.15 G +(inor b)-2.5 E(ugs ha)-.2 E .3 -.15(ve b)-.2 H(een \214x).15 E +(ed, such as handling of backslashes inside of quotes.)-.15 E 2.5(Ah)127 +482.4 S(ook has been added to allo)-2.5 E 2.5(wr)-.25 G -.25(ew)-2.5 G +(riting of local addresses after aliasing.).25 E F0 2.5(3. FUTURE)72 +506.4 R -.1(WO)2.5 G(RK).1 E F1 1.719(The pre)112 522.6 R 1.719 +(vious section describes)-.25 F/F2 10/Times-Italic@0 SF(sendmail)4.219 E +F1 1.719(as of v)4.219 F 1.719(ersion 8.6.6.)-.15 F 1.718 +(There is still much to be done.)6.719 F +(Some high points are described belo)87 534.6 Q 3.8 -.65(w. T)-.25 H +(his list is by no means e).65 E(xhausti)-.15 E -.15(ve)-.25 G(.).15 E +F0 2.5(3.1. Full)87 558.6 R(MIME Support)2.5 E F1(Currently)127 574.8 Q +F2(sendmail)3.305 E F1 .805(only supports se)3.305 F -.15(ve)-.25 G +3.305(nb).15 G .805(it MIME messages.)-3.305 F .806 +(Although it can pass eight bit)5.805 F .371 +(MIME messages, it cannot adv)102 586.8 R .371(ertise that f)-.15 F .37 +(act because the standards say that the mail agent must be)-.1 F .26 +(able to do 8- to 7-bit con)102 598.8 R -.15(ve)-.4 G .26(rsion to ha) +.15 F .561 -.15(ve f)-.2 H .261(ull 8-bit support.).15 F .261 +(This requires f)5.261 F .261(ar more e)-.1 F(xtensi)-.15 E .561 -.15 +(ve m)-.25 H(odi\214-).15 E +(cation of the message body than is currently supported.)102 610.8 Q +.464(The best w)127 627 R .464(ay to do this w)-.1 F .463 +(ould be to support the general concept of an e)-.1 F .463(xternal `) +-.15 F .463(`message \214l-)-.74 F(ter')102 639 Q 3.319('t)-.74 G .819 +(hat could do arbitrary modi\214cations of the message.)-3.319 F .819 +(This w)5.819 F .82(ould allo)-.1 F 3.32(wM)-.25 G .82(IME con)-3.32 F +-.15(ve)-.4 G .82(rsion as).15 F .63 +(well as such things as automatic encryption of messages sent o)102 651 +R -.15(ve)-.15 G 3.129(re).15 G .629(xternal links.)-3.279 F .629 +(This is probably)5.629 F(an e)102 663 Q(xtremely non-tri)-.15 E +(vial change.)-.25 E F0 2.5(3.2. Ser)87 687 R(vice Switch Abstraction) +-.1 E F1 .369(Most modern systems include some concept of a \231service switch\232 \212 for e) +127 703.2 R .37(xample, to look up)-.15 F .984 +(host names you can try DNS, NIS, NIS+, te)102 715.2 R .984 +(xt tables, NetInfo, or other services in some arbitrary)-.15 F EP +%%Page: 10 10 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF 287.15(10 Changes)72 60 R(in Sendmail V)2.5 E +(ersion 8)-1 E/F1 10/Times-Roman@0 SF(order)102 96 Q 5.174(.T)-.55 G +.174(his is currently v)-5.174 F .174(ery clumsy in)-.15 F/F2 10 +/Times-Italic@0 SF(sendmail)2.674 E F1 2.674(,w)C .174 +(ith only limited control of the services pro)-2.674 F(vided.)-.15 E F0 +2.5(3.3. Mor)87 120 R 2.5(eC)-.18 G(ontr)-2.5 E(ol of Local Addr)-.18 E +(esses)-.18 E F1 .943(Currently some addresses are declared as \231local\232 and are handled specially \212 for e) +127 136.2 R(xample,)-.15 E(the)102 148.2 Q 3.455(ym)-.15 G .955(ay ha) +-3.455 F 1.255 -.15(ve .)-.2 H(forw).15 E .956 +(ard \214les, may be translated into program calls or \214le deli)-.1 F +-.15(ve)-.25 G .956(ries, and so forth.).15 F .311(These should be brok) +102 160.2 R .311(en out into separate \215ags to allo)-.1 F 2.811(wt) +-.25 G .31(he local system administrator to ha)-2.811 F .61 -.15(ve m) +-.2 H(ore).15 E(\214ne-grained control o)102 172.2 Q -.15(ve)-.15 G 2.5 +(ro).15 G(perations.)-2.5 E F0 2.5(3.4. Mor)87 196.2 R 2.5(eR)-.18 G +(un-T)-2.5 E(ime Con\214guration Options)-.18 E F1 .016(There are man) +127 212.4 R 2.516(yo)-.15 G .016(ptions that are con\214gured at compile time, such as the method of \214le locking) +-2.516 F .719(and the use of the IDENT protocol [RFC1413].)102 224.4 R +.719(These should be transfered to run time by adding)5.719 F(ne)102 +236.4 Q 2.5(wo)-.25 G(ptions.)-2.5 E(Similarly)127 252.6 Q 3.413(,s)-.65 +G .913(ome options are currently o)-3.413 F -.15(ve)-.15 G .913 +(rloaded, that is, a single option controls more than).15 F(one thing.) +102 264.6 Q(These should probably be brok)5 E +(en out into separate options.)-.1 E +(This implies that options will change from single characters to w)127 +280.8 Q(ords.)-.1 E F0 2.5(3.5. Mor)87 304.8 R 2.5(eC)-.18 G +(on\214guration Contr)-2.5 E(ol Ov)-.18 E(er Err)-.1 E(ors)-.18 E F1 +(Currently)127 321 Q 3.649(,t)-.65 G 1.148(he con\214guration \214le can generate an error message during parsing.) +-3.649 F(Ho)6.148 E(we)-.25 E -.15(ve)-.25 G 1.948 -.4(r, i).15 H(t).4 E +.569(cannot tweak other operations, such as issuing a w)102 333 R .57 +(arning message to the system postmaster)-.1 F 5.57(.S)-.55 G(imi-)-5.57 +E(larly)102 345 Q 2.558(,s)-.65 G .057 +(ome errors should not be triggered if the)-2.558 F 2.557(ya)-.15 G .057 +(re in aliases during an alias \214le reb)-2.557 F .057(uild, b)-.2 F +.057(ut should)-.2 F(be triggered if that alias is actually used.)102 +357 Q F0 2.5(3.6. Long)87 381 R -.92(Te)2.5 G(rm Host State).92 E F1 +(Currently)127 397.2 Q(,)-.65 E F2(sendmail)3.731 E F1 1.231 +(only remembers host status during a single queue run.)3.731 F 1.232 +(This should be)6.232 F(con)102 409.2 Q -.15(ve)-.4 G .492(rted to long term status stored on disk so it can be shared between instantiations of) +.15 F F2(sendmail)2.991 E F1(.)A .866(Entries will ha)102 421.2 R 1.167 +-.15(ve t)-.2 H 3.367(ob).15 G 3.367(et)-3.367 G .867(imestamped so the) +-3.367 F 3.367(yc)-.15 G .867(an time out.)-3.367 F .867(This will allo) +5.867 F(w)-.25 E F2(sendmail)3.367 E F1 .867(to implement)3.367 F -.15 +(ex)102 433.2 S(ponential back).15 E(of)-.1 E 2.5(fo)-.25 G 2.5(nq)-2.5 +G(ueue runs on a per)-2.5 E(-host basis.)-.2 E F0 2.5(3.7. Connection)87 +457.2 R(Contr)2.5 E(ol)-.18 E F1 .819(Modern netw)127 473.4 R .819 +(orks ha)-.1 F 1.119 -.15(ve d)-.2 H(if).15 E .819 +(ferent types of connecti)-.25 F .818(vity than the past.)-.25 F .818 +(In particular)5.818 F 3.318(,t)-.4 G .818(he rising)-3.318 F .636(prominence of dialup IP has created certain challenges for automated serv) +102 485.4 R 3.136(ers. It)-.15 F .636(is not uncommon)3.136 F .732 +(to try to mak)102 497.4 R 3.232(eac)-.1 G .732 +(onnection to a host and ha)-3.232 F 1.032 -.15(ve i)-.2 H 3.232(tf).15 +G .732(ail, e)-3.332 F -.15(ve)-.25 G 3.232(nt).15 G .732 +(hough if you tried ag)-3.232 F .732(ain it w)-.05 F .731(ould suc-)-.1 +F 2.5(ceed. The)102 509.4 R(connection management could be a bit cle)2.5 +E -.15(ve)-.25 G(rer to try to adapt to such situations.).15 E F0 2.5 +(3.8. Other)87 533.4 R(Caching)2.5 E F1 .074 +(When you do an MX record lookup, the name serv)127 549.6 R .075 +(er automatically returns the IP addresses of)-.15 F .518 +(the associated MX serv)102 561.6 R 3.018(ers. This)-.15 F .518 +(information is currently ignored, and another query is done to get) +3.018 F(this information.)102 573.6 Q(It should be cached to a)5 E -.2 +(vo)-.2 G(id e).2 E(xcess name serv)-.15 E(er traf)-.15 E(\214c.)-.25 E +F0 2.5(4. REFERENCES)72 597.6 R F1([Allman83a])87 613.8 Q .137 +(\231Sendmail \212 An Internetw)123 625.8 R .137(ork Mail Router)-.1 F +4.037 -.7(.\232 E)-.55 H 2.638(.A).7 G 2.638(llman. In)-2.638 F F2 .138 +(Unix Pr)2.638 F -.1(og)-.45 G -.15(ra).1 G(mmer).15 E(s')-.1 E 2.638 +(sM)-.4 G(anual,)-2.638 E F1(4.2)2.638 E(Berk)123 637.8 Q(ele)-.1 E 2.5 +(yS)-.15 G(oftw)-2.5 E(are Distrib)-.1 E(ution, v)-.2 E(olume 2C.)-.2 E +(August 1983.)5 E([Allman83b])87 654 Q .384 +(\231Mail Systems and Addressing in 4.2BSD.)123 666 R 5.384<9a45>-.7 G +2.884(.A)-5.384 G .383(llman In)-2.884 F F2 .383(UNICOM Confer)2.883 F +.383(ence Pr)-.37 F(oceedings.)-.45 E F1(San Die)123 678 Q +(go, California.)-.15 E(January 1983.)5 E([Allman&Amos85])87 694.2 Q +-.74(``)123 706.2 S 1.145(Sendmail Re).74 F(visited.)-.25 E 5.125 -.74 +('' E)-.7 H 3.645(.A).74 G 1.145(llman and M. Amos.)-3.645 F(In)6.145 E +F2 1.145(Usenix Summer 1985 Confer)3.645 F 1.145(ence Pr)-.37 F(o-)-.45 +E(ceedings.)123 718.2 Q F1(Portland, Ore)5 E 2.5(gon. June)-.15 F(1985.) +2.5 E EP +%%Page: 11 11 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF(Changes in Sendmail V)72 60 Q(ersion 8)-1 E(11) +289.65 E/F1 10/Times-Roman@0 SF([ID)87 96 Q(A87])-.4 E/F2 10 +/Times-Italic@0 SF(Electr)1.97 E .983(onic Mail Addr)-.45 F .983 +(essing in Theory and Pr)-.37 F .982(actice with the ID)-.15 F 3.482(AS) +-.35 G .982(endmail Enhancement Kit)-3.482 F .563(\(or The P)123 108 R +(ostmaster')-.8 E 3.063(sL)-.4 G .563(ast W)-3.063 F .564(ill and T)-.55 +F(estament\).)-.92 E F1 .564(Lennart Lo)5.564 F -.5(..)-5 -6 O 3.064 +(vstrand. Department)1 6 N .564(of Computer)3.064 F 1.267 +(and Information Science, Uni)123 120 R -.15(ve)-.25 G 1.267 +(rsity of Link).15 F(o)-.1 E -.5(..)-5 -6 O 1.266 +(ping, Sweden, Report no. LiTH-ID)1 6 N(A-Ex-8715.)-.4 E(May 1987.)123 +132 Q([RFC821])87 148.2 Q F2(Simple Mail T)123 160.2 Q -.15(ra)-.55 G +(nsport Pr).15 E(otocol.)-.45 E F1(J. Postel.)5 E(August 1982.)5 E +([RFC1123])87 176.4 Q F2(Requir)123 188.4 Q .163 +(ements for Internet Hosts \212 Application and Support.)-.37 F F1 .164 +(Internet Engineering T)5.164 F .164(ask F)-.8 F(orce,)-.15 E +(R. Braden, Editor)123 200.4 Q 5(.O)-.55 G(ctober 1989.)-5 E([RFC1344]) +87 216.6 Q F2(Implications of MIME for Internet Mail Gate)123 228.6 Q +(ways.)-.15 E F1(N. Borenstein.)5 E(June 1992.)5 E([RFC1413])87 244.8 Q +F2(Identi\214cation Pr)123 256.8 Q(otocol.)-.45 E F1(M. St. Johns.)5 E +(February 1993.)5 E([RFC1425])87 273 Q F2 2.352 +(SMTP Service Extensions.)123 285 R F1 2.352 +(J. Klensin, N. Freed, M. Rose, E. Stef)7.352 F 2.351 +(ferud, and D. Crock)-.25 F(er)-.1 E(.)-.55 E(February 1993.)123 297 Q +([RFC1426])87 313.2 Q F2 .12(SMTP Service Extension for 8bit-MIMEtr)123 +325.2 R(ansport.)-.15 E F1 .12(J. Klensin, N. Freed, M. Rose, E. Stef) +5.12 F(ferud,)-.25 E(and D. Crock)123 337.2 Q(er)-.1 E 5(.F)-.55 G +(ebruary 1993.)-5 E([RFC1427])87 353.4 Q F2 .813 +(SMTP Service Extension for Messa)123 365.4 R 1.013 -.1(ge S)-.1 H .813 +(ize Declar).1 F(ation.)-.15 E F1 .813 +(J. Klensin, N. Freed, and K. Moore.)5.813 F(February 1993.)123 377.4 Q +([RFC1521])87 393.6 Q F2 2.033 +(MIME \(Multipurpose Internet Mail Extensions\) P)123 405.6 R 2.033 +(art One: Mec)-.8 F 2.033(hanisms for Specifying and)-.15 F .933 +(Describing the F)123 417.6 R .933(ormat of Internet Messa)-1.05 F 1.133 +-.1(ge B)-.1 H(odies.).1 E F1 .932(N. Borenstein and N. Freed.)5.932 F +(September)5.932 E(1993.)123 429.6 Q EP +%%Trailer +end +%%EOF diff --git a/usr.sbin/sendmail/doc/intro/intro.me b/usr.sbin/sendmail/doc/intro/intro.me index 0406bb1fdd6..5bb5e8947a0 100644 --- a/usr.sbin/sendmail/doc/intro/intro.me +++ b/usr.sbin/sendmail/doc/intro/intro.me @@ -1,36 +1,14 @@ -.\" Copyright (c) 1983 Eric P. Allman +.\" 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. .\" -.\" 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. +.\" 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 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. .\" -.\" @(#)intro.me 8.2 (Berkeley) 11/27/93 +.\" @(#)intro.me 8.7 (Berkeley) 5/19/98 .\" .\" pic -Pxx intro.me | ditroff -me -Pxx .eh 'SMM:9-%''SENDMAIL \*- An Internetwork Mail Router' diff --git a/usr.sbin/sendmail/doc/intro/intro.ps b/usr.sbin/sendmail/doc/intro/intro.ps new file mode 100644 index 00000000000..c1031c48e40 --- /dev/null +++ b/usr.sbin/sendmail/doc/intro/intro.ps @@ -0,0 +1,1338 @@ +%!PS-Adobe-3.0 +%%Creator: groff version 1.10 +%%CreationDate: Tue May 19 16:37:12 1998 +%%DocumentNeededResources: font Times-Roman +%%+ font Times-Italic +%%+ font Times-Bold +%%DocumentSuppliedResources: procset grops 1.10 0 +%%Pages: 13 +%%PageOrder: Ascend +%%Orientation: Portrait +%%EndComments +%%BeginProlog +%%BeginResource: procset grops 1.10 0 +/setpacking where{ +pop +currentpacking +true setpacking +}if +/grops 120 dict dup begin +/SC 32 def +/A/show load def +/B{0 SC 3 -1 roll widthshow}bind def +/C{0 exch ashow}bind def +/D{0 exch 0 SC 5 2 roll awidthshow}bind def +/E{0 rmoveto show}bind def +/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def +/G{0 rmoveto 0 exch ashow}bind def +/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def +/I{0 exch rmoveto show}bind def +/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def +/K{0 exch rmoveto 0 exch ashow}bind def +/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def +/M{rmoveto show}bind def +/N{rmoveto 0 SC 3 -1 roll widthshow}bind def +/O{rmoveto 0 exch ashow}bind def +/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def +/Q{moveto show}bind def +/R{moveto 0 SC 3 -1 roll widthshow}bind def +/S{moveto 0 exch ashow}bind def +/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def +/SF{ +findfont exch +[exch dup 0 exch 0 exch neg 0 0]makefont +dup setfont +[exch/setfont cvx]cvx bind def +}bind def +/MF{ +findfont +[5 2 roll +0 3 1 roll +neg 0 0]makefont +dup setfont +[exch/setfont cvx]cvx bind def +}bind def +/level0 0 def +/RES 0 def +/PL 0 def +/LS 0 def +/MANUAL{ +statusdict begin/manualfeed true store end +}bind def +/PLG{ +gsave newpath clippath pathbbox grestore +exch pop add exch pop +}bind def +/BP{ +/level0 save def +1 setlinecap +1 setlinejoin +72 RES div dup scale +LS{ +90 rotate +}{ +0 PL translate +}ifelse +1 -1 scale +}bind def +/EP{ +level0 restore +showpage +}bind def +/DA{ +newpath arcn stroke +}bind def +/SN{ +transform +.25 sub exch .25 sub exch +round .25 add exch round .25 add exch +itransform +}bind def +/DL{ +SN +moveto +SN +lineto stroke +}bind def +/DC{ +newpath 0 360 arc closepath +}bind def +/TM matrix def +/DE{ +TM currentmatrix pop +translate scale newpath 0 0 .5 0 360 arc closepath +TM setmatrix +}bind def +/RC/rcurveto load def +/RL/rlineto load def +/ST/stroke load def +/MT/moveto load def +/CL/closepath load def +/FL{ +currentgray exch setgray fill setgray +}bind def +/BL/fill load def +/LW/setlinewidth load def +/RE{ +findfont +dup maxlength 1 index/FontName known not{1 add}if dict begin +{ +1 index/FID ne{def}{pop pop}ifelse +}forall +/Encoding exch def +dup/FontName exch def +currentdict end definefont pop +}bind def +/DEFS 0 def +/EBEGIN{ +moveto +DEFS begin +}bind def +/EEND/end load def +/CNT 0 def +/level1 0 def +/PBEGIN{ +/level1 save def +translate +div 3 1 roll div exch scale +neg exch neg exch translate +0 setgray +0 setlinecap +1 setlinewidth +0 setlinejoin +10 setmiterlimit +[]0 setdash +/setstrokeadjust where{ +pop +false setstrokeadjust +}if +/setoverprint where{ +pop +false setoverprint +}if +newpath +/CNT countdictstack def +userdict begin +/showpage{}def +}bind def +/PEND{ +clear +countdictstack CNT sub{end}repeat +level1 restore +}bind def +end def +/setpacking where{ +pop +setpacking +}if +%%EndResource +%%IncludeResource: font Times-Roman +%%IncludeResource: font Times-Italic +%%IncludeResource: font Times-Bold +grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 +def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron +/scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent +/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen +/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon +/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O +/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex +/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y +/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft +/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl +/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut +/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash +/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen +/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft +/logicalnot/minus/registered/macron/degree/plusminus/twosuperior +/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior +/ordmasculine/guilsinglright/onequarter/onehalf/threequarters +/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE +/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex +/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis +/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn +/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla +/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis +/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash +/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def +/Times-Bold@0 ENC0/Times-Bold RE/Times-Italic@0 ENC0/Times-Italic RE +/Times-Roman@0 ENC0/Times-Roman RE +%%EndProlog +%%Page: 1 1 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 14/Times-Roman@0 SF(SENDMAIL \212 An Internetw)159.172 141 Q +(ork Mail Router)-.14 E/F1 10/Times-Roman@0 SF(Eric Allman*)260.92 165 Q +/F2 10/Times-Italic@0 SF(Univer)220.2 183 Q(sity of California, Berk)-.1 +E(ele)-.1 E(y)-.3 E(Mammoth Pr)251.98 195 Q(oject)-.45 E F1(ABSTRA) +262.085 227.4 Q(CT)-.4 E 1.41 +(Routing mail through a heterogenous internet presents man)112 243.6 R +3.91(yn)-.15 G 1.91 -.25(ew p)-3.91 H 3.91(roblems. Among).25 F .297 +(the w)112 255.6 R .297(orst of these is that of address mapping.)-.1 F +(Historically)5.297 E 2.797(,t)-.65 G .298(his has been handled on an) +-2.797 F F2(ad hoc)112 267.6 Q F1 2.5(basis. Ho)2.5 F(we)-.25 E -.15(ve) +-.25 G .8 -.4(r, t).15 H +(his approach has become unmanageable as internets gro).4 E -.65(w.)-.25 +G .15(Sendmail acts a uni\214ed "post of)112 283.8 R .15 +(\214ce" to which all mail can be submitted.)-.25 F .15(Address inter) +5.15 F(-)-.2 E .426(pretation is controlled by a production system, which can parse both domain-based ad-) +112 295.8 R .423(dressing and old-style)112 307.8 R F2 .423(ad hoc)2.923 +F F1 2.923(addresses. The)2.923 F .422(production system is po)2.922 F +.422(werful enough to)-.25 F(re)112 319.8 Q 1.357(write addresses in the message header to conform to the standards of a number of) +-.25 F 1.15(common tar)112 331.8 R 1.15(get netw)-.18 F 1.15 +(orks, including old \(NCP/RFC733\) Arpanet, ne)-.1 F 3.65(w\()-.25 G +(TCP/RFC822\))-3.65 E 1.119(Arpanet, UUCP)112 343.8 R 3.619(,a)-1.11 G +1.119(nd Phonenet.)-3.619 F 1.119(Sendmail also implements an SMTP serv) +6.119 F(er)-.15 E 3.619(,m)-.4 G(essage)-3.619 E +(queueing, and aliasing.)112 355.8 Q F2(Sendmail)97 400.2 Q F1 .501 +(implements a general internetw)3 F .501(ork mail routing f)-.1 F +(acility)-.1 E 3.001(,f)-.65 G .501(eaturing aliasing and forw)-3.001 F +(arding,)-.1 E(automatic routing to netw)72 412.2 Q(ork g)-.1 E(ate)-.05 +E -.1(wa)-.25 G(ys, and \215e).1 E(xible con\214guration.)-.15 E .624 +(In a simple netw)97 428.4 R .624(ork, each node has an address, and resources can be identi\214ed with a host-resource) +-.1 F .374(pair; in particular)72 440.4 R 2.874(,t)-.4 G .374 +(he mail system can refer to users using a host-username pair)-2.874 F +5.374(.H)-.55 G .375(ost names and numbers)-5.374 F(ha)72 452.4 Q .3 +-.15(ve t)-.2 H 2.5(ob).15 G 2.5(ea)-2.5 G +(dministered by a central authority)-2.5 E 2.5(,b)-.65 G +(ut usernames can be assigned locally to each host.)-2.7 E .649 +(In an internet, multiple netw)97 468.6 R .649(orks with dif)-.1 F .649 +(ferent characterstics and managements must communicate.)-.25 F .389 +(In particular)72 480.6 R 2.889(,t)-.4 G .389 +(he syntax and semantics of resource identi\214cation change.)-2.889 F +.39(Certain special cases can be han-)5.389 F 1.033(dled tri)72 492.6 R +1.033(vially by)-.25 F F2 1.033(ad hoc)3.533 F F1 1.032 +(techniques, such as pro)3.533 F 1.032(viding netw)-.15 F 1.032 +(ork names that appear local to hosts on other)-.1 F(netw)72 504.6 Q +1.454(orks, as with the Ethernet at Xerox P)-.1 F 3.955(ARC. Ho)-.92 F +(we)-.25 E -.15(ve)-.25 G 4.755 -.4(r, t).15 H 1.455 +(he general case is e).4 F 1.455(xtremely comple)-.15 F 3.955(x. F)-.15 +F(or)-.15 E -.15(ex)72 516.6 S .192(ample, some netw).15 F .192(orks require point-to-point routing, which simpli\214es the database update problem since) +-.1 F .618(only adjacent hosts must be entered into the system tables, while others use end-to-end addressing.) +72 528.6 R(Some)5.618 E(netw)72 540.6 Q .123(orks use a left-associati) +-.1 F .423 -.15(ve s)-.25 H .123(yntax and others use a right-associati) +.15 F .423 -.15(ve s)-.25 H .123(yntax, causing ambiguity in mix).15 F +(ed)-.15 E(addresses.)72 552.6 Q .678 +(Internet standards seek to eliminate these problems.)97 568.8 R +(Initially)5.678 E 3.178(,t)-.65 G .679(hese proposed e)-3.178 F .679 +(xpanding the address)-.15 F .65 +(pairs to address triples, consisting of {netw)72 580.8 R .649 +(ork, host, resource} triples.)-.1 F(Netw)5.649 E .649 +(ork numbers must be uni)-.1 F -.15(ve)-.25 G -.2(r-).15 G 1.452 +(sally agreed upon, and hosts can be assigned locally on each netw)72 +592.8 R 3.952(ork. The)-.1 F(user)3.952 E(-le)-.2 E -.15(ve)-.25 G 3.952 +(lp).15 G 1.452(resentation w)-3.952 F(as)-.1 E 2.352(quickly e)72 604.8 +R 2.352(xpanded to address domains, comprised of a local resource identi\214cation and a hierarchical) +-.15 F .256(domain speci\214cation with a common static root.)72 616.8 R +.257(The domain technique separates the issue of ph)5.257 F .257 +(ysical v)-.05 F(er)-.15 E(-)-.2 E .807(sus logical addressing.)72 628.8 +R -.15(Fo)5.807 G 3.307(re).15 G .807 +(xample, an address of the form \231eric@a.cc.berk)-3.457 F(ele)-.1 E +-.65(y.)-.15 G .807(arpa\232 describes only the).65 F(logical or)72 +640.8 Q -.05(ga)-.18 G(nization of the address space.).05 E F2(Sendmail) +97 657 Q F1 .493(is intended to help bridge the g)2.992 F .493 +(ap between the totally)-.05 F F2 .493(ad hoc)2.993 F F1 -.1(wo)2.993 G +.493(rld of netw).1 F .493(orks that kno)-.1 F(w)-.25 E .855 +(nothing of each other and the clean, tightly-coupled w)72 669 R .854 +(orld of unique netw)-.1 F .854(ork numbers.)-.1 F .854 +(It can accept old)5.854 F .32 LW 76 678.6 72 678.6 DL 80 678.6 76 678.6 +DL 84 678.6 80 678.6 DL 88 678.6 84 678.6 DL 92 678.6 88 678.6 DL 96 +678.6 92 678.6 DL 100 678.6 96 678.6 DL 104 678.6 100 678.6 DL 108 678.6 +104 678.6 DL 112 678.6 108 678.6 DL 116 678.6 112 678.6 DL 120 678.6 116 +678.6 DL 124 678.6 120 678.6 DL 128 678.6 124 678.6 DL 132 678.6 128 +678.6 DL 136 678.6 132 678.6 DL 140 678.6 136 678.6 DL 144 678.6 140 +678.6 DL 148 678.6 144 678.6 DL 152 678.6 148 678.6 DL 156 678.6 152 +678.6 DL 160 678.6 156 678.6 DL 164 678.6 160 678.6 DL 168 678.6 164 +678.6 DL 172 678.6 168 678.6 DL 176 678.6 172 678.6 DL 180 678.6 176 +678.6 DL 184 678.6 180 678.6 DL 188 678.6 184 678.6 DL 192 678.6 188 +678.6 DL 196 678.6 192 678.6 DL 200 678.6 196 678.6 DL 204 678.6 200 +678.6 DL 208 678.6 204 678.6 DL 212 678.6 208 678.6 DL 216 678.6 212 +678.6 DL/F3 8/Times-Roman@0 SF .557(*A considerable part of this w)93.6 +690.6 R .557(ork w)-.08 F .557(as done while under the emplo)-.08 F +2.557(yo)-.08 G 2.556(ft)-2.557 G .556(he INGRES Project at the Uni) +-2.556 F -.12(ve)-.2 G .556(rsity of California at).12 F(Berk)72 700.2 Q +(ele)-.08 E 2(ya)-.12 G(nd at Britton Lee.)-2 E/F4 10/Times-Bold@0 SF +(SENDMAIL \212 An Inter)72 756 Q(netw)-.15 E(ork Mail Router)-.1 E +(SMM:9-1)194.78 E EP +%%Page: 2 2 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF 192.28(SMM:9-2 SENDMAIL)72 60 R 2.5<8a41>2.5 G +2.5(nI)-2.5 G(nter)-2.5 E(netw)-.15 E(ork Mail Router)-.1 E/F1 10 +/Times-Roman@0 SF .632(arbitrary address syntax)72 96 R .633(es, resolving ambiguities using heuristics speci\214ed by the system administrator) +-.15 F 3.133(,a)-.4 G(s)-3.133 E .348(well as domain-based addressing.) +72 108 R .347(It helps guide the con)5.347 F -.15(ve)-.4 G .347 +(rsion of message formats between disparate net-).15 F -.1(wo)72 120 S +3.394(rks. In).1 F(short,)3.394 E/F2 10/Times-Italic@0 SF(sendmail)3.394 +E F1 .894 +(is designed to assist a graceful transition to consistent internetw) +3.394 F .895(ork addressing)-.1 F(schemes.)72 132 Q .153 +(Section 1 discusses the design goals for)97 160.2 R F2(sendmail)2.653 E +F1 5.153(.S)C .152(ection 2 gi)-5.153 F -.15(ve)-.25 G 2.652(sa).15 G +2.652(no)-2.652 G -.15(ve)-2.802 G(rvie).15 E 2.652(wo)-.25 G 2.652(ft) +-2.652 G .152(he basic functions)-2.652 F .644(of the system.)72 172.2 R +.644(In section 3, details of usage are discussed.)5.644 F .644 +(Section 4 compares)5.644 F F2(sendmail)3.144 E F1 .645 +(to other internet)3.144 F(mail routers, and an e)72 184.2 Q -.25(va) +-.25 G(luation of).25 E F2(sendmail)2.5 E F1(is gi)2.5 E -.15(ve)-.25 G +2.5(ni).15 G 2.5(ns)-2.5 G(ection 5, including future plans.)-2.5 E F0 +2.5(1. DESIGN)72 208.2 R(GO)2.5 E(ALS)-.4 E F1(Design goals for)112 +224.4 Q F2(sendmail)2.5 E F1(include:)2.5 E 12.5(\(1\) Compatibility)92 +240.6 R 1.363(with the e)3.864 F 1.363 +(xisting mail programs, including Bell v)-.15 F 1.363 +(ersion 6 mail, Bell v)-.15 F 1.363(ersion 7)-.15 F 1.202 +(mail [UNIX83], Berk)118.66 252.6 R(ele)-.1 E(y)-.15 E F2(Mail)3.702 E +F1 1.202([Shoens79], BerkNet mail [Schmidt79], and hopefully UUCP)3.702 +F(mail [No)118.66 264.6 Q(witz78a, No)-.25 E 2.5(witz78b]. ARP)-.25 F +(ANET mail [Crock)-.92 E(er77a, Postel77] w)-.1 E(as also required.)-.1 +E 12.5(\(2\) Reliability)92 280.8 R 4.003(,i)-.65 G 4.003(nt)-4.003 G +1.502(he sense of guaranteeing that e)-4.003 F -.15(ve)-.25 G 1.502 +(ry message is correctly deli).15 F -.15(ve)-.25 G 1.502 +(red or at least).15 F .368(brought to the attention of a human for correct disposal; no message should e) +118.66 292.8 R -.15(ve)-.25 G 2.868(rb).15 G 2.868(ec)-2.868 G +(ompletely)-2.868 E 2.541(lost. This)118.66 304.8 R .041(goal w)2.541 F +.041(as considered essential because of the emphasis on mail in our en) +-.1 F 2.54(vironment. It)-.4 F 1.754 +(has turned out to be one of the hardest goals to satisfy)118.66 316.8 R +4.255(,e)-.65 G 1.755(specially in the f)-4.255 F 1.755(ace of the man) +-.1 F(y)-.15 E .978(anomalous message formats produced by v)118.66 328.8 +R .977(arious ARP)-.25 F .977(ANET sites.)-.92 F -.15(Fo)5.977 G 3.477 +(re).15 G .977(xample, certain sites)-3.627 F .069 +(generate improperly formated addresses, occasionally causing error) +118.66 340.8 R .069(-message loops.)-.2 F .069(Some hosts)5.069 F .063(use blanks in names, causing problems with UNIX mail programs that assume that an address is) +118.66 352.8 R .111(one w)118.66 364.8 R 2.611(ord. The)-.1 F .111 +(semantics of some \214elds are interpreted slightly dif)2.611 F .112 +(ferently by dif)-.25 F .112(ferent sites.)-.25 F(In)5.112 E(summary) +118.66 376.8 Q 3.023(,t)-.65 G .523(he obscure features of the ARP) +-3.023 F .523(ANET mail protocol really)-.92 F F2(ar)3.023 E(e)-.37 E F1 +.522(used and are dif)3.023 F(\214cult)-.25 E(to support, b)118.66 388.8 +Q(ut must be supported.)-.2 E 12.5(\(3\) Existing)92 405 R(softw)2.938 E +.438(are to do actual deli)-.1 F -.15(ve)-.25 G .439 +(ry should be used whene).15 F -.15(ve)-.25 G 2.939(rp).15 G 2.939 +(ossible. This)-2.939 F .439(goal deri)2.939 F -.15(ve)-.25 G 2.939(sa) +.15 G(s)-2.939 E +(much from political and practical considerations as technical.)118.66 +417 Q 12.5(\(4\) Easy)92 433.2 R -.15(ex)2.899 G .399(pansion to f).15 F +.399(airly comple)-.1 F 2.898(xe)-.15 G -.4(nv)-2.898 G .398 +(ironments, including multiple connections to a single net-).4 F -.1(wo) +118.66 445.2 S .115 +(rk type \(such as with multiple UUCP or Ether nets [Metcalfe76]\).).1 F +.115(This goal requires consid-)5.115 F .587(eration of the contents of an address as well as its syntax in order to determine which g) +118.66 457.2 R(ate)-.05 E -.1(wa)-.25 G(y).1 E 1.018(to use.)118.66 +469.2 R -.15(Fo)6.018 G 3.518(re).15 G 1.018(xample, the ARP)-3.668 F +1.019(ANET is bringing up the TCP protocol to replace the old NCP)-.92 F +4.791(protocol. No)118.66 481.2 R 2.291(host at Berk)4.791 F(ele)-.1 E +4.791(yr)-.15 G 2.291(uns both TCP and NCP)-4.791 F 4.791(,s)-1.11 G +4.79(oi)-4.791 G 4.79(ti)-4.79 G 4.79(sn)-4.79 G 2.29 +(ecessary to look at the)-4.79 F(ARP)118.66 493.2 Q .016 +(ANET host name to determine whether to route mail to an NCP g)-.92 F +(ate)-.05 E -.1(wa)-.25 G 2.517(yo).1 G 2.517(raT)-2.517 G .017(CP g) +-2.517 F(ate)-.05 E -.1(wa)-.25 G -.65(y.).1 G 12.5 +(\(5\) Con\214guration)92 509.4 R .145 +(should not be compiled into the code.)2.645 F 2.645(As)5.145 G .145 +(ingle compiled program should be able)-2.645 F .91(to run as is at an) +118.66 521.4 R 3.41(ys)-.15 G .91(ite \(barring such basic changes as the CPU type or the operating system\).) +-3.41 F 2.61 -.8(We h)118.66 533.4 T -2.25 -.2(av e).8 H 1.009 +(found this seemingly unimportant goal to be critical in real life.)3.71 +F 1.009(Besides the simple)6.009 F .66(problems that occur when an) +118.66 545.4 R 3.16(yp)-.15 G .66(rogram gets recompiled in a dif)-3.16 +F .66(ferent en)-.25 F .66(vironment, man)-.4 F 3.16(ys)-.15 G(ites) +-3.16 E(lik)118.66 557.4 Q 2.5(et)-.1 G 2.5<6f99>-2.5 G +(\214ddle\232 with an)-2.5 E(ything that the)-.15 E 2.5(yw)-.15 G +(ill be recompiling an)-2.5 E(yw)-.15 E(ay)-.1 E(.)-.65 E(\(6\))92 573.6 +Q F2(Sendmail)15 E F1 .184(must be able to let v)2.684 F .184 +(arious groups maintain their o)-.25 F .184 +(wn mailing lists, and let indi)-.25 F(viduals)-.25 E(specify their o) +118.66 585.6 Q(wn forw)-.25 E +(arding, without modifying the system alias \214le.)-.1 E 12.5 +(\(7\) Each)92 601.8 R .313 +(user should be able to specify which mailer to e)2.813 F -.15(xe)-.15 G +.313(cute to process mail being deli).15 F -.15(ve)-.25 G .314(red for) +.15 F 3.098(him. This)118.66 613.8 R .598(feature allo)3.098 F .598 +(ws users who are using specialized mailers that use a dif)-.25 F .598 +(ferent format to)-.25 F -.2(bu)118.66 625.8 S .25(ild their en).2 F .25 +(vironment without changing the system, and f)-.4 F .25 +(acilitates specialized functions \(such)-.1 F +(as returning an \231I am on v)118.66 637.8 Q(acation\232 message\).) +-.25 E 12.5(\(8\) Netw)92 654 R 1.553(ork traf)-.1 F 1.552(\214c should be minimized by batching addresses to a single host where possible,) +-.25 F(without assistance from the user)118.66 666 Q(.)-.55 E .374 +(These goals moti)112 682.2 R -.25(va)-.25 G .374 +(ted the architecture illustrated in \214gure 1.).25 F .375 +(The user interacts with a mail gen-)5.375 F .491 +(erating and sending program.)87 694.2 R .491 +(When the mail is created, the generator calls)5.491 F F2(sendmail)2.99 +E F1 2.99(,w)C .49(hich routes the)-2.99 F .84 +(message to the correct mailer\(s\).)87 706.2 R .841 +(Since some of the senders may be netw)5.84 F .841(ork serv)-.1 F .841 +(ers and some of the)-.15 F(mailers may be netw)87 718.2 Q(ork clients,) +-.1 E F2(sendmail)2.5 E F1(may be used as an internet mail g)2.5 E(ate) +-.05 E -.1(wa)-.25 G -.65(y.).1 G EP +%%Page: 3 3 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF(SENDMAIL \212 An Inter)72 60 Q(netw)-.15 E +(ork Mail Router)-.1 E(SMM:9-3)194.78 E .4 LW 77 108 72 108 DL 79 108 74 +108 DL 84 108 79 108 DL 89 108 84 108 DL 94 108 89 108 DL 99 108 94 108 +DL 104 108 99 108 DL 109 108 104 108 DL 114 108 109 108 DL 119 108 114 +108 DL 124 108 119 108 DL 129 108 124 108 DL 134 108 129 108 DL 139 108 +134 108 DL 144 108 139 108 DL 149 108 144 108 DL 154 108 149 108 DL 159 +108 154 108 DL 164 108 159 108 DL 169 108 164 108 DL 174 108 169 108 DL +179 108 174 108 DL 184 108 179 108 DL 189 108 184 108 DL 194 108 189 108 +DL 199 108 194 108 DL 204 108 199 108 DL 209 108 204 108 DL 214 108 209 +108 DL 219 108 214 108 DL 224 108 219 108 DL 229 108 224 108 DL 234 108 +229 108 DL 239 108 234 108 DL 244 108 239 108 DL 249 108 244 108 DL 254 +108 249 108 DL 259 108 254 108 DL 264 108 259 108 DL 269 108 264 108 DL +274 108 269 108 DL 279 108 274 108 DL 284 108 279 108 DL 289 108 284 108 +DL 294 108 289 108 DL 299 108 294 108 DL 304 108 299 108 DL 309 108 304 +108 DL 314 108 309 108 DL 319 108 314 108 DL 324 108 319 108 DL 329 108 +324 108 DL 334 108 329 108 DL 339 108 334 108 DL 344 108 339 108 DL 349 +108 344 108 DL 354 108 349 108 DL 359 108 354 108 DL 364 108 359 108 DL +369 108 364 108 DL 374 108 369 108 DL 379 108 374 108 DL 384 108 379 108 +DL 389 108 384 108 DL 394 108 389 108 DL 399 108 394 108 DL 404 108 399 +108 DL 409 108 404 108 DL 414 108 409 108 DL 419 108 414 108 DL 424 108 +419 108 DL 429 108 424 108 DL 434 108 429 108 DL 439 108 434 108 DL 444 +108 439 108 DL 449 108 444 108 DL 454 108 449 108 DL 459 108 454 108 DL +464 108 459 108 DL 469 108 464 108 DL 474 108 469 108 DL 479 108 474 108 +DL 484 108 479 108 DL 489 108 484 108 DL 494 108 489 108 DL 499 108 494 +108 DL 504 108 499 108 DL 216 171.6 MT 0 -36 RL -72 0 RL 0 36 RL CL ST +/F1 10/Times-Roman@0 SF(sender1)164.45 155.8 Q 324 171.6 MT 0 -36 RL -72 +0 RL 0 36 RL CL ST(sender2)272.45 155.8 Q 432 171.6 MT 0 -36 RL -72 0 RL +0 36 RL CL ST(sender3)380.45 155.8 Q 288 207.6 288 171.6 DL 288 207.6 MT +-1.8 -7.2 RL 3.6 0 RL CL BL 288 207.6 MT -1.8 -7.2 RL 3.6 0 RL CL ST 360 +243.6 MT 0 -36 RL -144 0 RL 0 36 RL CL ST(sendmail)269.945 227.8 Q 288 +279.6 288 243.6 DL 288 279.6 MT -1.8 -7.2 RL 3.6 0 RL CL BL 288 279.6 MT +-1.8 -7.2 RL 3.6 0 RL CL ST 216 315.6 MT 0 -36 RL -72 0 RL 0 36 RL CL ST +(mailer1)164.725 299.8 Q 324 315.6 MT 0 -36 RL -72 0 RL 0 36 RL CL ST +(mailer2)272.725 299.8 Q 432 315.6 MT 0 -36 RL -72 0 RL 0 36 RL CL ST +(mailer3)380.725 299.8 Q 252 207.6 180 171.6 DL 252 207.6 MT -7.272 +-1.584 RL 1.584 -3.24 RL CL BL 252 207.6 MT -7.272 -1.584 RL 1.584 -3.24 +RL CL ST 324 207.6 396 171.6 DL 324 207.6 MT 5.616 -4.824 RL 1.584 3.24 +RL CL BL 324 207.6 MT 5.616 -4.824 RL 1.584 3.24 RL CL ST 180 279.6 252 +243.6 DL 180 279.6 MT 5.616 -4.824 RL 1.584 3.24 RL CL BL 180 279.6 MT +5.616 -4.824 RL 1.584 3.24 RL CL ST 396 279.6 324 243.6 DL 396 279.6 MT +-7.272 -1.584 RL 1.584 -3.24 RL CL BL 396 279.6 MT -7.272 -1.584 RL +1.584 -3.24 RL CL ST(Figure 1 \212 Sendmail System Structure.)208 346.8 +Q 77 358.8 72 358.8 DL 79 358.8 74 358.8 DL 84 358.8 79 358.8 DL 89 +358.8 84 358.8 DL 94 358.8 89 358.8 DL 99 358.8 94 358.8 DL 104 358.8 99 +358.8 DL 109 358.8 104 358.8 DL 114 358.8 109 358.8 DL 119 358.8 114 +358.8 DL 124 358.8 119 358.8 DL 129 358.8 124 358.8 DL 134 358.8 129 +358.8 DL 139 358.8 134 358.8 DL 144 358.8 139 358.8 DL 149 358.8 144 +358.8 DL 154 358.8 149 358.8 DL 159 358.8 154 358.8 DL 164 358.8 159 +358.8 DL 169 358.8 164 358.8 DL 174 358.8 169 358.8 DL 179 358.8 174 +358.8 DL 184 358.8 179 358.8 DL 189 358.8 184 358.8 DL 194 358.8 189 +358.8 DL 199 358.8 194 358.8 DL 204 358.8 199 358.8 DL 209 358.8 204 +358.8 DL 214 358.8 209 358.8 DL 219 358.8 214 358.8 DL 224 358.8 219 +358.8 DL 229 358.8 224 358.8 DL 234 358.8 229 358.8 DL 239 358.8 234 +358.8 DL 244 358.8 239 358.8 DL 249 358.8 244 358.8 DL 254 358.8 249 +358.8 DL 259 358.8 254 358.8 DL 264 358.8 259 358.8 DL 269 358.8 264 +358.8 DL 274 358.8 269 358.8 DL 279 358.8 274 358.8 DL 284 358.8 279 +358.8 DL 289 358.8 284 358.8 DL 294 358.8 289 358.8 DL 299 358.8 294 +358.8 DL 304 358.8 299 358.8 DL 309 358.8 304 358.8 DL 314 358.8 309 +358.8 DL 319 358.8 314 358.8 DL 324 358.8 319 358.8 DL 329 358.8 324 +358.8 DL 334 358.8 329 358.8 DL 339 358.8 334 358.8 DL 344 358.8 339 +358.8 DL 349 358.8 344 358.8 DL 354 358.8 349 358.8 DL 359 358.8 354 +358.8 DL 364 358.8 359 358.8 DL 369 358.8 364 358.8 DL 374 358.8 369 +358.8 DL 379 358.8 374 358.8 DL 384 358.8 379 358.8 DL 389 358.8 384 +358.8 DL 394 358.8 389 358.8 DL 399 358.8 394 358.8 DL 404 358.8 399 +358.8 DL 409 358.8 404 358.8 DL 414 358.8 409 358.8 DL 419 358.8 414 +358.8 DL 424 358.8 419 358.8 DL 429 358.8 424 358.8 DL 434 358.8 429 +358.8 DL 439 358.8 434 358.8 DL 444 358.8 439 358.8 DL 449 358.8 444 +358.8 DL 454 358.8 449 358.8 DL 459 358.8 454 358.8 DL 464 358.8 459 +358.8 DL 469 358.8 464 358.8 DL 474 358.8 469 358.8 DL 479 358.8 474 +358.8 DL 484 358.8 479 358.8 DL 489 358.8 484 358.8 DL 494 358.8 489 +358.8 DL 499 358.8 494 358.8 DL 504 358.8 499 358.8 DL F0 2.5(2. O)72 +394.8 R(VER)-.5 E(VIEW)-.55 E 2.5(2.1. System)87 418.8 R(Or)2.5 E +(ganization)-.1 E/F2 10/Times-Italic@0 SF(Sendmail)127 435 Q F1 .874 +(neither interf)3.374 F .874 +(aces with the user nor does actual mail deli)-.1 F -.15(ve)-.25 G(ry) +.15 E 5.873(.R)-.65 G(ather)-5.873 E 3.373(,i)-.4 G 3.373(tc)-3.373 G +.873(ollects a)-3.373 F .619(message generated by a user interf)102 447 +R .619(ace program \(UIP\) such as Berk)-.1 F(ele)-.1 E(y)-.15 E F2 +(Mail)3.12 E F1 3.12(,M)C 3.12(S[)-3.12 G(Crock)-3.12 E .62(er77b], or) +-.1 F 1.428 +(MH [Borden79], edits the message as required by the destination netw) +102 459 R 1.427(ork, and calls appropriate)-.1 F .28 +(mailers to do mail deli)102 473 R -.15(ve)-.25 G .281 +(ry or queueing for netw).15 F .281(ork transmission)-.1 F/F3 7 +/Times-Roman@0 SF(1)-4 I F1 5.281(.T)4 K .281(his discipline allo)-5.281 +F .281(ws the inser)-.25 F(-)-.2 E 1.354(tion of ne)102 485 R 3.854(wm) +-.25 G 1.354(ailers at minimum cost.)-3.854 F 1.354(In this sense)6.354 +F F2(sendmail)3.853 E F1 1.353(resembles the Message Processing)3.853 F +(Module \(MPM\) of [Postel79b].)102 497 Q F0 2.5(2.2. Interfaces)87 521 +R(to the Outside W)2.5 E(orld)-.75 E F1 .041(There are three w)127 537.2 +R(ays)-.1 E F2(sendmail)2.541 E F1 .041 +(can communicate with the outside w)2.541 F .042(orld, both in recei)-.1 +F .042(ving and)-.25 F 1.195(in sending mail.)102 549.2 R 1.194 +(These are using the con)6.194 F -.15(ve)-.4 G 1.194(ntional UNIX ar).15 +F 1.194(gument v)-.18 F 1.194(ector/return status, speaking)-.15 F +(SMTP o)102 561.2 Q -.15(ve)-.15 G 2.5(rap).15 G +(air of UNIX pipes, and speaking SMTP o)-2.5 E -.15(ve)-.15 G 2.5(ra).15 +G 2.5(ni)-2.5 G(nterprocess\(or\) channel.)-2.5 E F0 2.5(2.2.1. Ar)102 +585.2 R(gument v)-.1 E(ector/exit status)-.1 E F1 .52(This technique is the standard UNIX method for communicating with the process.) +142 601.4 R 3.02(Al)5.52 G(ist)-3.02 E .442 +(of recipients is sent in the ar)117 613.4 R .441(gument v)-.18 F(ector) +-.15 E 2.941(,a)-.4 G .441 +(nd the message body is sent on the standard input.)-2.941 F(An)117 +625.4 Q .351(ything that the mailer prints is simply collected and sent back to the sender if there were an) +-.15 F(y)-.15 E 2.621(problems. The)117 637.4 R -.15(ex)2.621 G .121(it status from the mailer is collected after the message is sent, and a diagnostic) +.15 F(is printed if appropriate.)117 649.4 Q .32 LW 76 678.8 72 678.8 DL +80 678.8 76 678.8 DL 84 678.8 80 678.8 DL 88 678.8 84 678.8 DL 92 678.8 +88 678.8 DL 96 678.8 92 678.8 DL 100 678.8 96 678.8 DL 104 678.8 100 +678.8 DL 108 678.8 104 678.8 DL 112 678.8 108 678.8 DL 116 678.8 112 +678.8 DL 120 678.8 116 678.8 DL 124 678.8 120 678.8 DL 128 678.8 124 +678.8 DL 132 678.8 128 678.8 DL 136 678.8 132 678.8 DL 140 678.8 136 +678.8 DL 144 678.8 140 678.8 DL 148 678.8 144 678.8 DL 152 678.8 148 +678.8 DL 156 678.8 152 678.8 DL 160 678.8 156 678.8 DL 164 678.8 160 +678.8 DL 168 678.8 164 678.8 DL 172 678.8 168 678.8 DL 176 678.8 172 +678.8 DL 180 678.8 176 678.8 DL 184 678.8 180 678.8 DL 188 678.8 184 +678.8 DL 192 678.8 188 678.8 DL 196 678.8 192 678.8 DL 200 678.8 196 +678.8 DL 204 678.8 200 678.8 DL 208 678.8 204 678.8 DL 212 678.8 208 +678.8 DL 216 678.8 212 678.8 DL/F4 5/Times-Roman@0 SF(1)93.6 689.2 Q/F5 +8/Times-Roman@0 SF -.12(ex)3.2 K(cept when mailing to a \214le, when).12 +E/F6 8/Times-Italic@0 SF(sendmail)2 E F5(does the deli)2 E -.12(ve)-.2 G +(ry directly).12 E(.)-.52 E EP +%%Page: 4 4 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF 192.28(SMM:9-4 SENDMAIL)72 60 R 2.5<8a41>2.5 G +2.5(nI)-2.5 G(nter)-2.5 E(netw)-.15 E(ork Mail Router)-.1 E 2.5 +(2.2.2. SMTP)102 96 R -.1(ove)2.5 G 2.5(rp).1 G(ipes)-2.5 E/F1 10 +/Times-Roman@0 SF .774 +(The SMTP protocol [Postel82] can be used to run an interacti)142 112.2 +R 1.074 -.15(ve l)-.25 H .774(ock-step interf).15 F .774(ace with)-.1 F +.507(the mailer)117 124.2 R 5.507(.A)-.55 G .506 +(subprocess is still created, b)-2.5 F .506 +(ut no recipient addresses are passed to the mailer via)-.2 F .075 +(the ar)117 136.2 R .075(gument list.)-.18 F .075(Instead, the)5.075 F +2.575(ya)-.15 G .075 +(re passed one at a time in commands sent to the processes stan-)-2.575 +F .19(dard input.)117 148.2 R(An)5.19 E .19(ything appearing on the standard output must be a reply code in a special format.) +-.15 F F0 2.5(2.2.3. SMTP)102 172.2 R -.1(ove)2.5 G 2.5(ra).1 G 2.5(nI) +-2.5 G(PC connection)-2.5 E F1 .366 +(This technique is similar to the pre)142 188.4 R .366 +(vious technique, e)-.25 F .366(xcept that it uses a 4.2bsd IPC chan-) +-.15 F .953(nel [UNIX83].)117 200.4 R .953(This method is e)5.953 F .953 +(xceptionally \215e)-.15 F .952 +(xible in that the mailer need not reside on the)-.15 F(same machine.) +117 212.4 Q(It is normally used to connect to a sendmail process on another machine.) +5 E F0 2.5(2.3. Operational)87 236.4 R(Description)2.5 E F1 .228 +(When a sender w)127 252.6 R .228 +(ants to send a message, it issues a request to)-.1 F/F2 10 +/Times-Italic@0 SF(sendmail)2.729 E F1 .229(using one of the three)2.729 +F 1.028(methods described abo)102 264.6 R -.15(ve)-.15 G(.).15 E F2 +(Sendmail)6.028 E F1 1.028(operates in tw)3.528 F 3.528(od)-.1 G 1.028 +(istinct phases.)-3.528 F 1.028(In the \214rst phase, it collects)6.028 +F .612(and stores the message.)102 276.6 R .612 +(In the second phase, message deli)5.612 F -.15(ve)-.25 G .612 +(ry occurs.).15 F .612(If there were errors during)5.612 F 1.59 +(processing during the second phase,)102 288.6 R F2(sendmail)4.09 E F1 +1.59(creates and returns a ne)4.09 F 4.09(wm)-.25 G 1.59 +(essage describing the)-4.09 F +(error and/or returns an status code telling what went wrong.)102 300.6 +Q F0 2.5(2.3.1. Ar)102 324.6 R(gument pr)-.1 E(ocessing and addr)-.18 E +(ess parsing)-.18 E F1(If)142 340.8 Q F2(sendmail)3.321 E F1 .821 +(is called using one of the tw)3.321 F 3.322(os)-.1 G .822 +(ubprocess techniques, the ar)-3.322 F .822(guments are \214rst)-.18 F +.797(scanned and option speci\214cations are processed.)117 352.8 R .796 +(Recipient addresses are then collected, either)5.796 F .717(from the command line or from the SMTP RCPT command, and a list of recipients is created.) +117 364.8 R .347(Aliases are e)117 376.8 R .347 +(xpanded at this step, including mailing lists.)-.15 F .347(As much v) +5.347 F .346(alidation as possible of the)-.25 F 1.001 +(addresses is done at this step: syntax is check)117 388.8 R 1.002 +(ed, and local addresses are v)-.1 F 1.002(eri\214ed, b)-.15 F 1.002 +(ut detailed)-.2 F .709 +(checking of host names and addresses is deferred until deli)117 400.8 R +-.15(ve)-.25 G(ry).15 E 5.708(.F)-.65 G(orw)-5.858 E .708 +(arding is also performed)-.1 F(as the local addresses are v)117 412.8 Q +(eri\214ed.)-.15 E F2(Sendmail)142 429 Q F1 .307 +(appends each address to the recipient list after parsing.)2.807 F .307 +(When a name is aliased)5.307 F .322(or forw)117 441 R .322(arded, the old name is retained in the list, and a \215ag is set that tells the deli) +-.1 F -.15(ve)-.25 G .322(ry phase to).15 F .479(ignore this recipient.) +117 453 R .479(This list is k)5.479 F .479 +(ept free from duplicates, pre)-.1 F -.15(ve)-.25 G .48 +(nting alias loops and duplicate).15 F(messages deli)117 465 Q -.15(ve) +-.25 G(rd to the same recipient, as might occur if a person is in tw).15 +E 2.5(og)-.1 G(roups.)-2.5 E F0 2.5(2.3.2. Message)102 489 R(collection) +2.5 E F2(Sendmail)142 505.2 Q F1 .454(then collects the message.)2.954 F +.454(The message should ha)5.454 F .754 -.15(ve a h)-.2 H .453 +(eader at the be).15 F(ginning.)-.15 E .778 +(No formatting requirements are imposed on the message e)117 517.2 R +.778(xcept that the)-.15 F 3.278(ym)-.15 G .778(ust be lines of te) +-3.278 F(xt)-.15 E .78(\(i.e., binary data is not allo)117 529.2 R 3.28 +(wed\). The)-.25 F .779(header is parsed and stored in memory)3.28 F +3.279(,a)-.65 G .779(nd the body of)-3.279 F(the message is sa)117 541.2 +Q -.15(ve)-.2 G 2.5(di).15 G 2.5(nat)-2.5 G(emporary \214le.)-2.5 E +3.227 -.8(To s)142 557.4 T 1.627(implify the program interf).8 F 1.628 +(ace, the message is collected e)-.1 F -.15(ve)-.25 G 4.128(ni).15 G +4.128(fn)-4.128 G 4.128(oa)-4.128 G 1.628(ddresses were)-4.128 F -.25 +(va)117 569.4 S 2.5(lid. The).25 F +(message will be returned with an error)2.5 E(.)-.55 E F0 2.5 +(2.3.3. Message)102 593.4 R(deli)2.5 E -.1(ve)-.1 G(ry).1 E F1 -.15(Fo) +142 609.6 S 2.618(re).15 G .117 +(ach unique mailer and host in the recipient list,)-2.618 F F2(sendmail) +2.617 E F1 .117(calls the appropriate mailer)2.617 F(.)-.55 E .619 +(Each mailer in)117 621.6 R -.2(vo)-.4 G .619 +(cation sends to all users recei).2 F .619 +(ving the message on one host.)-.25 F .62(Mailers that only)5.62 F +(accept one recipient at a time are handled properly)117 633.6 Q(.)-.65 +E .47 +(The message is sent to the mailer using one of the same three interf) +142 649.8 R .47(aces used to submit a)-.1 F 1.465(message to sendmail.) +117 661.8 R 1.465(Each cop)6.465 F 3.965(yo)-.1 G 3.965(ft)-3.965 G +1.465(he message is prepended by a customized header)-3.965 F 6.465(.T) +-.55 G(he)-6.465 E 1.455(mailer status code is caught and check)117 +673.8 R 1.455(ed, and a suitable error message gi)-.1 F -.15(ve)-.25 G +3.955(na).15 G 3.955(sa)-3.955 G(ppropriate.)-3.955 E .589(The e)117 +685.8 R .589(xit code must conform to a system standard or a generic message \(\231Service una) +-.15 F -.25(va)-.2 G(ilable\232\)).25 E(is gi)117 697.8 Q -.15(ve)-.25 G +(n.).15 E EP +%%Page: 5 5 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF(SENDMAIL \212 An Inter)72 60 Q(netw)-.15 E +(ork Mail Router)-.1 E(SMM:9-5)194.78 E 2.5(2.3.4. Queueing)102 96 R +-.25(fo)2.5 G 2.5(rr).25 G(etransmission)-2.68 E/F1 10/Times-Roman@0 SF +.209(If the mailer returned an status that indicated that it might be able to handle the mail later) +142 112.2 R(,)-.4 E/F2 10/Times-Italic@0 SF(sendmail)117 124.2 Q F1 +(will queue the mail and try ag)2.5 E(ain later)-.05 E(.)-.55 E F0 2.5 +(2.3.5. Retur)102 148.2 R 2.5(nt)-.15 G 2.5(os)-2.5 G(ender)-2.5 E F1 +.588(If errors occur during processing,)142 164.4 R F2(sendmail)3.088 E +F1 .589(returns the message to the sender for retrans-)3.088 F 3.133 +(mission. The)117 176.4 R .632(letter can be mailed back or written in the \214le \231dead.letter\232 in the sender') +3.133 F 3.132(sh)-.55 G(ome)-3.132 E(directory)117 190.4 Q/F3 7 +/Times-Roman@0 SF(2)-4 I F1(.)4 I F0 2.5(2.4. Message)87 214.4 R +(Header Editing)2.5 E F1 1.756 +(Certain editing of the message header occurs automatically)127 230.6 R +6.756(.H)-.65 G 1.756(eader lines can be inserted)-6.756 F .41 +(under control of the con\214guration \214le.)102 242.6 R .41 +(Some lines can be mer)5.41 F .41(ged; for e)-.18 F .41 +(xample, a \231From:\232 line and)-.15 F 2.5<6199>102 254.6 S +(Full-name:\232 line can be mer)-2.5 E(ged under certain circumstances.) +-.18 E F0 2.5(2.5. Con\214guration)87 278.6 R(File)2.5 E F1 .798(Almost all con\214guration information is read at runtime from an ASCII \214le, encoding macro) +127 294.8 R .679(de\214nitions \(de\214ning the v)102 306.8 R .678(alue of macros used internally\), header declarations \(telling sendmail the) +-.25 F 1.009(format of header lines that it will process specially)102 +318.8 R 3.509(,i)-.65 G 1.009 +(.e., lines that it will add or reformat\), mailer)-3.509 F .478 +(de\214nitions \(gi)102 330.8 R .478(ving information such as the location and characteristics of each mailer\), and address) +-.25 F(re)102 342.8 Q .428 +(writing rules \(a limited production system to re)-.25 F .429 +(write addresses which is used to parse and re)-.25 F(write)-.25 E +(the addresses\).)102 354.8 Q 2.828 -.8(To i)127 371 T(mpro).8 E 1.528 +-.15(ve p)-.15 H 1.228(erformance when reading the con\214guration \214le, a memory image can be pro-) +.15 F 2.5(vided. This)102 383 R(pro)2.5 E +(vides a \231compiled\232 form of the con\214guration \214le.)-.15 E F0 +2.5(3. USA)72 407 R(GE AND IMPLEMENT)-.55 E -.95(AT)-.9 G(ION).95 E 2.5 +(3.1. Ar)87 431 R(guments)-.1 E F1(Ar)127 447.2 Q .376 +(guments may be \215ags and addresses.)-.18 F .377(Flags set v)5.377 F +.377(arious processing options.)-.25 F -.15(Fo)5.377 G(llo).15 E .377 +(wing \215ag)-.25 F(ar)102 459.2 Q .281(guments, address ar)-.18 F .281 +(guments may be gi)-.18 F -.15(ve)-.25 G .281 +(n, unless we are running in SMTP mode.).15 F .28(Addresses fol-)5.28 F +(lo)102 471.2 Q 2.5(wt)-.25 G(he syntax in RFC822 [Crock)-2.5 E +(er82] for ARP)-.1 E(ANET address formats.)-.92 E +(In brief, the format is:)5 E 12.5(\(1\) An)107 487.4 R +(ything in parentheses is thro)-.15 E(wn a)-.25 E -.1(wa)-.15 G 2.5(y\() +.1 G(as a comment\).)-2.5 E 12.5(\(2\) An)107 503.6 R .051 +(ything in angle brack)-.15 F .051(ets \(\231<)-.1 F .051 +(>\232\) is preferred o)1.666 F -.15(ve)-.15 G 2.551(ra).15 G -.15(ny) +-2.551 G .051(thing else.).15 F .051(This rule implements the)5.051 F +(ARP)133.66 515.6 Q(ANET standard that addresses of the form)-.92 E +(user name <machine-address>)173.66 531.8 Q(will send to the electronic \231machine-address\232 rather than the human \231user name.) +133.66 548 Q<9a>-.7 E 12.5(\(3\) Double)107 564.2 R 2.246(quotes \() +4.746 F -2.754 2.5("\) q)2.5 H 2.246 +(uote phrases; backslashes quote characters.)-2.5 F 2.246 +(Backslashes are more)7.246 F(po)133.66 576.2 Q .654(werful in that the) +-.25 F 3.154(yw)-.15 G .655(ill cause otherwise equi)-3.154 F -.25(va) +-.25 G .655(lent phrases to compare dif).25 F .655(ferently \212 for) +-.25 F -.15(ex)133.66 588.2 S(ample,).15 E F2(user)2.5 E F1(and)2.5 E F2 +("user")2.5 E F1(are equi)2.5 E -.25(va)-.25 G(lent, b).25 E(ut)-.2 E F2 +(\\user)2.5 E F1(is dif)2.5 E(ferent from either of them.)-.25 E -.15 +(Pa)127 604.4 S 1.12(rentheses, angle brack).15 F 1.12 +(ets, and double quotes must be properly balanced and nested.)-.1 F(The) +6.12 E(re)102 618.4 Q(writing rules control remaining parsing)-.25 E F3 +(3)-4 I F1(.)4 I .32 LW 76 646 72 646 DL 80 646 76 646 DL 84 646 80 646 +DL 88 646 84 646 DL 92 646 88 646 DL 96 646 92 646 DL 100 646 96 646 DL +104 646 100 646 DL 108 646 104 646 DL 112 646 108 646 DL 116 646 112 646 +DL 120 646 116 646 DL 124 646 120 646 DL 128 646 124 646 DL 132 646 128 +646 DL 136 646 132 646 DL 140 646 136 646 DL 144 646 140 646 DL 148 646 +144 646 DL 152 646 148 646 DL 156 646 152 646 DL 160 646 156 646 DL 164 +646 160 646 DL 168 646 164 646 DL 172 646 168 646 DL 176 646 172 646 DL +180 646 176 646 DL 184 646 180 646 DL 188 646 184 646 DL 192 646 188 646 +DL 196 646 192 646 DL 200 646 196 646 DL 204 646 200 646 DL 208 646 204 +646 DL 212 646 208 646 DL 216 646 212 646 DL/F4 5/Times-Roman@0 SF(2) +93.6 656.4 Q/F5 8/Times-Roman@0 SF(Ob)3.2 I(viously)-.12 E 2.226(,i)-.52 +G 2.226(ft)-2.226 G .226(he site gi)-2.226 F .226(ving the error is not the originating site, the only reasonable option is to mail back to the sender) +-.2 F 4.227(.A)-.44 G(lso,)-4.227 E .191(there are man)72 669.2 R 2.191 +(ym)-.12 G .19(ore error disposition options, b)-2.191 F .19(ut the)-.16 +F 2.19(yo)-.12 G .19(nly ef)-2.19 F .19(fect the error message \212 the \231return to sender\232 function is al) +-.2 F -.08(wa)-.08 G .19(ys han-).08 F(dled in one of these tw)72 678.8 +Q 2(ow)-.08 G(ays.)-2.08 E F4(3)93.6 689.2 Q F5 +(Disclaimer: Some special processing is done after re)3.2 I +(writing local names; see belo)-.2 E -.52(w.)-.2 G EP +%%Page: 6 6 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF 192.28(SMM:9-6 SENDMAIL)72 60 R 2.5<8a41>2.5 G +2.5(nI)-2.5 G(nter)-2.5 E(netw)-.15 E(ork Mail Router)-.1 E 2.5 +(3.2. Mail)87 96 R(to Files and Pr)2.5 E(ograms)-.18 E/F1 10 +/Times-Roman@0 SF .609(Files and programs are le)127 112.2 R .609 +(gitimate message recipients.)-.15 F .609(Files pro)5.609 F .609 +(vide archi)-.15 F -.25(va)-.25 G 3.109(ls).25 G .61(torage of mes-) +-3.109 F .124(sages, useful for project administration and history)102 +124.2 R 5.124(.P)-.65 G .124(rograms are useful as recipients in a v) +-5.124 F .124(ariety of)-.25 F .69(situations, for e)102 136.2 R .691(xample, to maintain a public repository of systems messages \(such as the Berk) +-.15 F(ele)-.1 E(y)-.15 E/F2 10/Times-Italic@0 SF(msgs)102 148.2 Q F1 +(program, or the MARS system [Sattle)2.5 E(y78]\).)-.15 E(An)127 164.4 Q +3.188(ya)-.15 G .688(ddress passing through the initial parsing algorithm as a local address \(i.e, not appear) +-3.188 F(-)-.2 E .276(ing to be a v)102 176.4 R .276 +(alid address for another mailer\) is scanned for tw)-.25 F 2.776(os)-.1 +G .277(pecial cases.)-2.776 F .277(If pre\214x)5.277 F .277(ed by a v) +-.15 F(erti-)-.15 E .18(cal bar \(\231)102 188.4 R .833<7c9a>.833 G 2.68 +(\)t)-.833 G .179 +(he rest of the address is processed as a shell command.)-2.68 F .179 +(If the user name be)5.179 F .179(gins with a)-.15 F(slash mark \(\231/) +102 200.4 Q +(\232\) the name is used as a \214le name, instead of a login name.).833 +E .241(Files that ha)127 216.6 R .541 -.15(ve s)-.2 H .241 +(etuid or setgid bits set b).15 F .241(ut no e)-.2 F -.15(xe)-.15 G .241 +(cute bits set ha).15 F .541 -.15(ve t)-.2 H .241(hose bits honored if) +.15 F F2(send-)2.742 E(mail)102 228.6 Q F1(is running as root.)2.5 E F0 +2.5(3.3. Aliasing,)87 252.6 R -.25(Fo)2.5 G(rwarding, Inclusion).25 E F2 +(Sendmail)127 268.8 Q F1 1.075(reroutes mail three w)3.575 F 3.575 +(ays. Aliasing)-.1 F 1.074(applies system wide.)3.575 F -.15(Fo)6.074 G +(rw).15 E 1.074(arding allo)-.1 F 1.074(ws each)-.25 F .233 +(user to reroute incoming mail destined for that account.)102 280.8 R +.233(Inclusion directs)5.233 F F2(sendmail)2.733 E F1 .233 +(to read a \214le for)2.733 F 2.5(al)102 292.8 S +(ist of addresses, and is normally used in conjunction with aliasing.) +-2.5 E F0 2.5(3.3.1. Aliasing)102 316.8 R F1 1.554 +(Aliasing maps names to address lists using a system-wide \214le.)142 +333 R 1.553(This \214le is inde)6.553 F -.15(xe)-.15 G 4.053(dt).15 G(o) +-4.053 E 1.1(speed access.)117 345 R 1.101 +(Only names that parse as local are allo)6.1 F 1.101 +(wed as aliases; this guarantees a unique)-.25 F -.1(ke)117 357 S 2.5 +(y\()-.05 G(since there are no nicknames for the local host\).)-2.5 E F0 +2.5(3.3.2. F)102 381 R(orwarding)-.25 E F1 .651 +(After aliasing, recipients that are local and v)142 397.2 R .651 +(alid are check)-.25 F .65(ed for the e)-.1 F .65 +(xistence of a \231.for)-.15 F(-)-.2 E -.1(wa)117 409.2 S .493 +(rd\232 \214le in their home directory).1 F 5.493(.I)-.65 G 2.994(fi) +-5.493 G 2.994(te)-2.994 G .494(xists, the message is)-3.144 F F2(not) +2.994 E F1 .494(sent to that user)2.994 F 2.994(,b)-.4 G .494 +(ut rather to)-3.194 F .37(the list of users in that \214le.)117 421.2 R +.37 +(Often this list will contain only one address, and the feature will be) +5.37 F(used for netw)117 433.2 Q(ork mail forw)-.1 E(arding.)-.1 E -.15 +(Fo)142 449.4 S(rw).15 E 1.151 +(arding also permits a user to specify a pri)-.1 F -.25(va)-.25 G 1.152 +(te incoming mailer).25 F 6.152(.F)-.55 G 1.152(or e)-6.302 F 1.152 +(xample, for)-.15 F(-)-.2 E -.1(wa)117 461.4 S(rding to:).1 E -2.5 .833 +("| /)157 477.6 T(usr/local/ne)-.833 E(wmail myname")-.25 E +(will use a dif)117 493.8 Q(ferent incoming mailer)-.25 E(.)-.55 E F0 +2.5(3.3.3. Inclusion)102 517.8 R F1 +(Inclusion is speci\214ed in RFC 733 [Crock)142 534 Q(er77a] syntax:)-.1 +E(:Include: pathname)157 550.2 Q .391 +(An address of this form reads the \214le speci\214ed by)117 566.4 R F2 +(pathname)2.891 E F1 .391(and sends to all users listed in that)2.891 F +(\214le.)117 578.4 Q .644(The intent is)142 594.6 R F2(not)3.144 E F1 +.644(to support direct use of this feature, b)3.144 F .644 +(ut rather to use this as a subset of)-.2 F 2.5(aliasing. F)117 606.6 R +(or e)-.15 E(xample, an alias of the form:)-.15 E +(project: :include:/usr/project/userlist)157 622.8 Q 1.93(is a method of letting a project maintain a mailing list without interaction with the system) +117 639 R(administration, e)117 651 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5 +(ft)-2.5 G(he alias \214le is protected.)-2.5 E 2.024 +(It is not necessary to reb)142 667.2 R 2.024(uild the inde)-.2 F 4.524 +(xo)-.15 G 4.524(nt)-4.524 G 2.025 +(he alias database when a :include: list is)-4.524 F(changed.)117 679.2 +Q EP +%%Page: 7 7 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF(SENDMAIL \212 An Inter)72 60 Q(netw)-.15 E +(ork Mail Router)-.1 E(SMM:9-7)194.78 E 2.5(3.4. Message)87 96 R +(Collection)2.5 E/F1 10/Times-Roman@0 SF .857 +(Once all recipient addresses are parsed and v)127 112.2 R .857 +(eri\214ed, the message is collected.)-.15 F .856(The message)5.857 F +(comes in tw)102 124.2 Q 2.5(op)-.1 G +(arts: a message header and a message body)-2.5 E 2.5(,s)-.65 G +(eparated by a blank line.)-2.5 E +(The header is formatted as a series of lines of the form)127 140.4 Q +(\214eld-name: \214eld-v)178 156.6 Q(alue)-.25 E(Field-v)102 172.8 Q +1.366(alue can be split across lines by starting the follo)-.25 F 1.366 +(wing lines with a space or a tab)-.25 F 6.366(.S)-.4 G(ome)-6.366 E +.211(header \214elds ha)102 184.8 R .511 -.15(ve s)-.2 H .211 +(pecial internal meaning, and ha).15 F .511 -.15(ve a)-.2 H .211 +(ppropriate special processing.).15 F .21(Other headers)5.21 F +(are simply passed through.)102 196.8 Q +(Some header \214elds may be added automatically)5 E 2.5(,s)-.65 G +(uch as time stamps.)-2.5 E .86(The body is a series of te)127 213 R +.861(xt lines.)-.15 F .861 +(It is completely uninterpreted and untouched, e)5.861 F .861 +(xcept that)-.15 F 1.43(lines be)102 225 R 1.43(ginning with a dot ha) +-.15 F 1.729 -.15(ve t)-.2 H 1.429(he dot doubled when transmitted o).15 +F -.15(ve)-.15 G 3.929(ra).15 G 3.929(nS)-3.929 G 1.429(MTP channel.) +-3.929 F(This)6.429 E -.15(ex)102 237 S +(tra dot is stripped by the recei).15 E -.15(ve)-.25 G -.55(r.).15 G F0 +2.5(3.5. Message)87 261 R(Deli)2.5 E -.1(ve)-.1 G(ry).1 E F1 .028 +(The send queue is ordered by recei)127 277.2 R .029 +(ving host before transmission to implement message batch-)-.25 F 3.07 +(ing. Each)102 289.2 R .57(address is mark)3.07 F .57 +(ed as it is sent so rescanning the list is safe.)-.1 F .57(An ar)5.57 F +.57(gument list is b)-.18 F .57(uilt as)-.2 F 1.138(the scan proceeds.) +102 301.2 R 1.139 +(Mail to \214les is detected during the scan of the send list.)6.139 F +1.139(The interf)6.139 F 1.139(ace to the)-.1 F(mailer is performed using one of the techniques described in section 2.2.) +102 313.2 Q .996(After a connection is established,)127 329.4 R/F2 10 +/Times-Italic@0 SF(sendmail)3.496 E F1(mak)3.495 E .995(es the per)-.1 F +.995(-mailer changes to the header and)-.2 F .236 +(sends the result to the mailer)102 341.4 R 5.236(.I)-.55 G 2.736(fa) +-5.236 G .537 -.15(ny m)-2.736 H .237(ail is rejected by the mailer).15 +F 2.737(,a\215)-.4 G .237(ag is set to in)-2.737 F -.2(vo)-.4 G .437 -.1 +(ke t).2 H .237(he return-).1 F(to-sender function after all deli)102 +353.4 Q -.15(ve)-.25 G(ry completes.).15 E F0 2.5(3.6. Queued)87 377.4 R +(Messages)2.5 E F1 .163(If the mailer returns a \231temporary f)127 +393.6 R .163(ailure\232 e)-.1 F .162(xit status, the message is queued.) +-.15 F 2.662(Ac)5.162 G .162(ontrol \214le is)-2.662 F .85 +(used to describe the recipients to be sent to and v)102 405.6 R .851 +(arious other parameters.)-.25 F .851(This control \214le is for)5.851 F +(-)-.2 E 1.011(matted as a series of lines, each describing a sender)102 +417.6 R 3.511(,ar)-.4 G 1.011(ecipient, the time of submission, or some) +-3.511 F .776(other salient parameter of the message.)102 429.6 R .776 +(The header of the message is stored in the control \214le, so)5.776 F(that the associated data \214le in the queue is just the temporary \214le that w) +102 441.6 Q(as originally collected.)-.1 E F0 2.5(3.7. Con\214guration) +87 465.6 R F1 .493(Con\214guration is controlled primarily by a con\214guration \214le read at startup.) +127 481.8 R F2(Sendmail)5.492 E F1(should)2.992 E +(not need to be recomplied e)102 493.8 Q(xcept)-.15 E 12.5(\(1\) T)107 +510 R 2.5(oc)-.8 G(hange operating systems \(V6, V7/32V)-2.5 E 2.5(,4) +-1.29 G(BSD\).)-2.5 E 12.5(\(2\) T)107 526.2 R 2.5(or)-.8 G(emo)-2.5 E +.3 -.15(ve o)-.15 H 2.5(ri).15 G +(nsert the DBM \(UNIX database\) library)-2.5 E(.)-.65 E 12.5(\(3\) T) +107 542.4 R 2.5(oc)-.8 G(hange ARP)-2.5 E(ANET reply codes.)-.92 E 12.5 +(\(4\) T)107 558.6 R 2.5(oa)-.8 G +(dd headers \214elds requiring special processing.)-2.5 E .434 +(Adding mailers or changing parsing \(i.e., re)102 574.8 R .435 +(writing\) or routing information does not require recom-)-.25 F +(pilation.)102 586.8 Q 1.317(If the mail is being sent by a local user) +127 603 R 3.817(,a)-.4 G 1.317(nd the \214le \231.mailcf\232 e)-3.817 F +1.317(xists in the sender')-.15 F 3.817(sh)-.55 G(ome)-3.817 E +(directory)102 615 Q 2.721(,t)-.65 G .221(hat \214le is read as a con\214guration \214le after the system con\214guration \214le.) +-2.721 F .222(The primary use)5.222 F +(of this feature is to add header lines.)102 627 Q 3.25(The con\214guration \214le encodes macro de\214nitions, header de\214nitions, mailer de\214nitions,) +127 643.2 R(re)102 655.2 Q(writing rules, and options.)-.25 E F0 2.5 +(3.7.1. Macr)102 679.2 R(os)-.18 E F1 .332 +(Macros can be used in three w)142 695.4 R 2.833(ays. Certain)-.1 F .333 +(macros transmit unstructured te)2.833 F .333(xtual informa-)-.15 F .07 +(tion into the mail system, such as the name)117 707.4 R F2(sendmail) +2.57 E F1 .07(will use to identify itself in error messages.)2.57 F +1.247(Other macros transmit information from)117 719.4 R F2(sendmail) +3.747 E F1 1.247(to the con\214guration \214le for use in creating)3.747 +F EP +%%Page: 8 8 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF 192.28(SMM:9-8 SENDMAIL)72 60 R 2.5<8a41>2.5 G +2.5(nI)-2.5 G(nter)-2.5 E(netw)-.15 E(ork Mail Router)-.1 E/F1 10 +/Times-Roman@0 SF .312(other \214elds \(such as ar)117 96 R .312 +(gument v)-.18 F .312(ectors to mailers\); e.g., the name of the sender) +-.15 F 2.811(,a)-.4 G .311(nd the host and)-2.811 F .848 +(user of the recipient.)117 108 R .848 +(Other macros are unused internally)5.848 F 3.348(,a)-.65 G .848 +(nd can be used as shorthand in the)-3.348 F(con\214guration \214le.)117 +120 Q F0 2.5(3.7.2. Header)102 144 R(declarations)2.5 E F1 .355 +(Header declarations inform)142 160.2 R/F2 10/Times-Italic@0 SF +(sendmail)2.854 E F1 .354(of the format of kno)2.854 F .354 +(wn header lines.)-.25 F(Kno)5.354 E .354(wledge of)-.25 F 2.5(af)117 +172.2 S .5 -.25(ew h)-2.5 H(eader lines is b).25 E(uilt into)-.2 E F2 +(sendmail)2.5 E F1 2.5(,s)C +(uch as the \231From:\232 and \231Date:\232 lines.)-2.5 E 1.201(Most con\214gured headers will be automatically inserted in the outgoing message if the) +142 188.4 R(y)-.15 E(don')117 200.4 Q 2.5(te)-.18 G +(xist in the incoming message.)-2.65 E +(Certain headers are suppressed by some mailers.)5 E F0 2.5 +(3.7.3. Mailer)102 224.4 R(declarations)2.5 E F1 1.756 +(Mailer declarations tell)142 240.6 R F2(sendmail)4.256 E F1 1.756 +(of the v)4.256 F 1.756(arious mailers a)-.25 F -.25(va)-.2 G 1.756 +(ilable to it.).25 F 1.755(The de\214nition)6.755 F .119 +(speci\214es the internal name of the mailer)117 252.6 R 2.619(,t)-.4 G +.12(he pathname of the program to call, some \215ags associ-)-2.619 F +2.036(ated with the mailer)117 264.6 R 4.536(,a)-.4 G 2.036(nd an ar) +-4.536 F 2.036(gument v)-.18 F 2.036 +(ector to be used on the call; this v)-.15 F 2.035(ector is macro-)-.15 +F -.15(ex)117 276.6 S(panded before use.).15 E F0 2.5(3.7.4. Addr)102 +300.6 R(ess r)-.18 E(ewriting rules)-.18 E F1 .458 +(The heart of address parsing in)142 316.8 R F2(sendmail)2.959 E F1 .459 +(is a set of re)2.959 F .459(writing rules.)-.25 F .459 +(These are an ordered)5.459 F .561 +(list of pattern-replacement rules, \(some)117 328.8 R .561(what lik) +-.25 F 3.061(eap)-.1 G .561(roduction system, e)-3.061 F .56 +(xcept that order is criti-)-.15 F 1.905 +(cal\), which are applied to each address.)117 340.8 R 1.905 +(The address is re)6.905 F 1.906(written te)-.25 F 1.906 +(xtually until it is either)-.15 F(re)117 352.8 Q .308 +(written into a special canonical form \(i.e., a \(mailer)-.25 F 2.807 +(,h)-.4 G .307(ost, user\) 3-tuple, such as {arpanet, usc-)-2.807 F .64 +(isif, postel} representing the address \231postel@usc-isif\232\), or it f) +117 364.8 R .641(alls of)-.1 F 3.141(ft)-.25 G .641(he end.)-3.141 F +.641(When a pattern)5.641 F(matches, the rule is reapplied until it f) +117 376.8 Q(ails.)-.1 E 1.222(The con\214guration \214le also supports the editing of addresses into dif) +142 393 R 1.221(ferent formats.)-.25 F -.15(Fo)6.221 G(r).15 E -.15(ex) +117 405 S(ample, an address of the form:).15 E(ucsfcgl!tef)157 421.2 Q +(might be mapped into:)117 437.4 Q(tef@ucsfcgl.UUCP)157 453.6 Q +(to conform to the domain syntax.)117 469.8 Q -.35(Tr)5 G +(anslations can also be done in the other direction.).35 E F0 2.5 +(3.7.5. Option)102 493.8 R(setting)2.5 E F1 1.168(There are se)142 510 R +-.15(ve)-.25 G 1.169 +(ral options that can be set from the con\214guration \214le.).15 F +1.169(These include the)6.169 F(pathnames of v)117 522 Q +(arious support \214les, timeouts, def)-.25 E(ault modes, etc.)-.1 E F0 +2.5(4. COMP)72 546 R(ARISON WITH O)-.74 E(THER MAILERS)-.4 E 2.5 +(4.1. Deli)87 570 R -.1(ve)-.1 G(rmail).1 E F2(Sendmail)127 586.2 Q F1 +(is an outgro)2.5 E(wth of)-.25 E F2(delivermail)2.5 E F1 5(.T)C +(he primary dif)-5 E(ferences are:)-.25 E 12.5(\(1\) Con\214guration)107 +602.4 R .273(information is not compiled in.)2.773 F .272 +(This change simpli\214es man)5.273 F 2.772(yo)-.15 G 2.772(ft)-2.772 G +.272(he problems)-2.772 F(of mo)133.66 614.4 Q(ving to other machines.) +-.15 E(It also allo)5 E(ws easy deb)-.25 E(ugging of ne)-.2 E 2.5(wm) +-.25 G(ailers.)-2.5 E 12.5(\(2\) Address)107 630.6 R .681 +(parsing is more \215e)3.181 F 3.182(xible. F)-.15 F .682(or e)-.15 F +(xample,)-.15 E F2(delivermail)3.182 E F1 .682(only supported one g) +3.182 F(ate)-.05 E -.1(wa)-.25 G 3.182(yt).1 G(o)-3.182 E(an)133.66 +642.6 Q 2.817(yn)-.15 G(etw)-2.817 E .317(ork, whereas)-.1 F F2 +(sendmail)2.817 E F1 .317(can be sensiti)2.817 F .616 -.15(ve t)-.25 H +2.816(oh).15 G .316(ost names and reroute to dif)-2.816 F .316(ferent g) +-.25 F(ate-)-.05 E -.1(wa)133.66 654.6 S(ys.).1 E 12.5(\(3\) F)107 670.8 +R(orw)-.15 E 1.627(arding and :include: features eliminate the requirement that the system alias \214le be) +-.1 F .074(writable by an)133.66 682.8 R 2.574(yu)-.15 G .073(ser \(or that an update program be written, or that the system administration) +-2.574 F(mak)133.66 694.8 Q 2.5(ea)-.1 G(ll changes\).)-2.5 E(\(4\))107 +711 Q F2(Sendmail)15 E F1 .4(supports message batching across netw)2.9 F +.401(orks when a message is being sent to mul-)-.1 F(tiple recipients.) +133.66 723 Q EP +%%Page: 9 9 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF(SENDMAIL \212 An Inter)72 60 Q(netw)-.15 E +(ork Mail Router)-.1 E(SMM:9-9)194.78 E/F1 10/Times-Roman@0 SF 12.5 +(\(5\) A)107 96 R .875(mail queue is pro)3.375 F .874(vided in)-.15 F/F2 +10/Times-Italic@0 SF(sendmail.)3.374 E F1 .874(Mail that cannot be deli) +5.874 F -.15(ve)-.25 G .874(red immediately b).15 F .874(ut can)-.2 F +1.063(potentially be deli)133.66 108 R -.15(ve)-.25 G 1.064 +(red later is stored in this queue for a later retry).15 F 6.064(.T)-.65 +G 1.064(he queue also pro-)-6.064 F .896(vides a b)133.66 120 R(uf)-.2 E +.896(fer ag)-.25 F .895(ainst system crashes; after the message has been collected it may be reli-) +-.05 F(ably redeli)133.66 132 Q -.15(ve)-.25 G(red e).15 E -.15(ve)-.25 +G 2.5(ni).15 G 2.5(ft)-2.5 G(he system crashes during the initial deli) +-2.5 E -.15(ve)-.25 G(ry).15 E(.)-.65 E(\(6\))107 148.2 Q F2(Sendmail)15 +E F1 .197(uses the netw)2.696 F .197(orking support pro)-.1 F .197 +(vided by 4.2BSD to pro)-.15 F .197(vide a direct interf)-.15 F .197 +(ace net-)-.1 F -.1(wo)133.66 160.2 S .07(rks such as the ARP).1 F .07 +(ANET and/or Ethernet using SMTP \(the Simple Mail T)-.92 F .07 +(ransfer Proto-)-.35 F(col\) o)133.66 172.2 Q -.15(ve)-.15 G 2.5(raT).15 +G(CP/IP connection.)-2.5 E F0 2.5(4.2. MMDF)87 196.2 R F1 .957 +(MMDF [Crock)127 212.4 R .957(er79] spans a wider problem set than)-.1 F +F2(sendmail)3.458 E F1 5.958(.F)C .958(or e)-6.108 F .958 +(xample, the domain of)-.15 F .721(MMDF includes a \231phone netw)102 +224.4 R .721(ork\232 mailer)-.1 F 3.221(,w)-.4 G(hereas)-3.221 E F2 +(sendmail)3.221 E F1 .721(calls on pree)3.221 F .72 +(xisting mailers in most)-.15 F(cases.)102 236.4 Q .175(MMDF and)127 +252.6 R F2(sendmail)2.675 E F1 .175 +(both support aliasing, customized mailers, message batching, automatic) +2.675 F(forw)102 264.6 Q .792(arding to g)-.1 F(ate)-.05 E -.1(wa)-.25 G +.792(ys, queueing, and retransmission.).1 F .792(MMDF supports tw)5.792 +F .792(o-stage timeout, which)-.1 F F2(sendmail)102 276.6 Q F1 +(does not support.)2.5 E +(The con\214guration for MMDF is compiled into the code)127 294.8 Q/F3 7 +/Times-Roman@0 SF(4)-4 I F1(.)4 I .037 +(Since MMDF does not consider backw)127 311 R .037 +(ards compatibility as a design goal, the address parsing)-.1 F +(is simpler b)102 323 Q(ut much less \215e)-.2 E(xible.)-.15 E 1.159 +(It is some)127 341.2 R 1.159(what harder to inte)-.25 F 1.159 +(grate a ne)-.15 F 3.659(wc)-.25 G(hannel)-3.659 E F3(5)-4 I F1 1.159 +(into MMDF)3.659 4 N 6.16(.I)-.8 G 3.66(np)-6.16 G(articular)-3.66 E +3.66(,M)-.4 G 1.16(MDF must)-3.66 F(kno)102 353.2 Q 3.225(wt)-.25 G .725 +(he location and format of host tables for all channels, and the channel must speak a special) +-3.225 F 2.525(protocol. This)102 365.2 R(allo)2.525 E .025 +(ws MMDF to do additional v)-.25 F .025(eri\214cation \(such as v)-.15 F +.025(erifying host names\) at submis-)-.15 F(sion time.)102 377.2 Q +1.761(MMDF strictly separates the submission and deli)127 393.4 R -.15 +(ve)-.25 G 1.761(ry phases.).15 F(Although)6.761 E F2(sendmail)4.261 E +F1 1.76(has the)4.261 F .784(concept of each of these stages, the)102 +405.4 R 3.284(ya)-.15 G .784(re inte)-3.284 F .785 +(grated into one program, whereas in MMDF the)-.15 F 3.285(ya)-.15 G(re) +-3.285 E(split into tw)102 417.4 Q 2.5(op)-.1 G(rograms.)-2.5 E F0 2.5 +(4.3. Message)87 441.4 R(Pr)2.5 E(ocessing Module)-.18 E F1 .925(The Message Processing Module \(MPM\) discussed by Postel [Postel79b] matches) +127 457.6 R F2(sendmail)3.425 E F1 1.364 +(closely in terms of its basic architecture.)102 469.6 R(Ho)6.364 E(we) +-.25 E -.15(ve)-.25 G 2.164 -.4(r, l).15 H(ik).4 E 3.864(eM)-.1 G(MDF) +-3.864 E 3.864(,t)-.8 G 1.365(he MPM includes the netw)-3.864 F(ork)-.1 +E(interf)102 481.6 Q(ace softw)-.1 E(are as part of its domain.)-.1 E +.408(MPM also postulates a duple)127 497.8 R 2.907(xc)-.15 G .407 +(hannel to the recei)-2.907 F -.15(ve)-.25 G 1.207 -.4(r, a).15 H 2.907 +(sd).4 G .407(oes MMDF)-2.907 F 2.907(,t)-.8 G .407(hus allo)-2.907 F +.407(wing simpler)-.25 F .302 +(handling of errors by the mailer than is possible in)102 509.8 R F2 +(sendmail)2.802 E F1 5.302(.W)C .302(hen a message queued by)-5.302 F F2 +(sendmail)2.802 E F1 .23(is sent, an)102 521.8 R 2.73(ye)-.15 G .23 +(rrors must be returned to the sender by the mailer itself.)-2.73 F .229 +(Both MPM and MMDF mail-)5.229 F .883(ers can return an immediate error response, and a single error processor can create an appropriate) +102 533.8 R(response.)102 545.8 Q 2.24(MPM prefers passing the message as a structured object, with type-length-v) +127 564 R 2.24(alue tuples)-.25 F F3(6)-4 I F1(.)4 I .874(Such a con)102 +576 R -.15(ve)-.4 G .874(ntion requires a much higher de).15 F .875 +(gree of cooperation between mailers than is required)-.15 F(by)102 588 +Q F2(sendmail)2.796 E F1 5.296(.M)C .296(PM also assumes a uni)-5.296 F +-.15(ve)-.25 G .296 +(rsally agreed upon internet name space \(with each address).15 F +(in the form of a net-host-user tuple\), which)102 600 Q F2(sendmail)2.5 +E F1(does not.)2.5 E .32 LW 76 642 72 642 DL 80 642 76 642 DL 84 642 80 +642 DL 88 642 84 642 DL 92 642 88 642 DL 96 642 92 642 DL 100 642 96 642 +DL 104 642 100 642 DL 108 642 104 642 DL 112 642 108 642 DL 116 642 112 +642 DL 120 642 116 642 DL 124 642 120 642 DL 128 642 124 642 DL 132 642 +128 642 DL 136 642 132 642 DL 140 642 136 642 DL 144 642 140 642 DL 148 +642 144 642 DL 152 642 148 642 DL 156 642 152 642 DL 160 642 156 642 DL +164 642 160 642 DL 168 642 164 642 DL 172 642 168 642 DL 176 642 172 642 +DL 180 642 176 642 DL 184 642 180 642 DL 188 642 184 642 DL 192 642 188 +642 DL 196 642 192 642 DL 200 642 196 642 DL 204 642 200 642 DL 208 642 +204 642 DL 212 642 208 642 DL 216 642 212 642 DL/F4 5/Times-Roman@0 SF +(4)93.6 652.4 Q/F5 8/Times-Roman@0 SF .179(Dynamic con\214guration tables are currently being considered for MMDF; allo) +3.2 J .18(wing the installer to select either compiled or dy-)-.2 F +(namic tables.)72 665.2 Q F4(5)93.6 675.6 Q F5(The MMDF equi)3.2 I -.2 +(va)-.2 G(lent of a).2 E/F6 8/Times-Italic@0 SF(sendmail)2 E F5 +(\231mailer)2 E -.56<2e9a>-.44 G F4(6)93.6 689.2 Q F5 +(This is similar to the NBS standard.)3.2 I EP +%%Page: 10 10 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF 187.28(SMM:9-10 SENDMAIL)72 60 R 2.5<8a41>2.5 G +2.5(nI)-2.5 G(nter)-2.5 E(netw)-.15 E(ork Mail Router)-.1 E 2.5(5. EV)72 +96 R(ALU)-1.35 E -.95(AT)-.6 G(IONS AND FUTURE PLANS).95 E/F1 10 +/Times-Italic@0 SF(Sendmail)112 112.2 Q/F2 10/Times-Roman@0 SF 1.851 +(is designed to w)4.351 F 1.851(ork in a nonhomogeneous en)-.1 F 4.352 +(vironment. Ev)-.4 F 1.852(ery attempt is made to)-.15 F -.2(avo)87 +124.2 S 1.037 +(id imposing unnecessary constraints on the underlying mailers.).2 F +1.036(This goal has dri)6.036 F -.15(ve)-.25 G 3.536(nm).15 G 1.036 +(uch of the)-3.536 F 2.723(design. One)87 136.2 R .223(of the major problems has been the lack of a uniform address space, as postulated in [Pos-) +2.723 F(tel79a] and [Postel79b].)87 148.2 Q 2.647(An)112 164.4 S .147(onuniform address space implies that a path will be speci\214ed in all addresses, either e) +-2.647 F(xplicitly)-.15 E .472 +(\(as part of the address\) or implicitly \(as with implied forw)87 +176.4 R .473(arding to g)-.1 F(ate)-.05 E -.1(wa)-.25 G 2.973 +(ys\). This).1 F .473(restriction has the)2.973 F .493(unpleasant ef)87 +188.4 R .493(fect of making replying to messages e)-.25 F .493 +(xceedingly dif)-.15 F .493 +(\214cult, since there is no one \231address\232)-.25 F(for an)87 200.4 +Q 2.5(yp)-.15 G(erson, b)-2.5 E(ut only a w)-.2 E +(ay to get there from where)-.1 E -.15(ve)-.25 G 2.5(ry).15 G(ou are.) +-2.5 E(Interf)112 216.6 Q .448(acing to mail programs that were not initially intended to be applied in an internet en) +-.1 F(viron-)-.4 E(ment has been amazingly successful, and has reduced the job to a manageable task.) +87 228.6 Q F1(Sendmail)112 244.8 Q F2 2.906(has kno)5.406 F 2.906 +(wledge of a fe)-.25 F 5.406(wd)-.25 G(if)-5.406 E 2.906(\214cult en) +-.25 F 2.906(vironments b)-.4 F 2.906(uilt in.)-.2 F 2.905 +(It generates ARP)7.906 F(ANET)-.92 E .648(FTP/SMTP compatible error messages \(prepended with three-digit numbers [Neigus73, Postel74, Pos-) +87 256.8 R .771(tel82]\) as necessary)87 268.8 R 3.271(,o)-.65 G .771(ptionally generates UNIX-style \231From\232 lines on the front of messages for some) +-3.271 F 1.669(mailers, and kno)87 280.8 R 1.669(ws ho)-.25 F 4.169(wt) +-.25 G 4.169(op)-4.169 G 1.669(arse the same lines on input.)-4.169 F +1.67(Also, error handling has an option cus-)6.67 F +(tomized for BerkNet.)87 292.8 Q 1.482(The decision to a)112 309 R -.2 +(vo)-.2 G 1.482(id doing an).2 F 3.982(yt)-.15 G 1.481(ype of deli) +-3.982 F -.15(ve)-.25 G 1.481(ry where possible \(e).15 F -.15(ve)-.25 G +1.481(n, or perhaps especially).15 F(,)-.65 E .574(local deli)87 321 R +-.15(ve)-.25 G .574(ry\) has turned out to be a good idea.).15 F(Ev) +5.574 E .574(en with local deli)-.15 F -.15(ve)-.25 G(ry).15 E 3.074(,t) +-.65 G .575(here are issues of the loca-)-3.074 F .469(tion of the mailbox, the format of the mailbox, the locking protocol used, etc., that are best decided by) +87 333 R .038(other programs.)87 345 R .038(One surprisingly major anno) +5.038 F .038(yance in man)-.1 F 2.538(yi)-.15 G .038 +(nternet mailers is that the location and for)-2.538 F(-)-.2 E .138 +(mat of local mail is b)87 357 R .138(uilt in.)-.2 F .137(The feeling seems to be that local mail is so common that it should be ef) +5.137 F<8c2d>-.25 E 3.045(cient. This)87 369 R .545 +(feeling is not born out by our e)3.045 F .545 +(xperience; on the contrary)-.15 F 3.045(,t)-.65 G .545 +(he location and format of mail-)-3.045 F(box)87 381 Q(es seems to v) +-.15 E(ary widely from system to system.)-.25 E .681(The ability to automatically generate a response to incoming mail \(by forw) +112 397.2 R .68(arding mail to a pro-)-.1 F .435 +(gram\) seems useful \(\231I am on v)87 409.2 R .435 +(acation until late August....)-.25 F 2.935(\232\) b)-.7 F .435 +(ut can create problems such as forw)-.2 F(ard-)-.1 E .143 +(ing loops \(tw)87 421.2 R 2.643(op)-.1 G .143(eople on v)-2.643 F .143 +(acation whose programs send notes back and forth, for instance\) if these pro-) +-.25 F .732(grams are not well written.)87 433.2 R 3.232(Ap)5.732 G .732 +(rogram could be written to do standard tasks correctly)-3.232 F 3.233 +(,b)-.65 G .733(ut this w)-3.433 F(ould)-.1 E(solv)87 445.2 Q 2.5(et) +-.15 G(he general case.)-2.5 E .225 +(It might be desirable to implement some form of load limiting.)112 +461.4 R 2.725(Ia)5.225 G 2.724(mu)-2.725 G(na)-2.724 E -.1(wa)-.15 G +.224(re of an).1 F 2.724(ym)-.15 G .224(ail system)-2.724 F +(that addresses this problem, nor am I a)87 473.4 Q -.1(wa)-.15 G +(re of an).1 E 2.5(yr)-.15 G(easonable solution at this time.)-2.5 E +.113(The con\214guration \214le is currently practically inscrutable; considerable con) +112 489.6 R -.15(ve)-.4 G .114(nience could be real-).15 F +(ized with a higher)87 501.6 Q(-le)-.2 E -.15(ve)-.25 G 2.5(lf).15 G +(ormat.)-2.5 E .778(It seems clear that common protocols will be changing soon to accommodate changing require-) +112 517.8 R 2.774(ments and en)87 529.8 R 5.274(vironments. These)-.4 F +2.774 +(changes will include modi\214cations to the message header \(e.g.,) +5.274 F .859([NBS80]\) or to the body of the message itself \(such as for multimedia messages [Postel80]\).) +87 541.8 R(Experi-)5.859 E +(ence indicates that these changes should be relati)87 553.8 Q -.15(ve) +-.25 G(ly tri).15 E(vial to inte)-.25 E(grate into the e)-.15 E +(xisting system.)-.15 E .811(In tightly coupled en)112 570 R .812 +(vironments, it w)-.4 F .812(ould be nice to ha)-.1 F 1.112 -.15(ve a n) +-.2 H .812(ame serv).15 F .812(er such as Grapvine [Bir)-.15 F(-)-.2 E +.095(rell82] inte)87 582 R .095(grated into the mail system.)-.15 F .095 +(This w)5.095 F .095(ould allo)-.1 F 2.594(was)-.25 G .094 +(ite such as \231Berk)-2.594 F(ele)-.1 E .094 +(y\232 to appear as a single)-.15 F 2.606 +(host, rather than as a collection of hosts, and w)87 594 R 2.606 +(ould allo)-.1 F 5.106(wp)-.25 G 2.606(eople to mo)-5.106 F 2.906 -.15 +(ve t)-.15 H 2.606(ransparently among).15 F 1.664(machines without ha)87 +606 R 1.664(ving to change their addresses.)-.2 F 1.664(Such a f)6.664 F +1.664(acility w)-.1 F 1.663(ould require an automatically)-.1 F .428 +(updated database and some method of resolving con\215icts.)87 618 R +.428(Ideally this w)5.428 F .428(ould be ef)-.1 F(fecti)-.25 E .728 -.15 +(ve e)-.25 H -.15(ve)-.1 G 2.928(nw).15 G(ithout)-2.928 E .184 +(all hosts being under a single management.)87 630 R(Ho)5.184 E(we)-.25 +E -.15(ve)-.25 G .984 -.4(r, i).15 H 2.684(ti).4 G 2.683(sn)-2.684 G +.183(ot clear whether this feature should be inte-)-2.683 F +(grated into the aliasing f)87 642 Q +(acility or should be considered a \231v)-.1 E +(alue added\232 feature outside)-.25 E F1(sendmail)2.5 E F2(itself.)2.5 +E .79(As a more interesting case, the CSNET name serv)112 658.2 R .791 +(er [Solomon81] pro)-.15 F .791(vides an f)-.15 F .791 +(acility that goes)-.1 F(be)87 670.2 Q .375 +(yond a single tightly-coupled en)-.15 F 2.875(vironment. Such)-.4 F +2.875(af)2.875 G .375(acility w)-2.975 F .374(ould normally e)-.1 F .374 +(xist outside of)-.15 F F1(sendmail)2.874 E F2(ho)87 682.2 Q(we)-.25 E +-.15(ve)-.25 G -.55(r.).15 G EP +%%Page: 11 11 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF(SENDMAIL \212 An Inter)72 60 Q(netw)-.15 E +(ork Mail Router)-.1 E(SMM:9-11)189.78 E -.55(AC)72 96 S(KNO).55 E +(WLEDGEMENTS)-.5 E/F1 10/Times-Roman@0 SF 1.203(Thanks are due to K)97 +112.2 R 1.204(urt Shoens for his continual cheerful assistance and good advice, Bill Jo) +-.15 F 3.704(yf)-.1 G(or)-3.704 E .102 +(pointing me in the correct direction \(o)72 124.2 R -.15(ve)-.15 G +2.602(ra).15 G .102(nd o)-2.602 F -.15(ve)-.15 G .102 +(r\), and Mark Horton for more advice, prodding, and man).15 F(y)-.15 E +.453(of the good ideas.)72 136.2 R -.15(Ku)5.453 G .453 +(rt and Eric Schmidt are to be credited for using).15 F/F2 10 +/Times-Italic@0 SF(delivermail)2.953 E F1 .453(as a serv)2.953 F .453 +(er for their pro-)-.15 F 1.663(grams \()72 148.2 R F2(Mail)A F1 1.663 +(and BerkNet respecti)4.163 F -.15(ve)-.25 G 1.663(ly\) before an).15 F +4.163(ys)-.15 G 1.663(ane person should ha)-4.163 F -.15(ve)-.2 G 4.163 +(,a).15 G 1.662(nd making the necessary)-4.163 F .078 +(modi\214cations promptly and happily)72 160.2 R 5.078(.E)-.65 G .078 +(ric g)-5.078 F -2.25 -.2(av e)-.05 H .079 +(me considerable advice about the perils of netw)2.778 F .079(ork softw) +-.1 F(are)-.1 E .179(which sa)72 172.2 R -.15(ve)-.2 G 2.679(dm).15 G +2.679(ea)-2.679 G 2.679(nu)-2.679 G(nkno)-2.679 E .178(wn amount of w) +-.25 F .178(ork and grief.)-.1 F .178 +(Mark did the original implementation of the DBM)5.178 F -.15(ve)72 +184.2 S .341 +(rsion of aliasing, installed the VFORK code, wrote the current v).15 F +.341(ersion of)-.15 F F2(rmail)2.841 E F1 2.841(,a)C .341(nd w)-2.841 F +.342(as the person who)-.1 F .61(really con)72 196.2 R .61 +(vinced me to put the w)-.4 F .61(ork into)-.1 F F2(delivermail)3.109 E +F1 .609(to turn it into)3.109 F F2(sendmail)3.109 E F1 5.609(.K)C .609 +(urt deserv)-5.759 F .609(es accolades for)-.15 F(using)72 208.2 Q F2 +(sendmail)2.57 E F1 .07(when I w)2.57 F .07(as myself afraid to tak)-.1 +F 2.57(et)-.1 G .07(he risk; ho)-2.57 F 2.57(wap)-.25 G .07 +(erson can continue to be so enthusiastic in)-2.57 F(the f)72 220.2 Q +(ace of so much bitter reality is be)-.1 E(yond me.)-.15 E -.15(Ku)97 +236.4 S 1.505(rt, Mark, Kirk McK).15 F 1.505 +(usick, Marvin Solomon, and man)-.15 F 4.005(yo)-.15 G 1.504(thers ha) +-4.005 F 1.804 -.15(ve r)-.2 H -.25(ev).15 G(ie).25 E 1.504 +(wed this paper)-.25 F 4.004(,g)-.4 G -.25(iv)-4.004 G(ing).25 E +(considerable useful advice.)72 248.4 Q .846(Special thanks are reserv) +97 264.6 R .846(ed for Mik)-.15 F 3.346(eS)-.1 G(tonebrak)-3.346 E .846 +(er at Berk)-.1 F(ele)-.1 E 3.347(ya)-.15 G .847 +(nd Bob Epstein at Britton-Lee, who)-3.347 F .542(both kno)72 276.6 R +.542(wingly allo)-.25 F .542(wed me to put so much w)-.25 F .541 +(ork into this project when there were so man)-.1 F 3.041(yo)-.15 G .541 +(ther things I)-3.041 F(really should ha)72 288.6 Q .3 -.15(ve b)-.2 H +(een w).15 E(orking on.)-.1 E EP +%%Page: 12 12 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF(REFERENCES)256.605 132 Q 62.73 +([Birrell82] Birrell,)72 148.2 R 1.084(A. D., Le)3.584 F 1.084 +(vin, R., Needham, R. M., and Schroeder)-.25 F 3.584(,M)-.4 G 3.585(.D) +-3.584 G 1.085(., \231Grape)-3.585 F(vine:)-.25 E(An Ex)180 160.2 Q +(ercise in Distrib)-.15 E(uted Computing.)-.2 E 5<9a49>-.7 G(n)-5 E/F1 +10/Times-Italic@0 SF(Comm. A.C.M. 25,)2.5 E F0(4, April 82.)2.5 E 59.4 +([Borden79] Borden,)72 176.4 R .796 +(S., Gaines, R. S., and Shapiro, N. Z.,)3.296 F F1 .795(The MH Messa) +3.295 F .995 -.1(ge H)-.1 H .795(andling Sys-).1 F(tem: User)180 188.4 Q +(s' Manual.)-.1 E F0(R-2367-P)5 E(AF)-.92 E 5(.R)-.8 G(and Corporation.) +-5 E(October 1979.)5 E([Crock)72 204.6 Q 52.29(er77a] Crock)-.1 F(er)-.1 +E 2.508(,D)-.4 G 2.508(.H)-2.508 G .008(., V)-2.508 F .009 +(ittal, J. J., Pogran, K. T)-.6 F .009(., and Henderson, D. A. Jr)-.74 F +(.,)-.55 E F1(Standar)2.509 E 2.509(df)-.37 G(or)-2.509 E .955(the F)180 +216.6 R .955(ormat of ARP)-1.05 F 3.454(AN)-.9 G .954(etwork T)-3.454 F +-.2(ex)-.92 G 3.454(tM).2 G(essa)-3.454 E -.1(ge)-.1 G(s.).1 E F0 .954 +(RFC 733, NIC 41952.)5.954 F .954(In [Fein-)5.954 F 2.5(ler78]. No)180 +228.6 R -.15(ve)-.15 G(mber 1977.).15 E([Crock)72 244.8 Q 51.73 +(er77b] Crock)-.1 F(er)-.1 E 3.04(,D)-.4 G 3.04(.H)-3.04 G(.,)-3.04 E F1 +-1.55 -.55(Fr a)3.04 H(me).55 E .54(work and Functions of the MS P)-.15 +F(er)-.8 E .54(sonal Messa)-.1 F .74 -.1(ge S)-.1 H(ystem.).1 E F0 +(R-2134-ARP)180 256.8 Q(A, Rand Corporation, Santa Monica, California.) +-.92 E(1977.)5 E([Crock)72 273 Q 56.73(er79] Crock)-.1 F(er)-.1 E 2.557 +(,D)-.4 G 2.557(.H)-2.557 G .056(., Szurk)-2.557 F -.25(ow)-.1 G .056 +(ski, E. S., and F).25 F(arber)-.15 E 2.556(,D)-.4 G 2.556(.J)-2.556 G +(.,)-2.556 E F1 .056(An Internetwork Memo Dis-)2.556 F(trib)180 285 Q +1.341(ution F)-.2 F 1.341(acility \212 MMDF)-.75 F(.)-1.35 E F0 1.341 +(6th Data Communication Symposium, Asilomar)6.341 F(.)-.55 E(No)180 297 +Q -.15(ve)-.15 G(mber 1979.).15 E([Crock)72 313.2 Q 56.73(er82] Crock) +-.1 F(er)-.1 E 3.383(,D)-.4 G 3.383(.H)-3.383 G(.,)-3.383 E F1(Standar) +3.383 E 3.383(df)-.37 G .883(or the F)-3.383 F .882 +(ormat of Arpa Internet T)-1.05 F -.2(ex)-.92 G 3.382(tM).2 G(essa) +-3.382 E -.1(ge)-.1 G(s.).1 E F0(RFC)5.882 E 4.197(822. Netw)180 325.2 R +1.697(ork Information Center)-.1 F 4.197(,S)-.4 G 1.698 +(RI International, Menlo P)-4.197 F 1.698(ark, California.)-.15 F +(August 1982.)180 337.2 Q 53.3([Metcalfe76] Metcalfe,)72 353.4 R .727 +(R., and Boggs, D., \231Ethernet: Distrib)3.227 F .727(uted P)-.2 F(ack) +-.15 E .727(et Switching for Local)-.1 F(Computer Netw)180 365.4 Q +(orks\232,)-.1 E F1(Communications of the A)2.5 E(CM 19,)-.3 E F0 2.5 +(7. July)2.5 F(1976.)2.5 E 60.51([Feinler78] Feinler)72 381.6 R 4.438 +(,E)-.4 G 1.938(., and Postel, J.)-4.438 F(\(eds.\),)6.938 E F1(ARP) +4.438 E 1.938(ANET Pr)-.9 F 1.938(otocol Handbook.)-.45 F F0 1.938 +(NIC 7104,)6.938 F(Netw)180 393.6 Q(ork Information Center)-.1 E 2.5(,S) +-.4 G(RI International, Menlo P)-2.5 E(ark, California.)-.15 E(1978.)5 E +69.39([NBS80] National)72 409.8 R 1.46(Bureau of Standards,)3.96 F F1 +1.46(Speci\214cation of a Dr)3.96 F 1.46(aft Messa)-.15 F 1.66 -.1(ge F) +-.1 H 1.46(ormat Stan-)-.95 F(dar)180 421.8 Q(d.)-.37 E F0 +(Report No. ICST/CBOS 80-2.)5 E(October 1980.)5 E 60.51 +([Neigus73] Neigus,)72 438 R(N.,)5.186 E F1 -.45(Fi)5.186 G 2.686(le T) +.45 F -.15(ra)-.55 G 2.686(nsfer Pr).15 F 2.686(otocol for the ARP)-.45 +F 5.187(AN)-.9 G(etwork.)-5.187 E F0 2.687(RFC 542, NIC)7.687 F 2.5 +(17759. In)180 450 R 2.5([Feinler78]. August,)2.5 F(1973.)2.5 E([No)72 +466.2 Q 55.21(witz78a] No)-.25 F 1.633(witz, D. A., and Lesk, M. E.,) +-.25 F F1 4.132(AD)4.132 G 1.632(ial-Up Network of UNIX Systems.)-4.132 +F F0(Bell)6.632 E 5.403(Laboratories. In)180 478.2 R 2.904 +(UNIX Programmer')5.403 F 5.404(sM)-.55 G 2.904(anual, Se)-5.404 F -.15 +(ve)-.25 G 2.904(nth Edition, V).15 F 2.904(olume 2.)-1.29 F +(August, 1978.)180 490.2 Q([No)72 506.4 Q 54.65(witz78b] No)-.25 F .633 +(witz, D. A.,)-.25 F F1 .632(Uucp Implementation Description.)3.132 F F0 +.632(Bell Laboratories.)5.632 F .632(In UNIX)5.632 F(Programmer')180 +518.4 Q 2.5(sM)-.55 G(anual, Se)-2.5 E -.15(ve)-.25 G(nth Edition, V).15 +E(olume 2.)-1.29 E(October)5 E 2.5(,1)-.4 G(978.)-2.5 E 64.39 +([Postel74] Postel,)72 534.6 R .24(J., and Neigus, N., Re)2.74 F .241 +(vised FTP Reply Codes.)-.25 F .241(RFC 640, NIC 30843.)5.241 F(In)5.241 +E 2.5([Feinler78]. June,)180 546.6 R(1974.)2.5 E 64.39 +([Postel77] Postel,)72 562.8 R(J.,)2.5 E F1(Mail Pr)2.5 E(otocol.)-.45 E +F0(NIC 29588.)5 E(In [Feinler78].)5 E(No)5 E -.15(ve)-.15 G(mber 1977.) +.15 E 59.95([Postel79a] Postel,)72 579 R(J.,)3.144 E F1 .644 +(Internet Messa)3.144 F .844 -.1(ge P)-.1 H -.45(ro).1 G(tocol.).45 E F0 +.644(RFC 753, IEN 85.)5.644 F(Netw)5.644 E .644(ork Information)-.1 F +(Center)180 591 Q 2.5(,S)-.4 G(RI International, Menlo P)-2.5 E +(ark, California.)-.15 E(March 1979.)5 E 59.39([Postel79b] Postel,)72 +607.2 R 1.305(J. B.,)3.805 F F1 1.305(An Internetwork Messa)3.805 F +1.505 -.1(ge S)-.1 H(tructur).1 E -.15(e.)-.37 G F0(In)6.456 E F1(Pr) +3.806 E 1.306(oceedings of the Sixth)-.45 F +(Data Communications Symposium,)180 619.2 Q F0 2.5(IEEE. Ne)2.5 F 2.5 +(wY)-.25 G 2.5(ork. No)-3.6 F -.15(ve)-.15 G(mber 1979.).15 E 64.39 +([Postel80] Postel,)72 635.4 R .639(J. B.,)3.139 F F1 3.139(AS)3.139 G +(tructur)-3.139 E .639(ed F)-.37 F .639(ormat for T)-1.05 F -.15(ra)-.55 +G .639(nsmission of Multi-Media Documents.).15 F F0 .418(RFC 767.)180 +647.4 R(Netw)5.419 E .419(ork Information Center)-.1 F 2.919(,S)-.4 G +.419(RI International, Menlo P)-2.919 F .419(ark, Califor)-.15 F(-)-.2 E +2.5(nia. August)180 659.4 R(1980.)2.5 E 64.39([Postel82] Postel,)72 +675.6 R 2.05(J. B.,)4.55 F F1 2.05(Simple Mail T)4.55 F -.15(ra)-.55 G +2.05(nsfer Pr).15 F(otocol.)-.45 E F0 2.05 +(RFC821 \(obsoleting RFC788\).)7.05 F(Netw)180 687.6 Q .273 +(ork Information Center)-.1 F 2.774(,S)-.4 G .274 +(RI International, Menlo P)-2.774 F .274(ark, California.)-.15 F(August) +5.274 E(1982.)180 699.6 Q/F2 10/Times-Bold@0 SF 187.28 +(SMM:9-12 SENDMAIL)72 756 R 2.5<8a41>2.5 G 2.5(nI)-2.5 G(nter)-2.5 E +(netw)-.15 E(ork Mail Router)-.1 E EP +%%Page: 13 13 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF(SENDMAIL \212 An Inter)72 60 Q(netw)-.15 E +(ork Mail Router)-.1 E(SMM:9-13)189.78 E/F1 10/Times-Roman@0 SF 55.5 +([Schmidt79] Schmidt,)72 96 R(E.,)2.972 E/F2 10/Times-Italic@0 SF .472 +(An Intr)2.972 F .472(oduction to the Berk)-.45 F(ele)-.1 E 2.972(yN)-.3 +G(etwork.)-2.972 E F1(Uni)5.472 E -.15(ve)-.25 G .472 +(rsity of California,).15 F(Berk)180 108 Q(ele)-.1 E 2.5(yC)-.15 G 2.5 +(alifornia. 1979.)-2.5 F 59.95([Shoens79] Shoens,)72 124.2 R(K.,)4.894 E +F2 2.394(Mail Refer)4.894 F 2.394(ence Manual.)-.37 F F1(Uni)7.394 E +-.15(ve)-.25 G 2.395(rsity of California, Berk).15 F(ele)-.1 E 6.195 +-.65(y. I)-.15 H(n).65 E(UNIX Programmer')180 136.2 Q 2.5(sM)-.55 G +(anual, Se)-2.5 E -.15(ve)-.25 G(nth Edition, V).15 E(olume 2C.)-1.29 E +(December 1979.)5 E 60.51([Sluizer81] Sluizer)72 152.4 R 2.872(,S)-.4 G +.372(., and Postel, J. B.,)-2.872 F F2 .372(Mail T)2.872 F -.15(ra)-.55 +G .372(nsfer Pr).15 F(otocol.)-.45 E F1 .371(RFC 780.)5.371 F(Netw)5.371 +E .371(ork Infor)-.1 F(-)-.2 E(mation Center)180 164.4 Q 2.5(,S)-.4 G +(RI International, Menlo P)-2.5 E(ark, California.)-.15 E(May 1981.)5 E +52.72([Solomon81] Solomon,)72 180.6 R .96(M., Landweber)3.46 F 3.46(,L) +-.4 G .96(., and Neuhengen, D., \231The Design of the CSNET)-3.46 F +(Name Serv)180 192.6 Q(er)-.15 E 3.9 -.7(.\232 C)-.55 H(S-DN-2, Uni).7 E +-.15(ve)-.25 G(rsity of W).15 E(isconsin, Madison.)-.4 E(No)5 E -.15(ve) +-.15 G(mber 1981.).15 E 78.28([Su82] Su,)72 208.8 R(Za)4.344 E 1.844 +(w-Sing, and Postel, Jon,)-.15 F F2 1.844(The Domain Naming Con)4.344 F +1.844(vention for Internet)-.4 F 1.717(User Applications.)180 220.8 R F1 +4.217(RFC819. Netw)6.717 F 1.717(ork Information Center)-.1 F 4.217(,S) +-.4 G 1.718(RI International,)-4.217 F(Menlo P)180 232.8 Q +(ark, California.)-.15 E(August 1982.)5 E([UNIX83])72 249 Q F2 2.12 +(The UNIX Pr)66.35 F -.1(og)-.45 G -.15(ra).1 G(mmer').15 E 4.62(sM)-.4 +G 2.12(anual, Se)-4.62 F 2.12(venth Edition,)-.15 F F1 -.6(Vi)4.62 G +2.12(rtual V).6 F 2.12(AX-11 V)-1.35 F(ersion,)-1.11 E -1.29(Vo)180 261 +S 1.027(lume 1.)1.29 F 1.027(Bell Laboratories, modi\214ed by the Uni) +6.027 F -.15(ve)-.25 G 1.027(rsity of California, Berk).15 F(e-)-.1 E +(le)180 273 Q 1.3 -.65(y, C)-.15 H 2.5(alifornia. March,).65 F(1983.)2.5 +E EP +%%Trailer +end +%%EOF diff --git a/usr.sbin/sendmail/doc/usenix/usenix.ps b/usr.sbin/sendmail/doc/usenix/usenix.ps new file mode 100644 index 00000000000..8292eb26251 --- /dev/null +++ b/usr.sbin/sendmail/doc/usenix/usenix.ps @@ -0,0 +1,1034 @@ +%!PS-Adobe-3.0 +%%Creator: groff version 1.10 +%%CreationDate: Tue May 19 16:37:13 1998 +%%DocumentNeededResources: font Times-Roman +%%+ font Times-Italic +%%+ font Times-Bold +%%DocumentSuppliedResources: procset grops 1.10 0 +%%Pages: 9 +%%PageOrder: Ascend +%%Orientation: Portrait +%%EndComments +%%BeginProlog +%%BeginResource: procset grops 1.10 0 +/setpacking where{ +pop +currentpacking +true setpacking +}if +/grops 120 dict dup begin +/SC 32 def +/A/show load def +/B{0 SC 3 -1 roll widthshow}bind def +/C{0 exch ashow}bind def +/D{0 exch 0 SC 5 2 roll awidthshow}bind def +/E{0 rmoveto show}bind def +/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def +/G{0 rmoveto 0 exch ashow}bind def +/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def +/I{0 exch rmoveto show}bind def +/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def +/K{0 exch rmoveto 0 exch ashow}bind def +/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def +/M{rmoveto show}bind def +/N{rmoveto 0 SC 3 -1 roll widthshow}bind def +/O{rmoveto 0 exch ashow}bind def +/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def +/Q{moveto show}bind def +/R{moveto 0 SC 3 -1 roll widthshow}bind def +/S{moveto 0 exch ashow}bind def +/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def +/SF{ +findfont exch +[exch dup 0 exch 0 exch neg 0 0]makefont +dup setfont +[exch/setfont cvx]cvx bind def +}bind def +/MF{ +findfont +[5 2 roll +0 3 1 roll +neg 0 0]makefont +dup setfont +[exch/setfont cvx]cvx bind def +}bind def +/level0 0 def +/RES 0 def +/PL 0 def +/LS 0 def +/MANUAL{ +statusdict begin/manualfeed true store end +}bind def +/PLG{ +gsave newpath clippath pathbbox grestore +exch pop add exch pop +}bind def +/BP{ +/level0 save def +1 setlinecap +1 setlinejoin +72 RES div dup scale +LS{ +90 rotate +}{ +0 PL translate +}ifelse +1 -1 scale +}bind def +/EP{ +level0 restore +showpage +}bind def +/DA{ +newpath arcn stroke +}bind def +/SN{ +transform +.25 sub exch .25 sub exch +round .25 add exch round .25 add exch +itransform +}bind def +/DL{ +SN +moveto +SN +lineto stroke +}bind def +/DC{ +newpath 0 360 arc closepath +}bind def +/TM matrix def +/DE{ +TM currentmatrix pop +translate scale newpath 0 0 .5 0 360 arc closepath +TM setmatrix +}bind def +/RC/rcurveto load def +/RL/rlineto load def +/ST/stroke load def +/MT/moveto load def +/CL/closepath load def +/FL{ +currentgray exch setgray fill setgray +}bind def +/BL/fill load def +/LW/setlinewidth load def +/RE{ +findfont +dup maxlength 1 index/FontName known not{1 add}if dict begin +{ +1 index/FID ne{def}{pop pop}ifelse +}forall +/Encoding exch def +dup/FontName exch def +currentdict end definefont pop +}bind def +/DEFS 0 def +/EBEGIN{ +moveto +DEFS begin +}bind def +/EEND/end load def +/CNT 0 def +/level1 0 def +/PBEGIN{ +/level1 save def +translate +div 3 1 roll div exch scale +neg exch neg exch translate +0 setgray +0 setlinecap +1 setlinewidth +0 setlinejoin +10 setmiterlimit +[]0 setdash +/setstrokeadjust where{ +pop +false setstrokeadjust +}if +/setoverprint where{ +pop +false setoverprint +}if +newpath +/CNT countdictstack def +userdict begin +/showpage{}def +}bind def +/PEND{ +clear +countdictstack CNT sub{end}repeat +level1 restore +}bind def +end def +/setpacking where{ +pop +setpacking +}if +%%EndResource +%%IncludeResource: font Times-Roman +%%IncludeResource: font Times-Italic +%%IncludeResource: font Times-Bold +grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 +def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron +/scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent +/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen +/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon +/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O +/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex +/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y +/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft +/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl +/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut +/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash +/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen +/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft +/logicalnot/minus/registered/macron/degree/plusminus/twosuperior +/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior +/ordmasculine/guilsinglright/onequarter/onehalf/threequarters +/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE +/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex +/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis +/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn +/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla +/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis +/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash +/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def +/Times-Bold@0 ENC0/Times-Bold RE/Times-Italic@0 ENC0/Times-Italic RE +/Times-Roman@0 ENC0/Times-Roman RE +%%EndProlog +%%Page: 1 1 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 14/Times-Roman@0 SF(Mail Systems and Addressing)204.196 141 Q +(in 4.2bsd)262.331 157.8 Q/F1 10/Times-Roman@0 SF(Eric Allman*)260.92 +181.8 Q/F2 10/Times-Italic@0 SF(Britton-Lee)254.86 199.8 Q 2.5(,I)-.1 G +(nc.)-2.5 E(1919 Addison Str)225.13 211.8 Q(eet, Suite 105.)-.37 E(Berk) +232.645 223.8 Q(ele)-.1 E 1.1 -.55(y, C)-.3 H(alifornia 94704.).55 E F1 +(eric@Berk)244.175 241.8 Q(ele)-.1 E -.65(y.)-.15 G(ARP).65 E(A)-.92 E +(ucb)264.6 253.8 Q -.25(va)-.15 G(x!eric).25 E(ABSTRA)262.085 286.2 Q +(CT)-.4 E .966 +(Routing mail through a heterogeneous internet presents man)112 302.4 R +3.466(yn)-.15 G 1.466 -.25(ew p)-3.466 H 3.466(roblems. Among).25 F .297 +(the w)112 314.4 R .297(orst of these is that of address mapping.)-.1 F +(Historically)5.297 E 2.797(,t)-.65 G .298(his has been handled on an) +-2.797 F(ad hoc basis.)112 326.4 Q(Ho)5 E(we)-.25 E -.15(ve)-.25 G .8 +-.4(r, t).15 H(his approach has become unmanageable as internets gro).4 +E -.65(w.)-.25 G .099(Sendmail acts a uni\214ed \231post of)112 342.6 R +.098(\214ce\232 to which all mail can be submitted.)-.25 F .098 +(Address inter)5.098 F(-)-.2 E .754(pretation is controlled by a production system, which can parse both old and ne) +112 354.6 R 3.255(wf)-.25 G(or)-3.255 E(-)-.2 E .242(mat addresses.)112 +366.6 R .242(The ne)5.242 F 2.742(wf)-.25 G .242 +(ormat is \231domain-based,)-2.742 F 2.742<9a618d>-.7 G -.15(ex)-2.742 G +.241(ible technique that can handle).15 F(man)112 378.6 Q 2.606(yc)-.15 +G .106(ommon situations.)-2.606 F .106 +(Sendmail is not intended to perform user interf)5.106 F .107 +(ace functions.)-.1 F .399(Sendmail will replace deli)112 394.8 R -.15 +(ve)-.25 G .399(rmail in the Berk).15 F(ele)-.1 E 2.899(y4)-.15 G .399 +(.2 distrib)-2.899 F 2.899(ution. Se)-.2 F -.15(ve)-.25 G .399 +(ral major hosts).15 F .421(are no)112 406.8 R 2.921(wo)-.25 G 2.921(rw) +-2.921 G .421(ill soon be running sendmail.)-2.921 F .421 +(This change will af)5.421 F .422(fect an)-.25 F 2.922(yu)-.15 G .422 +(sers that route)-2.922 F 1.5(mail through a sendmail g)112 418.8 R(ate) +-.05 E -.1(wa)-.25 G 5.3 -.65(y. T).1 H 1.5 +(he changes that will be user visible are empha-).65 F(sized.)112 430.8 +Q .906 +(The mail system to appear in 4.2bsd will contain a number of changes.) +97 475.2 R .906(Most of these changes are)5.906 F .469 +(based on the replacement of)72 487.2 R F2(delivermail)2.969 E F1 .469 +(with a ne)2.969 F 2.969(wm)-.25 G .469(odule called)-2.969 F F2 2.97 +(sendmail. Sendmail)2.97 F F1 .47(implements a gen-)2.97 F 1.834 +(eral internetw)72 499.2 R 1.834(ork mail routing f)-.1 F(acility)-.1 E +4.333(,f)-.65 G 1.833(eaturing aliasing and forw)-4.333 F 1.833 +(arding, automatic routing to netw)-.1 F(ork)-.1 E -.05(ga)72 511.2 S +(te).05 E -.1(wa)-.25 G .205(ys, and \215e).1 F .205 +(xible con\214guration.)-.15 F .205(Of k)5.205 F .505 -.15(ey i)-.1 H +.205(nterest to the mail system user will be the changes in the net-).15 +F -.1(wo)72 523.2 S(rk addressing structure.).1 E .624(In a simple netw) +97 539.4 R .624(ork, each node has an address, and resources can be identi\214ed with a host-resource) +-.1 F .374(pair; in particular)72 551.4 R 2.874(,t)-.4 G .374 +(he mail system can refer to users using a host-username pair)-2.874 F +5.374(.H)-.55 G .375(ost names and numbers)-5.374 F(ha)72 563.4 Q .3 +-.15(ve t)-.2 H 2.5(ob).15 G 2.5(ea)-2.5 G +(dministered by a central authority)-2.5 E 2.5(,b)-.65 G +(ut usernames can be assigned locally to each host.)-2.7 E .397 +(In an internet, multiple netw)97 579.6 R .396(orks with dif)-.1 F .396 +(ferent characteristics and managements must communicate.)-.25 F .389 +(In particular)72 591.6 R 2.889(,t)-.4 G .389 +(he syntax and semantics of resource identi\214cation change.)-2.889 F +.39(Certain special cases can be han-)5.389 F 1.033(dled tri)72 603.6 R +1.033(vially by)-.25 F F2 1.033(ad hoc)3.533 F F1 1.032 +(techniques, such as pro)3.533 F 1.032(viding netw)-.15 F 1.032 +(ork names that appear local to hosts on other)-.1 F(netw)72 615.6 Q +1.621(orks, as with the Ethernet at Xerox P)-.1 F 4.121(ARC. Ho)-.92 F +(we)-.25 E -.15(ve)-.25 G 2.421 -.4(r, t).15 H 1.622 +(he general case is e).4 F 1.622(xtremely comple)-.15 F 4.122(x. F)-.15 +F(or)-.15 E -.15(ex)72 627.6 S .29(ample, some netw).15 F .29 +(orks require that the route the message tak)-.1 F .29(es be e)-.1 F .29 +(xplicitly speci\214ed by the sender)-.15 F 2.79(,s)-.4 G(im-)-2.79 E +1.618(plifying the database update problem since only adjacent hosts must be entered into the system tables,) +72 639.6 R .573(while others use logical addressing, where the sender speci\214es the location of the recipient b) +72 651.6 R .573(ut not ho)-.2 F 3.072(wt)-.25 G(o)-3.072 E 1.065 +(get there.)72 663.6 R 1.065(Some netw)6.065 F 1.066 +(orks use a left-associati)-.1 F 1.366 -.15(ve s)-.25 H 1.066 +(yntax and others use a right-associati).15 F 1.366 -.15(ve s)-.25 H +1.066(yntax, causing).15 F .32 LW 76 673.2 72 673.2 DL 80 673.2 76 673.2 +DL 84 673.2 80 673.2 DL 88 673.2 84 673.2 DL 92 673.2 88 673.2 DL 96 +673.2 92 673.2 DL 100 673.2 96 673.2 DL 104 673.2 100 673.2 DL 108 673.2 +104 673.2 DL 112 673.2 108 673.2 DL 116 673.2 112 673.2 DL 120 673.2 116 +673.2 DL 124 673.2 120 673.2 DL 128 673.2 124 673.2 DL 132 673.2 128 +673.2 DL 136 673.2 132 673.2 DL 140 673.2 136 673.2 DL 144 673.2 140 +673.2 DL 148 673.2 144 673.2 DL 152 673.2 148 673.2 DL 156 673.2 152 +673.2 DL 160 673.2 156 673.2 DL 164 673.2 160 673.2 DL 168 673.2 164 +673.2 DL 172 673.2 168 673.2 DL 176 673.2 172 673.2 DL 180 673.2 176 +673.2 DL 184 673.2 180 673.2 DL 188 673.2 184 673.2 DL 192 673.2 188 +673.2 DL 196 673.2 192 673.2 DL 200 673.2 196 673.2 DL 204 673.2 200 +673.2 DL 208 673.2 204 673.2 DL 212 673.2 208 673.2 DL 216 673.2 212 +673.2 DL/F3 8/Times-Roman@0 SF .556(*A considerable part of this w)93.6 +685.2 R .556(ork w)-.08 F .556(as done while under the emplo)-.08 F +2.557(yo)-.08 G 2.557(ft)-2.557 G .557(he INGRES Project at the Uni) +-2.557 F -.12(ve)-.2 G .557(rsity of California at).12 F(Berk)72 694.8 Q +(ele)-.08 E -.52(y.)-.12 G/F4 10/Times-Bold@0 SF(Mail Systems and Addr) +72 756 Q(essing in 4.2bsd)-.18 E(1)259.93 E EP +%%Page: 2 2 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF(Mail Systems and Addr)72 60 Q(essing in 4.2bsd) +-.18 E(2)259.93 E/F1 10/Times-Roman@0 SF(ambiguity in mix)72 96 Q +(ed addresses.)-.15 E .679 +(Internet standards seek to eliminate these problems.)97 112.2 R +(Initially)5.678 E 3.178(,t)-.65 G .678(hese proposed e)-3.178 F .678 +(xpanding the address)-.15 F .331 +(pairs to address triples, consisting of {netw)72 124.2 R .331 +(ork, host, username} triples.)-.1 F(Netw)5.332 E .332 +(ork numbers must be uni)-.1 F -.15(ve)-.25 G -.2(r-).15 G 1.452 +(sally agreed upon, and hosts can be assigned locally on each netw)72 +136.2 R 3.952(ork. The)-.1 F(user)3.952 E(-le)-.2 E -.15(ve)-.25 G 3.952 +(lp).15 G 1.452(resentation w)-3.952 F(as)-.1 E .249(changed to address domains, comprised of a local resource identi\214cation and a hierarchical domain speci\214-) +72 148.2 R 1.54(cation with a common static root.)72 160.2 R 1.539 +(The domain technique separates the issue of ph)6.539 F 1.539(ysical v) +-.05 F 1.539(ersus logical)-.15 F 3.001(addressing. F)72 172.2 R .501 +(or e)-.15 F .502(xample, an address of the form \231eric@a.cc.berk)-.15 +F(ele)-.1 E -.65(y.)-.15 G .502(arpa\232 describes the logical or).65 F +-.05(ga)-.18 G(niza-).05 E .443(tion of the address space \(user \231eric\232 on host \231a\232 in the Computer Center at Berk) +72 184.2 R(ele)-.1 E .443(y\) b)-.15 F .443(ut not the ph)-.2 F(ysical) +-.05 E(netw)72 196.2 Q .934(orks used \(for e)-.1 F .934 +(xample, this could go o)-.15 F -.15(ve)-.15 G 3.434(rd).15 G(if)-3.434 +E .934(ferent netw)-.25 F .935 +(orks depending on whether \231a\232 were on an)-.1 F +(ethernet or a store-and-forw)72 208.2 Q(ard netw)-.1 E(ork\).)-.1 E/F2 +10/Times-Italic@0 SF(Sendmail)97 224.4 Q F1 .493 +(is intended to help bridge the g)2.993 F .493(ap between the totally) +-.05 F F2 .493(ad hoc)2.993 F F1 -.1(wo)2.993 G .493(rld of netw).1 F +.493(orks that kno)-.1 F(w)-.25 E .854 +(nothing of each other and the clean, tightly-coupled w)72 236.4 R .854 +(orld of unique netw)-.1 F .855(ork numbers.)-.1 F .855 +(It can accept old)5.855 F .633(arbitrary address syntax)72 248.4 R .632 +(es, resolving ambiguities using heuristics speci\214ed by the system administrator) +-.15 F 3.132(,a)-.4 G(s)-3.132 E .347(well as domain-based addressing.) +72 260.4 R .347(It helps guide the con)5.347 F -.15(ve)-.4 G .347 +(rsion of message formats between disparate net-).15 F -.1(wo)72 272.4 S +3.395(rks. In).1 F(short,)3.395 E F2(sendmail)3.395 E F1 .894 +(is designed to assist a graceful transition to consistent internetw) +3.395 F .894(ork addressing)-.1 F(schemes.)72 284.4 Q .689 +(Section 1 de\214nes some of the terms frequently left fuzzy when w)97 +312.6 R .69(orking in mail systems.)-.1 F .69(Section 2)5.69 F .595 +(discusses the design goals for)72 324.6 R F2(sendmail)3.095 E F1 5.595 +(.I)C 3.095(ns)-5.595 G .595(ection 3, the ne)-3.095 F 3.095(wa)-.25 G +.594(ddress formats and basic features of)-3.095 F F2(send-)3.094 E +(mail)72 336.6 Q F1 .893(are described.)3.393 F .893 +(Section 4 discusses some of the special problems of the UUCP netw)5.893 +F 3.394(ork. The)-.1 F(dif)3.394 E(fer)-.25 E(-)-.2 E(ences between)72 +348.6 Q F2(sendmail)2.5 E F1(and)2.5 E F2(delivermail)2.5 E F1 +(are presented in section 5.)2.5 E F0(DISCLAIMER:)112 376.8 Q F1 3.333 +(An)3.333 G .833(umber of e)-3.333 F .832 +(xamples in this paper use names of actual people and)-.15 F(or)112 +388.8 Q -.05(ga)-.18 G 4.572(nizations. This).05 F 2.072 +(is not intended to imply a commitment or e)4.572 F -.15(ve)-.25 G 4.573 +(na).15 G 4.573(ni)-4.573 G(ntellectual)-4.573 E 1.094 +(agreement on the part of these people or or)112 400.8 R -.05(ga)-.18 G +3.594(nizations. In).05 F(particular)3.594 E 3.594(,B)-.4 G 1.094(ell T) +-3.594 F(elephone)-.7 E .656 +(Laboratories \(BTL\), Digital Equipment Corporation \(DEC\), La)112 +412.8 R .657(wrence Berk)-.15 F(ele)-.1 E 3.157(yL)-.15 G(abo-)-3.157 E +2.136(ratories \(LBL\), Britton-Lee Incorporated \(BLI\), and the Uni) +112 424.8 R -.15(ve)-.25 G 2.136(rsity of California at).15 F(Berk)112 +436.8 Q(ele)-.1 E 3.088(ya)-.15 G .588(re not committed to an)-3.088 F +3.089(yo)-.15 G 3.089(ft)-3.089 G .589(hese proposals at this time.) +-3.089 F .589(Much of this paper)5.589 F +(represents no more than the personal opinions of the author)112 448.8 Q +(.)-.55 E F0 2.5(1. DEFINITIONS)72 477 R F1 .266(There are four basic concepts that must be clearly distinguished when dealing with mail systems:) +112 493.2 R .514(the user \(or the user')87 505.2 R 3.014(sa)-.55 G .515 +(gent\), the user')-3.014 F 3.015(si)-.55 G .515 +(denti\214cation, the user')-3.015 F 3.015(sa)-.55 G .515 +(ddress, and the route.)-3.015 F .515(These are dis-)5.515 F +(tinguished primarily by their position independence.)87 517.2 Q F0 2.5 +(1.1. User)87 541.2 R(and Identi\214cation)2.5 E F1 .264(The user is the being \(a person or program\) that is creating or recei) +127 557.4 R .263(ving a message.)-.25 F(An)5.263 E F2 -.1(age)2.763 G +(nt).1 E F1 .659(is an entity operating on behalf of the user \212 such as a secretary who handles my mail.) +102 569.4 R .66(or a pro-)5.66 F(gram that automatically returns a message such as \231I am at the UNICOM conference.) +102 581.4 Q<9a>-.7 E .931(The identi\214cation is the tag that goes along with the particular user) +127 597.6 R 5.931(.T)-.55 G .931(his tag is completely)-5.931 F .216 +(independent of location.)102 609.6 R -.15(Fo)5.216 G 2.716(re).15 G +.216(xample, my identi\214cation is the string \231Eric Allman,)-2.866 F +2.717<9a61>-.7 G .217(nd this identi-)-2.717 F 1.228 +(\214cation does not change whether I am located at U.C. Berk)102 621.6 +R(ele)-.1 E 2.527 -.65(y, a)-.15 H 3.727(tB).65 G 1.227 +(ritton-Lee, or at a scienti\214c)-3.727 F(institute in Austria.)102 +633.6 Q 2.379(Since the identi\214cation is frequently ambiguous \(e.g., there are tw) +127 649.8 R 4.879<6f99>-.1 G 2.38(Robert Henry\232s at)-4.879 F(Berk)102 +661.8 Q(ele)-.1 E .316(y\) it is common to add other disambiguating information that is not strictly part of the iden-) +-.15 F(ti\214cation \(e.g., Robert \231Code Generator\232 Henry v)102 +673.8 Q(ersus Robert \231System Administrator\232 Henry\).)-.15 E F0 -1 +(Ve)72 756 S(rsion 8.2)1 E(USENIX \255 J)130.475 E(an 83)-.15 E +(Last Mod 11/27/93)98.355 E EP +%%Page: 3 3 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF(Mail Systems and Addr)72 60 Q(essing in 4.2bsd) +-.18 E(3)259.93 E 2.5(1.2. Addr)87 96 R(ess)-.18 E/F1 10/Times-Roman@0 +SF .785(The address speci\214es a location.)127 112.2 R .786(As I mo) +5.786 F 1.086 -.15(ve a)-.15 H .786(round, my address changes.).15 F +-.15(Fo)5.786 G 3.286(re).15 G .786(xample, my)-3.436 F .749 +(address might change from \231eric@Berk)102 124.2 R(ele)-.1 E -.65(y.) +-.15 G(ARP).65 E .749 +(A\232 to \231eric@bli.UUCP\232 or \231allman@IIASA.Aus-)-.92 F +(tria\232 depending on my current af)102 136.2 Q(\214liation.)-.25 E(Ho) +127 152.4 Q(we)-.25 E -.15(ve)-.25 G 2.819 -.4(r, a).15 H 4.519(na).4 G +2.019(ddress is independent of the location of an)-4.519 F 2.019 +(yone else.)-.15 F 2.02(That is, my address)7.02 F .385 +(remains the same to e)102 164.4 R -.15(ve)-.25 G .385 +(ryone who might be sending me mail.).15 F -.15(Fo)5.385 G 2.885(re).15 +G .385(xample, a person at MIT and a)-3.035 F +(person at USC could both send to \231eric@Berk)102 176.4 Q(ele)-.1 E +-.65(y.)-.15 G(ARP).65 E(A\232 and ha)-.92 E .3 -.15(ve i)-.2 H 2.5(ta) +.15 G(rri)-2.5 E .3 -.15(ve t)-.25 H 2.5(ot).15 G(he same mailbox.)-2.5 +E .627(Ideally a \231white pages\232 service w)127 192.6 R .627 +(ould be pro)-.1 F .627 +(vided to map user identi\214cations into addresses)-.15 F .444(\(for e) +102 204.6 R .444(xample, see [Solomon81]\).)-.15 F .444 +(Currently this is handled by passing around scraps of paper or by)5.444 +F(calling people on the telephone to \214nd out their address.)102 216.6 +Q F0 2.5(1.3. Route)87 240.6 R F1 .288(While an address speci\214es)127 +256.8 R/F2 10/Times-Italic@0 SF(wher)2.788 E(e)-.37 E F1 .289 +(to \214nd a mailbox, a route speci\214es)2.789 F F2(how)2.789 E F1 .289 +(to \214nd the mailbox.)2.789 F(Speci\214cally)102 268.8 Q 2.607(,i)-.65 +G 2.607(ts)-2.607 G .106(peci\214es a path from sender to recei)-2.607 F +-.15(ve)-.25 G 3.706 -.55(r. A).15 H 2.606(ss).55 G .106 +(uch, the route is potentially dif)-2.606 F .106(ferent for)-.25 F -2.15 +-.25(ev e)102 280.8 T(ry pair of people in the electronic uni).25 E -.15 +(ve)-.25 G(rse.).15 E .258 +(Normally the route is hidden from the user by the softw)127 297 R 2.758 +(are. Ho)-.1 F(we)-.25 E -.15(ve)-.25 G 1.058 -.4(r, s).15 H .258 +(ome netw).4 F .258(orks put the)-.1 F -.2(bu)102 309 S 1.972 +(rden of determining the route onto the sender).2 F 6.971(.A)-.55 G +1.971(lthough this simpli\214es the softw)-6.971 F 1.971(are, it also) +-.1 F(greatly impairs the usability for most users.)102 321 Q +(The UUCP netw)5 E(ork is an e)-.1 E(xample of such a netw)-.15 E(ork.) +-.1 E F0 2.5(2. DESIGN)72 345 R(GO)2.5 E(ALS)-.4 E F1(Design goals for) +112 363.2 Q F2(sendmail)2.5 E/F3 7/Times-Roman@0 SF(1)-4 I F1(include:) +2.5 4 M 12.5(\(1\) Compatibility)92 379.4 R 1.363(with the e)3.863 F +1.363(xisting mail programs, including Bell v)-.15 F 1.363 +(ersion 6 mail, Bell v)-.15 F 1.364(ersion 7)-.15 F 3.589(mail, Berk) +118.66 391.4 R(ele)-.1 E(y)-.15 E F2(Mail)6.089 E F1 3.589 +([Shoens79], BerkNet mail [Schmidt79], and hopefully UUCP mail)6.089 F +([No)118.66 403.4 Q 2.5(witz78]. ARP)-.25 F(ANET mail [Crock)-.92 E +(er82] w)-.1 E(as also required.)-.1 E 12.5(\(2\) Reliability)92 419.6 R +4.002(,i)-.65 G 4.002(nt)-4.002 G 1.502(he sense of guaranteeing that e) +-4.002 F -.15(ve)-.25 G 1.502(ry message is correctly deli).15 F -.15 +(ve)-.25 G 1.503(red or at least).15 F .368(brought to the attention of a human for correct disposal; no message should e) +118.66 431.6 R -.15(ve)-.25 G 2.868(rb).15 G 2.868(ec)-2.868 G +(ompletely)-2.868 E 2.54(lost. This)118.66 443.6 R .04(goal w)2.54 F +.041(as considered essential because of the emphasis on mail in our en) +-.1 F 2.541(vironment. It)-.4 F 1.755 +(has turned out to be one of the hardest goals to satisfy)118.66 455.6 R +4.254(,e)-.65 G 1.754(specially in the f)-4.254 F 1.754(ace of the man) +-.1 F(y)-.15 E .977(anomalous message formats produced by v)118.66 467.6 +R .977(arious ARP)-.25 F .977(ANET sites.)-.92 F -.15(Fo)5.977 G 3.478 +(re).15 G .978(xample, certain sites)-3.628 F .069 +(generate improperly formated addresses, occasionally causing error) +118.66 479.6 R .069(-message loops.)-.2 F .068(Some hosts)5.069 F .766(use blanks in names, causing problems with mail programs that assume that an address is one) +118.66 491.6 R -.1(wo)118.66 503.6 S 3.924(rd. The).1 F 1.423 +(semantics of some \214elds are interpreted slightly dif)3.923 F 1.423 +(ferently by dif)-.25 F 1.423(ferent sites.)-.25 F(In)6.423 E(summary) +118.66 515.6 Q 3.022(,t)-.65 G .523(he obscure features of the ARP) +-3.022 F .523(ANET mail protocol really)-.92 F F2(ar)3.023 E(e)-.37 E F1 +.523(used and are dif)3.023 F(\214cult)-.25 E(to support, b)118.66 527.6 +Q(ut must be supported.)-.2 E 12.5(\(3\) Existing)92 543.8 R(softw)2.939 +E .439(are to do actual deli)-.1 F -.15(ve)-.25 G .439 +(ry should be used whene).15 F -.15(ve)-.25 G 2.938(rp).15 G 2.938 +(ossible. This)-2.938 F .438(goal deri)2.938 F -.15(ve)-.25 G 2.938(sa) +.15 G(s)-2.938 E +(much from political and practical considerations as technical.)118.66 +555.8 Q 12.5(\(4\) Easy)92 572 R -.15(ex)2.898 G .398(pansion to f).15 F +.398(airly comple)-.1 F 2.898(xe)-.15 G -.4(nv)-2.898 G .399 +(ironments, including multiple connections to a single net-).4 F -.1(wo) +118.66 584 S .63(rk type \(such as with multiple UUCP or Ethernets\).).1 +F .63(This goal requires consideration of the)5.63 F(contents of an address as well as its syntax in order to determine which g) +118.66 596 Q(ate)-.05 E -.1(wa)-.25 G 2.5(yt).1 G 2.5(ou)-2.5 G(se.)-2.5 +E 12.5(\(5\) Con\214guration)92 612.2 R 1.048 +(information should not be compiled into the code.)3.548 F 3.549(As) +6.049 G 1.049(ingle compiled program)-3.549 F .084 +(should be able to run as is at an)118.66 624.2 R 2.584(ys)-.15 G .083 +(ite \(barring such basic changes as the CPU type or the operat-)-2.584 +F .342(ing system\).)118.66 636.2 R 1.942 -.8(We h)5.342 H -2.25 -.2 +(av e).8 H .343 +(found this seemingly unimportant goal to be critical in real life.) +3.042 F(Besides)5.343 E .734(the simple problems that occur when an) +118.66 648.2 R 3.234(yp)-.15 G .734(rogram gets recompiled in a dif) +-3.234 F .733(ferent en)-.25 F(vironment,)-.4 E(man)118.66 660.2 Q 2.5 +(ys)-.15 G(ites lik)-2.5 E 2.5(et)-.1 G 2.5<6f99>-2.5 G +(\214ddle\232 with an)-2.5 E(ything that the)-.15 E 2.5(yw)-.15 G +(ill be recompiling an)-2.5 E(yw)-.15 E(ay)-.1 E(.)-.65 E .32 LW 76 +678.8 72 678.8 DL 80 678.8 76 678.8 DL 84 678.8 80 678.8 DL 88 678.8 84 +678.8 DL 92 678.8 88 678.8 DL 96 678.8 92 678.8 DL 100 678.8 96 678.8 DL +104 678.8 100 678.8 DL 108 678.8 104 678.8 DL 112 678.8 108 678.8 DL 116 +678.8 112 678.8 DL 120 678.8 116 678.8 DL 124 678.8 120 678.8 DL 128 +678.8 124 678.8 DL 132 678.8 128 678.8 DL 136 678.8 132 678.8 DL 140 +678.8 136 678.8 DL 144 678.8 140 678.8 DL 148 678.8 144 678.8 DL 152 +678.8 148 678.8 DL 156 678.8 152 678.8 DL 160 678.8 156 678.8 DL 164 +678.8 160 678.8 DL 168 678.8 164 678.8 DL 172 678.8 168 678.8 DL 176 +678.8 172 678.8 DL 180 678.8 176 678.8 DL 184 678.8 180 678.8 DL 188 +678.8 184 678.8 DL 192 678.8 188 678.8 DL 196 678.8 192 678.8 DL 200 +678.8 196 678.8 DL 204 678.8 200 678.8 DL 208 678.8 204 678.8 DL 212 +678.8 208 678.8 DL 216 678.8 212 678.8 DL/F4 5/Times-Roman@0 SF(1)93.6 +689.2 Q/F5 8/Times-Roman@0 SF(This section mak)3.2 I +(es no distinction between)-.08 E/F6 8/Times-Italic@0 SF(delivermail)2 E +F5(and)2 E F6(sendmail.)2 E F0 -1(Ve)72 756 S(rsion 8.2)1 E +(USENIX \255 J)130.475 E(an 83)-.15 E(Last Mod 11/27/93)98.355 E EP +%%Page: 4 4 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF(Mail Systems and Addr)72 60 Q(essing in 4.2bsd) +-.18 E(4)259.93 E/F1 10/Times-Roman@0 SF(\(6\))92 96 Q/F2 10 +/Times-Italic@0 SF(Sendmail)15 E F1 .184(must be able to let v)2.684 F +.184(arious groups maintain their o)-.25 F .184 +(wn mailing lists, and let indi)-.25 F(viduals)-.25 E(specify their o) +118.66 108 Q(wn forw)-.25 E +(arding, without modifying the system alias \214le.)-.1 E 12.5 +(\(7\) Each)92 124.2 R .313 +(user should be able to specify which mailer to e)2.814 F -.15(xe)-.15 G +.313(cute to process mail being deli).15 F -.15(ve)-.25 G .313(red for) +.15 F 3.098(him. This)118.66 136.2 R .598(feature allo)3.098 F .598 +(ws users who are using specialized mailers that use a dif)-.25 F .598 +(ferent format to)-.25 F -.2(bu)118.66 148.2 S .25(ild their en).2 F .25 +(vironment without changing the system, and f)-.4 F .25 +(acilitates specialized functions \(such)-.1 F +(as returning an \231I am on v)118.66 160.2 Q(acation\232 message\).) +-.25 E 12.5(\(8\) Netw)92 176.4 R 1.552(ork traf)-.1 F 1.552(\214c should be minimized by batching addresses to a single host where possible,) +-.25 F(without assistance from the user)118.66 188.4 Q(.)-.55 E .375 +(These goals moti)112 204.6 R -.25(va)-.25 G .375 +(ted the architecture illustrated in \214gure 1.).25 F .374 +(The user interacts with a mail gen-)5.375 F .49 +(erating and sending program.)87 216.6 R .491 +(When the mail is created, the generator calls)5.49 F F2(sendmail)2.991 +E F1 2.991(,w)C .491(hich routes the)-2.991 F .841 +(message to the correct mailer\(s\).)87 228.6 R .841 +(Since some of the senders may be netw)5.841 F .84(ork serv)-.1 F .84 +(ers and some of the)-.15 F(mailers may be netw)87 240.6 Q(ork clients,) +-.1 E F2(sendmail)2.5 E F1(may be used as an internet mail g)2.5 E(ate) +-.05 E -.1(wa)-.25 G -.65(y.).1 G F0 2.5(3. USA)72 264.6 R(GE)-.55 E 2.5 +(3.1. Addr)87 288.6 R(ess F)-.18 E(ormats)-.25 E F1(Ar)127 304.8 Q .886 +(guments may be \215ags or addresses.)-.18 F .886(Flags set v)5.886 F +.886(arious processing options.)-.25 F -.15(Fo)5.886 G(llo).15 E .886 +(wing \215ag)-.25 F(ar)102 316.8 Q .611(guments, address ar)-.18 F .611 +(guments may be gi)-.18 F -.15(ve)-.25 G 3.111(n. Addresses).15 F(follo) +3.111 E 3.111(wt)-.25 G .611(he syntax in RFC822 [Crock)-3.111 F(er82]) +-.1 E(for ARP)102 328.8 Q(ANET address formats.)-.92 E +(In brief, the format is:)5 E 12.5(\(1\) An)107 345 R +(ything in parentheses is thro)-.15 E(wn a)-.25 E -.1(wa)-.15 G 2.5(y\() +.1 G(as a comment\).)-2.5 E 12.5(\(2\) An)107 361.2 R .051 +(ything in angle brack)-.15 F .051(ets \(\231<)-.1 F .051 +(>\232\) is preferred o)1.666 F -.15(ve)-.15 G 2.551(ra).15 G -.15(ny) +-2.551 G .051(thing else.).15 F .051(This rule implements the)5.051 F +(ARP)133.66 373.2 Q(ANET standard that addresses of the form)-.92 E .4 +LW 77 408 72 408 DL 79 408 74 408 DL 84 408 79 408 DL 89 408 84 408 DL +94 408 89 408 DL 99 408 94 408 DL 104 408 99 408 DL 109 408 104 408 DL +114 408 109 408 DL 119 408 114 408 DL 124 408 119 408 DL 129 408 124 408 +DL 134 408 129 408 DL 139 408 134 408 DL 144 408 139 408 DL 149 408 144 +408 DL 154 408 149 408 DL 159 408 154 408 DL 164 408 159 408 DL 169 408 +164 408 DL 174 408 169 408 DL 179 408 174 408 DL 184 408 179 408 DL 189 +408 184 408 DL 194 408 189 408 DL 199 408 194 408 DL 204 408 199 408 DL +209 408 204 408 DL 214 408 209 408 DL 219 408 214 408 DL 224 408 219 408 +DL 229 408 224 408 DL 234 408 229 408 DL 239 408 234 408 DL 244 408 239 +408 DL 249 408 244 408 DL 254 408 249 408 DL 259 408 254 408 DL 264 408 +259 408 DL 269 408 264 408 DL 274 408 269 408 DL 279 408 274 408 DL 284 +408 279 408 DL 289 408 284 408 DL 294 408 289 408 DL 299 408 294 408 DL +304 408 299 408 DL 309 408 304 408 DL 314 408 309 408 DL 319 408 314 408 +DL 324 408 319 408 DL 329 408 324 408 DL 334 408 329 408 DL 339 408 334 +408 DL 344 408 339 408 DL 349 408 344 408 DL 354 408 349 408 DL 359 408 +354 408 DL 364 408 359 408 DL 369 408 364 408 DL 374 408 369 408 DL 379 +408 374 408 DL 384 408 379 408 DL 389 408 384 408 DL 394 408 389 408 DL +399 408 394 408 DL 404 408 399 408 DL 409 408 404 408 DL 414 408 409 408 +DL 419 408 414 408 DL 424 408 419 408 DL 429 408 424 408 DL 434 408 429 +408 DL 439 408 434 408 DL 444 408 439 408 DL 449 408 444 408 DL 454 408 +449 408 DL 459 408 454 408 DL 464 408 459 408 DL 469 408 464 408 DL 474 +408 469 408 DL 479 408 474 408 DL 484 408 479 408 DL 489 408 484 408 DL +494 408 489 408 DL 499 408 494 408 DL 504 408 499 408 DL +(Figure 1 \212 Sendmail System Structure.)208 660 Q 77 672 72 672 DL 79 +672 74 672 DL 84 672 79 672 DL 89 672 84 672 DL 94 672 89 672 DL 99 672 +94 672 DL 104 672 99 672 DL 109 672 104 672 DL 114 672 109 672 DL 119 +672 114 672 DL 124 672 119 672 DL 129 672 124 672 DL 134 672 129 672 DL +139 672 134 672 DL 144 672 139 672 DL 149 672 144 672 DL 154 672 149 672 +DL 159 672 154 672 DL 164 672 159 672 DL 169 672 164 672 DL 174 672 169 +672 DL 179 672 174 672 DL 184 672 179 672 DL 189 672 184 672 DL 194 672 +189 672 DL 199 672 194 672 DL 204 672 199 672 DL 209 672 204 672 DL 214 +672 209 672 DL 219 672 214 672 DL 224 672 219 672 DL 229 672 224 672 DL +234 672 229 672 DL 239 672 234 672 DL 244 672 239 672 DL 249 672 244 672 +DL 254 672 249 672 DL 259 672 254 672 DL 264 672 259 672 DL 269 672 264 +672 DL 274 672 269 672 DL 279 672 274 672 DL 284 672 279 672 DL 289 672 +284 672 DL 294 672 289 672 DL 299 672 294 672 DL 304 672 299 672 DL 309 +672 304 672 DL 314 672 309 672 DL 319 672 314 672 DL 324 672 319 672 DL +329 672 324 672 DL 334 672 329 672 DL 339 672 334 672 DL 344 672 339 672 +DL 349 672 344 672 DL 354 672 349 672 DL 359 672 354 672 DL 364 672 359 +672 DL 369 672 364 672 DL 374 672 369 672 DL 379 672 374 672 DL 384 672 +379 672 DL 389 672 384 672 DL 394 672 389 672 DL 399 672 394 672 DL 404 +672 399 672 DL 409 672 404 672 DL 414 672 409 672 DL 419 672 414 672 DL +424 672 419 672 DL 429 672 424 672 DL 434 672 429 672 DL 439 672 434 672 +DL 444 672 439 672 DL 449 672 444 672 DL 454 672 449 672 DL 459 672 454 +672 DL 464 672 459 672 DL 469 672 464 672 DL 474 672 469 672 DL 479 672 +474 672 DL 484 672 479 672 DL 489 672 484 672 DL 494 672 489 672 DL 499 +672 494 672 DL 504 672 499 672 DL F0 -1(Ve)72 756 S(rsion 8.2)1 E +(USENIX \255 J)130.475 E(an 83)-.15 E(Last Mod 11/27/93)98.355 E EP +%%Page: 5 5 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF(Mail Systems and Addr)72 60 Q(essing in 4.2bsd) +-.18 E(5)259.93 E/F1 10/Times-Roman@0 SF(user name <machine-address>) +173.66 96 Q(will send to the electronic \231machine-address\232 rather than the human \231user name.) +133.66 112.2 Q<9a>-.7 E 12.5(\(3\) Double)107 128.4 R 2.246(quotes \() +4.746 F -2.754 2.5("\) q)2.5 H 2.246 +(uote phrases; backslashes quote characters.)-2.5 F 2.246 +(Backslashes are more)7.246 F(po)133.66 140.4 Q .654(werful in that the) +-.25 F 3.154(yw)-.15 G .655(ill cause otherwise equi)-3.154 F -.25(va) +-.25 G .655(lent phrases to compare dif).25 F .655(ferently \212 for) +-.25 F -.15(ex)133.66 152.4 S(ample,).15 E/F2 10/Times-Italic@0 SF(user) +3.873 E F1(and)3.873 E F2("user")3.872 E F1 1.372(are equi)3.872 F -.25 +(va)-.25 G 1.372(lent, b).25 F(ut)-.2 E F2(\\user)3.872 E F1 1.372 +(is dif)3.872 F 1.372(ferent from either of them.)-.25 F(This)6.372 E +(might be used to a)133.66 164.4 Q -.2(vo)-.2 G +(id normal aliasing or duplicate suppression algorithms.).2 E -.15(Pa) +127 180.6 S 1.12(rentheses, angle brack).15 F 1.12 +(ets, and double quotes must be properly balanced and nested.)-.1 F(The) +6.12 E(re)102 194.6 Q(writing rules control remaining parsing)-.25 E/F3 +7/Times-Roman@0 SF(2)-4 I F1(.)4 I .644(Although old style addresses are still accepted in most cases, the preferred address format is) +127 210.8 R .299(based on ARP)102 222.8 R(ANET)-.92 E .299 +(-style domain-based addresses [Su82a].)-.92 F .299 +(These addresses are based on a hierar)5.299 F(-)-.2 E .13 +(chical, logical decomposition of the address space.)102 234.8 R .13 +(The addresses are hierarchical in a sense similar)5.13 F 1.133(to the U.S. postal addresses: the messages may \214rst be routed to the correct state, with no initial) +102 246.8 R .72(consideration of the city or other addressing details.) +102 258.8 R .72(The addresses are logical in that each step in)5.72 F +(the hierarch)102 270.8 Q 2.5(yc)-.05 G +(orresponds to a set of \231naming authorities\232 rather than a ph)-2.5 +E(ysical netw)-.05 E(ork.)-.1 E -.15(Fo)127 287 S 2.5(re).15 G +(xample, the address:)-2.65 E(eric@HostA.BigSite.ARP)142 303.2 Q(A)-.92 +E -.1(wo)102 319.4 S .851(uld \214rst look up the domain BigSite in the namespace administrated by ARP) +.1 F 3.351(A. A)-.92 F .851(query could)3.351 F 1.476 +(then be sent to BigSite for interpretation of HostA.)102 331.4 R(Ev) +6.475 E 1.475(entually the mail w)-.15 F 1.475(ould arri)-.1 F 1.775 +-.15(ve a)-.25 H 3.975(tH).15 G(ostA,)-3.975 E(which w)102 343.4 Q +(ould then do \214nal deli)-.1 E -.15(ve)-.25 G(ry to user \231eric.).15 +E<9a>-.7 E F0 2.5(3.2. Mail)87 367.4 R(to Files and Pr)2.5 E(ograms)-.18 +E F1 .609(Files and programs are le)127 383.6 R .609 +(gitimate message recipients.)-.15 F .609(Files pro)5.609 F .609 +(vide archi)-.15 F -.25(va)-.25 G 3.109(ls).25 G .61(torage of mes-) +-3.109 F .124(sages, useful for project administration and history)102 +395.6 R 5.124(.P)-.65 G .124(rograms are useful as recipients in a v) +-5.124 F .124(ariety of)-.25 F .69(situations, for e)102 407.6 R .691(xample, to maintain a public repository of systems messages \(such as the Berk) +-.15 F(ele)-.1 E(y)-.15 E F2(msgs)102 419.6 Q F1(program\).)2.5 E(An)127 +435.8 Q 3.188(ya)-.15 G .688(ddress passing through the initial parsing algorithm as a local address \(i.e, not appear) +-3.188 F(-)-.2 E .276(ing to be a v)102 447.8 R .276 +(alid address for another mailer\) is scanned for tw)-.25 F 2.776(os)-.1 +G .277(pecial cases.)-2.776 F .277(If pre\214x)5.277 F .277(ed by a v) +-.15 F(erti-)-.15 E .18(cal bar \(\231)102 459.8 R .833<7c9a>.833 G 2.68 +(\)t)-.833 G .179 +(he rest of the address is processed as a shell command.)-2.68 F .179 +(If the user name be)5.179 F .179(gins with a)-.15 F(slash mark \(\231/) +102 471.8 Q +(\232\) the name is used as a \214le name, instead of a login name.).833 +E F0 2.5(3.3. Aliasing,)87 495.8 R -.25(Fo)2.5 G(rwarding, Inclusion).25 +E F2(Sendmail)127 512 Q F1 1.074(reroutes mail three w)3.574 F 3.574 +(ays. Aliasing)-.1 F 1.075(applies system wide.)3.575 F -.15(Fo)6.075 G +(rw).15 E 1.075(arding allo)-.1 F 1.075(ws each)-.25 F .233 +(user to reroute incoming mail destined for that account.)102 524 R .233 +(Inclusion directs)5.233 F F2(sendmail)2.733 E F1 .233 +(to read a \214le for)2.733 F 2.5(al)102 536 S +(ist of addresses, and is normally used in conjunction with aliasing.) +-2.5 E F0 2.5(3.3.1. Aliasing)102 560 R F1 .065(Aliasing maps local addresses to address lists using a system-wide \214le.) +142 576.2 R .065(This \214le is hashed)5.065 F 1.546(to speed access.) +117 588.2 R 1.545(Only addresses that parse as local are allo)6.546 F +1.545(wed as aliases; this guarantees a)-.25 F(unique k)117 600.2 Q .3 +-.15(ey \()-.1 H(since there are no nicknames for the local host\).).15 +E F0 2.5(3.3.2. F)102 624.2 R(orwarding)-.25 E F1 .641 +(After aliasing, if an recipient address speci\214es a local user)142 +640.4 R F2(sendmail)3.141 E F1 .641(searches for a \231.for)3.141 F(-) +-.2 E -.1(wa)117 652.4 S .413(rd\232 \214le in the recipient').1 F 2.913 +(sh)-.55 G .413(ome directory)-2.913 F 5.413(.I)-.65 G 2.913(fi)-5.413 G +2.913(te)-2.913 G .413(xists, the message is)-3.063 F F2(not)2.913 E F1 +.412(sent to that user)2.913 F 2.912(,b)-.4 G(ut)-3.112 E .745 +(rather to the list of addresses in that \214le.)117 664.4 R .746 +(Often this list will contain only one address, and the)5.746 F +(feature will be used for netw)117 676.4 Q(ork mail forw)-.1 E(arding.) +-.1 E .32 LW 76 686 72 686 DL 80 686 76 686 DL 84 686 80 686 DL 88 686 +84 686 DL 92 686 88 686 DL 96 686 92 686 DL 100 686 96 686 DL 104 686 +100 686 DL 108 686 104 686 DL 112 686 108 686 DL 116 686 112 686 DL 120 +686 116 686 DL 124 686 120 686 DL 128 686 124 686 DL 132 686 128 686 DL +136 686 132 686 DL 140 686 136 686 DL 144 686 140 686 DL 148 686 144 686 +DL 152 686 148 686 DL 156 686 152 686 DL 160 686 156 686 DL 164 686 160 +686 DL 168 686 164 686 DL 172 686 168 686 DL 176 686 172 686 DL 180 686 +176 686 DL 184 686 180 686 DL 188 686 184 686 DL 192 686 188 686 DL 196 +686 192 686 DL 200 686 196 686 DL 204 686 200 686 DL 208 686 204 686 DL +212 686 208 686 DL 216 686 212 686 DL/F4 5/Times-Roman@0 SF(2)93.6 696.4 +Q/F5 8/Times-Roman@0 SF +(Disclaimer: Some special processing is done after re)3.2 I +(writing local names; see belo)-.2 E -.52(w.)-.2 G F0 -1(Ve)72 756 S +(rsion 8.2)1 E(USENIX \255 J)130.475 E(an 83)-.15 E(Last Mod 11/27/93) +98.355 E EP +%%Page: 6 6 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF(Mail Systems and Addr)72 60 Q(essing in 4.2bsd) +-.18 E(6)259.93 E/F1 10/Times-Roman@0 SF -.15(Fo)142 96 S(rw).15 E 1.152 +(arding also permits a user to specify a pri)-.1 F -.25(va)-.25 G 1.151 +(te incoming mailer).25 F 6.151(.F)-.55 G 1.151(or e)-6.301 F 1.151 +(xample, for)-.15 F(-)-.2 E -.1(wa)117 108 S(rding to:).1 E -2.5 .833 +("| /)157 124.2 T(usr/local/ne)-.833 E(wmail myname")-.25 E +(will use a dif)117 140.4 Q(ferent incoming mailer)-.25 E(.)-.55 E F0 +2.5(3.3.3. Inclusion)102 164.4 R F1 +(Inclusion is speci\214ed in RFC 733 [Crock)142 180.6 Q(er77] syntax:) +-.1 E(:Include: pathname)157 196.8 Q .391 +(An address of this form reads the \214le speci\214ed by)117 213 R/F2 10 +/Times-Italic@0 SF(pathname)2.891 E F1 .391 +(and sends to all users listed in that)2.891 F(\214le.)117 225 Q .645 +(The intent is)142 241.2 R F2(not)3.145 E F1 .644 +(to support direct use of this feature, b)3.145 F .644 +(ut rather to use this as a subset of)-.2 F 2.5(aliasing. F)117 253.2 R +(or e)-.15 E(xample, an alias of the form:)-.15 E +(project: :include:/usr/project/userlist)157 269.4 Q 1.93(is a method of letting a project maintain a mailing list without interaction with the system) +117 285.6 R(administration, e)117 297.6 Q -.15(ve)-.25 G 2.5(ni).15 G +2.5(ft)-2.5 G(he alias \214le is protected.)-2.5 E 2.025 +(It is not necessary to reb)142 313.8 R 2.025(uild the inde)-.2 F 4.524 +(xo)-.15 G 4.524(nt)-4.524 G 2.024 +(he alias database when a :include: list is)-4.524 F(changed.)117 325.8 +Q F0 2.5(3.4. Message)87 349.8 R(Collection)2.5 E F1 .857 +(Once all recipient addresses are parsed and v)127 366 R .857 +(eri\214ed, the message is collected.)-.15 F .857(The message)5.857 F +.574(comes in tw)102 378 R 3.074(op)-.1 G .574 +(arts: a message header and a message body)-3.074 F 3.074(,s)-.65 G .574 +(eparated by a blank line.)-3.074 F .573(The body is)5.574 F +(an uninterpreted sequence of te)102 390 Q(xt lines.)-.15 E +(The header is formated as a series of lines of the form)127 406.2 Q +(\214eld-name: \214eld-v)178 422.4 Q(alue)-.25 E(Field-v)102 438.6 Q +1.366(alue can be split across lines by starting the follo)-.25 F 1.366 +(wing lines with a space or a tab)-.25 F 6.366(.S)-.4 G(ome)-6.366 E +.211(header \214elds ha)102 450.6 R .511 -.15(ve s)-.2 H .211 +(pecial internal meaning, and ha).15 F .511 -.15(ve a)-.2 H .211 +(ppropriate special processing.).15 F .21(Other headers)5.21 F +(are simply passed through.)102 462.6 Q +(Some header \214elds may be added automatically)5 E 2.5(,s)-.65 G +(uch as time stamps.)-2.5 E F0 2.5(4. THE)72 486.6 R(UUCP PR)2.5 E +(OBLEM)-.3 E F1 .43(Of particular interest is the UUCP netw)112 502.8 R +2.93(ork. The)-.1 F -.15(ex)2.93 G .43 +(plicit routing used in the UUCP en).15 F(vironment)-.4 E .909 +(causes a number of serious problems.)87 514.8 R .909(First, gi)5.909 F +.908(ving out an address is impossible without kno)-.25 F .908(wing the) +-.25 F .453(address of your potential correspondent.)87 526.8 R .454 +(This is typically handled by specifying the address relati)5.453 F .754 +-.15(ve t)-.25 H(o).15 E 1.208(some \231well-kno)87 538.8 R 1.208 +(wn\232 host \(e.g., ucb)-.25 F -.25(va)-.15 G 3.708(xo).25 G 3.708(rd) +-3.708 G(ecv)-3.708 E 3.708(ax\). Second,)-.25 F 1.207(it is often dif) +3.708 F 1.207(\214cult to compute the set of)-.25 F .157 +(addresses to reply to without some kno)87 550.8 R .157 +(wledge of the topology of the netw)-.25 F 2.657(ork. Although)-.1 F +.157(it may be easy)2.657 F .352(for a human being to do this under man) +87 562.8 R 2.851(yc)-.15 G .351(ircumstances, a program does not ha) +-2.851 F .651 -.15(ve e)-.2 H .351(qually sophisticated).15 F 1.153 +(heuristics b)87 574.8 R 1.153(uilt in.)-.2 F 1.154(Third, certain addresses will become painfully and unnecessarily long, as when a) +6.153 F .406(message is routed through man)87 586.8 R 2.906(yh)-.15 G +.406(osts in the USENET)-2.906 F 5.406(.A)-.74 G .406(nd \214nally) +-5.406 F 2.905(,c)-.65 G .405(ertain \231mix)-2.905 F .405 +(ed domain\232 addresses)-.15 F +(are impossible to parse unambiguously \212 e.g.,)87 598.8 Q(decv)127 +615 Q(ax!ucb)-.25 E -.25(va)-.15 G(x!lbl-h!user@LBL-CSAM).25 E .378 +(might ha)87 631.2 R .678 -.15(ve m)-.2 H(an).15 E 2.878(yp)-.15 G .379 +(ossible resolutions, depending on whether the message w)-2.878 F .379 +(as \214rst routed to decv)-.1 F .379(ax or)-.25 F(to LBL-CSAM.)87 643.2 +Q 2.32 -.8(To s)112 659.4 T(olv).8 E 3.22(et)-.15 G .72 +(his problem, the UUCP syntax w)-3.22 F .719(ould ha)-.1 F 1.019 -.15 +(ve t)-.2 H 3.219(ob).15 G 3.219(ec)-3.219 G .719 +(hanged to use addresses rather than)-3.219 F 3.718(routes. F)87 671.4 R +1.218(or e)-.15 F 1.218(xample, the address \231decv)-.15 F(ax!ucb)-.25 +E -.25(va)-.15 G 1.218(x!eric\232 might be e).25 F 1.218 +(xpressed as \231eric@ucb)-.15 F -.25(va)-.15 G(x.UUCP\232).25 E .079 +(\(with the hop through decv)87 683.4 R .079(ax implied\).)-.25 F .079 +(This address w)5.079 F .078 +(ould itself be a domain-based address; for e)-.1 F(xam-)-.15 E +(ple, an address might be of the form:)87 695.4 Q(mark@d.cbosg.btl.UUCP) +127 711.6 Q F0 -1(Ve)72 756 S(rsion 8.2)1 E(USENIX \255 J)130.475 E +(an 83)-.15 E(Last Mod 11/27/93)98.355 E EP +%%Page: 7 7 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF(Mail Systems and Addr)72 60 Q(essing in 4.2bsd) +-.18 E(7)259.93 E/F1 10/Times-Roman@0 SF .311(Hosts outside of Bell T)87 +96 R .311(elephone Laboratories w)-.7 F .311(ould then only need to kno) +-.1 F 2.811(wh)-.25 G .811 -.25(ow t)-2.811 H 2.811(og).25 G .312 +(et to a designated)-2.811 F(BTL relay)87 108 Q 2.5(,a)-.65 G +(nd the BTL topology w)-2.5 E(ould only be maintained inside Bell.)-.1 E +.543(There are three major problems associated with turning UUCP addresses into something reason-) +112 124.2 R .465(able: de\214ning the namespace, creating and propag)87 +136.2 R .465(ating the necessary softw)-.05 F .466(are, and b)-.1 F .466 +(uilding and main-)-.2 F(taining the database.)87 148.2 Q F0 2.5 +(4.1. De\214ning)87 172.2 R(the Namespace)2.5 E F1 1.015(Putting all UUCP hosts into a \215at namespace \(e.g., \231...@host.UUCP\232\) is not practical for a) +127 188.4 R .222(number of reasons.)102 200.4 R .222(First, with o)5.222 +F -.15(ve)-.15 G 2.722(r1).15 G .222(600 sites already)-2.722 F 2.722 +(,a)-.65 G .222(nd \(with the increasing a)-2.722 F -.25(va)-.2 G .222 +(ilability of ine).25 F(x-)-.15 E(pensi)102 212.4 Q 1.973 -.15(ve m)-.25 +H 1.673(icrocomputers and autodialers\) se).15 F -.15(ve)-.25 G 1.672 +(ral thousand more coming within a fe).15 F 4.172(wy)-.25 G 1.672 +(ears, the)-4.172 F .078(database update problem is simply intractable if the namespace is \215at.) +102 224.4 R .078(Second, there are almost cer)5.078 F(-)-.2 E 2.446 +(tainly name con\215icts today)102 236.4 R 7.446(.T)-.65 G 2.446 +(hird, as the number of sites gro)-7.446 F 4.946(wt)-.25 G 2.446 +(he names become e)-4.946 F -.15(ve)-.25 G 4.946(rl).15 G(ess)-4.946 E +(mnemonic.)102 248.4 Q .534(It seems ine)127 264.6 R .535(vitable that there be some sort of naming authority for the set of top le) +-.25 F -.15(ve)-.25 G 3.035(ln).15 G(ames)-3.035 E .157 +(in the UUCP domain, as unpleasant a possibility as that may seem.)102 +276.6 R .157(It will simply not be possible to)5.157 F(ha)102 288.6 Q +.536 -.15(ve o)-.2 H .236(ne host resolving all names.).15 F .236 +(It may ho)5.236 F(we)-.25 E -.15(ve)-.25 G 2.736(rb).15 G 2.736(ep) +-2.736 G .236(ossible to handle this in a f)-2.736 F .237 +(ashion similar to)-.1 F 1.582(that of assigning names of ne)102 300.6 R +1.582(wsgroups in USENET)-.25 F 6.582(.H)-.74 G -.25(ow)-6.582 G -2.15 +-.25(ev e).25 H 2.382 -.4(r, i).25 H 4.082(tw).4 G 1.582 +(ill be essential to encourage)-4.082 F -2.15 -.25(ev e)102 312.6 T .52 +(ryone to become subdomains of an e).25 F .52(xisting domain whene)-.15 +F -.15(ve)-.25 G 3.02(rp).15 G .52(ossible \212 e)-3.02 F -.15(ve)-.25 G +3.02(nt).15 G .52(hough this will)-3.02 F .077(certainly bruise some e) +102 324.6 R 2.577(gos. F)-.15 F .077(or e)-.15 F .077(xample, if a ne) +-.15 F 2.577(wh)-.25 G .076 +(ost named \231blid\232 were to be added to the UUCP)-2.577 F(netw)102 +336.6 Q .65(ork, it w)-.1 F .651(ould probably actually be addressed as \231d.bli.UUCP\232 \(i.e., as host \231d\232 in the pseudo-) +-.1 F(domain \231bli\232 rather than as host \231blid\232 in the UUCP domain\).) +102 348.6 Q F0 2.5(4.2. Cr)87 372.6 R(eating and Pr)-.18 E +(opagating the Softwar)-.18 E(e)-.18 E F1 .078(The softw)127 388.8 R +.078(are required to implement a consistent namespace is relati)-.1 F +-.15(ve)-.25 G .077(ly tri).15 F 2.577(vial. T)-.25 F .277 -.1(wo m)-.8 +H(odules).1 E(are needed, one to handle incoming mail and one to handle outgoing mail.) +102 400.8 Q 1.136 +(The incoming module must be prepared to handle either old or ne)127 417 +R 3.636(ws)-.25 G 1.136(tyle addresses.)-3.636 F(Ne)6.136 E(w-)-.25 E +.025(style addresses can be passed through unchanged.)102 429 R .024 +(Old style addresses must be turned into ne)5.025 F 2.524(ws)-.25 G +(tyle)-2.524 E(addresses where possible.)102 441 Q 2.247 +(The outgoing module is slightly trickier)127 457.2 R 7.247(.I)-.55 G +4.747(tm)-7.247 G 2.247(ust do a database lookup on the recipient)-4.747 +F .823(addresses \(passed on the command line\) to determine what hosts to send the message to.) +102 469.2 R .823(If those)5.823 F .023(hosts do not accept ne)102 481.2 +R .024(w-style addresses, it must transform all addresses in the header of the message) +-.25 F(into old style using the database lookup.)102 493.2 Q 1.197 +(Both of these modules are straightforw)127 509.4 R 1.197(ard e)-.1 F +1.197(xcept for the issue of modifying the header)-.15 F 6.197(.I)-.55 G +(t)-6.197 E .944 +(seems prudent to choose one format for the message headers.)102 521.4 R +-.15(Fo)5.944 G 3.444(ran).15 G .944(umber of reasons, Berk)-3.444 F +(ele)-.1 E(y)-.15 E .824(has elected to use the ARP)102 533.4 R .824 +(ANET protocols for message formats.)-.92 F(Ho)5.823 E(we)-.25 E -.15 +(ve)-.25 G 1.623 -.4(r, t).15 H .823(his protocol is some-).4 F +(what dif)102 545.4 Q(\214cult to parse.)-.25 E(Propag)127 561.6 Q 1.903 +(ation is some)-.05 F 1.903(what more dif)-.25 F 4.403(\214cult. There) +-.25 F 1.903(are a lar)4.403 F 1.903(ge number of hosts connected to) +-.18 F .812(UUCP that will w)102 573.6 R .811 +(ant to run completely standard systems \(for v)-.1 F .811 +(ery good reasons\).)-.15 F .811(The strate)5.811 F .811(gy is)-.15 F +(not to con)102 585.6 Q -.15(ve)-.4 G(rt the entire netw).15 E +(ork \212 only enough of it it alle)-.1 E(viate the problem.)-.25 E F0 +2.5(4.3. Building)87 609.6 R(and Maintaining the Database)2.5 E F1 .127 +(This is by f)127 625.8 R .127(ar the most dif)-.1 F .128 +(\214cult problem.)-.25 F 2.628(Ap)5.128 G .128 +(rototype for this database already e)-2.628 F .128(xists, b)-.15 F .128 +(ut it is)-.2 F(maintained by hand and does not pretend to be complete.) +102 637.8 Q .701(This problem will be reduced considerably if people choose to group their hosts into subdo-) +127 654 R 3.219(mains. This)102 666 R -.1(wo)3.219 G .719 +(uld require a global update only when a ne).1 F 3.22(wt)-.25 G .72 +(op le)-3.22 F -.15(ve)-.25 G 3.22(ld).15 G .72(omain joined the netw) +-3.22 F(ork.)-.1 E 2.805(Am)102 678 S .305 +(essage to a host in a subdomain could simply be routed to a kno)-2.805 +F .304(wn domain g)-.25 F(ate)-.05 E -.1(wa)-.25 G 2.804(yf).1 G .304 +(or further)-2.804 F 3.073(processing. F)102 690 R .573(or e)-.15 F .573 +(xample, the address \231eric@a.bli.UUCP\232 might be routed to the \231bli\232 g) +-.15 F(ate)-.05 E -.1(wa)-.25 G 3.074(yf).1 G(or)-3.074 E(redistrib)102 +702 Q 1.376(ution; ne)-.2 F 3.876(wh)-.25 G 1.375 +(osts could be added within BLI without notifying the rest of the w) +-3.876 F 3.875(orld. Of)-.1 F(course, other hosts)102 714 Q/F2 10 +/Times-Italic@0 SF(could)2.5 E F1(be noti\214ed as an ef)2.5 E +(\214cienc)-.25 E 2.5(ym)-.15 G(easure.)-2.5 E F0 -1(Ve)72 756 S +(rsion 8.2)1 E(USENIX \255 J)130.475 E(an 83)-.15 E(Last Mod 11/27/93) +98.355 E EP +%%Page: 8 8 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Bold@0 SF(Mail Systems and Addr)72 60 Q(essing in 4.2bsd) +-.18 E(8)259.93 E/F1 10/Times-Roman@0 SF .966 +(There may be more than one domain g)127 96 R(ate)-.05 E -.1(wa)-.25 G +4.767 -.65(y. A).1 H .967(domain such as BTL, for instance, might)4.117 +F(ha)102 108 Q .653 -.15(ve a d)-.2 H .353(ozen g).15 F(ate)-.05 E -.1 +(wa)-.25 G .353(ys to the outside w).1 F .352 +(orld; a non-BTL site could choose the closest g)-.1 F(ate)-.05 E -.1 +(wa)-.25 G 4.152 -.65(y. T).1 H(he).65 E .308(only restriction w)102 120 +R .308(ould be that all g)-.1 F(ate)-.05 E -.1(wa)-.25 G .308 +(ys maintain a consistent vie).1 F 2.808(wo)-.25 G 2.808(ft)-2.808 G +.308(he domain the)-2.808 F 2.808(yr)-.15 G(epresent.)-2.808 E F0 2.5 +(4.4. Logical)87 144 R(Structur)2.5 E(e)-.18 E F1(Logically)127 160.2 Q +3.803(,d)-.65 G 1.303(omains are or)-3.803 F -.05(ga)-.18 G 1.303 +(nized into a tree.).05 F 1.303 +(There need not be a host actually associated)6.303 F .462(with each le) +102 172.2 R -.15(ve)-.25 G 2.962(li).15 G 2.962(nt)-2.962 G .462 +(he tree \212 for e)-2.962 F .462 +(xample, there will be no host associated with the name \231UUCP)-.15 F +-.7<2e9a>-1.11 G(Similarly)102 184.2 Q 3.115(,a)-.65 G 3.115(no)-3.115 G +-2.19 -.18(rg a)-3.115 H .614 +(nization might group names together for administrati).18 F .914 -.15 +(ve r)-.25 H .614(easons; for e).15 F .614(xample, the)-.15 F(name)102 +196.2 Q(CAD.research.BigCorp.UUCP)142 212.4 Q(might not actually ha)102 +228.6 Q .3 -.15(ve a h)-.2 H(ost representing \231research.).15 E<9a>-.7 +E(Ho)127 244.8 Q(we)-.25 E -.15(ve)-.25 G 1.531 -.4(r, i).15 H 3.231(tm) +.4 G .731(ay frequently be con)-3.231 F -.15(ve)-.4 G .731(nient to ha) +.15 F 1.031 -.15(ve a h)-.2 H .732 +(ost or hosts that \231represent\232 a domain.).15 F -.15(Fo)102 256.8 S +3.466(re).15 G .966(xample, if a single host e)-3.616 F .966 +(xists that represents Berk)-.15 F(ele)-.1 E 2.266 -.65(y, t)-.15 H .966 +(hen mail from outside Berk).65 F(ele)-.1 E 3.466(yc)-.15 G(an)-3.466 E +(forw)102 268.8 Q .796 +(ard mail to that host for further resolution without kno)-.1 F .796 +(wing Berk)-.25 F(ele)-.1 E(y')-.15 E 3.296(s\()-.55 G .797(rather v) +-3.296 F .797(olatile\) topol-)-.2 F(ogy)102 280.8 Q 5(.T)-.65 G +(his is not unlik)-5 E 2.5(et)-.1 G(he operation of the telephone netw) +-2.5 E(ork.)-.1 E .053(This may also be useful inside certain lar)127 +297 R .053(ge domains.)-.18 F -.15(Fo)5.053 G 2.553(re).15 G .053 +(xample, at Berk)-2.703 F(ele)-.1 E 2.553(yi)-.15 G 2.553(tm)-2.553 G +.053(ay be pre-)-2.553 F .722(sumed that most hosts kno)102 309 R 3.222 +(wa)-.25 G .722(bout other hosts inside the Berk)-3.222 F(ele)-.1 E +3.223(yd)-.15 G 3.223(omain. But)-3.223 F .723(if the)3.223 F 3.223(yp) +-.15 G .723(rocess an)-3.223 F .405(address that is unkno)102 321 R .405 +(wn, the)-.25 F 2.905(yc)-.15 G .405 +(an pass it \231upstairs\232 for further e)-2.905 F 2.905 +(xamination. Thus)-.15 F .405(as ne)2.905 F 2.905(wh)-.25 G .405 +(osts are)-2.905 F .488(added only one host \(the domain master\))102 +333 R/F2 10/Times-Italic@0 SF(must)2.989 E F1 .489 +(be updated immediately; other hosts can be updated)2.989 F(as con)102 +345 Q -.15(ve)-.4 G(nient.).15 E .583 +(Ideally this name resolution process w)127 361.2 R .583 +(ould be performed by a name serv)-.1 F .582(er \(e.g., [Su82b]\) to) +-.15 F -.2(avo)102 373.2 S .507(id unnecessary cop).2 F .507 +(ying of the message.)-.1 F(Ho)5.507 E(we)-.25 E -.15(ve)-.25 G 1.307 +-.4(r, i).15 H 3.007(nab).4 G .507(atch netw)-3.007 F .508 +(ork such as UUCP this could)-.1 F(result in unnecessary delays.)102 +385.2 Q F0 2.5(5. COMP)72 409.2 R(ARISON WITH DELIVERMAIL)-.74 E F2 +(Sendmail)112 425.4 Q F1(is an outgro)2.5 E(wth of)-.25 E F2 +(delivermail)2.5 E F1 5(.T)C(he primary dif)-5 E(ferences are:)-.25 E +12.5(\(1\) Con\214guration)92 441.6 R .573 +(information is not compiled in.)3.073 F .572 +(This change simpli\214es man)5.572 F 3.072(yo)-.15 G 3.072(ft)-3.072 G +.572(he problems of)-3.072 F(mo)118.66 453.6 Q(ving to other machines.) +-.15 E(It also allo)5 E(ws easy deb)-.25 E(ugging of ne)-.2 E 2.5(wm) +-.25 G(ailers.)-2.5 E 12.5(\(2\) Address)92 469.8 R .491 +(parsing is more \215e)2.991 F 2.991(xible. F)-.15 F .491(or e)-.15 F +(xample,)-.15 E F2(delivermail)2.992 E F1 .492(only supported one g) +2.992 F(ate)-.05 E -.1(wa)-.25 G 2.992(yt).1 G 2.992(oa)-2.992 G -.15 +(ny)-2.992 G(netw)118.66 481.8 Q(ork, whereas)-.1 E F2(sendmail)2.5 E F1 +(can be sensiti)2.5 E .3 -.15(ve t)-.25 H 2.5(oh).15 G +(ost names and reroute to dif)-2.5 E(ferent g)-.25 E(ate)-.05 E -.1(wa) +-.25 G(ys.).1 E 12.5(\(3\) F)92 498 R(orw)-.15 E 2.878(arding and :include: features eliminate the requirement that the system alias \214le be) +-.1 F 1.073(writable by an)118.66 510 R 3.573(yu)-.15 G 1.073(ser \(or that an update program be written, or that the system administration) +-3.573 F(mak)118.66 522 Q 2.5(ea)-.1 G(ll changes\).)-2.5 E(\(4\))92 +538.2 Q F2(Sendmail)15 E F1 .443(supports message batching across netw) +2.944 F .443(orks when a message is being sent to multiple)-.1 F +(recipients.)118.66 550.2 Q 12.5(\(5\) A)92 566.4 R 1.945 +(mail queue is pro)4.445 F 1.946(vided in)-.15 F F2(sendmail.)4.446 E F1 +1.946(Mail that cannot be deli)6.946 F -.15(ve)-.25 G 1.946 +(red immediately b).15 F 1.946(ut can)-.2 F .439(potentially be deli) +118.66 578.4 R -.15(ve)-.25 G .438 +(red later is stored in this queue for a later retry).15 F 5.438(.T)-.65 +G .438(he queue also pro)-5.438 F .438(vides a)-.15 F -.2(bu)118.66 +590.4 S -.25(ff).2 G .838(er ag).25 F .839(ainst system crashes; after the message has been collected it may be reliably redeli) +-.05 F(v-)-.25 E(ered e)118.66 602.4 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5 +(ft)-2.5 G(he system crashes during the initial deli)-2.5 E -.15(ve)-.25 +G(ry).15 E(.)-.65 E(\(6\))92 618.6 Q F2(Sendmail)15 E F1 1.351 +(uses the netw)3.851 F 1.351(orking support pro)-.1 F 1.351 +(vided by 4.2BSD to pro)-.15 F 1.35(vide a direct interf)-.15 F 1.35 +(ace net-)-.1 F -.1(wo)118.66 630.6 S .283(rks such as the ARP).1 F .284 +(ANET and/or Ethernet using SMTP \(the Simple Mail T)-.92 F .284 +(ransfer Protocol\))-.35 F -.15(ove)118.66 642.6 S 2.5(raT).15 G +(CP/IP connection.)-2.5 E F0 -1(Ve)72 756 S(rsion 8.2)1 E(USENIX \255 J) +130.475 E(an 83)-.15 E(Last Mod 11/27/93)98.355 E EP +%%Page: 9 9 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF(REFERENCES)264.105 132 Q([Crock)87 148.2 Q 56.73 +(er77] Crock)-.1 F(er)-.1 E 3.535(,D)-.4 G 3.535(.H)-3.535 G 1.035(., V) +-3.535 F 1.035(ittal, J. J., Pogran, K. T)-.6 F 1.035 +(., and Henderson, D. A. Jr)-.74 F(.,)-.55 E/F1 10/Times-Italic@0 SF +(Stan-)3.535 E(dar)195 160.2 Q 2.627(df)-.37 G .127(or the F)-2.627 F +.127(ormat of ARP)-1.05 F 2.627(AN)-.9 G .128(etwork T)-2.627 F -.2(ex) +-.92 G 2.628(tM).2 G(essa)-2.628 E -.1(ge)-.1 G(s.).1 E F0 .128 +(RFC 733, NIC 41952.)5.128 F(In [Feinler78].)195 172.2 Q(No)5 E -.15(ve) +-.15 G(mber 1977.).15 E([Crock)87 188.4 Q 56.73(er82] Crock)-.1 F(er)-.1 +E 4.272(,D)-.4 G 4.272(.H)-4.272 G(.,)-4.272 E F1(Standar)4.272 E 4.272 +(df)-.37 G 1.772(or the F)-4.272 F 1.772(ormat of Arpa Internet T)-1.05 +F -.2(ex)-.92 G 4.271(tM).2 G(essa)-4.271 E -.1(ge)-.1 G(s.).1 E F0 .025 +(RFC 822.)195 200.4 R(Netw)5.025 E .025(ork Information Center)-.1 F +2.526(,S)-.4 G .026(RI International, Menlo P)-2.526 F .026(ark, Cali-) +-.15 F 2.5(fornia. August)195 212.4 R(1982.)2.5 E 60.51 +([Feinler78] Feinler)87 228.6 R 2.938(,E)-.4 G .438(., and Postel, J.) +-2.938 F(\(eds.\),)5.438 E F1(ARP)2.938 E .438(ANET Pr)-.9 F .438 +(otocol Handbook.)-.45 F F0 .438(NIC 7104,)5.438 F(Netw)195 240.6 Q +3.011(ork Information Center)-.1 F 5.511(,S)-.4 G 3.012 +(RI International, Menlo P)-5.511 F 3.012(ark, California.)-.15 F(1978.) +195 252.6 Q([No)87 268.8 Q 59.65(witz78] No)-.25 F .479 +(witz, D. A., and Lesk, M. E.,)-.25 F F1 2.978(AD)2.978 G .478 +(ial-Up Network of UNIX Systems.)-2.978 F F0(Bell)5.478 E 3.528 +(Laboratories. In)195 280.8 R 1.029(UNIX Programmer')3.528 F 3.529(sM) +-.55 G 1.029(anual, Se)-3.529 F -.15(ve)-.25 G 1.029(nth Edition, V).15 +F 1.029(olume 2.)-1.29 F(August, 1978.)195 292.8 Q 55.5 +([Schmidt79] Schmidt,)87 309 R(E.,)2.631 E F1 .131(An Intr)2.631 F .131 +(oduction to the Berk)-.45 F(ele)-.1 E 2.631(yN)-.3 G(etwork.)-2.631 E +F0(Uni)5.131 E -.15(ve)-.25 G .131(rsity of Califor).15 F(-)-.2 E +(nia, Berk)195 321 Q(ele)-.1 E 2.5(yC)-.15 G 2.5(alifornia. 1979.)-2.5 F +59.95([Shoens79] Shoens,)87 337.2 R(K.,)3.227 E F1 .728(Mail Refer)3.227 +F .728(ence Manual.)-.37 F F0(Uni)5.728 E -.15(ve)-.25 G .728 +(rsity of California, Berk).15 F(ele)-.1 E 4.528 -.65(y. I)-.15 H(n).65 +E 3.478(UNIX Programmer')195 349.2 R 5.977(sM)-.55 G 3.477(anual, Se) +-5.977 F -.15(ve)-.25 G 3.477(nth Edition, V).15 F 3.477(olume 2C.)-1.29 +F(December)8.477 E(1979.)195 361.2 Q 52.72([Solomon81] Solomon,)87 377.4 +R .251(M., Landweber)2.75 F 2.751(,L)-.4 G .251(., and Neuhengen, D.,) +-2.751 F F1 .251(The Design of the CSNET)2.751 F .397(Name Server)195 +389.4 R(.)-1.11 E F0 2.896(CS-DN-2. Uni)5.397 F -.15(ve)-.25 G .396 +(rsity of W).15 F .396(isconsin, Madison.)-.4 F .396(October 1981.)5.396 +F 73.84([Su82a] Su,)87 405.6 R(Za)2.844 E .344(w-Sing, and Postel, Jon,) +-.15 F F1 .344(The Domain Naming Con)2.844 F .344(vention for Internet) +-.4 F 2.71(User Applications.)195 417.6 R F0 5.21(RFC819. Netw)7.71 F +2.71(ork Information Center)-.1 F 5.21(,S)-.4 G 2.71(RI Interna-)-5.21 F +(tional, Menlo P)195 429.6 Q(ark, California.)-.15 E(August 1982.)5 E +73.28([Su82b] Su,)87 445.8 R(Za)4.174 E(w-Sing,)-.15 E F1 4.174(AD)4.174 +G(istrib)-4.174 E 1.675(uted System for Internet Name Service)-.2 F(.) +-.15 E F0(RFC830.)6.675 E(Netw)195 457.8 Q 3.012(ork Information Center) +-.1 F 5.512(,S)-.4 G 3.011(RI International, Menlo P)-5.512 F 3.011 +(ark, California.)-.15 F(October 1982.)195 469.8 Q/F2 10/Times-Bold@0 SF +(Mail Systems and Addr)72 756 Q(essing in 4.2bsd)-.18 E(9)259.93 E EP +%%Trailer +end +%%EOF diff --git a/usr.sbin/sendmail/mailstats/Makefile.m4 b/usr.sbin/sendmail/mailstats/Makefile.m4 new file mode 100644 index 00000000000..ae5489c62ee --- /dev/null +++ b/usr.sbin/sendmail/mailstats/Makefile.m4 @@ -0,0 +1,97 @@ +# +# This Makefile is designed to work on the old "make" program. +# +# @(#)Makefile.m4 8.14 (Berkeley) 6/4/98 +# + +# C compiler +CC= confCC + +# Shell +SHELL= confSHELL + +# use O=-O (usual) or O=-g (debugging) +O= ifdef(`confOPTIMIZE', `confOPTIMIZE', `-O') + +# location of sendmail source directory +SRCDIR= ifdef(`confSRCDIR', `confSRCDIR', `../../src') + +# environment definitions (e.g., -D_AIX3) +ENVDEF= ifdef(`confENVDEF', `confENVDEF') + +# see also conf.h for additional compilation flags + +# include directories +INCDIRS=-I${SRCDIR} confINCDIRS + +# loader options +LDOPTS= ifdef(`confLDOPTS', `confLDOPTS') + +# library directories +LIBDIRS=confLIBDIRS + +# libraries required on your system +LIBS= ifdef(`confLIBS', `confLIBS') + +# location of mailstats binary (usually /usr/sbin or /usr/etc) +BINDIR= ${DESTDIR}ifdef(`confSBINDIR', `confSBINDIR', `/usr/sbin') + +# additional .o files needed +OBJADD= ifdef(`confOBJADD', `confOBJADD') + +undivert(1) + +################### end of user configuration flags ###################### + +BUILDBIN=confBUILDBIN +COPTS= -I. ${INCDIRS} ${ENVDEF} +CFLAGS= $O ${COPTS} + +BEFORE= confBEFORE +OBJS= mailstats.o ${OBJADD} + +NROFF= ifdef(`confNROFF', `confNROFF', `groff -Tascii') +MANDOC= ifdef(`confMANDOC', `confMANDOC', `-mandoc') + +INSTALL=ifdef(`confINSTALL', `confINSTALL', `install') +BINOWN= ifdef(`confUBINOWN', `confUBINOWN', `bin') +BINGRP= ifdef(`confUBINGRP', `confUBINGRP', `bin') +BINMODE=ifdef(`confUBINMODE', `confUBINMODE', `555') + +MANOWN= ifdef(`confMANOWN', `confMANOWN', `bin') +MANGRP= ifdef(`confMANGRP', `confMANGRP', `bin') +MANMODE=ifdef(`confMANMODE', `confMANMODE', `444') + +MANROOT=${DESTDIR}ifdef(`confMANROOT', `confMANROOT', `/usr/share/man/cat') +MAN8= ${MANROOT}ifdef(`confMAN8', `confMAN8', `8') +MAN8EXT=ifdef(`confMAN8EXT', `confMAN8EXT', `8') +MAN8SRC=ifdef(`confMAN8SRC', `confMAN8SRC', `0') + +ALL= mailstats mailstats.${MAN8SRC} + +all: ${ALL} + +mailstats: ${BEFORE} ${OBJS} + ${CC} -o mailstats ${LDOPTS} ${OBJS} ${LIBDIRS} ${LIBS} + +undivert(3) + +mailstats.${MAN8SRC}: mailstats.8 + ${NROFF} ${MANDOC} mailstats.8 > mailstats.${MAN8SRC} + +install: install-mailstats install-docs + +install-mailstats: mailstats + ${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} mailstats ${BINDIR} + +install-docs: mailstats.${MAN8SRC} +ifdef(`confNO_MAN_INSTALL', `dnl', +` ${INSTALL} -c -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} mailstats.${MAN8SRC} ${MAN8}/mailstats.${MAN8EXT}') + +clean: + rm -f ${OBJS} mailstats mailstats.${MAN8SRC} + +################ Dependency scripts +include(confBUILDTOOLSDIR/M4/depend/ifdef(`confDEPEND_TYPE', `confDEPEND_TYPE', +`generic').m4)dnl +################ End of dependency scripts diff --git a/usr.sbin/sendmail/makemap/Makefile.m4 b/usr.sbin/sendmail/makemap/Makefile.m4 new file mode 100644 index 00000000000..0f0c242d895 --- /dev/null +++ b/usr.sbin/sendmail/makemap/Makefile.m4 @@ -0,0 +1,110 @@ +# +# This Makefile is designed to work on the old "make" program. +# +# @(#)Makefile.m4 8.20 (Berkeley) 6/4/98 +# + +# C compiler +CC= confCC + +# Shell +SHELL= confSHELL + +# use O=-O (usual) or O=-g (debugging) +O= ifdef(`confOPTIMIZE', `confOPTIMIZE', `-O') + +# location of sendmail source directory +SRCDIR= ifdef(`confSRCDIR', `confSRCDIR', `../../src') + +# define the database mechanisms available for map & alias lookups: +# -DNDBM -- use new DBM +# -DNEWDB -- use new Berkeley DB +# The really old (V7) DBM library is no longer supported. +# +MAPDEF= ifdef(`confMAPDEF', `confMAPDEF') + +# environment definitions (e.g., -D_AIX3) +ENVDEF= -DNOT_SENDMAIL ifdef(`confENVDEF', `confENVDEF') + +# see also conf.h for additional compilation flags + +# include directories +INCDIRS=-I${SRCDIR} confINCDIRS + +# loader options +LDOPTS= ifdef(`confLDOPTS', `confLDOPTS') + +# library directories +LIBDIRS=confLIBDIRS + +# libraries required on your system +LIBS= ifdef(`confLIBS', `confLIBS') + +# location of makemap binary (usually /usr/sbin or /usr/etc) +BINDIR= ${DESTDIR}ifdef(`confSBINDIR', `confSBINDIR', `/usr/sbin') + +# additional .o files needed +OBJADD= ifdef(`confOBJADD', `confOBJADD') + +undivert(1) + +################### end of user configuration flags ###################### + +BUILDBIN=confBUILDBIN +COPTS= -I. ${INCDIRS} ${MAPDEF} ${ENVDEF} +CFLAGS= $O ${COPTS} + +BEFORE= confBEFORE safefile.c snprintf.c +OBJS= makemap.o safefile.o snprintf.o ${OBJADD} + +NROFF= ifdef(`confNROFF', `confNROFF', `groff -Tascii') +MANDOC= ifdef(`confMANDOC', `confMANDOC', `-mandoc') + +INSTALL=ifdef(`confINSTALL', `confINSTALL', `install') +BINOWN= ifdef(`confUBINOWN', `confUBINOWN', `bin') +BINGRP= ifdef(`confUBINGRP', `confUBINGRP', `bin') +BINMODE=ifdef(`confUBINMODE', `confUBINMODE', `555') + +MANOWN= ifdef(`confMANOWN', `confMANOWN', `bin') +MANGRP= ifdef(`confMANGRP', `confMANGRP', `bin') +MANMODE=ifdef(`confMANMODE', `confMANMODE', `444') + +MANROOT=${DESTDIR}ifdef(`confMANROOT', `confMANROOT', `/usr/share/man/cat') +MAN8= ${MANROOT}ifdef(`confMAN8', `confMAN8', `8') +MAN8EXT=ifdef(`confMAN8EXT', `confMAN8EXT', `8') +MAN8SRC=ifdef(`confMAN8SRC', `confMAN8SRC', `0') + +ALL= makemap makemap.${MAN8SRC} + +all: ${ALL} + +makemap: ${BEFORE} ${OBJS} + ${CC} -o makemap ${LDOPTS} ${OBJS} ${LIBDIRS} ${LIBS} + +safefile.c: ${SRCDIR}/safefile.c + -ln -s ${SRCDIR}/safefile.c safefile.c + +snprintf.c: ${SRCDIR}/snprintf.c + -ln -s ${SRCDIR}/snprintf.c snprintf.c + +undivert(3) + +makemap.${MAN8SRC}: makemap.8 + ${NROFF} ${MANDOC} makemap.8 > makemap.${MAN8SRC} + +install: install-makemap install-docs + +install-makemap: makemap + ${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} makemap ${BINDIR} + +install-docs: makemap.${MAN8SRC} +ifdef(`confNO_MAN_INSTALL', `dnl', +` ${INSTALL} -c -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} makemap.${MAN8SRC} ${MAN8}/makemap.${MAN8EXT}') + +clean: + rm -f ${OBJS} makemap makemap.${MAN8SRC} + +################ Dependency scripts +include(confBUILDTOOLSDIR/M4/depend/ifdef(`confDEPEND_TYPE', `confDEPEND_TYPE', +`generic').m4)dnl +################ End of dependency scripts diff --git a/usr.sbin/sendmail/praliases/Makefile.m4 b/usr.sbin/sendmail/praliases/Makefile.m4 new file mode 100644 index 00000000000..a4a2e61fa49 --- /dev/null +++ b/usr.sbin/sendmail/praliases/Makefile.m4 @@ -0,0 +1,104 @@ +# +# This Makefile is designed to work on the old "make" program. +# +# @(#)Makefile.m4 8.15 (Berkeley) 6/4/98 +# + +# C compiler +CC= confCC + +# Shell +SHELL= confSHELL + +# use O=-O (usual) or O=-g (debugging) +O= ifdef(`confOPTIMIZE', `confOPTIMIZE', `-O') + +# location of sendmail source directory +SRCDIR= ifdef(`confSRCDIR', `confSRCDIR', `../../src') + +# define the database mechanisms available for map & alias lookups: +# -DNDBM -- use new DBM +# -DNEWDB -- use new Berkeley DB +# The really old (V7) DBM library is no longer supported. +# +MAPDEF= ifdef(`confMAPDEF', `confMAPDEF') + +# environment definitions (e.g., -D_AIX3) +ENVDEF= ifdef(`confENVDEF', `confENVDEF') + +# see also conf.h for additional compilation flags + +# include directories +INCDIRS=-I${SRCDIR} confINCDIRS + +# loader options +LDOPTS= ifdef(`confLDOPTS', `confLDOPTS') + +# library directories +LIBDIRS=confLIBDIRS + +# libraries required on your system +LIBS= ifdef(`confLIBS', `confLIBS') + +# location of praliases binary (usually /usr/sbin or /usr/etc) +BINDIR= ${DESTDIR}ifdef(`confSBINDIR', `confSBINDIR', `/usr/sbin') + +# additional .o files needed +OBJADD= ifdef(`confOBJADD', `confOBJADD') + +undivert(1) + +################### end of user configuration flags ###################### + +BUILDBIN=confBUILDBIN +COPTS= -I. ${INCDIRS} ${MAPDEF} ${ENVDEF} +CFLAGS= $O ${COPTS} + +BEFORE= confBEFORE +OBJS= praliases.o ${OBJADD} + +NROFF= ifdef(`confNROFF', `confNROFF', `groff -Tascii') +MANDOC= ifdef(`confMANDOC', `confMANDOC', `-mandoc') + +INSTALL=ifdef(`confINSTALL', `confINSTALL', `install') +BINOWN= ifdef(`confUBINOWN', `confUBINOWN', `bin') +BINGRP= ifdef(`confUBINGRP', `confUBINGRP', `bin') +BINMODE=ifdef(`confUBINMODE', `confUBINMODE', `555') + +MANOWN= ifdef(`confMANOWN', `confMANOWN', `bin') +MANGRP= ifdef(`confMANGRP', `confMANGRP', `bin') +MANMODE=ifdef(`confMANMODE', `confMANMODE', `444') + +MANROOT=${DESTDIR}ifdef(`confMANROOT', `confMANROOT', `/usr/share/man/cat') +MAN8= ${MANROOT}ifdef(`confMAN8', `confMAN8', `8') +MAN8EXT=ifdef(`confMAN8EXT', `confMAN8EXT', `8') +MAN8SRC=ifdef(`confMAN8SRC', `confMAN8SRC', `0') + +ALL= praliases praliases.${MAN8SRC} + +all: ${ALL} + +praliases: ${BEFORE} ${OBJS} + ${CC} -o praliases ${LDOPTS} ${OBJS} ${LIBDIRS} ${LIBS} + +undivert(3) + +praliases.${MAN8SRC}: praliases.8 + ${NROFF} ${MANDOC} praliases.8 > praliases.${MAN8SRC} + +install: install-praliases install-docs + +install-praliases: praliases + ${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} praliases ${BINDIR} + +install-docs: praliases.${MAN8SRC} +ifdef(`confNO_MAN_INSTALL', `dnl', +` ${INSTALL} -c -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} praliases.${MAN8SRC} ${MAN8}/praliases.${MAN8EXT}') + +clean: + rm -f ${OBJS} praliases praliases.${MAN8SRC} + +################ Dependency scripts +include(confBUILDTOOLSDIR/M4/depend/ifdef(`confDEPEND_TYPE', `confDEPEND_TYPE', +`generic').m4)dnl +################ End of dependency scripts diff --git a/usr.sbin/sendmail/smrsh/Makefile.m4 b/usr.sbin/sendmail/smrsh/Makefile.m4 new file mode 100644 index 00000000000..19b2723e885 --- /dev/null +++ b/usr.sbin/sendmail/smrsh/Makefile.m4 @@ -0,0 +1,96 @@ +# +# This Makefile is designed to work on the old "make" program. +# +# @(#)Makefile.m4 8.13 (Berkeley) 6/4/98 +# + +# C compiler +CC= confCC + +# Shell +SHELL= confSHELL + +# use O=-O (usual) or O=-g (debugging) +O= ifdef(`confOPTIMIZE', `confOPTIMIZE', `-O') + +# location of sendmail source directory +SRCDIR= ifdef(`confSRCDIR', `confSRCDIR', `../../src') + +# environment definitions (e.g., -D_AIX3) +ENVDEF= ifdef(`confENVDEF', `confENVDEF') + +# include directories +INCDIRS=-I${SRCDIR} confINCDIRS + +# loader options +LDOPTS= ifdef(`confLDOPTS', `confLDOPTS') + +# library directories +LIBDIRS=confLIBDIRS + +# libraries required on your system +LIBS= ifdef(`confLIBS', `confLIBS') + +# location of smrsh binary (usually /usr/libexec or /usr/etc) +BINDIR= ${DESTDIR}ifdef(`confEBINDIR', `confEBINDIR', `/usr/libexec') + +# additional .o files needed +OBJADD= ifdef(`confOBJADD', `confOBJADD') + +undivert(1) + +################### end of user configuration flags ###################### + +BUILDBIN=confBUILDBIN +COPTS= -I. ${INCDIRS} ${ENVDEF} +CFLAGS= $O ${COPTS} + +BEFORE= confBEFORE +OBJS= smrsh.o ${OBJADD} + +# Which *roff program has -mandoc support +NROFF= ifdef(`confNROFF', `confNROFF', `groff -Tascii') +MANDOC= ifdef(`confMANDOC', `confMANDOC', `-mandoc') + +INSTALL=ifdef(`confINSTALL', `confINSTALL', `install') +BINOWN= ifdef(`confUBINOWN', `confUBINOWN', `bin') +BINGRP= ifdef(`confUBINGRP', `confUBINGRP', `bin') +BINMODE=ifdef(`confUBINMODE', `confUBINMODE', `555') + +MANOWN= ifdef(`confMANOWN', `confMANOWN', `bin') +MANGRP= ifdef(`confMANGRP', `confMANGRP', `bin') +MANMODE=ifdef(`confMANMODE', `confMANMODE', `444') + +MANROOT=${DESTDIR}ifdef(`confMANROOT', `confMANROOT', `/usr/share/man/cat') +MAN8= ${MANROOT}ifdef(`confMAN8', `confMAN8', `8') +MAN8EXT=ifdef(`confMAN8EXT', `confMAN8EXT', `8') +MAN8SRC=ifdef(`confMAN8SRC', `confMAN8SRC', `0') + +ALL= smrsh smrsh.${MAN8SRC} + +all: ${ALL} + +smrsh: ${BEFORE} ${OBJS} + ${CC} -o smrsh ${LDOPTS} ${OBJS} ${LIBDIRS} ${LIBS} + +undivert(3) + +smrsh.${MAN8SRC}: smrsh.8 + ${NROFF} ${MANDOC} smrsh.8 > smrsh.${MAN8SRC} + +install: install-smrsh install-docs + +install-smrsh: smrsh + ${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} smrsh ${BINDIR} + +install-docs: smrsh.${MAN8SRC} +ifdef(`confNO_MAN_INSTALL', `dnl', +` ${INSTALL} -c -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} smrsh.${MAN8SRC} ${MAN8}/smrsh.${MAN8EXT}') + +clean: + rm -f ${OBJS} smrsh smrsh.${MAN8SRC} + +################ Dependency scripts +include(confBUILDTOOLSDIR/M4/depend/ifdef(`confDEPEND_TYPE', `confDEPEND_TYPE', +`generic').m4)dnl +################ End of dependency scripts diff --git a/usr.sbin/sendmail/src/Makefile.m4 b/usr.sbin/sendmail/src/Makefile.m4 new file mode 100644 index 00000000000..f4229c2ad6b --- /dev/null +++ b/usr.sbin/sendmail/src/Makefile.m4 @@ -0,0 +1,149 @@ +# +# This Makefile is designed to work on any reasonably current version of +# "make" program. +# +# @(#)Makefile.m4 8.23 (Berkeley) 6/16/98 +# + +# C compiler +CC= confCC + +# Shell +SHELL= confSHELL + +# use O=-O (usual) or O=-g (debugging) +O= ifdef(`confOPTIMIZE', `confOPTIMIZE', `-O') + +# location of sendmail source directory +SRCDIR= . + +# define the database mechanisms available for map & alias lookups: +# -DNDBM -- use new DBM +# -DNEWDB -- use new Berkeley DB +# -DNIS -- include NIS support +# The really old (V7) DBM library is no longer supported. +# See README for a description of how these flags interact. +# +MAPDEF= ifdef(`confMAPDEF', `confMAPDEF') + +# environment definitions (e.g., -D_AIX3) +ENVDEF= ifdef(`confENVDEF', `confENVDEF') + +# see also conf.h for additional compilation flags + +# include directories +INCDIRS=confINCDIRS + +# loader options +LDOPTS= ifdef(`confLDOPTS', `confLDOPTS') + +# library directories +LIBDIRS=confLIBDIRS + +# libraries required on your system +# delete -l44bsd if you are not running BIND 4.9.x +LIBS= ifdef(`confLIBS', `confLIBS') + +# location of sendmail binary (usually /usr/sbin or /usr/lib) +BINDIR= ${DESTDIR}ifdef(`confMBINDIR', `confMBINDIR', `/usr/sbin') + +# location of "user" binaries (usually /usr/bin or /usr/ucb) +UBINDIR=${DESTDIR}ifdef(`confUBINDIR', `confUBINDIR', `/usr/bin') + +# location of sendmail.st file (usually /var/log or /usr/lib) +STDIR= ${DESTDIR}ifdef(`confSTDIR', `confSTDIR', `/var/log') + +# location of sendmail.hf file (usually /usr/share/misc or /usr/lib) +HFDIR= ${DESTDIR}ifdef(`confHFDIR', `confHFDIR', `/usr/share/misc') + +# additional .o files needed +OBJADD= ifdef(`confOBJADD', `confOBJADD') ifdef(`confSMOBJADD', `confSMOBJADD') + +undivert(1) + +################### end of user configuration flags ###################### + +BUILDBIN=confBUILDBIN +COPTS= -I. ${INCDIRS} ${MAPDEF} ${ENVDEF} +CFLAGS= $O ${COPTS} + +BEFORE= confBEFORE +OBJS= alias.o arpadate.o clock.o collect.o conf.o convtime.o daemon.o \ + deliver.o domain.o envelope.o err.o headers.o macro.o main.o \ + map.o mci.o mime.o parseaddr.o queue.o readcf.o recipient.o \ + safefile.o savemail.o snprintf.o srvrsmtp.o stab.o stats.o \ + sysexits.o trace.o udb.o usersmtp.o util.o version.o ${OBJADD} + +LINKS= ifdef(`confLINKS', `confLINKS', + `${UBINDIR}/newaliases \ + ${UBINDIR}/mailq \ + ${UBINDIR}/hoststat \ + ${UBINDIR}/purgestat') + +NROFF= ifdef(`confNROFF', `confNROFF', `groff -Tascii') +MANDOC= ifdef(`confMANDOC', `confMANDOC', `-mandoc') + +INSTALL=ifdef(`confINSTALL', `confINSTALL', `install') +BINOWN= ifdef(`confSBINOWN', `confSBINOWN', `root') +BINGRP= ifdef(`confSBINGRP', `confSBINGRP', `kmem') +BINMODE=ifdef(`confSBINMODE', `confSBINMODE', `4555') + +MANOWN= ifdef(`confMANOWN', `confMANOWN', `bin') +MANGRP= ifdef(`confMANGRP', `confMANGRP', `bin') +MANMODE=ifdef(`confMANMODE', `confMANMODE', `444') + +MANROOT=${DESTDIR}ifdef(`confMANROOT', `confMANROOT', `/usr/share/man/cat') +MAN1= ${MANROOT}ifdef(`confMAN1', `confMAN1', `1') +MAN1EXT=ifdef(`confMAN1EXT', `confMAN1EXT', `1') +MAN1SRC=ifdef(`confMAN1SRC', `confMAN1SRC', `0') +MAN5= ${MANROOT}ifdef(`confMAN5', `confMAN5', `5') +MAN5EXT=ifdef(`confMAN5EXT', `confMAN5EXT', `5') +MAN5SRC=ifdef(`confMAN5SRC', `confMAN5SRC', `0') +MAN8= ${MANROOT}ifdef(`confMAN8', `confMAN8', `8') +MAN8EXT=ifdef(`confMAN8EXT', `confMAN8EXT', `8') +MAN8SRC=ifdef(`confMAN8SRC', `confMAN8SRC', `0') + +ALL= sendmail aliases.${MAN5SRC} mailq.${MAN1SRC} newaliases.${MAN1SRC} sendmail.${MAN8SRC} + +all: ${ALL} + +sendmail: ${BEFORE} ${OBJS} + ${CC} -o sendmail ${LDOPTS} ${LIBDIRS} ${OBJS} ${LIBS} + cp /dev/null sendmail.st + +undivert(3) + +aliases.${MAN5SRC}: aliases.5 + ${NROFF} ${MANDOC} aliases.5 > aliases.${MAN5SRC} + +mailq.${MAN1SRC}: mailq.1 + ${NROFF} ${MANDOC} mailq.1 > mailq.${MAN1SRC} + +newaliases.${MAN1SRC}: newaliases.1 + ${NROFF} ${MANDOC} newaliases.1 > newaliases.${MAN1SRC} + +sendmail.${MAN8SRC}: sendmail.8 + ${NROFF} ${MANDOC} sendmail.8 > sendmail.${MAN8SRC} + +install: install-sendmail install-docs + +install-sendmail: sendmail + ${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} sendmail ${BINDIR} + for i in ${LINKS}; do rm -f $$i; ln -s ${BINDIR}/sendmail $$i; done + ${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 444 sendmail.hf ${HFDIR} + ${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 644 sendmail.st \ + ${STDIR}/sendmail.st + +install-docs: aliases.${MAN5SRC} mailq.${MAN1SRC} newaliases.${MAN1SRC} sendmail.${MAN8SRC} +ifdef(`confNO_MAN_INSTALL', `dnl', +` ${INSTALL} -c -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} sendmail.${MAN8SRC} ${MAN8}/sendmail.${MAN8EXT} + ${INSTALL} -c -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} aliases.${MAN5SRC} ${MAN5}/aliases.${MAN5EXT} + ${INSTALL} -c -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} mailq.${MAN1SRC} ${MAN1}/mailq.${MAN1EXT} + ${INSTALL} -c -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} newaliases.${MAN1SRC} ${MAN1}/newaliases.${MAN1EXT}') + +clean: + rm -f ${OBJS} sendmail aliases.${MAN5SRC} mailq.${MAN1SRC} newaliases.${MAN1SRC} sendmail.${MAN8SRC} + +################ Dependency scripts +include(confBUILDTOOLSDIR/M4/depend/ifdef(`confDEPEND_TYPE', `confDEPEND_TYPE', `generic').m4)dnl +################ End of dependency scripts diff --git a/usr.sbin/sendmail/src/README b/usr.sbin/sendmail/src/README new file mode 100644 index 00000000000..a6f7dcfd664 --- /dev/null +++ b/usr.sbin/sendmail/src/README @@ -0,0 +1,1442 @@ +# Copyright (c) 1998 Sendmail, Inc. All rights reserved. +# Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved. +# Copyright (c) 1988 +# 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. +# +# +# @(#)README 8.206 (Berkeley) 6/30/98 +# + +This directory contains the source files for sendmail(TM). + +********************* +!! DO NOT USE MAKE !! in this directory to compile sendmail -- +********************* instead, use the "Build" script located in +the src directory. It will build an appropriate Makefile, and +create an appropriate obj.* subdirectory so that multiplatform +support works easily. + + ********************************************************** + ** Read below for more details on building sendmail. ** + ********************************************************** + +************************************************************************** +** IMPORTANT: Read the appropriate paragraphs in the section on ** +** ``Operating System and Compile Quirks''. ** +************************************************************************** + +For detailed instructions, please read the document ../doc/op/op.me: + + eqn ../doc/op/op.me | pic | ditroff -me + +Sendmail is a trademark of Sendmail, Inc. + + ++-------------------+ +| BUILDING SENDMAIL | ++-------------------+ + +By far, the easiest way to compile sendmail is to use the "Build" +script: + + sh Build + +This uses the "uname" command to figure out what architecture you are +on and creates a proper Makefile accordingly. It also creates a +subdirectory per object format, so that multiarchitecture support is +easy. In general this should be all you need. IRIX 6.x users should +read the note below in the OPERATING SYSTEM AND COMPILE QUIRKS section. + +If you need to look at other include or library directories, use the +-I or -L flags on the command line, e.g., + + sh Build -I/usr/sww/include -L/usr/sww/lib + +It's also possible to create local site configuration in the file +site.config.m4 (or another file settable with the -f flag). This +file contains M4 definitions for various compilation values; the +most useful are: + +confMAPDEF -D flags to specify database types to be included + (see below) +confENVDEF -D flags to specify other environment information +confINCDIRS -I flags for finding include files during compilation +confLIBDIRS -L flags for finding libraries during linking +confLIBS -l flags for selecting libraries during linking +confLDOPTS other ld(1) linker options + +Others can be found by examining Makefile.m4. Please read +../BuildTools/README for more information about the site.config.m4 +file. + +You can recompile from scratch using the -c flag with the Build +command. This removes the existing compilation directory for the +current platform and builds a new one. + +Porting to a new Unix-based system should be a matter of creating +an appropriate configuration file in the BuildTools/OS/ directory. + + + ++----------------------+ +| DATABASE DEFINITIONS | ++----------------------+ + +There are several database formats that can be used for the alias files +and for general maps. When used for alias files they interact in an +attempt to be backward compatible. + +The options are: + +NEWDB The new Berkeley DB package. Some systems (e.g., BSD/OS and + Digital UNIX 4.0) have some version of this package + pre-installed. If your system does not have Berkeley DB + pre-installed, or the version installed is not version 2.0 + or greater (e.g., is Berkeley DB 1.85 or 1.86), get the + current version from http://www.sleepycat.com/. DO NOT + use a version from any of the University of California, + Berkeley "Net" or other distributions. If you are still + running BSD/386 1.x, you will need to upgrade the included + Berkeley DB library to a current version. NEWDB is included + automatically if the Build script can find a library named + libdb.a. +NDBM The older NDBM implementation -- the very old V7 DBM + implementation is no longer supported. +NIS Network Information Services. To use this you must have + NIS support on your system. +NISPLUS NIS+ (the revised NIS released with Solaris 2). You must + have NIS+ support on your system to use this flag. +HESIOD Support for Hesiod (from the DEC/Athena distribution). You + must already have Hesiod support on your system for this to + work. You may be able to get this to work with the MIT/Athena + version of Hesiod, but that's likely to be a lot of work. +LDAPMAP Lightweight Directory Lookup Protocol support. You will + have to install the UMich ldap and lber libraries to use + this flag. +MAP_REGEX Regular Expression support. You will need to use an + operating system which comes with the POSIX regex() + routines or install a regexp library such as libregex from + the Free Software Foundation. + +>>> NOTE WELL for NEWDB support: If you want to get ndbm support, for +>>> Berkeley DB versions under 2.0, it is CRITICAL that you remove +>>> ndbm.o from libdb.a before you install it and DO NOT install ndbm.h; +>>> for Berkeley DB versions 2.0 through 2.3.14, remove dbm.o from libdb.a +>>> before you install it. If you don't delete these, there is absolutely +>>> no point to including -DNDBM, since it will just get you another +>>> (inferior) API to the same format database. These files OVERRIDE +>>> calls to ndbm routines -- in particular, if you leave ndbm.h in, +>>> you can find yourself using the new db package even if you don't +>>> define NEWDB. Berkeley DB versions later than 2.3.14 do not need +>>> to be modified. Please also consult the README in the top level +>>> directory of the sendmail distribution for other important information. +>>> +>>> Further note: DO NOT remove your existing /usr/include/ndbm.h -- +>>> you need that one. But do not install an updated ndbm.h in +>>> /usr/include, /usr/local/include, or anywhere else. + +If NEWDB and NDBM are defined (but not NIS), then sendmail will read +NDBM format alias files, but the next time a newaliases is run the +format will be converted to NEWDB; that format will be used forever +more. This is intended as a transition feature. + +If NEWDB, NDBM, and NIS are all defined and the name of the file includes +the string "/yp/", sendmail will rebuild BOTH the NEWDB and NDBM format +alias files. However, it will only read the NEWDB file; the NDBM format +file is used only by the NIS subsystem. This is needed because the NIS +maps on an NIS server are built directly from the NDBM files. + +If NDBM and NIS are defined (regardless of the definition of NEWDB), +and the filename includes the string "/yp/", sendmail adds the special +tokens "YP_LAST_MODIFIED" and "YP_MASTER_NAME", both of which are +required if the NDBM file is to be used as an NIS map. + +All of these flags are normally defined in the DBMDEF line in the +Makefile. + +If you define NEWDB or HESIOD you get the User Database (USERDB) +automatically. Generally you do want to have NEWDB for it to do +anything interesting. See above for getting the Berkeley DB +package (i.e., NEWDB). There is no separate "user database" +package -- don't bother searching for it on the net. + +Hesiod and LDAP require libraries that may not be installed with your +system. These are outside of my ability to provide support. See the +"Quirks" section for more information. + +The regex map can be used to see if an address matches a certain regular +expression. For example, all-numerics local parts are common spam +addresses, so "^[0-9]+$" would match this. By using such a map in a +check_* rule-set, you can block a certain range of addresses that would +otherwise be considered valid. + ++---------------+ +| COMPILE FLAGS | ++---------------+ + +Wherever possible, I try to make sendmail pull in the correct +compilation options needed to compile on various environments based on +automatically defined symbols. Some machines don't seem to have useful +symbols available, requiring that a compilation flag be defined in +the Makefile; see the Buildtools/OS subdirectory for the supported +architectures. + +If you are a system to which sendmail has already been ported you +should not have to touch the following symbols. But if you are porting, +you may have to tweak the following compilation flags in conf.h in order +to get it to compile and link properly: + +SYSTEM5 Adjust for System V (not necessarily Release 4). +SYS5SIGNALS Use System V signal semantics -- the signal handler + is automatically dropped when the signal is caught. + If this is not set, use POSIX/BSD semantics, where the + signal handler stays in force until an exec or an + explicit delete. Implied by SYSTEM5. +SYS5SETPGRP Use System V setpgrp() semantics. Implied by SYSTEM5. +HASFCHMOD Define this to one if you have the fchmod(2) system call. + This improves security. +HASFLOCK Set this if you prefer to use the flock(2) system call + rather than using fcntl-based locking. Fcntl locking + has some semantic gotchas, but many vendor systems + also interface it to lockd(8) to do NFS-style locking. + Unfortunately, may vendors implementations of fcntl locking + is just plain broken (e.g., locks are never released, + causing your sendmail to deadlock; when the kernel runs + out of locks your system crashes). For this reason, I + recommend always defining this unless you are absolutely + certain that your fcntl locking implementation really works. +HASUNAME Set if you have the "uname" system call. Implied by + SYSTEM5. +HASUNSETENV Define this if your system library has the "unsetenv" + subroutine. +HASSETSID Define this if you have the setsid(2) system call. This + is implied if your system appears to be POSIX compliant. +HASINITGROUPS Define this if you have the initgroups(3) routine. +HASSETVBUF Define this if you have the setvbuf(3) library call. + If you don't, setlinebuf will be used instead. This + defaults on if your compiler defines __STDC__. +HASSETREUID Define this if you have setreuid(2) ***AND*** root can + use setreuid to change to an arbitrary user. This second + condition is not satisfied on AIX 3.x. You may find that + your system has setresuid(2), (for example, on HP-UX) in + which case you will also have to #define setreuid(r, e) + to be the appropriate call. Some systems (such as Solaris) + have a compatibility routine that doesn't work properly, + but may have "saved user ids" properly implemented so you + can ``#define setreuid(r, e) seteuid(e)'' and have it work. + The important thing is that you have a call that will set + the effective uid independently of the real or saved uid + and be able to set the effective uid back again when done. + There's a test program in ../test/t_setreuid.c that will + try things on your system. Setting this improves the + security, since sendmail doesn't have to read .forward + and :include: files as root. There are certain attacks + that may be unpreventable without this call. +USESETEUID Define this to 1 if you have a seteuid(2) system call that + will allow root to set only the effective user id to an + arbitrary value ***AND*** you have saved user ids. This is + preferable to HASSETREUID if these conditions are fulfilled. + These are the semantics of the to-be-released revision of + Posix.1. The test program ../test/t_seteuid.c will try + this out on your system. If you define both HASSETREUID + and USESETEUID, the former is ignored. +HASLSTAT Define this if you have symbolic links (and thus the + lstat(2) system call). This improves security. Unlike + most other options, this one is on by default, so you + need to #undef it in conf.h if you don't have symbolic + links (these days everyone does). +HASSETRLIMIT Define this to 1 if you have the setrlimit(2) syscall. + You can define it to 0 to force it off. It is assumed + if you are running a BSD-like system. +HASULIMIT Define this if you have the ulimit(2) syscall (System V + style systems). HASSETRLIMIT overrides, as it is more + general. +HASWAITPID Define this if you have the waitpid(2) syscall. +HASGETDTABLESIZE + Define this if you have the getdtablesize(2) syscall. +HAS_ST_GEN Define this to 1 if your system has the st_gen field in + the stat structure (see stat(2)). +USESTRERROR Define this if you have the libc strerror function (which + should be declared in <errno.h>), and it should be used + instead of sys_errlist. +NEEDGETOPT Define this if you need a reimplementation of getopt(3). + On some systems, getopt does very odd things if called + to scan the arguments twice. This flag will ask sendmail + to compile in a local version of getopt that works + properly. +NEEDSTRTOL Define this if your standard C library does not define + strtol(3). This will compile in a local version. +NEEDVPRINTF Define this if your standard C library does not define + vprintf(3). Note that the resulting fake implementation + is not very elegant and may not even work on some + architectures. +NEEDFSYNC Define this if your standard C library does not define + fsync(2). This will try to simulate the operation using + fcntl(2); if that is not available it does nothing, which + isn't great, but at least it compiles and runs. +HASGETUSERSHELL Define this to 1 if you have getusershell(3) in your + standard C library. If this is not defined, or is defined + to be 0, sendmail will scan the /etc/shells file (no + NIS-style support, defaults to /bin/sh and /bin/csh if + that file does not exist) to get a list of unrestricted + user shells. This is used to determine whether users + are allowed to forward their mail to a program or a file. +NEEDPUTENV Define this if your system needs am emulation of the + putenv(3) call. Define to 1 to implement it in terms + of setenv(3) or to 2 to do it in terms of primitives. +NOFTRUNCATE Define this if you don't have the ftruncate(2) syscall. + If you don't have this system call, there is an unavoidable + race condition that occurs when creating alias databases. +GIDSET_T The type of entries in a gidset passed as the second + argument to getgroups(2). Historically this has been an + int, so this is the default, but some systems (such as + IRIX) pass it as a gid_t, which is an unsigned short. + This will make a difference, so it is important to get + this right! However, it is only an issue if you have + group sets. +SLEEP_T The type returned by the system sleep() function. + Defaults to "unsigned int". Don't worry about this + if you don't have compilation problems. +ARBPTR_T The type of an arbitrary pointer -- defaults to "void *". + If you are an very old compiler you may need to define + this to be "char *". +SOCKADDR_LEN_T The type used for the third parameter to accept(2), + getsockname(2), and getpeername(2), representing the + length of a struct sockaddr. Defaults to int. +SOCKOPT_LEN_T The type used for the fifth parameter to getsockopt(2) + and setsockopt(2), representing the length of the option + buffer. Defaults to int. +LA_TYPE The type of load average your kernel supports. These + can be one of: + LA_ZERO (1) -- it always returns the load average as + "zero" (and does so on all architectures). + LA_INT (2) to read /dev/kmem for the symbol avenrun and + interpret as a long integer. + LA_FLOAT (3) same, but interpret the result as a floating + point number. + LA_SHORT (6) to interpret as a short integer. + LA_SUBR (4) if you have the getloadavg(3) routine in your + system library. + LA_MACH (5) to use MACH-style load averages (calls + processor_set_info()), + LA_PROCSTR (7) to read /proc/loadavg and interpret it + as a string representing a floating-point + number (Linux-style). + LA_READKSYM (8) is an implementation suitable for some + versions of SVr4 that uses the MIOC_READKSYM ioctl + call to read /dev/kmem. + LA_DGUX (9) is a special implementation for DG/UX that uses + the dg_sys_info system call. + LA_HPUX (10) is an HP-UX specific version that uses the + pstat_getdynamic system call. + LA_IRIX6 (11) is an IRIX 6.x specific version that adapts + to 32 or 64 bit kernels; it is otherwise very similar + to LA_INT. + LA_KSTAT (12) uses the (Solaris-specific) kstat(3k) + implementation. + LA_DEVSHORT (13) reads a short from a system file (default: + /dev/table/avenrun) and scales it in the same manner + as LA_SHORT. + LA_INT, LA_SHORT, LA_FLOAT, and LA_READKSYM have several + other parameters that they try to divine: the name of your + kernel, the name of the variable in the kernel to examine, + the number of bits of precision in a fixed point load average, + and so forth. LA_DEVSHORT uses _PATH_AVENRUN to find the + device to be read to find the load average. + In desperation, use LA_ZERO. The actual code is in + conf.c -- it can be tweaked if you are brave. +FSHIFT For LA_INT, LA_SHORT, and LA_READKSYM, this is the number + of bits of load average after the binary point -- i.e., + the number of bits to shift right in order to scale the + integer to get the true integer load average. Defaults to 8. +_PATH_UNIX The path to your kernel. Needed only for LA_INT, LA_SHORT, + and LA_FLOAT. Defaults to "/unix" on System V, "/vmunix" + everywhere else. +LA_AVENRUN For LA_INT, LA_SHORT, and LA_FLOAT, the name of the kernel + variable that holds the load average. Defaults to "avenrun" + on System V, "_avenrun" everywhere else. +SFS_TYPE Encodes how your kernel can locate the amount of free + space on a disk partition. This can be set to SFS_NONE + (0) if you have no way of getting this information, + SFS_USTAT (1) if you have the ustat(2) system call, + SFS_4ARGS (2) if you have a four-argument statfs(2) + system call (and the include file is <sys/statfs.h>), + SFS_VFS (3), SFS_MOUNT (4), SFS_STATFS (5) if you have + the two-argument statfs(2) system call with includes in + <sys/vfs.h>, <sys/mount.h>, or <sys/statfs.h> respectively, + or SFS_STATVFS (6) if you have the two-argument statvfs(2) + call. The default if nothing is defined is SFS_NONE. +SFS_BAVAIL with SFS_4ARGS you can also set SFS_BAVAIL to the field name + in the statfs structure that holds the useful information; + this defaults to f_bavail. +SPT_TYPE Encodes how your system can display what a process is doing + on a ps(1) command (SPT stands for Set Process Title). Can + be set to: + SPT_NONE (0) -- Don't try to set the process title at all. + SPT_REUSEARGV (1) -- Pad out your argv with the information; + this is the default if none specified. + SPT_BUILTIN (2) -- The system library has setproctitle. + SPT_PSTAT (3) -- Use the PSTAT_SETCMD option to pstat(2) + to set the process title; this is used by HP-UX. + SPT_PSSTRINGS (4) -- Use the magic PS_STRINGS pointer (4.4BSD). + SPT_SYSMIPS (5) -- Use sysmips() supported by NEWS-OS 6. + SPT_SCO (6) -- Write kernel u. area. + SPT_CHANGEARGV (7) -- Write pointers to our own strings into + the existing argv vector. +SPT_PADCHAR Character used to pad the process title; if undefined, + the space character (0x20) is used. This is ignored if + SPT_TYPE != SPT_REUSEARGV +ERRLIST_PREDEFINED + If set, assumes that some header file defines sys_errlist. + This may be needed if you get type conflicts on this + variable -- otherwise don't worry about it. +WAITUNION The wait(2) routine takes a "union wait" argument instead + of an integer argument. This is for compatibility with + old versions of BSD. +SCANF You can set this to extend the F command to accept a + scanf string -- this gives you a primitive parser for + class definitions -- BUT it can make you vulnerable to + core dumps if the target file is poorly formed. +SYSLOG_BUFSIZE You can define this to be the size of the buffer that + syslog accepts. If it is not defined, it assumes a + 1024-byte buffer. If the buffer is very small (under + 256 bytes) the log message format changes -- each + e-mail message will log many more messages, since it + will log each piece of information as a separate line + in syslog. +BROKEN_RES_SEARCH + On Ultrix (and maybe other systems?) if you use the + res_search routine with an unknown host name, it returns + -1 but sets h_errno to 0 instead of HOST_NOT_FOUND. If + you set this, sendmail considers 0 to be the same as + HOST_NOT_FOUND. +NAMELISTMASK If defined, values returned by nlist(3) are masked + against this value before use -- a common value is + 0x7fffffff to strip off the top bit. +BSD4_4_SOCKADDR If defined, socket addresses have an sa_len field that + defines the length of this address. +SAFENFSPATHCONF Set this to 1 if and only if you have verified that a + pathconf(2) call with _PC_CHOWN_RESTRICTED argument on an + NFS filesystem where the underlying system allows users to + give away files to other users returns <= 0. Be sure you + try both on NFS V2 and V3. Some systems assume that their + local policy apply to NFS servers -- this is a bad + assumption! The test/t_pathconf.c program will try this + for you -- you have to run it in a directory that is + mounted from a server that allows file giveaway. +SIOCGIFCONF_IS_BROKEN + Set this if your system has an SIOCGIFCONF ioctl defined, + but it doesn't behave the same way as "most" systems (BSD, + Solaris, SunOS, HP-UX, etc.) +SIOCGIFNUM_IS_BROKEN + Set this if your system has an SIOCGIFNUM ioctl defined, + but it doesn't behave the same way as "most" systems + (Solaris, HP-UX). +NEED_PERCENTQ Set this if your system doesn't support the printf + format strings %lld or %llu. If this is set, %qd and + %qu are used instead. + + + ++-----------------------+ +| COMPILE-TIME FEATURES | ++-----------------------+ + +There are a bunch of features that you can decide to compile in, such +as selecting various database packages and special protocol support. +Several are assumed based on other compilation flags -- if you want to +"un-assume" something, you probably need to edit conf.h. Compilation +flags that add support for special features include: + +NDBM Include support for "new" DBM library for aliases and maps. + Normally defined in the Makefile. +NEWDB Include support for Berkeley DB package (hash & btree) + for aliases and maps. Normally defined in the Makefile. + If the version of NEWDB you have is the old one that does + not include the "fd" call (this call was added in version + 1.5 of the Berkeley DB code), you must upgrade to the + current version of Berkeley DB. +NIS Define this to get NIS (YP) support for aliases and maps. + Normally defined in the Makefile. +NISPLUS Define this to get NIS+ support for aliases and maps. + Normally defined in the Makefile. +HESIOD Define this to get Hesiod support for aliases and maps. + Normally defined in the Makefile. +NETINFO Define this to get NeXT NetInfo support for aliases and maps. + Normally defined in the Makefile. +USERDB Define this to 1 to include support for the User Information + Database. Implied by NEWDB or HESIOD. You can use + -DUSERDB=0 to explicitly turn it off. +IDENTPROTO Define this as 1 to get IDENT (RFC 1413) protocol support. + This is assumed unless you are running on Ultrix or + HP-UX, both of which have a problem in the UDP + implementation. You can define it to be 0 to explicitly + turn off IDENT protocol support. If defined off, the code + is actually still compiled in, but it defaults off; you + can turn it on by setting the IDENT timeout to 30s in the + configuration file. +IP_SRCROUTE Define this to 1 to get IP source routing information + displayed in the Received: header. This is assumed on + most systems, but some (e.g., Ultrix) apparently have a + broken version of getsockopt that doesn't properly + support the IP_OPTIONS call. You probably want this if + your OS can cope with it. Symptoms of failure will be that + it won't compile properly (that is, no support for fetching + IP_OPTIONs), or it compiles but source-routed TCP connections + either refuse to open or open and hang for no apparent reason. + Ultrix and AIX3 are known to fail this way. +LOG Set this to get syslog(3) support. Defined by default + in conf.h. You want this if at all possible. +NETINET Set this to get TCP/IP support. Defined by default + in conf.h. You probably want this. +NETISO Define this to get ISO networking support. +NETUNIX Define this to get Unix domain networking support. Defined + by default. A few bizarre systems (SCO, ISC, Altos) don't + support this networking domain. +SMTP Define this to get the SMTP code. Implied by NETINET + or NETISO. +NAMED_BIND If non-zero, include DNS (name daemon) support, including + MX support. The specs say you must use this if you run + SMTP. You don't have to be running a name server daemon + on your machine to need this -- any use of the DNS resolver, + including remote access to another machine, requires this + option. Defined by default in conf.h. Define it to zero + ONLY on machines that do not use DNS in any way. +QUEUE Define this to get queueing code. Implied by NETINET + or NETISO; required by SMTP. This gives you other good + stuff -- it should be on. +DAEMON Define this to get general network support. Implied by + NETINET or NETISO. Defined by default in conf.h. You + almost certainly want it on. +MATCHGECOS Permit fuzzy matching of user names against the full + name (GECOS) field in the /etc/passwd file. This should + probably be on, since you can disable it from the config + file if you want to. Defined by default in conf.h. +MIME8TO7 If non-zero, include 8 to 7 bit MIME conversions. This + also controls advertisement of 8BITMIME in the ESMTP + startup dialogue. +MIME7TO8 If non-zero, include 7 to 8 bit MIME conversions. +HES_GETMAILHOST Define this to 1 if you are using Hesiod with the + hes_getmailhost() routine. This is included with the MIT + Hesiod distribution, but not with the DEC Hesiod distribution. +XDEBUG Do additional internal checking. These don't cost too + much; you might as well leave this on. +TCPWRAPPERS Turns on support for the TCP wrappers library (-lwrap). + See below for further information. +SECUREWARE Enable calls to the SecureWare luid enabling/changing routines. + SecureWare is a C2 security package added to several UNIX's + (notably ConvexOS) to get a C2 Secure system. This + option causes mail delivery to be done with the luid of the + recipient. +SHARE_V1 Support for the fair share scheduler, version 1. Setting to + 1 causes final delivery to be done using the recipients + resource limitations. So far as I know, this is only + supported on ConvexOS. + + ++---------------------+ +| DNS/RESOLVER ISSUES | ++---------------------+ + +Many systems have old versions of the resolver library. At a minimum, +you should be running BIND 4.8.3; older versions may compile, but they +have known bugs that should give you pause. + +Common problems in old versions include "undefined" errors for +dn_skipname. + +Some people have had a problem with BIND 4.9; it uses some routines +that it expects to be externally defined such as strerror(). It may +help to link with "-l44bsd" to solve this problem. This has apparently +been fixed in later versions of BIND, starting around 4.9.3. In other +words, if you use 4.9.0 through 4.9.2, you need -l44bsd; for earlier or +later versions, you do not. + +!PLEASE! be sure to link with the same version of the resolver as +the header files you used -- some people have used the 4.9 headers +and linked with BIND 4.8 or vice versa, and it doesn't work. +Unfortunately, it doesn't fail in an obvious way -- things just +subtly don't work. + +WILDCARD MX RECORDS ARE A BAD IDEA! The only situation in which they +work reliably is if you have two versions of DNS, one in the real world +which has a wildcard pointing to your firewall, and a completely +different version of the database internally that does not include +wildcard MX records that match your domain. ANYTHING ELSE WILL GIVE +YOU HEADACHES! + + ++-------------------------------------+ +| OPERATING SYSTEM AND COMPILE QUIRKS | ++-------------------------------------+ + +GCC problems + ***************************************************************** + ** IMPORTANT: DO NOT USE OPTIMIZATION (``-O'') IF YOU ARE ** + ** RUNNING GCC 2.4.x or 2.5.x. THERE IS A BUG IN THE GCC ** + ** OPTIMIZER THAT CAUSES SENDMAIL COMPILES TO FAIL MISERABLY. ** + ***************************************************************** + + Jim Wilson of Cygnus believes he has found the problem -- it will + probably be fixed in GCC 2.5.6 -- but until this is verified, be + very suspicious of gcc -O. This problem is reported to have been + fixed in gcc 2.6. + + A bug in gcc 2.5.5 caused problems compiling sendmail 8.6.5 with + optimization on a Sparc. If you are using gcc 2.5.5, youi should + upgrade to the latest version of gcc. + + Apparently GCC 2.7.0 on the Pentium processor has optimization + problems. I recommend against using -O on that architecture. This + has been seen on FreeBSD 2.0.5 RELEASE. + + Solaris 2.X users should use version 2.7.2.3 over 2.7.2. + + We have been told there are problems with gcc 2.8.0. If you are + using this version, you should upgrade to 2.8.1 or later. + +GDBM GDBM does not work with sendmail 8.8 because the additional + security checks and file locking cause problems. Unfortunately, + gdbm does not provide a compile flag in its version of ndbm.h so + the code can adapt. Until the GDBM authors can fix these problems, + GDBM will not be supported. Please use Berkeley DB instead. + +Configuration file location + Up to 8.6, sendmail tried to find the sendmail.cf file in the same + place as the vendors had put it, even when this was obviously + stupid. As of 8.7, sendmail ALWAYS looks for /etc/sendmail.cf. + Beginning with 8.10, sendmail will use /etc/mail/sendmail.cf. + You can get sendmail to use the stupid vendor .cf location by + adding -DUSE_VENDOR_CF_PATH during compilation, but this may break + support programs and scripts that need to find sendmail.cf. You + are STRONGLY urged to use symbolic links if you want to use the + vendor location rather than changing the location in the sendmail + binary. + +SunOS 4.x (Solaris 1.x) + You may have to use -lresolv on SunOS. However, beware that + this links in a new version of gethostbyname that does not + understand NIS, so you must have all of your hosts in DNS. + + Some people have reported problems with the SunOS version of + -lresolv and/or in.named, and suggest that you get a newer + version. The symptoms are delays when you connect to the + SMTP server on a SunOS machine or having your domain added to + addresses inappropriately. There is a version of BIND + version 4.9 on gatekeeper.DEC.COM in pub/BSD/bind/4.9. + + There is substantial disagreement about whether you can make + this work with resolv+, which allows you to specify a search-path + of services. Some people report that it works fine, others + claim it doesn't work at all (including causing sendmail to + drop core when it tries to do multiple resolv+ lookups for a + single job). I haven't tried resolv+, as we use DNS exclusively. + + Should you want to try resolv+, it is on ftp.uu.net in + /networking/ip/dns. + + Apparently getservbyname() can fail under moderate to high + load under some circumstances. This will exhibit itself as + the message ``554 makeconnection: service "smtp" unknown''. + The problem has been traced to one or more blank lines in + /etc/services on the NIS server machine. Delete these + and it should work. This info is thanks to Brian Bartholomew + <bb@math.ufl.edu> of I-Kinetics, Inc. + +SunOS 4.0.2 (Sun 386i) + Date: Fri, 25 Aug 1995 11:13:58 +0200 (MET DST) + From: teus@oce.nl + + Sendmail 8.7.Beta.12 compiles and runs nearly out of the box with the + following changes: + * Don't use /usr/5bin in your PATH, but make /usr/5bin/uname + available as "uname" command. + * Use the defines "-DBSD4_3 -DNAMED_BIND=0" in + BuildTools/OS/SunOS.4.0, which is selected via the "uname" command. + I recommend to make available the db-library on the system first + (and change the Makefile to use this library). + Note that the sendmail.cf and aliases files are found in /etc. + +SunOS 4.1.3, 4.1.3_U1 + Sendmail causes crashes on SunOS 4.1.3 and 4.1.3_U1. According + to Sun bug number 1077939: + + If an application does a getsockopt() on a SOCK_STREAM (TCP) socket + after the other side of the connection has sent a TCP RESET for + the stream, the kernel gets a Bus Trap in the tcp_ctloutput() or + ip_ctloutput() routine. + + For 4.1.3, this is fixed in patch 100584-08, available on the + Sunsolve 2.7.1 or later CDs. For 4.1.3_U1, this was fixed in patch + 101790-01 (SunOS 4.1.3_U1: TCP socket and reset problems), later + obsoleted by patch 102010-05. + + Sun patch 100584-08 is not currently publicly available on their + ftp site but a user has reported it can be found at other sites + using a web search engine. + +Solaris 2.x (SunOS 5.x) + To compile for Solaris, the Makefile built by Build must + include a SOLARIS definition which reflects the Solaris version + (i.e. -DSOLARIS=20400 for 2.4 or -DSOLARIS=20501 for 2.5.1). + If you are using gcc, make sure -I/usr/include is not used (or + it might complain about TopFrame). If you are using Sun's cc, + make sure /opt/SUNWspro/bin/cc is used instead of /usr/ucb/cc + (or it might complain about tm_zone). + + To the best of my knowledge, Solaris does not have the + gethostbyname problem described above. However, it does + have another one: + + From a correspondent: + + For solaris 2.2, I have + + hosts: files dns + + in /etc/nsswitch.conf and /etc/hosts has to have the fully + qualified host name. I think "files" has to be before "dns" + in /etc/nsswitch.conf during bootup. + + From another correspondent: + + When running sendmail under Solaris, the gethostbyname() + hack in conf.c which should perform proper canonicalization + of host names could fail. Result: the host name is not + canonicalized despite the hack, and you'll have to define $j + and $m in sendmail.cf somewhere. + + The reason could be that /etc/nsswitch.conf is improperly + configured (at least from sendmail's point of view). For + example, the line + + hosts: files nisplus dns + + will make gethostbyname() look in /etc/hosts first, then ask + nisplus, then dns. However, if /etc/hosts does not contain + the full canonicalized hostname, then no amount of + gethostbyname()s will work. + + Solution (or rather, a workaround): Ask nisplus first, then + dns, then local files: + + hosts: nisplus dns [NOTFOUND=return] files + + The Solaris "syslog" function is apparently limited to something + about 90 characters because of a kernel limitation. If you have + source code, you can probably up this number. You can get patches + that fix this problem: the patch ids are: + + Solaris 2.1 100834 + Solaris 2.2 100999 + Solaris 2.3 101318 + + Be sure you have the appropriate patch installed or you won't + see system logging. + +Solaris 2.4 (SunOS 5.4) + If you include /usr/lib at the end of your LD_LIBRARY_PATH you run + the risk of getting the wrong libraries under some circumstances. + This is because of a new feature in Solaris 2.4, described by + Rod.Evans@Eng.Sun.COM: + + >> Prior to SunOS 5.4, any LD_LIBRARY_PATH setting was ignored by the + >> runtime linker if the application was setxid (secure), thus your + >> applications search path would be: + >> + >> /usr/local/lib LD_LIBRARY_PATH component - IGNORED + >> /usr/lib LD_LIBRARY_PATH component - IGNORED + >> /usr/local/lib RPATH - honored + >> /usr/lib RPATH - honored + >> + >> the effect is that path 3 would be the first used, and this would + >> satisfy your resolv.so lookup. + >> + >> In SunOS 5.4 we made the LD_LIBRARY_PATH a little more flexible. + >> People who developed setxid applications wanted to be able to alter + >> the library search path to some degree to allow for their own + >> testing and debugging mechanisms. It was decided that the only + >> secure way to do this was to allow a `trusted' path to be used in + >> LD_LIBRARY_PATH. The only trusted directory we presently define + >> is /usr/lib. Thus a setuid root developer could play with some + >> alternative shared object implementations and place them in + >> /usr/lib (being root we assume they'ed have access to write in this + >> directory). This change was made as part of 1155380 - after a + >> *huge* amount of discussion regarding the security aspect of things. + >> + >> So, in SunOS 5.4 your applications search path would be: + >> + >> /usr/local/lib from LD_LIBRARY_PATH - IGNORED (untrustworthy) + >> /usr/lib from LD_LIBRARY_PATH - honored (trustworthy) + >> /usr/local/lib from RPATH - honored + >> /usr/lib from RPATH - honored + >> + >> here, path 2 would be the first used. + +Solaris 2.6 (SunOS 5.6) + If you built sendmail 8.8.1 through 8.8.4 inclusive on a Solaris 2.5 + system, that binary will not run on Solaris 2.6, due to problems with + incompatible snprintf(3s) calls. This problem is fixed in sendmail + 8.8.5. + +Solaris 2.5.1 (SunOS 5.5.1) and 2.6 (SunOS 5.6) + Apparently Solaris 2.5.1 patch 103663-01 installs a new + /usr/include/resolv.h file that defines the __P macro without + checking to see if it is already defined. This new resolv.h is also + included in the Solaris 2.6 distribution. This causes compile + warnings such as: + + In file included from daemon.c:51: + /usr/include/resolv.h:208: warning: `__P' redefined + cdefs.h:58: warning: this is the location of the previous definition + + These warnings can be safely ignored or you can create a resolv.h + file in the obj.SunOS.5.5.1.* or obj.SunOS.5.6.* directory that reads: + + #undef __P + #include "/usr/include/resolv.h" + + Sun is aware of the problem (Sun bug ID 4081053) and it will be fixed + in Solaris 2.7. + +Ultrix + By default, the IDENT protocol is turned off on Ultrix. If you + are running Ultrix 4.4 or later, or if you have included patch + CXO-8919 for Ultrix 4.2 or 4.3 to fix the TCP problem, you can turn + IDENT on in the configuration file by setting the "ident" timeout + to 30 seconds. + +Digital UNIX (formerly DEC OSF/1) + If you are compiling on OSF/1 (DEC Alpha), you must use + -L/usr/shlib (otherwise it core dumps on startup). You may also + need -mld to get the nlist() function, although some versions + apparently don't need this. + + Also, the enclosed makefile removed /usr/sbin/smtpd; if you need + it, just create the link to the sendmail binary. + + On DEC OSF/1 3.2 or earlier, the MatchGECOS option doesn't work + properly due to a bug in the getpw* routines. If you want to use + this, use -DDEC_OSF_BROKEN_GETPWENT=1. The problem is fixed in 3.2C. + + Digital's mail delivery agent, /bin/mail (aka /bin/binmail), will + only preserve the envelope sender in the "From " header if + DefaultUserID is set to daemon. Setting this to mailnull will + cause all mail to have the header "From mailnull ...". To use + a different DefaultUserID, you will need to use a different mail + delivery agent (such as mail.local found in the sendmail + distribution). + + On Digital UNIX 4.0 and later, Berkeley DB 1.85 is included with the + operating system and already has the ndbm.o module removed. However, + Digital has modified the original Berkeley DB db.h include file. + This results in the following warning while compiling map.c and udb.c: + + cc: Warning: /usr/include/db.h, line 74: The redefinition of the macro + "__signed" conflicts with a current definition because the replacement + lists differ. The redefinition is now in effect. + #define __signed signed + ------------------------^ + + This warning can be ignored. + +IRIX + The header files on SGI IRIX are completely prototyped, and as + a result you can sometimes get some warning messages during + compilation. These can be ignored. There are two errors in + deliver only if you are using gcc, both of the form ``warning: + passing arg N of `execve' from incompatible pointer type''. + Also, if you compile with -DNIS, you will get a complaint + about a declaration of struct dom_binding in a prototype + when compiling map.c; this is not important because the + function being prototyped is not used in that file. + + In order to compile sendmail you will have had to install + the developers' option in order to get the necessary include + files. + + If you compile with -lmalloc (the fast memory allocator), you may + get warning messages such as the following: + + ld32: WARNING 85: definition of _calloc in /usr/lib32/libmalloc.so + preempts that definition in /usr/lib32/mips3/libc.so. + ld32: WARNING 85: definition of _malloc in /usr/lib32/libmalloc.so + preempts that definition in /usr/lib32/mips3/libc.so. + ld32: WARNING 85: definition of _realloc in /usr/lib32/libmalloc.so + preempts that definition in /usr/lib32/mips3/libc.so. + ld32: WARNING 85: definition of _free in /usr/lib32/libmalloc.so + preempts that definition in /usr/lib32/mips3/libc.so. + ld32: WARNING 85: definition of _cfree in /usr/lib32/libmalloc.so + preempts that definition in /usr/lib32/mips3/libc.so. + + These are unavoidable and innocuous -- just ignore them. + + According to Dave Sill <de5@ornl.gov>, there is a version of the + Berkeley DB library patched to run on Irix 6.2 available from + http://reality.sgi.com/ariel/freeware/#db . + +IRIX 6.x + It is important that on IRIX 6.x you give used ABI in command + line of Build, otherwise configuration script does not work + correctly, e.g., + + sh Build -E ABI=-n32 + + If you are using XFS filesystem, avoid using ABI=-32 if possible. + +NeXT or NEXTSTEP + NEXTSTEP 3.3 and earlier ship with the old DBM library. Also, + Berkeley DB does not currently run on NEXTSTEP. + + If you are compiling on NEXTSTEP, you will have to create an + empty file "unistd.h" and create a file "dirent.h" containing: + + #include <sys/dir.h> + #define dirent direct + + (BuildTools/OS/NeXT should try to do both of these for you.) + + Apparently, there is a bug in getservbyname on Nextstep 3.0 + that causes it to fail under some circumstances with the + message "SYSERR: service "smtp" unknown" logged. You should + be able to work around this by including the line: + + OOPort=25 + + in your .cf file. + + You may have to use -DNeXT. + +BSDI (BSD/386) 1.0, NetBSD 0.9, FreeBSD 1.0 + The "m4" from BSDI won't handle the config files properly. + I haven't had a chance to test this myself. + + The M4 shipped in FreeBSD and NetBSD 0.9 don't handle the config + files properly. One must use either GNU m4 1.1 or the PD-M4 + recently posted in comp.os.386bsd.bugs (and maybe others). + NetBSD-current includes the PD-M4 (as stated in the NetBSD file + CHANGES). + + FreeBSD 1.0 RELEASE has uname(2) now. Use -DUSEUNAME in order to + use it (look into BuildTools/OS/FreeBSD). NetBSD-current may have + it too but it has not been verified. + + The latest version of Berkeley DB uses a different naming + scheme than the version that is supplied with your release. This + means you will be able to use the current version of Berkeley DB + with sendmail as long you use the new db.h when compiling + sendmail and link it against the new libdb.a. You should probably + keep the original db.h in /usr/include and the new db.h in + /usr/local/include. + +4.3BSD + If you are running a "virgin" version of 4.3BSD, you'll have + a very old resolver and be missing some header files. The + header files are simple -- create empty versions and everything + will work fine. For the resolver you should really port a new + version (4.8.3 or later) of the resolver; 4.9 is available on + gatekeeper.DEC.COM in pub/BSD/bind/4.9. If you are really + determined to continue to use your old, buggy version (or as + a shortcut to get sendmail working -- I'm sure you have the + best intentions to port a modern version of BIND), you can + copy ../contrib/oldbind.compat.c into src and add + oldbind.compat.o to OBJADD in the Makefile. + +A/UX + Date: Tue, 12 Oct 1993 18:28:28 -0400 (EDT) + From: "Eric C. Hagberg" <hagberg@med.cornell.edu> + Subject: Fix for A/UX ndbm + + I guess this isn't really a sendmail bug, however, it is something + that A/UX users should be aware of when compiling sendmail 8.6. + + Apparently, the calls that sendmail is using to the ndbm routines + in A/UX 3.0.x contain calls to "broken" routines, in that the + aliases database will break when it gets "just a little big" + (sorry I don't have exact numbers here, but it broke somewhere + around 20-25 aliases for me.), making all aliases non-functional + after exceeding this point. + + What I did was to get the gnu-dbm-1.6 package, compile it, and + then re-compile sendmail with "-lgdbm", "-DNDBM", and using the + ndbm.h header file that comes with the gnu-package. This makes + things behave properly. + [NOTE: see comment above about GDBM] + + I suppose porting the New Berkeley DB package is another route, + however, I made a quick attempt at it, and found it difficult + (not easy at least); the gnu-dbm package "configured" and + compiled easily. + + [NOTE: Berkeley DB version 2.X runs on A/UX and can be used for + database maps.] + +SCO Unix + From: Thomas Essebier <tom@stallion.oz.au> + Organisation: Stallion Technologies Pty Ltd. + + It will probably help those who are trying to configure sendmail 8.6.9 + to know that if they are on SCO, they had better set + OI-dnsrch + or they will core dump as soon as they try to use the resolver. + ie. although SCO has _res.dnsrch defined, and is kinda BIND 4.8.3, it + does not inititialise it, nor does it understand 'search' in + /etc/named.boot. + - sigh - + + According to SCO, the m4 which ships with UnixWare 2.1.2 is broken. + We recommend installing GNU m4 before attempting to build sendmail. + +DG/UX + Doug Anderson <dlander@afterlife.ncsc.mil> has successfully run + V8 on the DG/UX 5.4.2 and 5.4R3.x platforms under heavy usage. + Originally, the DG /bin/mail program wasn't compatible with + the V8 sendmail, since the DG /bin/mail requires the environment + variable "_FORCE_MAIL_LOCAL_=yes" be set. Version 8.7 now includes + this in the environment before invoking the local mailer. Some + have used procmail to avoid this problem in the past. It works + but some have experienced file locking problems with their DG/UX + ports of procmail. + +Apollo DomainOS + If you are compiling on Apollo, you will have to create an empty + file "unistd.h" (for DomainOS 10.3 and earlier) and create a file + "dirent.h" containing: + + #include <sys/dir.h> + #define dirent direct + + (BuildTools/OS/DomainOS will attempt to do both of these for you.) + +HP-UX 8.00 + Date: Mon, 24 Jan 1994 13:25:45 +0200 + From: Kimmo Suominen <Kimmo.Suominen@lut.fi> + Subject: 8.6.5 w/ HP-UX 8.00 on s300 + + Just compiled and fought with sendmail 8.6.5 on a HP9000/360 (ie. a + series 300 machine) running HP-UX 8.00. + + I was getting segmentation fault when delivering to a local user. + With debugging I saw it was faulting when doing _free@libc... *sigh* + It seems the new implementation of malloc on s300 is buggy as of 8.0, + so I tried out the one in -lmalloc (malloc(3X)). With that it seems + to work just dandy. + + When linking, you will get the following error: + + ld: multiply defined symbol _freespace in file /usr/lib/libmalloc.a + + but you can just ignore it. You might want to add this info to the + README file for the future... + +Linux + Something broke between versions 0.99.13 and 0.99.14 of Linux: + the flock() system call gives errors. If you are running .14, + you must not use flock. You can do this with -DHASFLOCK=0. + + Around the inclusion of bind-4.9.3 & Linux libc-4.6.20, the + initialization of the _res structure changed. If /etc/hosts.conf + was configured as "hosts, bind" the resolver code could return + "Name server failure" errors. This is supposedly fixed in + later versions of libc (>= 4.6.29?), and later versions of + sendmail (> 8.6.10) try to work around the problem. + + Some older versions (< 4.6.20?) of the libc/include files conflict + with sendmail's version of cdefs.h. Deleting sendmail's version + on those systems should be non-harmful, and new versions don't care. + + Sendmail assumes that libc has snprintf, which has been true since + libc 4.7.0. If you are running an older version, you will need to + use -DHASSNPRINTF=0 in the Makefile. If may be able to use -lbsd + (which includes snprintf) instead of turning this off on versions + of libc between 4.4.4 and 4.7.0 (snprintf improves security, so + you want to use this if at all possible). + + NOTE ON LINUX & BIND: By default, the Makefile generated for Linux + includes header files in /usr/local/include and libraries in + /usr/local/lib. If you've installed BIND on your system, the header + files typically end up in the search path and you need to add + "-lresolv" to the LIBS line in your Makefile. Really old versions + may need to include "-l44bsd" as well (particularly if the link phase + complains about missing strcasecmp, strncasecmp or strpbrk). + Complaints about an undefined reference to `__dn_skipname' in + domain.o are a sure sign that you need to add -lresolv to LIBS. + Newer versions of Linux are basically threaded BIND, so you may or + may not see complaints if you accidentally mix BIND + headers/libraries with virginal libc. If you have BIND headers in + /usr/local/include (resolv.h, etc) you *should* be adding -lresolv + to LIBS. Data structures may change and you'd be asking for a + core dump. + +AIX 3.x + This version of sendmail does not support MB, MG, and MR resource + records, which are supported by AIX sendmail. + + Several people have reported that the IBM-supplied named returns + fairly random results -- the named should be replaced. It is not + necessary to replace the resolver, which will simplify installation. + A new BIND resolver can be found at http://www.isc.org/isc/. + +AIX 3.1.x + The supplied load average code only works correctly for AIX 3.2.x. + For 3.1, use -DLA_TYPE=LA_SUBR and get the latest ``monitor'' + package by Jussi Maki <jmaki@hut.fi> from ftp.funet.fi in the + directory pub/unix/AIX/rs6000/monitor-1.12.tar.Z; use the loadavgd + daemon, and the getloadavg subroutine supplied with that package. + If you don't care about load average throttling, just turn off + load average checking using -DLA_TYPE=LA_ZERO. + +AIX 2.2.1 + Date: Mon Dec 4 14:14:56 CST 1995 + From: Mark Whetzel <markw@antimatr.houston.tx.us> + Subject: Porting sendmail 8.7.2 to AIX V2 on the RT. + + This version of sendmail does not support MB, MG, and MR resource + records, which are supported by AIX sendmail. + + AIX V2 on the RT does not have 'paths.h'. Create a null + file in the 'obj' directory to remove this compile error. + + A patch file is needed to get the BSD 'db' library to compile + for AIX/RT. I have sent the necessary updates to the author, + but they may not be immediately available. + [NOTE: Berkeley DB version 2.X runs on AIX/RT.] + + The original AIX/RT resolver libraries are very old, and you + should get the latest BIND to replace it. The 4.8.3 version + has been tested, but 4.9.x is out and should work. + + To make the load average code work correctly requires an + external routine, as the kernel does not maintain system + load averages, similar to AIX V3.1.x. A reverse port of the + older 1.05 'monitor' load average daemon code written by + Jussi Maki that will work on AIX V2 for the RT is available + by E-mail to Mark Whetzel <markw@antimatr.houston.tx.us>. + That code depends on an external daemon to collect system + load information, and the external routine 'getloadavg', + that will return that information. The 'LA_SUBR' define + will handle this for AIX V2 on the RT. + + Note: You will have to change BuildTools/OS/AIX.2 to correctly + point to the locatons of the updated BIND source tree and + the location of the 'newdb' tree and library location. + You will also have to change BuildTools/OS/AIX.2 to know + about the location of the 'getloadavg' routine if you use + the LA_SUBR define. + + + Manual pages will format correctly if given the mandoc macros + and used with nroff. I have not tried groff. + +RISC/os + RISC/os from MIPS is a merged AT&T/Berkeley system. When you + compile on that platform you will get duplicate definitions + on many files. You can ignore these. + +System V Release 4 Based Systems + There is a single BuildTools OS that is intended for all SVR4-based + systems (built from BuildTools/OS/SVR4). It defines __svr4__, + which is predefined by some compilers. If your compiler already + defines this compile variable, you can delete the definition from + the generated Makefile or create a BuildTools/Site/site.config.m4 + file. + + It's been tested on Dell Issue 2.2. + +DELL SVR4 + Date: Mon, 06 Dec 1993 10:42:29 EST + From: "Kimmo Suominen" <kim@grendel.lut.fi> + Message-ID: <2d0352f9.lento29@lento29.UUCP> + To: eric@cs.berkeley.edu + Cc: sendmail@cs.berkeley.edu + Subject: Notes for DELL SVR4 + + Eric, + + Here are some notes for compiling Sendmail 8.6.4 on DELL SVR4. I ran + across these things when helping out some people who contacted me by + e-mail. + + 1) Use gcc 2.4.5 (or later?). Dell distributes gcc 2.1 with their + Issue 2.2 Unix. It is too old, and gives you problems with + clock.c, because sigset_t won't get defined in <sys/signal.h>. + This is due to a problematic protection rule in there, and is + fixed with gcc 2.4.5. + + 2) If you don't use the new Berkeley DB (-DNEWDB), then you need + to add "-lc -lucb" to the libraries to link with. This is because + the -ldbm distributed by Dell needs the bcopy, bcmp and bzero + functions. It is important that you specify both libraries in + the given order to be sure you only get the BSTRING functions + from the UCB library (and not the signal routines etc.). + + 3) Don't leave out "-lelf" even if compiling with "-lc -lucb". + The UCB library also has another copy of the nlist routines, + but we do want the ones from "-lelf". + + If anyone needs a compiled gcc 2.4.5 and/or a ported DB library, they + can use anonymous ftp to fetch them from lut.fi in the /kim directory. + They are copies of what I use on grendel.lut.fi, and offering them + does not imply that I would also support them. I have sent the DB + port for SVR4 back to Keith Bostic for inclusion in the official + distribution, but I haven't heard anything from him as of today. + + - gcc-2.4.5-svr4.tar.gz (gcc 2.4.5 and the corresponding libg++) + - db-1.72.tar.gz (with source, objects and a installed copy) + + Cheers + + Kim + -- + * Kimmo.Suominen@lut.fi * SysVr4 enthusiast at GRENDEL.LUT.FI * + * KIM@FINFILES.BITNET * Postmaster and Hostmaster at LUT.FI * + * + 358 200 865 718 * Unix area moderator at NIC.FUNET.FI * + +ConvexOS 10.1 and below + In order to use the name server, you must create the file + /etc/use_nameserver. If this file does not exist, the call + to res_init() will fail and you will have absolutely no + access to DNS, including MX records. + +Amdahl UTS 2.1.5 + In order to get UTS to work, you will have to port BIND 4.9. + The vendor's BIND is reported to be ``totally inadequate.'' + See sendmail/contrib/AmdahlUTS.patch for the patches necessary + to get BIND 4.9 compiled for UTS. + +UnixWare + According to Alexander Kolbasov <sasha@unitech.gamma.ru>, + the m4 on UnixWare 2.0 (still in Beta) will core dump on the + config files. GNU m4 and the m4 from UnixWare 1.x both work. + + According to Larry Rosenman <ler@lerami.lerctr.org>: + + UnixWare 2.1.[23]'s m4 chokes (not obviously) when + processing the 8.9.0 cf files. + + I had a LOCAL_RULE_0 that wound up AFTER the + SBasic_check_rcpt rules using the SCO supplied M4. + GNU M4 works fine. + +UNICOS 8.0.3.4 + Some people have reported that the -O flag on UNICOS can cause + problems. You may want to turn this off if you have problems + running sendmail. Reported by Jerry G. DeLapp <jgd@acl.lanl.gov>. + +GNU getopt + I'm told that GNU getopt has a problem in that it gets confused + by the double call. Use the version in conf.c instead. + +BIND 4.9.2 and Ultrix + If you are running on Ultrix, be sure you read conf/Info.Ultrix + in the BIND distribution very carefully -- there is information + in there that you need to know in order to avoid errors of the + form: + + /lib/libc.a(gethostent.o): sethostent: multiply defined + /lib/libc.a(gethostent.o): endhostent: multiply defined + /lib/libc.a(gethostent.o): gethostbyname: multiply defined + /lib/libc.a(gethostent.o): gethostbyaddr: multiply defined + + during the link stage. + +strtoul + Some compilers (notably gcc) claim to be ANSI C but do not + include the ANSI-required routine "strtoul". If your compiler + has this problem, you will get an error in srvrsmtp.c on the + code: + + # ifdef defined(__STDC__) && !defined(BROKEN_ANSI_LIBRARY) + e->e_msgsize = strtoul(vp, (char **) NULL, 10); + # else + e->e_msgsize = strtol(vp, (char **) NULL, 10); + # endif + + You can use -DBROKEN_ANSI_LIBRARY to get around this problem. + +Listproc 6.0c + Date: 23 Sep 1995 23:56:07 GMT + Message-ID: <95925101334.~INN-AUMa00187.comp-news@dl.ac.uk> + From: alansz@mellers1.psych.berkeley.edu (Alan Schwartz) + Subject: Listproc 6.0c + Sendmail 8.7 [Helpful hint] + + Just upgraded to sendmail 8.7, and discovered that listproc 6.0c + breaks, because it, by default, sends a blank "HELO" rather than + a "HELO hostname" when using the 'system' or 'telnet' mailmethod. + + The fix is to include -DZMAILER in the compilation, which will + cause it to use "HELO hostname" (which Z-mail apparently requires + as well. :) + +LDAP + LDAP was provided by Booker Bense <bbense+ldap@stanford.edu> of + Stanford University. From Booker: + + - The patch attached to this message implements an Ldap map class. + Currently we are using this at stanford to support campus-wide + email addressing. More information can be found at + http://www.stanford.edu/~bbense/Inst.html. + + - Currently we are using the ldap map as follows: + + Kluser ldapx + -h"localhost borax.stanford.edu borate.stanford.edu boron.stanford.edu" + -k"mailacceptinggeneralid=%s" -v maildrop + + and in Rule set S5 + + # Now attempt to lookup in luser (ldap map) + R< $L > $+ $: < $L > $( luser $1 $) + R< $* > $+ @ $+ $: < $3 > $2 Rewrite if forward + + - The map definition supports most of the standard Map args plus most + of the command line options of ldapsearch. The software is currently + limited to only accepting the first entry returned. It expects that + the map defines an ldap filter that returns at most 1 valid entry. + It requires the ldap and lber libraries from the Umich Ldap3.2 + release. + + The software has been in production on Solaris.2.5.1 at Stanford + for over 2 years. + +TCP Wrappers + If you are using -DTCPWRAPPERS to get TCP Wrappers support you will + also need to install libwrap.a and modify your site.config.m4 file + or the generated Makefile to include -lwrap in the LIBS line + (make sure that INCDIRS and LIBDIRS point to where the tcpd.h and + libwrap.a can be found). + + TCP Wrappers is available on ftp.win.tue.nl in /pub/security; + grab tcp_wrappers_<VER>.tar.gz (where <VER> is the highest + numbered version). + + If you have alternate MX sites for your site, be sure that all of + your MX sites reject the same set of hosts. If not, a bad guy whom + you reject will connect to your site, fail, and move on to the next + MX site, which will accept the mail for you and forward it on to you. + +Regular Expressions (MAP_REGEX) + If sendmail linking fails with: + + undefined reference to 'regcomp' + + or sendmail gives an error about a regular expression with: + + pattern-compile-error: : Operation not applicable + + Your libc does not include a running version of POSIX-regex. Use + librx or regex.o from the GNU Free Software Foundation, + ftp://ftp.gnu.org/pub/gnu/rx-?.?.tar.gz or + ftp://ftp.gnu.org/pub/gnu/regex-?.?.tar.gz. + You can also use the regex-lib by Henry Spencer, + ftp://ftp.funet.fi/pub/languages/C/spencer/regex.shar.gz + Make sure, your compiler reads regex.h from the distribution, + not from /usr/include, otherwise sendmail will dump a core. + + ++--------------+ +| MANUAL PAGES | ++--------------+ + +The manual pages have been written against the -mandoc macros +instead of the -man macros. The latest version of groff has them +included. You can also get a copy from FTP.UU.NET in the directory +/systems/unix/bsd-sources/share/tmac. groff is available from +ftp.gnu.org in the /pub/gnu directory. + + ++-----------------+ +| DEBUGGING HOOKS | ++-----------------+ + +As of 8.6.5, sendmail daemons will catch a SIGUSR1 signal and log +some debugging output (logged at LOG_DEBUG severity). The +information dumped is: + + * The value of the $j macro. + * A warning if $j is not in the set $=w. + * A list of the open file descriptors. + * The contents of the connection cache. + * If ruleset 89 is defined, it is evaluated and the results printed. + +This allows you to get information regarding the runtime state of the +daemon on the fly. This should not be done too frequently, since +the process of rewriting may lose memory which will not be recovered. +Also, ruleset 89 may call non-reentrant routines, so there is a small +non-zero probability that this will cause other problems. It is +really only for debugging serious problems. + +A typical formulation of ruleset 89 would be: + + R$* $@ $>0 some test address + + ++-----------------------------+ +| DESCRIPTION OF SOURCE FILES | ++-----------------------------+ + +The following list describes the files in this directory: + +Makefile.m4 A template for constructing a makefile based on the + information in the BuildTools directory. +README This file. +TRACEFLAGS My own personal list of the trace flags -- not guaranteed + to be particularly up to date. +alias.c Does name aliasing in all forms. +arpadate.c A subroutine which creates ARPANET standard dates. +clock.c Routines to implement real-time oriented functions + in sendmail -- e.g., timeouts. +collect.c The routine that actually reads the mail into a temp + file. It also does a certain amount of parsing of + the header, etc. +conf.c The configuration file. This contains information + that is presumed to be quite static and non- + controversial, or code compiled in for efficiency + reasons. Most of the configuration is in sendmail.cf. +conf.h Configuration that must be known everywhere. +convtime.c A routine to sanely process times. +daemon.c Routines to implement daemon mode. This version is + specifically for Berkeley 4.1 IPC. +deliver.c Routines to deliver mail. +domain.c Routines that interface with DNS (the Domain Name + System). +err.c Routines to print error messages. +envelope.c Routines to manipulate the envelope structure. +headers.c Routines to process message headers. +macro.c The macro expander. This is used internally to + insert information from the configuration file. +main.c The main routine to sendmail. This file also + contains some miscellaneous routines. +map.c Support for database maps. +mci.c Routines that handle mail connection information caching. +mime.c MIME conversion routines. +parseaddr.c The routines which do address parsing. +queue.c Routines to implement message queueing. +readcf.c The routine that reads the configuration file and + translates it to internal form. +recipient.c Routines that manipulate the recipient list. +safefile.c Routines to do careful checking of file modes and permissions + when opening or creating files. +savemail.c Routines which save the letter on processing errors. +sendmail.h Main header file for sendmail. +snprintf.c Routines to manipulate strings but prevent buffer overflows. +srvrsmtp.c Routines to implement server SMTP. +stab.c Routines to manage the symbol table. +stats.c Routines to collect and post the statistics. +sysexits.c List of error messages associated with error codes + in sysexits.h. +trace.c The trace package. These routines allow setting and + testing of trace flags with a high granularity. +udb.c The user database interface module. +usersmtp.c Routines to implement user SMTP. +util.c Some general purpose routines used by sendmail. +version.c The version number and information about this + version of sendmail. Theoretically, this gets + modified on every change. + +Eric Allman + +(Version 8.206, last update 6/30/98 22:08:36) diff --git a/usr.sbin/sendmail/src/mailstats.h b/usr.sbin/sendmail/src/mailstats.h index 0164d91e144..2121e149587 100644 --- a/usr.sbin/sendmail/src/mailstats.h +++ b/usr.sbin/sendmail/src/mailstats.h @@ -1,49 +1,34 @@ /* - * Copyright (c) 1983 Eric P. Allman + * 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. * - * 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. + * 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 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. * - * @(#)mailstats.h 8.1 (Berkeley) 6/7/93 + * @(#)mailstats.h 8.8 (Berkeley) 5/19/98 */ +#define STAT_VERSION 2 +#define STAT_MAGIC 0x1B1DE + /* ** Statistics structure. */ struct statistics { + int stat_magic; /* magic number */ + int stat_version; /* stat file version */ time_t stat_itime; /* file initialization time */ short stat_size; /* size of this structure */ long stat_nf[MAXMAILERS]; /* # msgs from each mailer */ long stat_bf[MAXMAILERS]; /* kbytes from each mailer */ long stat_nt[MAXMAILERS]; /* # msgs to each mailer */ long stat_bt[MAXMAILERS]; /* kbytes to each mailer */ + long stat_nr[MAXMAILERS]; /* # rejects by each mailer */ + long stat_nd[MAXMAILERS]; /* # discards by each mailer */ }; diff --git a/usr.sbin/sendmail/src/snprintf.c b/usr.sbin/sendmail/src/snprintf.c new file mode 100644 index 00000000000..f9b156de5ed --- /dev/null +++ b/usr.sbin/sendmail/src/snprintf.c @@ -0,0 +1,428 @@ +/* + * Copyright (c) 1998 Sendmail, Inc. All rights reserved. + * Copyright (c) 1997 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. + * + */ + +#ifndef lint +static char sccsid[] = "@(#)snprintf.c 8.11 (Berkeley) 6/4/98"; +#endif /* not lint */ + +#include "sendmail.h" + +/* +** SNPRINTF, VSNPRINT -- counted versions of printf +** +** These versions have been grabbed off the net. They have been +** cleaned up to compile properly and support for .precision and +** %lx has been added. +*/ + +/************************************************************** + * Original: + * Patrick Powell Tue Apr 11 09:48:21 PDT 1995 + * A bombproof version of doprnt (sm_dopr) included. + * Sigh. This sort of thing is always nasty do deal with. Note that + * the version here does not include floating point... + * + * snprintf() is used instead of sprintf() as it does limit checks + * for string length. This covers a nasty loophole. + * + * The other functions are there to prevent NULL pointers from + * causing nast effects. + **************************************************************/ + +/*static char _id[] = "$Id: snprintf.c,v 1.1.1.1 1998/07/12 17:10:41 millert Exp $";*/ +void sm_dopr(); +char *DoprEnd; +int SnprfOverflow; + +#if !HASSNPRINTF + +/* VARARGS3 */ +int +# ifdef __STDC__ +snprintf(char *str, size_t count, const char *fmt, ...) +# else +snprintf(str, count, fmt, va_alist) + char *str; + size_t count; + const char *fmt; + va_dcl +#endif +{ + int len; + VA_LOCAL_DECL + + VA_START(fmt); + len = vsnprintf(str, count, fmt, ap); + VA_END; + return len; +} + + +# ifndef luna2 +int +vsnprintf(str, count, fmt, args) + char *str; + size_t count; + const char *fmt; + va_list args; +{ + str[0] = 0; + DoprEnd = str + count - 1; + SnprfOverflow = 0; + sm_dopr( str, fmt, args ); + if (count > 0) + DoprEnd[0] = 0; + if (SnprfOverflow && tTd(57, 2)) + printf("\nvsnprintf overflow, len = %ld, str = %s", + (long) count, shortenstring(str, MAXSHORTSTR)); + return strlen(str); +} + +# endif /* !luna2 */ +#endif /* !HASSNPRINTF */ + +/* + * sm_dopr(): poor man's version of doprintf + */ + +void fmtstr __P((char *value, int ljust, int len, int zpad, int maxwidth)); +void fmtnum __P((long value, int base, int dosign, int ljust, int len, int zpad)); +void dostr __P(( char * , int )); +char *output; +void dopr_outch __P(( int c )); +int SyslogErrno; + +void +sm_dopr( buffer, format, args ) + char *buffer; + const char *format; + va_list args; +{ + int ch; + long value; + int longflag = 0; + int pointflag = 0; + int maxwidth = 0; + char *strvalue; + int ljust; + int len; + int zpad; +# if !HASSTRERROR && !defined(ERRLIST_PREDEFINED) + extern char *sys_errlist[]; + extern int sys_nerr; +# endif + + + output = buffer; + while( (ch = *format++) != '\0' ){ + switch( ch ){ + case '%': + ljust = len = zpad = maxwidth = 0; + longflag = pointflag = 0; + nextch: + ch = *format++; + switch( ch ){ + case 0: + dostr( "**end of format**" , 0); + return; + case '-': ljust = 1; goto nextch; + case '0': /* set zero padding if len not set */ + if(len==0 && !pointflag) zpad = '0'; + case '1': case '2': case '3': + case '4': case '5': case '6': + case '7': case '8': case '9': + if (pointflag) + maxwidth = maxwidth*10 + ch - '0'; + else + len = len*10 + ch - '0'; + goto nextch; + case '*': + if (pointflag) + maxwidth = va_arg( args, int ); + else + len = va_arg( args, int ); + goto nextch; + case '.': pointflag = 1; goto nextch; + case 'l': longflag = 1; goto nextch; + case 'u': case 'U': + /*fmtnum(value,base,dosign,ljust,len,zpad) */ + if( longflag ){ + value = va_arg( args, long ); + } else { + value = va_arg( args, int ); + } + fmtnum( value, 10,0, ljust, len, zpad ); break; + case 'o': case 'O': + /*fmtnum(value,base,dosign,ljust,len,zpad) */ + if( longflag ){ + value = va_arg( args, long ); + } else { + value = va_arg( args, int ); + } + fmtnum( value, 8,0, ljust, len, zpad ); break; + case 'd': case 'D': + if( longflag ){ + value = va_arg( args, long ); + } else { + value = va_arg( args, int ); + } + fmtnum( value, 10,1, ljust, len, zpad ); break; + case 'x': + if( longflag ){ + value = va_arg( args, long ); + } else { + value = va_arg( args, int ); + } + fmtnum( value, 16,0, ljust, len, zpad ); break; + case 'X': + if( longflag ){ + value = va_arg( args, long ); + } else { + value = va_arg( args, int ); + } + fmtnum( value,-16,0, ljust, len, zpad ); break; + case 's': + strvalue = va_arg( args, char *); + if (maxwidth > 0 || !pointflag) { + if (pointflag && len > maxwidth) + len = maxwidth; /* Adjust padding */ + fmtstr( strvalue,ljust,len,zpad, maxwidth); + } + break; + case 'c': + ch = va_arg( args, int ); + dopr_outch( ch ); break; + case 'm': +#if HASSTRERROR + dostr(strerror(SyslogErrno), 0); +#else + if (SyslogErrno < 0 || SyslogErrno >= sys_nerr) + { + dostr("Error ", 0); + fmtnum(SyslogErrno, 10, 0, 0, 0, 0); + } + else + dostr((char *)sys_errlist[SyslogErrno], 0); +#endif + break; + + case '%': dopr_outch( ch ); continue; + default: + dostr( "???????" , 0); + } + break; + default: + dopr_outch( ch ); + break; + } + } + *output = 0; +} + +void +fmtstr( value, ljust, len, zpad, maxwidth ) + char *value; + int ljust, len, zpad, maxwidth; +{ + int padlen, strlen; /* amount to pad */ + + if( value == 0 ){ + value = "<NULL>"; + } + for( strlen = 0; value[strlen]; ++ strlen ); /* strlen */ + if (strlen > maxwidth && maxwidth) + strlen = maxwidth; + padlen = len - strlen; + if( padlen < 0 ) padlen = 0; + if( ljust ) padlen = -padlen; + while( padlen > 0 ) { + dopr_outch( ' ' ); + --padlen; + } + dostr( value, maxwidth ); + while( padlen < 0 ) { + dopr_outch( ' ' ); + ++padlen; + } +} + +void +fmtnum( value, base, dosign, ljust, len, zpad ) + long value; + int base, dosign, ljust, len, zpad; +{ + int signvalue = 0; + unsigned long uvalue; + char convert[20]; + int place = 0; + int padlen = 0; /* amount to pad */ + int caps = 0; + + /* DEBUGP(("value 0x%x, base %d, dosign %d, ljust %d, len %d, zpad %d\n", + value, base, dosign, ljust, len, zpad )); */ + uvalue = value; + if( dosign ){ + if( value < 0 ) { + signvalue = '-'; + uvalue = -value; + } + } + if( base < 0 ){ + caps = 1; + base = -base; + } + do{ + convert[place++] = + (caps? "0123456789ABCDEF":"0123456789abcdef") + [uvalue % (unsigned)base ]; + uvalue = (uvalue / (unsigned)base ); + }while(uvalue); + convert[place] = 0; + padlen = len - place; + if( padlen < 0 ) padlen = 0; + if( ljust ) padlen = -padlen; + /* DEBUGP(( "str '%s', place %d, sign %c, padlen %d\n", + convert,place,signvalue,padlen)); */ + if( zpad && padlen > 0 ){ + if( signvalue ){ + dopr_outch( signvalue ); + --padlen; + signvalue = 0; + } + while( padlen > 0 ){ + dopr_outch( zpad ); + --padlen; + } + } + while( padlen > 0 ) { + dopr_outch( ' ' ); + --padlen; + } + if( signvalue ) dopr_outch( signvalue ); + while( place > 0 ) dopr_outch( convert[--place] ); + while( padlen < 0 ){ + dopr_outch( ' ' ); + ++padlen; + } +} + +void +dostr( str , cut) + char *str; + int cut; +{ + if (cut) { + while(*str && cut-- > 0) dopr_outch(*str++); + } else { + while(*str) dopr_outch(*str++); + } +} + +void +dopr_outch( c ) + int c; +{ +#if 0 + if( iscntrl(c) && c != '\n' && c != '\t' ){ + c = '@' + (c & 0x1F); + if( DoprEnd == 0 || output < DoprEnd ) + *output++ = '^'; + } +#endif + if( DoprEnd == 0 || output < DoprEnd ) + *output++ = c; + else + SnprfOverflow++; +} + +/* +** QUAD_TO_STRING -- Convert a quad type to a string. +** +** Convert a quad type to a string. This must be done +** separately as %lld/%qd are not supported by snprint() +** and adding support would slow down systems which only +** emulate the data type. +** +** Parameters: +** value -- number to convert to a string. +** +** Returns: +** pointer to a string. +*/ + +char * +quad_to_string(value) + QUAD_T value; +{ + char *fmtstr; + static char buf[64]; + + /* + ** Use sprintf() instead of snprintf() since snprintf() + ** does not support %qu or %llu. The buffer is large enough + ** to hold the string so there is no danger of buffer + ** overflow. + */ + +#if NEED_PERCENTQ + fmtstr = "%qu"; +#else + fmtstr = "%llu"; +#endif + sprintf(buf, fmtstr, value); + return buf; +} +/* +** SHORTENSTRING -- return short version of a string +** +** If the string is already short, just return it. If it is too +** long, return the head and tail of the string. +** +** Parameters: +** s -- the string to shorten. +** m -- the max length of the string. +** +** Returns: +** Either s or a short version of s. +*/ + +char * +shortenstring(s, m) + register const char *s; + int m; +{ + int l; + static char buf[MAXSHORTSTR + 1]; + + l = strlen(s); + if (l < m) + return (char *) s; + if (m > MAXSHORTSTR) + m = MAXSHORTSTR; + else if (m < 10) + { + if (m < 5) + { + strncpy(buf, s, m); + buf[m] = '\0'; + return buf; + } + strncpy(buf, s, m - 3); + strcpy(buf + m - 3, "..."); + return buf; + } + m = (m - 3) / 2; + strncpy(buf, s, m); + strcpy(buf + m, "..."); + strcpy(buf + m + 3, s + l - m); + return buf; +} |