summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWichert Akkerman <wakkerma@debian.org>1999-12-07 02:32:22 +0100
committerAndreas Beckmann <debian@abeckmann.de>2012-10-01 19:58:39 +0200
commit4e2c4cdcd62c4ab1d5e884e8afaa0bbe1b981e42 (patch)
tree3735b995048d3eccbfa7e5095e00d483c2549225
parent7b9056b97dd10ee7b6b02f88a239f9f99cfa38f8 (diff)
downloadsendmail-4e2c4cdcd62c4ab1d5e884e8afaa0bbe1b981e42.tar.gz
Imported Debian patch 8.9.3-3slink1debian/8.9.3-3slink1
-rw-r--r--cf/m4/proto.m423
-rwxr-xr-xcontrib/passwd-to-alias.pl2
-rw-r--r--debian/README.Debian67
-rw-r--r--debian/aliases6
-rw-r--r--debian/changelog350
-rw-r--r--debian/check.tar.uue1005
-rw-r--r--debian/checksendmail/BSDI_CONTRIB (renamed from checksendmail/BSDI_CONTRIB)0
-rw-r--r--debian/checksendmail/CVS/Entries (renamed from checksendmail/CVS/Entries)0
-rw-r--r--debian/checksendmail/CVS/Repository (renamed from checksendmail/CVS/Repository)0
-rw-r--r--debian/checksendmail/Makefile (renamed from checksendmail/Makefile)0
-rw-r--r--debian/checksendmail/address.resolve (renamed from checksendmail/address.resolve)0
-rw-r--r--debian/checksendmail/checksendmail.8 (renamed from checksendmail/checksendmail.8)0
-rw-r--r--debian/checksendmail/checksendmail.perl (renamed from checksendmail/checksendmail.perl)0
-rw-r--r--debian/control2
-rw-r--r--debian/copyright136
-rw-r--r--debian/db-examples/access66
-rw-r--r--debian/db-examples/relay-domains34
-rw-r--r--debian/debian.m439
-rw-r--r--debian/debproto.mc2
-rw-r--r--debian/dirs15
-rw-r--r--debian/ip-up.d5
-rw-r--r--debian/nodns.m42
-rw-r--r--debian/notes2
-rw-r--r--debian/orbs.m45
-rw-r--r--debian/orbs.patch.README112
-rw-r--r--debian/orca.m44
-rw-r--r--debian/part11755
-rw-r--r--debian/part21467
-rw-r--r--debian/patch.collect25
-rw-r--r--debian/patch.orbs-orca42
-rw-r--r--debian/postinst.debhelper72
-rw-r--r--debian/postrm.debhelper45
-rw-r--r--debian/rbl.m414
-rw-r--r--debian/rblspam.m466
-rwxr-xr-xdebian/rules379
-rw-r--r--debian/runq5
-rw-r--r--debian/sendmail-8.8.5-tcpwrap82
-rw-r--r--debian/sendmail-8.8.8-ismx-4161
-rw-r--r--debian/sendmail.README.Debian32
-rw-r--r--debian/sendmail.TODO29
-rw-r--r--debian/sendmail.conffiles (renamed from debian/conffiles)0
-rw-r--r--debian/sendmail.dirs17
-rw-r--r--debian/sendmail.docs5
-rw-r--r--debian/sendmail.examples3
-rw-r--r--debian/sendmail.init (renamed from debian/init.d)6
-rw-r--r--debian/sendmail.postinst (renamed from debian/postinst)48
-rw-r--r--debian/sendmail.postrm (renamed from debian/postrm)8
-rw-r--r--debian/sendmail.preinst (renamed from debian/preinst)0
-rw-r--r--debian/sendmail.prerm (renamed from debian/prerm)2
-rw-r--r--debian/sendmail.suid1
-rw-r--r--debian/sendmail_FAQ182
-rw-r--r--debian/sendmailconfig128
-rw-r--r--debian/sensible-mda.c25
-rw-r--r--debian/site.config.m440
-rw-r--r--debian/socks_wrapper31
-rw-r--r--mmuegel/README92
-rw-r--r--mmuegel/libs/date.pl324
-rw-r--r--mmuegel/libs/elapsed.pl123
-rw-r--r--mmuegel/libs/mail.pl140
-rw-r--r--mmuegel/libs/mqueue.pl215
-rw-r--r--mmuegel/libs/newgetopts.pl213
-rw-r--r--mmuegel/libs/strings1.pl147
-rw-r--r--mmuegel/libs/timespec.pl60
-rw-r--r--mmuegel/man/cqueue.1166
-rw-r--r--mmuegel/man/postclip.159
-rw-r--r--mmuegel/src/cqueue242
-rw-r--r--mmuegel/src/postclip74
-rw-r--r--src/collect.c.orig761
-rw-r--r--src/collect.sav761
-rw-r--r--src/conf.c3
-rw-r--r--src/conf.h2
-rw-r--r--src/domain.c46
-rw-r--r--src/main.c12
-rw-r--r--src/readcf.c8
-rw-r--r--src/sendmail.89
-rw-r--r--src/sendmail.h3
76 files changed, 1449 insertions, 8558 deletions
diff --git a/cf/m4/proto.m4 b/cf/m4/proto.m4
index 863b42c..2d7eb1d 100644
--- a/cf/m4/proto.m4
+++ b/cf/m4/proto.m4
@@ -1111,11 +1111,28 @@ R<$+> $* $#error $@ 5.7.1 $: $1', `dnl')
ifdef(`_RBL_', `dnl
# DNS based IP address spam lists
R$* $: $&{client_addr}
-R$-.$-.$-.$- $: $(host $4.$3.$2.$1._RBL_. $: OK $)
-ROK $@ OK
-R$+ $#error $@ 5.7.1 $: "Mail from " $&{client_addr} " refused by blackhole site _RBL_"',
+R$-.$-.$-.$- $: <?> $(host $4.$3.$2.$1._RBL_. $: OK $)
+R<?>OK $: OKSOFAR
+R<?>$+ $#error $@ 5.7.1 $: "Mail from " $&{client_addr} " refused by blackhole site _RBL_"',
`dnl')
+ifdef(`_ORBS_', `dnl
+# ORBS project checks -- http://www.dorkslayers.com/orbs/
+R$* $: $&{client_addr}
+R$-.$-.$-.$- $: <?> $(host $4.$3.$2.$1._ORBS_. $: OK $)
+R<?>OK $: OKSOFAR
+R<?>$+ $#error $@ 5.7.1 $: "Mail from " $&{client_addr} " refused; see http://www.orbs.org/"',
+`dnl')
+
+ifdef(`_ORCA_', `dnl
+# ORCA project checks -- http://www.orca.bc.ca/dul/
+R$* $: $&{client_addr}
+R$-.$-.$-.$- $: <?> $(host $4.$3.$2.$1._ORCA_. $: OK $)
+R<?>OK $: OKSOFAR
+R<?>$+ $#error $@ 5.7.1 $: "Mail from " $&{client_addr} " refused; see http://www.orca.bc.ca/dul/"',
+`dnl')
+
+
######################################################################
### check_mail -- check SMTP ``MAIL FROM:'' command argument
######################################################################
diff --git a/contrib/passwd-to-alias.pl b/contrib/passwd-to-alias.pl
index b571927..05a51b9 100755
--- a/contrib/passwd-to-alias.pl
+++ b/contrib/passwd-to-alias.pl
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+#!/bin/perl
#
# Convert GECOS information in password files to alias syntax.
diff --git a/debian/README.Debian b/debian/README.Debian
deleted file mode 100644
index 6bbc72c..0000000
--- a/debian/README.Debian
+++ /dev/null
@@ -1,67 +0,0 @@
-
-This Debian package includes an automatic configuration utility
-`sendmailconfig' which can be run at any time to modify the current sendmail
-configuration.
-
-Most mail-related configuration files are kept in the /etc/mail directory.
-
-Specialized configurations can be accomplished by editing the file
-/etc/mail/sendmail.mc by hand and then running `sendmailconfig' to generate
-and use the appropriate corresponding sendmail.cf file. Such configurations
-can make use of the m4 configuration macros kept in the /usr/lib/sendmail.cf
-directory. See also the other documentation in this directory.
-
-Finally, the file /etc/aliases holds a text representation of the current mail
-aliases. See the aliases(5) man page for more information. If you edit this
-file, be sure to run `newaliases' to update the corresponding binary database.
-
-The Debian sendmail package includes Miquel's patch:
-
-
- PREVENT UNAUTHORIZED USE OF YOUR HOSTS AS SMTP RELAY
-
- Miquel van Smoorenburg <miquels@cistron.nl> 23-Aug-1997
-
-The patch at the end of this file adds a new option to sendmail,
-`W' or `TcpWrappers'. This makes it possible for precompiled distributions
-to ship binaries compiled with -DTCPWRAPPERS without any unexpected
-side-effects, since the option is off by default.
-
-However that's not the main reason for this patch. The new code also
-adds a new map type to sendmail-8.8.7, called "ismx". That maps checks if
-we (all names in class 'w') are an MX for a certain domain. If so, the
-input hostname is replaced by our hostname, or TEMPFAIL if the DNS
-lookup failed.
-
-This can be used together with the "check_rcpt" rule to deny relaying for
-domains for which we are officially not an MX, without listing all domains
-in a configuration file. This prevents that your host is being used as
-a spam relay. However your host will still relay for hosts that it is
-officially an MX for, without any extra administration.
-
-Ofcourse you can put a list of IP numbers/networks in the file "LocalIP"
-to list hosts that may use your host as relay or smarthost. This is
-useful for a machine that is used internally as SMTP relay, for e.g.
-Eudora or Pegasus mail clients.
-
-The sendmail rules are: (LOCAL_* included for m4 file)
-
-
-LOCAL_CONFIG
-Kismx ismx
-F{LocalIP} /etc/mail/LocalIP
-
-LOCAL_RULESETS
-Scheck_rcpt
-# first: get client addr
-R$+ $: $(dequote "" $&{client_addr} $) $| $1
-R0 $| $* $@ ok no client addr: directly invoked
-R$={LocalIP}$* $| $* $@ ok from here
-# See if we are MX for this host
-R$*<$+@$+>$* $: $1 < $2 @ $(ismx $3 $: NOMX $) > $4
-R$*<$+@NOMX>$* $#error $@ 5.7.1 $: 571 I don't relay for that address.
-R$*<$+@TEMPFAIL>$* $#error $@ 4.5.1 $: "451 Cannot resolve. Retry later."
-
-
-Note that if the MX lookup fails, a temporary rather than a fatal error
-code is returned so that the message will not get lost.
diff --git a/debian/aliases b/debian/aliases
index fcfa35f..8e99427 100644
--- a/debian/aliases
+++ b/debian/aliases
@@ -6,6 +6,10 @@
# Required aliases
postmaster: root
-MAILER-DAEMON: root
+MAILER-DAEMON: postmaster
+
+# Common aliases
+abuse: postmaster
+spam: postmaster
# Other aliases
diff --git a/debian/changelog b/debian/changelog
index 4d9bfce..a0427a9 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,24 +1,348 @@
-sendmail (8.8.8-20) frozen; urgency=high, closes=23774
+sendmail (8.9.3-3slink1) stable; urgency=high
- * Patch collect.c to prevent segfaults in mime8->mime7 (#23774)
+ * Non-maintainer upload by security team
+ * Patch to only allow root and trusted users update the aliases database
+
+ -- Wichert Akkerman <wakkerma@debian.org> Tue, 7 Dec 1999 02:32:22 +0100
+
+sendmail (8.9.3-3) stable unstable; urgency=low, closes=35357
+
+ * group writable home, .forward (closes: bug#35357)
+
+ -- Richard A Nelson (Rick) <cowboy@debian.org> Sun, 18 Apr 1999 21:00:00 -0500
+
+sendmail (8.9.3-2) unstable; urgency=low, closes=33656 33602 33405
+
+ * sendmail.postrm not doing suidunregister (closes: bug#33656)
+ Well, actually it tried... it was just in the wrong spot
+
+ * /etc/init.d/sendmail runs even after sendmail removed (closes: bug#33602)
+ Since policy calls for all MTAs to supply /usr/sbin/sendmail, and
+ /etc/mail/sendmail.cf was only deleted upon purge, I'm following
+ the suggestion of checking for /usr/doc/sendmail
+
+ * add purgestat to /usr/doc/sendmail/examples/ip-up.d (closes: bug#33405)
+ This will allow all mail to be delivered - this is only an example
+ file, however, so you'll have to edit you're /etc/ppp/ip-up.d/sendmail
+ file yourself
+
+ -- Richard A Nelson (Rick) <cowboy@debian.org> Mon, 22 Feb 1999 13:14:21 -0500
+
+sendmail (8.9.3-1) frozen unstable; urgency=high, closes=33152 32872
+
+ * Refit Debian changes
+ -- debian/site.config.m4 -- new defines for DOS fix
+ -- debian/debian.m4 -- new defines for DOS fix, bump version
+ -- debian/sendmail.postinst -- bump version to coerce sendmailconfig run
+
+ * New upstream version - bugfix only (closes: bug#33152)
+ -- New version of DOS patch
+ -- preserve order of MIME headers, correcting PGP signature problems
+
+ * FHS & Debian policy 5.5: move /bin/rmail to /sbin/rmail (closes: bug#32872)
+ sigh... This time, create a symlink so both exist
+ -- debian/rules
+
+ -- Richard A Nelson (Rick) <cowboy@debian.org> Wed, 10 Feb 1999 13:14:21 -0500
+
+sendmail (8.9.2-4) unstable; urgency=low
+
+ * debian/site.config.m4
+ -- link with -ldb2 (sigh) why did glibc let me get away with
+ this obvious error? glibc-2.1 doesn't...
+
+ -- Richard A Nelson (Rick) <cowboy@debian.org> Mon, 25 Jan 1999 15:00:00 -0500
+
+sendmail (8.9.2-3) frozen unstable; urgency=high
+
+ * Yet another DOS attack from BugTraq -- patch from sendmail.org
+ -- debian/site.config.m4 --
+ -- debian/debian.m4 --
+ -- src/conf.h --
+ -- src/collect.c --
+ -- src/sendmail.h --
+ -- src/readcf.c --
+ -- src/conf.c --
+ -- cf/m4/proto.m4 --
+
+ * Correct orca (ORBS) address to relays.orbs.org
+ -- debian/orbs.m4 -- relays.orbs.org
+ -- cf/m4/proto.m4 -- http://www.orbs.org
+
+ -- Richard A Nelson (Rick) <cowboy@debian.org> Thu, 21 Jan 1999 15:00:00 -0500
+
+sendmail (8.9.2-2) frozen unstable; urgency=high
+
+ * Re upload to make both frozen and unstable.
+ The DOS update and nullclient (open relay) problems are severe
+ enough that I, and others, think this should make frozen.
+
+ -- Richard A Nelson (Rick) <cowboy@debian.org> Wed, 20 Jan 1999 14:00:00 -0500
+
+sendmail (8.9.2-1) unstable; urgency=high, closes=30292
+
+ * New upstream source, bug fixes and a DOS fix
+ -- syslog filling/DOS (#30292)
+ -- libdb2 (Berkeley DB 2.6.4 API change)
+ -- upstream inclusion of proto.m4 patches already in Debian
+ -- upstream fixes for FHS issue wrt /etc/mail
+
+ * Update debproto.m4 for 8.9.2
+
+ * Drop Debian support of nullclient - it turns one into an unchecked relay!
+ current nullclients are converted to smarthosts with no loss of function-
+ ality.
+ -- sendmailconfig
+
+ * See changelog for the unreleased 8.9.1-16 changes contained herein
+
+ -- Richard A Nelson (Rick) <cowboy@debian.org> Tue, 05 Jan 1999 12:00:00 -0500
+sendmail (8.9.1-16) unstable; urgency=low, closes=27355 28410 28931 29420 30447
+
+ * Correct HACK(nodns) (#30447)
+
+ * Compile with new libc6 to remove versioned depends (#28931)
+
+ * add feature(orca): Dial User List
+ at the request of Paul Haggart <ph@bsfh.org>
+
+ * Correct README.Debian reference (#29613)
+ /usr/lib/sendmail.cf -> /usr/share/sendmail.cf
+
+ * Correct include library path for libdb2
+
+ * Update debproto.m4 for 8.9.1a, add proper diversion tags to
+ sendmailconfig
+
+ * Add MapInUnsafeDirPath to DontBlameSendmail (#27355)
+ so access.db may be in group writable directory
+
+ * FHS: Move FEATURE(xxx) databases from /etc/ to /etc/mail/: (#29420)
+ bitdomain.m4, domaintable.m4, genericstable.m4, mailertable.m4,
+ uucpdomain.m4, virtusertable.m4
+ -- IMPORTANT --
+ sendmailconfig can't automagically move all this for you, you'll
+ have to move the datasets and any update script by hand
+
+ * make the postinst actually wait for enter (#28410)
+
+ -- Richard A Nelson (Rick) <cowboy@debian.org> Mon, 30 Nov 1998 12:00:00 -0500
+
+sendmail (8.9.1-15) unstable; urgency=high, closes=28410
+
+ * The change to libdb2 requires that *all* sendmail databases be
+ rebuilt before sendmail restarts. A warning is now issued to
+ inform the user of this change. (#28410)
+
+ -- Richard A Nelson (Rick) <cowboy@debian.org> Fri, 23 Oct 1998 12:00:00 -0500
+
+sendmail (8.9.1-14) unstable; urgency=low, closes=28279
- -- Richard Nelson <cowboy@debian.org> Tue, 23 Jun 1998 10:00:00 -0500
+ * sendmail: adds multiple Content-Transfer-Encoding headers (#28279)
+ patch sent by Miquel van Smoorenburg <miquels@cistron.nl>
-sendmail (8.8.8-19) frozen; urgency=high, closes=23000
+ -- Richard A Nelson (Rick) <cowboy@debian.org> Tue, 20 Oct 1998 18:00:00 -0500
+
+sendmail (8.9.1-13) unstable; urgency=low
+
+ * add feature(orbs): Open Relay Blocking System
+ at the request of Paul Haggart <ph@bsfh.org>
+
+ * patch for sendmail stalls on 2.0.x kernels
+ from Ben Gertzfield <che@debian.org>
+
+ * Build with libdb2 instead of libdb. This chanage is mentioned as being
+ important in the sendmail documentation, and has been requested by both
+ i386 and sparc folks.
+
+ -- Richard A Nelson (Rick) <cowboy@debian.org> Tue, 20 Oct 1998 12:00:00 -0500
- * sensible-mda now ignores non-suid MDAs (#23000)
+sendmail (8.9.1-12) unstable; urgency=high, closes=28226
- -- Richard Nelson <cowboy@debian.org> Tue, 16 Jun 1998 15:00:00 -0500
+ * erf... remove sendmail.real from sendmail.postinst (#28226)
+ I have to remember to test on the machine w/o socks as well ;-{
+ ('twould be nice to have the source in a neutral CVS repository
+ so I could access from home and work)
-sendmail (8.8.8-18) frozen; urgency=high
- * Repackaged to apply only to frozen, and bump the severity
- because this problem (22747) has sufficient consequences
- to warrant a change in hamm - only the alias file is changed,
- and it will impact primarily *NEW* installations of sendmail.
+ -- Richard A Nelson (Rick) <cowboy@debian.org> Tue, 20 Oct 1998 10:00:00 -0500
+
+sendmail (8.9.1-11) unstable; urgency=high
+
+ * Correct /etc/init.d/sendmail
+ -- Richard A Nelson (Rick) <cowboy@debian.org> Mon, 19 Oct 1998 11:00:00 -0500
+
+sendmail (8.9.1-10) unstable; urgency=high, closes=28034 27106 26855 27218
+
+ * Remove socks wrapper - need a wrapper program, not script as sendmail -F
+ doesn't work going from the socks wrapper, the runsocks wrapper, and then
+ finally to sendmail (#28034 and also #27106)
+
+ * sendmail wrapper requires bash for exec -a (#26855)
+
+ * sendmail wrapper was suid-root (#27218)
+
+ -- Richard A Nelson (Rick) <cowboy@debian.org> Sun, 18 Oct 1998 12:00:00 -0500
+
+sendmail (8.9.1-9) unstable; urgency=high, closes=26803
+
+ * correct the socks wrapper for non-socks case - I pulled
+ the wrong copy (#26803)
+
+ -- Richard A Nelson (Rick) <cowboy@debian.org> Thu, 17 Sep 1998 12:00:00 -0500
+
+sendmail (8.9.1-8) unstable; urgency=high, closes=26801
+
+ * sigh... restore rmail to /usr/bin, even though its presence
+ therein is a very longstanding bug (#26801)
+
+ -- Richard A Nelson (Rick) <cowboy@debian.org> Thu, 17 Sep 1998 11:00:00 -0500
+
+sendmail (8.9.1-7) unstable; urgency=high, closes=26610 26399 26106
+
+ * Remove dontinitgroups (#26610)
+ This change updates debian.m4 so you'll have to run sendmailconfig
+ to actually get the update enabled.
+
+ * update /etc/hosts.allow automagically (#26399)
+ sendmailconfig checks for sendmail in /etc/hosts.allow and
+ adds a leading sendmail: all line if needed
+
+ * sendmailconfig is now tolerant of warnings (#26106)
+
+ * socks5 support - /usr/sbin/sendmail is a wrapper that calls
+ /usr/sbin/sendmail.real if needed when runsocks is executable
+
+ * change checksendmail to a+x
+
+ * more cleanup of debian/rules
+
+ * FHS changes:
+ move /usr/lib/sendmail.cf/ to /usr/share/sendmail.cf/
+ move /usr/lib/sendmail.hf to /usr/share/misc/sendmail.hf
+ update sendmailconf, debian.m4
+
+ -- Richard A Nelson (Rick) <cowboy@debian.org> Mon, 14 Sep 1998 10:00:00 -0500
+
+sendmail (8.9.1-6) unstable; urgency=high
+
+ * Sigh... I will not leave extraneous blanks in a .m4 file
+
+ -- Richard A Nelson (Rick) <cowboy@debian.org> Wed, 14 Aug 1998 10:00:00 -0500
+
+sendmail (8.9.1-5) unstable; urgency=high, closes=25639
+
+ * Apply sendmail 8.9.1a security patch to protect the various MUAs
+ This patch updates debian.m4 so you'll have to run sendmailconfig
+ to actually get the protection enabled.
+
+ * Apply two proto.m4 patches from Claus:
+ - bug wrt overriding the RBL
+ - bug wrt prevention of unauthorized relay attempts
+
+ * Remove -Y from sensible-mda's invocation of procmail (#25639)
+
+ * sensible-mda now checks for /etc/procmailrc/<user> and if so,
+ calls procmail with the -m option... This allows one to deliver mail
+ to pseudo users without having to create entries in /etc/aliases
+
+ -- Richard A Nelson (Rick) <cowboy@debian.org> Thu, 13 Aug 1998 10:00:00 -0500
+
+sendmail (8.9.1-4) unstable; urgency=med, closes=24456
+
+ * Correct sendmail.cf path in /usr/sbin/etrn (#24456)
+ also in /usr/sbin/checkmail
+
+ -- Richard A Nelson (Rick) <cowboy@debian.org> Thu, 06 Aug 1998 17:00:00 -0500
+
+sendmail (8.9.1-3) unstable; urgency=high
+
+ * Cleanup debian/rules a bit...
+
+ * Correct /bin /sbin problem created with the reinstall of rmail
+
+ -- Richard A Nelson (Rick) <cowboy@debian.org> Wed, 08 Jun 1998 12:00:00 -0500
+
+sendmail (8.9.1-2) unstable; urgency=high
+
+ * change /usr/doc/changelog to be RELEASE_NOTES
+
+ * add rmail back...
+
+ -- Richard A Nelson (Rick) <cowboy@debian.org> Mon, 06 Jun 1998 12:00:00 -0500
+
+sendmail (8.9.1-1) unstable; urgency=low, closes=11132
+
+ * new upstream source
+
+ * /etc/init.d/sendmail and runq now support SOCKS5 if updated...
+ I personally run socks via /etc/ld.so.preload so that everything
+ is automagically socksified.
+
+ * Only add MASQUERADE_AS in sendmailconfig if needed (#11132)
+
+ * Correct define(`confMAX_DAEMON_CHILDREN', `30s')dnl (remove the s)
+
+ -- Richard A Nelson (Rick) <cowboy@debian.org> Mon, 06 Jun 1998 10:00:00 -0500
+
+sendmail (8.9.0-5) unstable; urgency=high, closes=23870
+
+ * gack... when I stopped linking /etc/mail/sendmail.cf, I
+ missed the test in /etc/init.d/sendmail. (#23870)
+
+ -- Richard Nelson <cowboy@debian.org> Thu, 25 Jun 1998 10:00:00 -0500
+
+sendmail (8.9.0-4) unstable; urgency=high, closes=23551
+
+ * Patch collect.c to prevent segfaults in mime8->mime7 (#23774)
+
+ * sensible-mda now ignores non-suid MDAs (#23000)
+
+ * postinst checks for curent release (#23551)
+ also - it no longer ln -sf /etc/mail/sendmail.cf /etc/sendmail.cf
+
+ * majordomo wants include files in group writeable dirs
+
+ -- Richard Nelson <cowboy@debian.org> Tue, 16 Jun 1998 15:00:00 -0500
+
+sendmail (8.9.0-3) unstable; urgency=low
+
+ * Fix copyright file
+
+ -- Richard Nelson <cowboy@debian.org> Sat, 13 Jun 1998 23:00:00 -0500
+
+sendmail (8.9.0-2) unstable; urgency=high, closes=23170 23137 23392 23138
+
+ * Point smrsh back to /usr/lib/sm.bin (#23170)
+
+ * Document TCP wrapper support in README.Debian (is this enough?) (#23137)
+ Also document that one should *really* read RELEASE_NOTES
+
+ * don't preformat man pages (#23392)
+
+ * forgot the /usr/lib/sendmail link (pine,uucp) (#23165)
+
+ * include pre 8.9.0 changelog (#23138)
+
-- Richard Nelson <cowboy@debian.org> Sat, 13 Jun 1998 12:00:00 -0500
-sendmail (8.8.8-17) unstable frozen; urgency=low, closes=22747
+sendmail (8.9.0-1) unstable; urgency=low
+
+ * first release of 8.9.0. This drop is very beta in that I've not
+ done anything with the control files other than allowing group
+ writable directories for .forward. I've also not done anything
+ with the rulesets to improve spam control.
+
+ Basically, this release is ONLY for those who want to play with
+ the new version and are experienced enough to modify it themselves.
+
+ I'm thinking of integrating the following into the next release,
+ please let me know what you think:
+ http://www.unix-ag.uni-hannover.de/soft/check_local/
+
+ -- Richard Nelson <cowboy@debian.org> Sat, 23 May 1998 12:00:00 -0500
+
+sendmail (8.8.8-17) frozen; urgency=high, closes=22747
* add MAILER-DAEMON alias (#22747) This is a SEVERE problem
in that absence of this alias may cause mailing loops upon
@@ -287,5 +611,5 @@ sendmail (8.8.6-1) unstable; urgency=low
Local variables:
mode: debian-changelog
-add-log-mailing-address: "johnie@debian.org"
+add-log-mailing-address: "cowboy@debian.org"
End:
diff --git a/debian/check.tar.uue b/debian/check.tar.uue
deleted file mode 100644
index a813f89..0000000
--- a/debian/check.tar.uue
+++ /dev/null
@@ -1,1005 +0,0 @@
-begin 600 check.tar
-M4D5!1$U%+F-H96-K````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````"`@(#8T-"``("`@,C,P(``@(#$W-3`@`"`@("`@(#$R,30R
-M("`V,S0T,S(R,#8W("`@-C$S,0`@````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````!4:&ES(&9I;&4@8V]N=&%I;G,@<V5V97)A;"`B
-M2$%#2R)S(&9O<B!S96YD;6%I;"`X+C@@=&\@<F5J96-T(&4M;6%I;',*9G)O
-M;2!S<&%M;65R<R!A;F0@=&\@<')E=F5N="!T:&4@86)U<V4@;V8@>6]U<B!M
-M86-H:6YE(&%S(&$@;6%I;`IR96QA>2X*"D%N(&5X<&QA;F%T:6]N(&-A;B!B
-M92!F;W5N9"!A=#H*/%523#H@:'1T<#HO+W=W=RYI;F9O<FUA=&EK+G5N:2UK
-M:65L+F1E+R4W16-A+V5M86EL+V-H96-K+FAT;6P@/@H*5&AE($A!0TMS(&%R
-M93H*8VAE8VM?;6%I;"YM-`IC:&5C:U]M86EL,BYM-`IC:&5C:U]M86EL,RYM
-M-`IC:&5C:U]R8W!T+FTT"F-H96-K7W)C<'0S+FTT"F-H96-K7W)C<'0T+FTT
-M"F-H96-K7W)E;&%Y+FTT"F-H96-K7W)E;&%Y,RYM-`IS<&%M9&]M<RYM-`IS
-M<&%M;65R<RYM-`IU<V5?:7`N;30*=7-E7VYA;65S+FTT"G5S95]R96QA>71O
-M+FTT"@IA;F0@87)E('5S960@87,@9F]L;&]W<SH*,6$I(&-H96-K7VUA:6P@
-M*'5S97,@<&QA:6X@9FEL97,@9F]R(&UA=&-H:6YG*3H*2$%#2RAS<&%M;65R
-M<RD*2$%#2RAS<&%M9&]M<RD*0F]T:"!T86ME(&%N(&]P=&EO;F%L(&%R9W5M
-M96YT("AT:&4@9FEL92!T;R!U<V4I+@I4:&4@9&5F875L="!F:6QE;F%M97,@
-M87)E(&QI<W1E9"!B96QO=RX*"DA!0TLH8VAE8VM?;6%I;"D*"C%B*2!C:&5C
-M:U]M86EL,B`H=7-E<R!D871A8F%S97,@9F]R(&UA=&-H:6YG*3H*2$%#2RAC
-M:&5C:U]M86EL,BD*"C)A*2!C:&5C:U]R8W!T-#H*2$%#2RAU<V5?:7`I"DA!
-M0TLH=7-E7VYA;65S*0I(04-+*'5S95]R96QA>71O*0H*2$%#2RAC:&5C:U]R
-M8W!T-"D*"C)B*2!C:&5C:U]R8W!T("AO;&0@=F5R<VEO;BP@=7-E(&-H96-K
-M7W)C<'0T*3H*2$%#2RAU<V5?:7`I"DA!0TLH=7-E7VYA;65S*0I(04-+*'5S
-M95]R96QA>71O*0H*2$%#2RAC:&5C:U]R8W!T*0H*5&AE(&9I<G-T(&]N97,@
-M;6%Y(&AA=F4@82!P87)A;65T97(@=&\@9&5F:6YE('1H92!N86UE(&]F('1H
-M92!F:6QE('1O"F)E('5S960N"@HS*2!C:&5C:U]R96QA>2P@8VAE8VM?<F5L
-M87DS"E1H97-E('=O<FL@;VYL>2!I9B!Y;W4@:&%V92!A('!A=&-H("AS964@
-M86)O=F4@55),*2!O<B`X+C@N-B`H;W(@8F5T=&5R*2X*2$%#2RAC:&5C:U]R
-M96QA>2D*;W(*2$%#2RAC:&5C:U]R96QA>3,I"@H*4V]M92!M;W)E(&5X<&QA
-M;F%T:6]N<SH*"C%A*0I)9B!Y;W4@=V%N="!T;R!U<V4@8VAE8VM?;6%I;"P@
-M9&\@=&AE(&9O;&QO=VEN9SH@4'5T"@I(04-+*'-P86UM97)S*0I(04-+*'-P
-M86UD;VUS*0I(04-+*&-H96-K7VUA:6PI"@II;B!Y;W5R("YM8R!F:6QE+B!0
-M=70@861D<F5S<V5S(&]F('=E;&PM:VYO=VX@<W!A;6UE<G,@*&4M;6%I;"!A
-M9&1R97-S97,L"F1O;6%I;G,I(&EN('1H92!A<'!R;W!R:6%T92!F:6QE<R!;
-M9&5F875L=%TZ"G-P86UM97)S"5LO971C+VUA:6PO4W!A;6UE<ET)"G-P86UD
-M;VUA:6YS"5LO971C+VUA:6PO4W!A;41O;6%I;G-="0H*,6(I"DEF('EO=2!W
-M86YT('1O('5S92!C:&5C:U]M86EL,BP@9&\@=&AE(&9O;&QO=VEN9SH@4'5T
-M"@I(04-+*&-H96-K7VUA:6PR*0I;5&AI<R!H87,@86QS;R!A;B!O<'1I;VYA
-M;"!A<F=U;65N="P@=&AE(&1E9F%U;'0@:7,@9VEV96X@8F5L;W<N70H*:6X@
-M>6]U<B`N;6,@9FEL92X@4'5T(&%D9')E<W-E<R!O9B!W96QL+6MN;W=N('-P
-M86UM97)S("AE+6UA:6P@861D<F5S<V5S+`ID;VUA:6YS*2!I;B!T:&4@87!P
-M<F]P<FEA=&4@9&%T86)A<V4@6V1E9F%U;'1=.@IJ=6YK"5MD8FT@+V5T8R]M
-M86EL+VIU;FM="0H*5&AE(&9O<FUA="!I<SH*:G5N:RYD;VUA:6X@2E5.2PIS
-M<&%M;65R0&%D9')E<W,N9&]M86EN(%-004U-15(*0W)E871E('1H92!D871A
-M8F%S92`H;6%N(&UA:V5M87`I(&EN('1H92!C:&]S96X@9F]R;6%T+@H*4%,Z
-M(%EO=2!C86X@86-T:79A=&4@=&AE(')E=F5R<V4@25`@;&]O:W5P(&%N9"!T
-M:&4*=F%L:61I='D@8VAE8VL@;V8@=&AE($923TT@861D<F5S<R!B>0ID969I
-M;F4H8%])4%],3T]+55!?)RPQ*61N;`ID969I;F4H8%]$3E-604Q)1%\G+#$I
-M9&YL"G)E<W!E8W1I=F5L>2X*"C%C*0I4:&ES(&ES(&$@=F%R:6%N="!O9B!C
-M:&5C:U]M86EL,BP@=VAE<F4@=&AE(%)(4R!O9B!T:&4@;6%P"FES('5S960@
-M=&\@<W!E8VEF>2!A;B!E<G)O<B!C;V1E("AW:&EC:"!I<R!O;FQY('5S960@
-M:6X@=&AE"G1E>'0I(&%N9"!A;B!E<G)O<B!T97AT+@I)9B!Y;W4@=V%N="!T
-M;R!U<V4@8VAE8VM?;6%I;#,L(&1O('1H92!F;VQL;W=I;F<Z(%!U=`H*2$%#
-M2RAC:&5C:U]M86EL,RD*6U1H:7,@:&%S(&%L<V\@86X@;W!T:6]N86P@87)G
-M=6UE;G0L('1H92!D969A=6QT(&ES(&=I=F5N(&)E;&]W+ET*"FEN('EO=7(@
-M+FUC(&9I;&4N(%!U="!A9&1R97-S97,@;V8@=V5L;"UK;F]W;B!S<&%M;65R
-M<R`H92UM86EL(&%D9')E<W-E<RP*9&]M86EN<RD@:6X@=&AE(&%P<')O<')I
-M871E(&1A=&%B87-E(%MD969A=6QT73H*:G5N:PE;9&)M("UA0$I53DL@+V5T
-M8R]M86EL+VIU;FM="0HH:68@>6]U('5S92!A;F]T:&5R(&1A=&%B87-E(&9O
-M<FUA="!O<B!A;F]T:&5R(&9I;&4L(&UA:V4@<W5R92!Y;W4*<W!E8VEF>2!T
-M:&4@;W!T:6]N("UA0$I53DL@(2D*"E1H92!F;W)M870@:7,Z"FIU;FLN9&]M
-M86EN(")%<G)O<BU#;V1E($5R<F]R+51E>'0B"G-P86UM97)`861D<F5S<RYD
-M;VUA:6X@(D5R<F]R+4-O9&4@17)R;W(M5&5X="(*0W)E871E('1H92!D871A
-M8F%S92`H;6%N(&UA:V5M87`I(&EN('1H92!C:&]S96X@9F]R;6%T+@H*17AA
-M;7!L93H*8WEB97)P<F]M;RYC;VT@(C4W,2!3;W)R>2P@4W!A;69O<F0L(&YO
-M(&4M;6%I;"!F<F]M('EO=7(@<&QA8V4N(@IH;VYE>4!S=V5E=&EE<RYC;VT@
-M(C4W,2!(;VYE>2P@>6]U)W)E(&$@<W!A;6UE<BP@9V\@87=A>2XB"@I04SH@
-M66]U(&-A;B!A8W1I=F%T92!T:&4@<F5V97)S92!)4"!L;V]K=7`@86YD('1H
-M90IV86QI9&ET>2!C:&5C:R!O9B!T:&4@1E)/32!A9&1R97-S(&)Y"F1E9FEN
-M92A@7TE07TQ/3TM54%\G+#$I9&YL"F1E9FEN92A@7T1.4U9!3$E$7R<L,2ED
-M;FP*<F5S<&5C=&EV96QY+@H*,F$I"DEF('EO=2!W86YT('1O('5S92!C:&5C
-M:U]R8W!T+"!D;R!T:&4@9F]L;&]W:6YG.B!$96-I9&4@=VAE=&AE<B!Y;W4*
-M=V%N('1O('5S92!T:&4@8VAE8VL@9F]R(&QO8V%L(&UA8VAI;F5S(&)Y($E0
-M(&YU;6)E<B`H=7-E7VEP*2!O<B!B>0IN86UE("AU<V5?;F%M97,I+B!.97AT
-M+"!D96-I9&4@=VAE=&AE<B!Y;W4@=V%N="!A;'-O(&%L;&]W(')E;&%Y('1O
-M"G-E=F5R86P@;6%C:&EN97,@:6X@861D:71I;VX@=&\@=&AO<V4@>6]U(&%C
-M8V5P="!A<R!L;V-A;"`H8VQA<W,@=RDN"D1E<&5N9&EN9R!O;B!Y;W5R('-E
-M;&5C=&EO;BP@<'5T('-O;64@;V8@=&AE(&9I<G-T('1H<F5E($A!0TMS(&EN
-M=&\*>6]U<B`N;6,@9FEL92P@86YD(&%L=V%Y<R!U<V4@=&AE(&QA<W0@;VYE
-M+@I(04-+*'5S95]I<"D*2$%#2RAU<V5?;F%M97,I"DA!0TLH=7-E7W)E;&%Y
-M=&\I"D%L;"!T86ME(&%N(&]P=&EO;F%L(&%R9W5M96YT("AT:&4@9FEL92!T
-M;R!U<V4I+@I4:&4@9&5F875L="!F:6QE;F%M97,@87)E(&QI<W1E9"!B96QO
-M=RX*"DA!0TLH8VAE8VM?<F-P=#0I"@I0=70@=&AE(&%P<')O<')I871E('9A
-M;'5E<R!I;B!T:&4@9FEL97,Z"G5S95]I<`D)6R]E=&,O;6%I;"],;V-A;$E0
-M70D*=7-E7VYA;65S"5LO971C+VUA:6PO3&]C86Q.86UE<UT)"G5S95]R96QA
-M>71O"5LO971C+VUA:6PO4F5L87E4;UT)"@HQ.3DW+3`S+3$V.B!C:&5C:U]R
-M8W!T-"!C86X@;F]W(&UA:V4@=7-E(&]F('5S95]I<"!A;F0@=7-E7VYA;65S
-M+@I)="!R97!L86-E<R!C:&5C:U]R8W!T,RP@=VAI8V@@:7,@<W1I;&P@879A
-M:6QA8FQE(&EF('1H97)E(&ES"F$@<')O8FQE;2!W:71H('1H92!N97<@=F5R
-M<VEO;BX*"C-A*0I)9B!Y;W4@=V%N="!T;R!U<V4@8VAE8VM?<F5L87DL(&1O
-M('1H92!F;VQL;W=I;F<Z(%!U=`H*2$%#2RAC:&5C:U]R96QA>2D*6U1H:7,@
-M:&%S(&%L<V\@86X@;W!T:6]N86P@87)G=6UE;G0L('1H92!D969A=6QT(&ES
-M(&=I=F5N(&)E;&]W+ET*"FEN('EO=7(@+FUC(&9I;&4N(%!U="!T:&4@25`@
-M;G5M8F5R<R!O9B!W96QL+6MN;W=N('-P86UM97)S(`II;B!T:&4@87!P<F]P
-M<FEA=&4@9&%T86)A<V4@6V1E9F%U;'1=.@IJ=6YK"5MD8FT@+V5T8R]M86EL
-M+VIU;FM="0H*5&AE(&9O<FUA="!I<SH*1"Y8+EDN6B!)4`I#+E@N62!)4`I"
-M+E@@25`*02!)4`HH9G5L;"!A9&1R97-S97,L(&-L87-S($,L($(L(&]R($$@
-M;F5T<RD*0W)E871E('1H92!D871A8F%S92`H;6%N(&UA:V5M87`I(&EN('1H
-M92!C:&]S96X@9F]R;6%T+@H*,V(I"DEF('EO=2!W86YT('1O('5S92!C:&5C
-M:U]R96QA>3,L(&1O('1H92!F;VQL;W=I;F<Z(%!U=`H*2$%#2RAC:&5C:U]R
-M96QA>3,I"EM4:&ES(&AA<R!A;'-O(&%N(&]P=&EO;F%L(&%R9W5M96YT+"!T
-M:&4@9&5F875L="!I<R!G:79E;B!B96QO=RY="@II;B!Y;W5R("YM8R!F:6QE
-M+B!0=70@=&AE($E0(&YU;6)E<G,@;V8@=V5L;"UK;F]W;B!S<&%M;65R<R`*
-M:6X@=&AE(&%P<')O<')I871E(&1A=&%B87-E(%MD969A=6QT73H*:G5N:PE;
-M9&)M("UA0$I53DL@+V5T8R]M86EL+VIU;FM="0HH:68@>6]U('5S92!A;F]T
-M:&5R(&1A=&%B87-E(&9O<FUA="!O<B!A;F]T:&5R(&9I;&4L(&UA:V4@<W5R
-M92!Y;W4*<W!E8VEF>2!T:&4@;W!T:6]N("UA0$I53DL@(2D*"E1H92!F;W)M
-M870@:7,Z"D0N6"Y9+EH@(D5R<F]R('1E>'0B"D,N6"Y9(")%<G)O<B!T97AT
-M(@I"+E@@(D5R<F]R('1E>'0B"D$@(D5R<F]R('1E>'0B"BAF=6QL(&%D9')E
-M<W-E<RP@8VQA<W,@0RP@0BP@;W(@02!N971S*0I#<F5A=&4@=&AE(&1A=&%B
-M87-E("AM86X@;6%K96UA<"D@:6X@=&AE(&-H;W-E;B!F;W)M870N"@I4:&ES
-M(&ES('1H92!S86UE(&1A=&%B87-E(&%S('5S960@9F]R(&-H96-K7VUA:6PS
-M+`IJ=7-T('=I=&@@=&AE(&%D9&ET:6]N(&]F($E0(&YU;6)E<G,N"@I#;VYC
-M;'5S:6]N.@H*36%K92!S=7)E('EO=2!U;F1E<G-T86YD('=H870@>6]U(&1O
-M(&%N9"!Y;W4@=&5S="!T:&ES('-T=69F"F)E9F]R92!Y;W4@=7-E(&ET(&]N
-M(&$@<')O9'5C=&EO;B!M86-H:6YE(0I)(&1O;B=T(&=U87)A;G1E92!F;W(@
-M86YY=&AI;F<A"DEF('EO=2!H879E(&%N>2!S=6=G97-T:6]N<RP@8V]M;65N
-M=',L(&5N:&%N8V5M96YT<RP*<&QE87-E(&QE="!M92!K;F]W+@H*0VQA=7,@
-M07-S;6%N;@D\8V%`:6YF;W)M871I:RYU;FDM:VEE;"YD93X*3&%S="!U<&1A
-M=&4Z(#$Y.3<M,#8M,#$*('=E;&PM:VYO=VX@<W!A;6UE<G,@*&4M;6%I;"!A
-M9&1R97-S97,L"F1O;6%I;G,I(&EN('1H92!A<'!R;W!R:6%T92!D871A8F%S
-M92!;9&5F875L=%TZ"FIU;FL)6V1B;2`O971C+VUA:6PO:G5N:UT)"@I4:&4@
-M9F]R;6%T(&ES.@IJ=6YK+F1O;6%I;B!*54Y+"G-P86UM97)`861D<F5S<RYD
-M;VUA:6X@4U!!34U%4@I#<F5A=&4@=&AE(&1A=&%B87-E("AM86X@;6%K96UA
-M<"D@:6X@=&AE(&-H;W-E;B!F;W)M870N"@I04SH@66]U(&-A;B!A8W1I=F%T
-M92!T:&4@<F5V97)S92!)4"!L;V]K=7`@86YD('1H90IV86QI9&ET>2!C:&5C
-M:R!O9B!T:&4@1E)/32!A9&1R97-S(&)Y"F1E9FEN92A@7TE07TQ/3TM54%\G
-M+#$I9&YL"F1E9FEN92A@7T1.4U9!3$E$7R<L,2ED;FP*<F5S<&5C=&EV96QY
-M+@H*,6,I"E1H:7,@:7,@82!V87)I86YT:&%C:R]C:&5C:U]M86EL+FTT````
-M````````````````````````````````````````````````````````````
-M`````````````````````````````````````````````"`@(#8T-"``("`@
-M,C,P(``@(#$W-3`@`"`@("`@("`T,C0R("`V,S0U,C8V-S8S("`@-S0R,0`@
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````````````````````````````````````!D:79E
-M<G0H+3$I"B,*(R!#;W!Y<FEG:'0@*&,I(#$Y.38@0VQA=7,@07-S;6%N;B`\
-M8V%`:6YF;W)M871I:RYU;FDM:VEE;"YD93X*(PHC($EN('-H;W)T.B!Y;W4@
-M8V%N(&1O('=H871E=F5R('EO=2!W86YT('=I=&@@=&AI<RP@8G5T(&1O;B=T
-M(&)L86UE(&UE(0HC"B,@5$A)4R!33T945T%212!)4R!04D]6241%1"!"62!4
-M2$4@05542$]2($%.1"!#3TY44DE"551/4E,@8&!!4R!)4R<G($%.1`HC($%.
-M62!%6%!215-3($]2($E-4$Q)140@5T%24D%.5$E%4RP@24Y#3%5$24Y'+"!"
-M550@3D]4($Q)34E4140@5$\L(%1(10HC($E-4$Q)140@5T%24D%.5$E%4R!/
-M1B!-15)#2$%.5$%"24Q)5%D@04Y$($9)5$Y%4U,@1D]2($$@4$%25$E#54Q!
-M4B!055)03U-%"B,@05)%($1)4T-,04E-140N("!)3B!.3R!%5D5.5"!32$%,
-M3"!42$4@05542$]2($]2($-/3E1224)55$]24R!"12!,24%"3$4*(R!&3U(@
-M04Y9($1)4D5#5"P@24Y$25)%0U0L($E.0TE$14Y404PL(%-014-)04PL($58
-M14U03$%262P@3U(@0T].4T51545.5$E!3`HC($1!34%'15,@*$E.0TQ51$E.
-M1RP@0E54($Y/5"!,24U)5$5$(%1/+"!04D]#55)%345.5"!/1B!354)35$E4
-M551%($=/3T13"B,@3U(@4T525DE#15,[($Q/4U,@3T8@55-%+"!$051!+"!/
-M4B!04D]&2513.R!/4B!"55-)3D534R!)3E1%4E)54%1)3TXI"B,@2$]7159%
-M4B!#0553140@04Y$($].($%.62!42$5/4ED@3T8@3$E!0DE,2519+"!72$54
-M2$52($E.($-/3E1204-4+"!35%))0U0*(R!,24%"24Q)5%DL($]2(%1/4E0@
-M*$E.0TQ51$E.1R!.14=,24=%3D-%($]2($]42$525TE312D@05))4TE.1R!)
-M3B!!3ED@5T%9"B,@3U54($]&(%1(12!54T4@3T8@5$A)4R!33T945T%212P@
-M159%3B!)1B!!1%9)4T5$($]&(%1(12!03U-324))3$E462!/1@HC(%-50T@@
-M1$%-04=%+@HC"F1I=F5R="@P*0I615)324].240H8$`H(REC:&5C:U]M86EL
-M+FTT"3$N,2`H0VQA=7,@07-S;6%N;BD@,3DY-RTP,RTP.2<I"@ID:79E<G0H
-M,BD*3$]#04Q?4E5,15-%5%,*4V-H96-K7VUA:6P*9&5F:6YE*&!#3TU-14Y4
-M)RP@:69D968H8%]34$%-34524U\G+"!@)RP@8",G*2ED;FP*(R!N;R!M86EL
-M<R!F<F]M('-P86UM97)S("AU<V5R0&1O;2YA:6XI"D-/34U%3E1@)U(\)#U[
-M4W!A;6UE<GT^"20C97)R;W(@)$`@-2XW+C$@)#H@(C4W,2!792!D;VXG="!A
-M8V-E<'0@:G5N:R!M86EL+B(@"6=O(&%W87D*0T]-345.5&`G4CPD/7M3<&%M
-M;65R?2X^"20C97)R;W(@)$`@-2XW+C$@)#H@(C4W,2!792!D;VXG="!A8V-E
-M<'0@:G5N:R!M86EL+B(@"6=O(&%W87D*0T]-345.5&`G4B0]>U-P86UM97)]
-M"20C97)R;W(@)$`@-2XW+C$@)#H@(C4W,2!792!D;VXG="!A8V-E<'0@:G5N
-M:R!M86EL+B(@"6=O(&%W87D*0T]-345.5&`G4B0]>U-P86UM97)]+@DD(V5R
-M<F]R("1`(#4N-RXQ("0Z("(U-S$@5V4@9&]N)W0@86-C97!T(&IU;FL@;6%I
-M;"XB(`EG;R!A=V%Y"G5N9&5F:6YE*&!#3TU-14Y4)RED;FP*4B0J"0DD.B`D
-M/C,@)#$)"0D)"0EC86YO;FEF>0I2)"T)"21`(&]K"0D)"0D)"6QO8V%L(&AO
-M<W0*9&5F:6YE*&!#3TU-14Y4)RP@:69D968H8%]34$%-1$]-4U\G+"!@)RP@
-M8",G*2ED;FP*(R!N;R!S<&%M(&1O;6%I;G,*0T]-345.5&`G4B0J/$`D*B0]
-M>U-P86U$;VUA:6YS?2X^)"H))"-E<G)O<B`D0"`U+C<N,2`D.B`B-3<Q(%1H
-M:7,@9&]M86EN(&ES(&)A;FYE9"XB(`EG;R!A=V%Y"D-/34U%3E1@)U(D*CQ`
-M)"HD/7M3<&%M1&]M86EN<WT^)"H))"-E<G)O<B`D0"`U+C<N,2`D.B`B-3<Q
-M(%1H:7,@9&]M86EN(&ES(&)A;FYE9"XB(`EG;R!A=V%Y"G5N9&5F:6YE*&!#
-M3TU-14Y4)RED;FP*(R!I9B!Y;W4@96YA8FQE('1H92!L87-T(')U;&4L('EO
-M=2!C86X@9&ES86)L92!T:&ES(&]N92X*(R!H;W-T('=I=&AO=70@82`N(&EN
-M('1H92!&44A.(#\*4B0J/$`D+3XD*@DD(V5R<F]R("1`(#4N,2XX("0Z(#4Q
-M."!I;G9A;&ED(&AO<W0@;F%M92`D,@D);F\@<F5A;"!N86UE"B,@;&]O:W5P
-M($E0(&%D9')E<W,@*')E=F5R<V4@;6%P<&EN9R!A=F%I;&%B;&4_*0HC(%(D
-M*CQ`6R0K73XD*@DD.B`D,2`\($`@)%L@6R`D,B!=("1=(#X@)#,*(R!N;R!$
-M3E,@96YT<GD_('1H:7,@:7,@9&%N9V5R;W5S(0HC(%(D*CQ`)"HD?E`^)"H)
-M)"-E<G)O<B`D0"`T+C$N."`D.B`T,3@@=6YR97-O;'9A8FQE(&AO<W0@;F%M
-M92`D,B0S+"!C:&5C:R!Y;W5R(&-O;F9I9W5R871I;VXN"0ID:79E<G0H,"D*
-M"D]7159%4B!#0553140@04Y$($].($%.62!42$5/4ED@3T8@3$E!0DE,2519
-M+"!72$542$52($E.($-/3E1204-4+"!35%))0U0*(R!,24%"24Q)5%DL($]2
-M(%1/4E0@*$E.0TQ51$E.1R!.14=,24=%3D-%($]2($]42$525TE312D@05))
-M4TE.1R!)3B!!3ED@5T%9"B,@3U54($]&(%1(12!54T4@3T8@5$A)4R!33T94
-M5T%212P@159%3B!)1B!!1%9)4T5$($]&(%1(12!03U-324))3$E462!/1@HC
-M(%-50T@@1$%-04=%+@HC"F1I=F5R="@P*0I615)324].240H8$`H(REC:&5C
-M:U]M86EL+FTT"3$N,2`H0VQA=7,@07-S;6%N;BD@,3DY-RTP,RTP.2<I"@ID
-M:79E<G0H,BD*3$]#04Q?4E5,15-%5%,*4V-H96-K7VUA:6P*:&%C:R]C:&5C
-M:U]M86EL,BYM-```````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`"`@(#8T-"``("`@,C,P(``@(#$W-3`@`"`@("`@("`V,3$S("`V,S8S-#,V
-M,S,S("`@-S0W,@`@````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````````!D:79E<G0H+3$I"B,*(R!#;W!Y<FEG:'0@*&,I(#$Y.38L,3DY
-M-R!#;&%U<R!!<W-M86YN(#QC84!I;F9O<FUA=&EK+G5N:2UK:65L+F1E/@HC
-M"B,@26X@<VAO<G0Z('EO=2!C86X@9&\@=VAA=&5V97(@>6]U('=A;G0@=VET
-M:"!T:&ES+"!B=70@9&]N)W0@8FQA;64@;64A"B,*(R!42$E3(%-/1E1705)%
-M($E3(%!23U9)1$5$($)9(%1(12!!551(3U(@04Y$($-/3E1224)55$]24R!@
-M8$%3($E3)R<@04Y$"B,@04Y9($584%)%4U,@3U(@24U03$E%1"!705)204Y4
-M2453+"!)3D-,541)3D<L($)55"!.3U0@3$E-251%1"!43RP@5$A%"B,@24U0
-M3$E%1"!705)204Y42453($]&($U%4D-(04Y404))3$E462!!3D0@1DE43D53
-M4R!&3U(@02!005)424-53$%2(%!54E!/4T4*(R!!4D4@1$E30TQ!24U%1"X@
-M($E.($Y/($5614Y4(%-(04Q,(%1(12!!551(3U(@3U(@0T].5%))0E543U)3
-M($)%($Q)04),10HC($9/4B!!3ED@1$E214-4+"!)3D1)4D5#5"P@24Y#241%
-M3E1!3"P@4U!%0TE!3"P@15A%35!,05)9+"!/4B!#3TY315%514Y424%,"B,@
-M1$%-04=%4R`H24Y#3%5$24Y'+"!"550@3D]4($Q)34E4140@5$\L(%!23T-5
-M4D5-14Y4($]&(%-50E-425155$4@1T]/1%,*(R!/4B!315)624-%4SL@3$]3
-M4R!/1B!54T4L($1!5$$L($]2(%!23T9)5%,[($]2($)54TE.15-3($E.5$52
-M4E505$E/3BD*(R!(3U=%5D52($-!55-%1"!!3D0@3TX@04Y9(%1(14]262!/
-M1B!,24%"24Q)5%DL(%=(151(15(@24X@0T].5%)!0U0L(%-44DE#5`HC($Q)
-M04))3$E462P@3U(@5$]25"`H24Y#3%5$24Y'($Y%1TQ)1T5.0T4@3U(@3U1(
-M15)725-%*2!!4DE324Y'($E.($%.62!705D*(R!/550@3T8@5$A%(%5312!/
-M1B!42$E3(%-/1E1705)%+"!%5D5.($E&($%$5DE3140@3T8@5$A%(%!/4U-)
-M0DE,2519($]&"B,@4U5#2"!$04U!1T4N"B,*9&EV97)T*#`I"E9%4E-)3TY)
-M1"A@0"@C*6-H96-K7VUA:6PN;30),BXQ("A#;&%U<R!!<W-M86YN*2`Q.3DW
-M+3`S+3,P)RD*4%532$1)5D525"@V*0II9F1E9BA@7TI53DM?1$5&24Y%1%]2
-M14Q!62<L+`HC(&9I;&4@8V]N=&%I;FEN9R!F=6QL(&4M;6%I;"!A9&1R97-S
-M97,@;V8@<W!A;6UE<G,@*&9O<B!C:&5C:U]M86EL*3H*(R!S<&%M;65R0&%D
-M9')E<W,N9&]M86EN(%-004U-15(*(R!O<B!J=6YK(&1O;6%I;G,@*&9O<B!C
-M:&5C:U]M86EL+"!C:&5C:U]R96QA>2DZ"B,@:G5N:RYD;VUA:6X@2E5.2PHC
-M(&]R($E0(&%D9')E<W-E<R`H9F]R(&-H96-K7W)E;&%Y*3H*(R!$+E@N62Y:
-M($E0"B,@0RY8+ED@25`*(R!"+E@@25`*(R!!($E0"DMJ=6YK(&EF96QS92A?
-M05)'7RP@8"<L(&!D8FT@+V5T8R]M86EL+VIU;FLG+"!@7T%21U\G*0ID969I
-M;F4H8%]*54Y+7T1%1DE.141?34%)3"<L,2D**0II9F1E9BA@7T%#0T505%]3
-M3TU%7R<L"DMA8V-E<'0@9&)M("]E=&,O;6%I;"]A8V-E<'0I"E!/4$1)5D52
-M5`H*9&EV97)T*#(I"DQ/0T%,7U)53$531513"B,@8VAE8VL@9F]R(&IU;FL@
-M9&]M86EN+W-P86UM97)S"E-J=6YK"B,@;&]O:W5P(&1O;6%I;B!I;B!D871A
-M8F%S90I2)"H\0"0K/B0J"0DD.B0Q/$`D*&IU;FL@)#(D*3XD,PHC(&5X:7-T
-M<S\@<F5T=7)N"E(D*CQ`2E5.2SXD*@D))$`D,3Q`2E5.2SXD,@HC(&QO;VMU
-M<"!A9&1R97-S(&EN(&1A=&%B87-E"E(D*CQ`)"L^)"H)"20Z)#$\0"0H:G5N
-M:R`D,4`D,B`D.B0R)"D^)#,*(R!E>&ES=',_(')E='5R;@I2)"H\0%-004U-
-M15(^)"H)"21`)#$\0%-004U-15(^)#(*(R!M=B!O;F4@<W5B9&]M86EN(&EN
-M(&9R;VYT+"!T<GD@86=A:6X*4B0J/$`D+2XD+2XD*SXD*@DD.B`D,CQ`/B`D
-M/FIU;FL@)#$\0"0S+B0T/B0U"B,@=6YD;R!D86UA9V4*4B0J/$`^)"H\0"0K
-M/B0J"0DD,CQ`)#$N)#,^)#0*"E-C:&5C:U]M86EL"B,@9&]N)W0@8VAE8VL@
-M=&AE<V4*4CPD*D`D/7<^"21`(&]K"0D)<VAO<G1C=70*(R!I9&5A(&9R;VT@
-M4W1E=F5N(%-C:'5L='H*4CP^"0DD.B`\)&X@0"`D*&1E<75O=&4@(B(@)"9[
-M8VQI96YT7VYA;65]("0I(#X*:69D968H8%]!0T-%4%1?4T]-15\G+`HC(&%C
-M8V5P="!S;VUE('-T=7!I9"!S='5F9@I2/"0J0"0K/@DD.CPD,4`D*&%C8V5P
-M="`D,B`D.B0R)"D^"E(\)"I`3TL^"21`(&]K*0I2)"H)"20Z("0^,R`D,0D)
-M"6-A;F]N:69Y"E(D+0D))$`@;VL)"0D);&]C86P@:&]S=`HC(&YO(&AO<W0@
-M=VET:&]U="!A("X@:6X@=&AE($912$X@/PI2)"H\0"0M/B0J"20C97)R;W(@
-M)$`@-2XQ+C@@)#H@-3$X(&EN=F%L:60@:&]S="!N86UE("0R+"!C:&5C:R!Y
-M;W5R(&-O;F9I9W5R871I;VXN"G5N9&5F:6YE*&!#3TU-14Y4)RED;FP*9&5F
-M:6YE*&!#3TU-14Y4)RP@:69D968H8%])4%],3T]+55!?)RP@8"<L(&`C)RDI
-M9&YL"B,@;&]O:W5P($E0(&%D9')E<W,@*')E=F5R<V4@;6%P<&EN9R!A=F%I
-M;&%B;&4_*0I#3TU-14Y48"=2)"H\0%LD+2XD+2XD+2XD+5T^)"H))#H@)#$@
-M/"!`("1;(%L@)#(N)#,N)#0N)#4@72`D72`^("0V(`IU;F1E9FEN92A@0T]-
-M345.5"<I9&YL"B,@8V]P>2!T:&4@<F5S=6QT(&]F('1H92!L;V]K=7`*4B0J
-M"0DD.B0Q("1\("0Q"B,@;F]W(')E;6]V92!T:&4@9&]T"E(D*B`D?"`D*CQ`
-M)"HN/B0J"20Z("0Q("1\("0R/$`D,SXD-`HC(&%N9"!C:&5C:R!T:&4@9&%T
-M86)A<V4*4B0J("1\("0J/$`D*CXD*@DD.B`D,2`D?"`D/FIU;FL@)#(\0"0S
-M/@I2)"H@)'P@)"H\0"0J2E5.2SXD*@DD(V5R<F]R("1`(#4N-RXQ("0Z("(U
-M-S$@5&AI<R!D;VUA:6X@:7,@8F%N;F5D+"!C;VYT86-T('EO=7(@;&]C86P@
-M861M:6XN(B`)9V\@87=A>0I2)"H@)'P@)"H\0"0J4U!!34U%4CXD*@DD(V5R
-M<F]R("1`(#4N-RXQ("0Z("(U-S$@66]U(&%R92!B86YN960L(&-O;G1A8W0@
-M>6]U<B!L;V-A;"!A9&UI;BXB(`EG;R!A=V%Y"B,@<F5S=&]R92!O<FEG:6YA
-M;"!V86QU92`H869T97(@8V%N;VYI8V%L:7IA=&EO;B!B>2!R=6QE<V5T(#,I
-M"E(D*B`D?"`D*@D))#H@)#$*=6YD969I;F4H8$-/34U%3E0G*61N;`ID969I
-M;F4H8$-/34U%3E0G+"!I9F1E9BA@7T1.4U9!3$E$7R<L(&`G+"!@(R<I*61N
-M;`HC('1H:7,@:7,@9&%N9V5R;W5S(2!N;R!R96%L(&YA;64*0T]-345.5&`G
-M4B0J/$`D*B1^4#XD*@DD(V5R<F]R("1`(#0N,2XX("0Z(#0Q."!U;G)E<V]L
-M=F%B;&4@:&]S="!N86UE("0R)#,L(&-H96-K('EO=7(@<V5T=7`N"F1I=F5R
-M="@P*0I354)35$E4551%($=/3T13"B,@3U(@4T525DE#15,[($Q/4U,@3T8@
-M55-%+"!$051!+"!/4B!04D]&2513.R!/4B!"55-)3D534R!)3E1%4E)54%1)
-M3TXI"B,@2$]7159%4B!#0553140@04Y$($].($%.62!42$5/4ED@3T8@3$E!
-M0DE,2519+"!72$542$52($E.($-/3E1204-4+"!35%))0U0*(R!,24%"24Q)
-M5%DL($]2(%1/4E0@*$E.0TQ51$E.1R!.14=,24=%3D-%($]2($]42$525TE3
-M12D@05))4TE.1R!)3B!!3ED@5T%9"B,@3U54($]&(%1(12!54T4@3T8@5$A)
-M4R!33T945T%212P@159%3B!)1B!!1%9)4T5$($]&(%1(12!03U-324))3$E4
-M62!/1@HC(%-50T@@1$%-04=%+@HC"F1I=F5R="@P*0I615)324].240H8$`H
-M(REC:&5C:U]M86EL+FTT"3(N,2`H0VQA=7,@07-S;6%N;BD@,3DY-RTP,RTS
-M,"<I"E!54TA$259%4E0H-BD*:69D968H8%]*54Y+7T1%1DE.16AA8VLO8VAE
-M8VM?;6%I;#,N;30`````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M```@("`V-#0@`"`@(#(S,"``("`Q-S4P(``@("`@("`@-C0V-2`@-C,V,S0S
-M-S(U,R`@(#<U,#<`(```````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````9&EV97)T*"TQ*0HC"B,@0V]P>7)I9VAT("AC*2`Q.3DV+#$Y
-M.3<@0VQA=7,@07-S;6%N;B`\8V%`:6YF;W)M871I:RYU;FDM:VEE;"YD93X*
-M(PHC($EN('-H;W)T.B!Y;W4@8V%N(&1O('=H871E=F5R('EO=2!W86YT('=I
-M=&@@=&AI<RP@8G5T(&1O;B=T(&)L86UE(&UE(0HC"B,@5$A)4R!33T945T%2
-M12!)4R!04D]6241%1"!"62!42$4@05542$]2($%.1"!#3TY44DE"551/4E,@
-M8&!!4R!)4R<G($%.1`HC($%.62!%6%!215-3($]2($E-4$Q)140@5T%24D%.
-M5$E%4RP@24Y#3%5$24Y'+"!"550@3D]4($Q)34E4140@5$\L(%1(10HC($E-
-M4$Q)140@5T%24D%.5$E%4R!/1B!-15)#2$%.5$%"24Q)5%D@04Y$($9)5$Y%
-M4U,@1D]2($$@4$%25$E#54Q!4B!055)03U-%"B,@05)%($1)4T-,04E-140N
-M("!)3B!.3R!%5D5.5"!32$%,3"!42$4@05542$]2($]2($-/3E1224)55$]2
-M4R!"12!,24%"3$4*(R!&3U(@04Y9($1)4D5#5"P@24Y$25)%0U0L($E.0TE$
-M14Y404PL(%-014-)04PL($5814U03$%262P@3U(@0T].4T51545.5$E!3`HC
-M($1!34%'15,@*$E.0TQ51$E.1RP@0E54($Y/5"!,24U)5$5$(%1/+"!04D]#
-M55)%345.5"!/1B!354)35$E4551%($=/3T13"B,@3U(@4T525DE#15,[($Q/
-M4U,@3T8@55-%+"!$051!+"!/4B!04D]&2513.R!/4B!"55-)3D534R!)3E1%
-M4E)54%1)3TXI"B,@2$]7159%4B!#0553140@04Y$($].($%.62!42$5/4ED@
-M3T8@3$E!0DE,2519+"!72$542$52($E.($-/3E1204-4+"!35%))0U0*(R!,
-M24%"24Q)5%DL($]2(%1/4E0@*$E.0TQ51$E.1R!.14=,24=%3D-%($]2($]4
-M2$525TE312D@05))4TE.1R!)3B!!3ED@5T%9"B,@3U54($]&(%1(12!54T4@
-M3T8@5$A)4R!33T945T%212P@159%3B!)1B!!1%9)4T5$($]&(%1(12!03U-3
-M24))3$E462!/1@HC(%-50T@@1$%-04=%+@HC"F1I=F5R="@P*0I615)324].
-M240H8$`H(REC:&5C:U]M86EL+FTT"3,N,2`H0VQA=7,@07-S;6%N;BD@,3DY
-M-RTP-RTP-B<I"E!54TA$259%4E0H-BD*:69D968H8%]*54Y+7T1%1DE.141?
-M4D5,05DG+"P*(R!F:6QE(&-O;G1A:6YI;F<@9G5L;"!E+6UA:6P@861D<F5S
-M<V5S(&]F('-P86UM97)S("AF;W(@8VAE8VM?;6%I;"DZ"B,@<W!A;6UE<D!A
-M9&1R97-S+F1O;6%I;B`B17)R;W(M0V]D92!%<G)O<BU497AT(@HC(&]R(&IU
-M;FL@9&]M86EN<R`H9F]R(&-H96-K7VUA:6PL(&-H96-K7W)E;&%Y*3H*(R!J
-M=6YK+F1O;6%I;B`@(D5R<F]R+4-O9&4@17)R;W(M5&5X="(*(R!O<B!)4"!A
-M9&1R97-S97,@*&9O<B!C:&5C:U]R96QA>2DZ"B,@1"Y8+EDN6B`B17)R;W(M
-M0V]D92!%<G)O<BU497AT(@HC($,N6"Y9(")%<G)O<BU#;V1E($5R<F]R+51E
-M>'0B"B,@0BY8(")%<G)O<BU#;V1E($5R<F]R+51E>'0B"B,@02`B17)R;W(M
-M0V]D92!%<G)O<BU497AT(@I+:G5N:R!I9F5L<V4H7T%21U\L(&`G+"!@9&)M
-M("UA0$I53DL@+V5T8R]M86EL+VIU;FLG+"!@7T%21U\G*0ID969I;F4H8%]*
-M54Y+7T1%1DE.141?34%)3"<L,2D**0II9F1E9BA@7T%#0T505%]33TU%7R<L
-M"DMA8V-E<'0@9&)M("UO("]E=&,O;6%I;"]A8V-E<'0I"E!/4$1)5D525`H*
-M9&EV97)T*#(I"DQ/0T%,7U)53$531513"B,@8VAE8VL@9F]R(&IU;FL@9&]M
-M86EN+W-P86UM97)S"E-J=6YK"B,@;&]O:W5P(&1O;6%I;B!I;B!D871A8F%S
-M90I2)"H\0"0K/@D))#HD,3Q`)"AJ=6YK("0R)"D^"B,@97AI<W1S/R!R971U
-M<FX*4B0J/$`D*D!*54Y+/@D))$`D,3Q`)#)`2E5.2SX*(R!L;V]K=7`@861D
-M<F5S<R!I;B!D871A8F%S90I2)"H\0"0K/@D))#HD,3Q`)"AJ=6YK("0Q0"0R
-M("0Z)#(D*3X*(R!E>&ES=',_(')E='5R;@I2)"H\0"0J0$I53DL^"0DD0"0Q
-M/$`D,D!*54Y+/@HC(')E;6]V92!O;F4@<W5B9&]M86EN+"!T<GD@86=A:6X*
-M4B0J/$`D+2XD+2XD*SX)"20Z("0^:G5N:R`D,3Q`)#,N)#0^"@I38VAE8VM?
-M;6%I;`HC(&1O;B=T(&-H96-K('1H97-E"E(\)"I`)#UW/@DD0"!O:PD)"7-H
-M;W)T8W5T"B,@:61E82!F<F]M(%-T979E;B!38VAU;'1Z"E(\/@D))#H@/"1N
-M($`@)"AD97%U;W1E("(B("0F>V-L:65N=%]N86UE?2`D*2`^"FEF9&5F*&!?
-M04-#15!47U-/345?)RP*(R!A8V-E<'0@<V]M92!S='5P:60@<W1U9F8*4CPD
-M*D`D*SX))#H\)#%`)"AA8V-E<'0@)#(@)#HD,B0I/@I2/"0J0$]+/@DD0"!O
-M:RD*:69D968H8%]#2$5#2U]&4D]-7R<L"B,@;6%R:R!A9&1R97-S"E(D*@D)
-M)#H\0#XD,0HC(&ES('1H92!S>6YT87@@;VL@*'5S97,@/#X@86YD(&YO(&1O
-M="!A="!T:&4@96YD/RD*4CQ`/CPD*D`D*B1^+CX))#H\)#%`)#(D,SX*(R!M
-M87)K('-T:6QL('1H97)E.B!E<G)O<BXN+@I2/$`^)"H)"20C97)R;W(@)$`@
-M-2XQ+C@@)#H@-3$X(&EL;&5G86P@34%)3"!&4D]-("0Q+`HC(&EF('=E(&1O
-M;B=T('1O('1H92!A8F]V93H@<F5M;W9E(&%T(&QE87-T('1H92!D;W0N+BX*
-M4CPD*D`D*BX^"3PD,21`,CXI"E(D*@D))#H@)#XS("0Q"0D)8V%N;VYI9GD*
-M4B0M"0DD0"!O:PD)"0EL;V-A;"!H;W-T"B,@;F\@:&]S="!W:71H;W5T(&$@
-M+B!I;B!T:&4@1E%(3B`_"E(D*CQ`)"T^)"H))"-E<G)O<B`D0"`U+C$N."`D
-M.B`U,3@@:6YV86QI9"!H;W-T(&YA;64@)#(L(&-H96-K('EO=7(@8V]N9FEG
-M=7)A=&EO;BX*=6YD969I;F4H8$-/34U%3E0G*61N;`ID969I;F4H8$-/34U%
-M3E0G+"!I9F1E9BA@7TE07TQ/3TM54%\G+"!@)RP@8",G*2ED;FP*(R!L;V]K
-M=7`@25`@861D<F5S<R`H<F5V97)S92!M87!P:6YG(&%V86EL86)L93\I"D-/
-M34U%3E1@)U(D*CQ`6R0M+B0M+B0M+B0M73XD*@DD.B`D,2`\($`@)%L@6R`D
-M,BXD,RXD-"XD-2!=("1=(#X@)#8@"B,@8V]P>2!T:&4@<F5S=6QT(&]F('1H
-M92!L;V]K=7`*4B0J"0DD.B0Q("1\("0Q"B,@;F]W(')E;6]V92!T:&4@9&]T
-M"E(D*B`D?"`D*CQ`)"HN/B0J"20Z("0Q("1\("0R/$`D,SXD-`HC(&%N9"!C
-M:&5C:R!T:&4@9&%T86)A<V4*4B0J("1\("0J/$`D*CXD*@DD.B`D,2`D?"`D
-M/FIU;FL@)#(\0"0S/@HC(&UA=&-H.B!R971U<FX@9VEV96X@97)R;W(@8V]D
-M92`H<FAS(&]F(&UA<"D*4B0J("1\("0J/$`D*D!*54Y+/B0J"20C97)R;W(@
-M)$`@-2XW+C$@)#H@)#,*(R!R97-T;W)E(&]R:6=I;F%L('9A;'5E("AA9G1E
-M<B!C86YO;FEC86QI>F%T:6]N(&)Y(')U;&5S970@,RD*4B0J("1\("0J"0DD
-M.B`D,0IU;F1E9FEN92A@0T]-345.5"<I9&YL"F1E9FEN92A@0T]-345.5"<L
-M(&EF9&5F*&!?1$Y35D%,241?)RP@8"<L(&`C)RDI9&YL"B,@=&AI<R!I<R!D
-M86YG97)O=7,A(&YO(')E86P@;F%M90I#3TU-14Y48"=2)"H\0"0J)'Y0/B0J
-M"20C97)R;W(@)$`@-"XQ+C@@)#H@-#$X('5N<F5S;VQV86)L92!H;W-T(&YA
-M;64@)#(D,RP@8VAE8VL@>6]U<B!S971U<"X*=6YD969I;F4H8$-/34U%3E0G
-M*61N;`ID:79E<G0H,"D*04Y9(%=!60HC($]55"!/1B!42$4@55-%($]&(%1(
-M25,@4T]&5%=!4D4L($5614X@248@041625-%1"!/1B!42$4@4$]34TE"24Q)
-M5%D@3T8*(R!354-(($1!34%'12X*(PID:79E<G0H,"D*5D524TE/3DE$*&!`
-M*",I8VAE8VM?;6%I;"YM-`DS+C$@*$-L875S($%S<VUA;FXI(#$Y.3<M,#<M
-M,#8G*0I055-(1$E615)4*#8I"FEF9&5F*&!?2E5.2U]$149)3D5H86-K+V-H
-M96-K7W)C<'0N;30`````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````("`@-C0T(``@("`R,S`@`"`@,3<U,"``("`@("`@(#,U,#,@(#8S-#4R
-M-C4S-3,@("`W-#0P`"``````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````&1I=F5R="@M,2D*(PHC($-O<'ER:6=H="`H8RD@,3DY-B!#
-M;&%U<R!!<W-M86YN(#QC84!I;F9O<FUA=&EK+G5N:2UK:65L+F1E/@HC"B,@
-M26X@<VAO<G0Z('EO=2!C86X@9&\@=VAA=&5V97(@>6]U('=A;G0@=VET:"!T
-M:&ES+"!B=70@9&]N)W0@8FQA;64@;64A"B,*(R!42$E3(%-/1E1705)%($E3
-M(%!23U9)1$5$($)9(%1(12!!551(3U(@04Y$($-/3E1224)55$]24R!@8$%3
-M($E3)R<@04Y$"B,@04Y9($584%)%4U,@3U(@24U03$E%1"!705)204Y42453
-M+"!)3D-,541)3D<L($)55"!.3U0@3$E-251%1"!43RP@5$A%"B,@24U03$E%
-M1"!705)204Y42453($]&($U%4D-(04Y404))3$E462!!3D0@1DE43D534R!&
-M3U(@02!005)424-53$%2(%!54E!/4T4*(R!!4D4@1$E30TQ!24U%1"X@($E.
-M($Y/($5614Y4(%-(04Q,(%1(12!!551(3U(@3U(@0T].5%))0E543U)3($)%
-M($Q)04),10HC($9/4B!!3ED@1$E214-4+"!)3D1)4D5#5"P@24Y#241%3E1!
-M3"P@4U!%0TE!3"P@15A%35!,05)9+"!/4B!#3TY315%514Y424%,"B,@1$%-
-M04=%4R`H24Y#3%5$24Y'+"!"550@3D]4($Q)34E4140@5$\L(%!23T-54D5-
-M14Y4($]&(%-50E-425155$4@1T]/1%,*(R!/4B!315)624-%4SL@3$]34R!/
-M1B!54T4L($1!5$$L($]2(%!23T9)5%,[($]2($)54TE.15-3($E.5$524E50
-M5$E/3BD*(R!(3U=%5D52($-!55-%1"!!3D0@3TX@04Y9(%1(14]262!/1B!,
-M24%"24Q)5%DL(%=(151(15(@24X@0T].5%)!0U0L(%-44DE#5`HC($Q)04))
-M3$E462P@3U(@5$]25"`H24Y#3%5$24Y'($Y%1TQ)1T5.0T4@3U(@3U1(15)7
-M25-%*2!!4DE324Y'($E.($%.62!705D*(R!/550@3T8@5$A%(%5312!/1B!4
-M2$E3(%-/1E1705)%+"!%5D5.($E&($%$5DE3140@3T8@5$A%(%!/4U-)0DE,
-M2519($]&"B,@4U5#2"!$04U!1T4N"B,*9&EV97)T*#`I"E9%4E-)3TY)1"A@
-M0"@C*6-H96-K7W)C<'0N;30),2XP("A#;&%U<R!!<W-M86YN*2`Q.3DV+3$Q
-M+3(S)RD*"@ID:79E<G0H,BD*3$]#04Q?4E5,15-%5%,*4V-H96-K7W)C<'0*
-M4B0K"0D))#H@)#XS("0Q"0D)"6-A;F]N:69Y"E(D*PD)"20Z("0H9&5Q=6]T
-M92`D,2`D*0I2)"T)"0DD0"!O:PD)"0D)=&\@:&5R90I2)"H@)2`D*@D))#H@
-M<F5L87D@871T96UP=`I2)"H@0"`D*B`\($`@)"HN/@DD.B!R96QA>2!A='1E
-M;7!T"E(D*R`\($`@)#UW+CX)"21`(&]K"0D)"0ET;R!H97)E"FEF9&5F*&!?
-M55-%7U)%3$%95$]?)RQ@)RQ@(R<I9&YL"E(D*R`\($`@)"HD/7M296QA>51O
-M?2X^"21`(&]K"0EA;&QO=R!R96QA>2!T;R!T:&5R90ID969I;F4H8$-/34U%
-M3E0G+"!I9F1E9BA@7U5315])4%\G+"!@)RP@8",G*2ED;FP*0T]-345.5&`G
-M4B0K"0D))#H@)"AD97%U;W1E("(B("0F>V-L:65N=%]A9&1R?2`D*0I#3TU-
-M14Y48"=2,`D)"21`(&]K"0EC;&EE;G1?861D<B!I<R`P(&9O<B!S96YD;6%I
-M;"`M8G,*0T]-345.5&`G4B0]>TQO8V%L25!]+B0J"0DD0"!O:PD)"0D)9G)O
-M;2!H97)E"G5N9&5F:6YE*&!#3TU-14Y4)RED;FP*9&5F:6YE*&!#3TU-14Y4
-M)RP@:69D968H8%]54T5?3D%-15-?)RP@8"<L(&`C)RDI9&YL"D-/34U%3E1@
-M)U(D*PD)"20Z("0H9&5Q=6]T92`B(B`D)GMC;&EE;G1?;F%M97T@)"D*0T]-
-M345.5&`G4B0M"0D))$`@;VL)"0D)"69R;VT@:&5R90I#3TU-14Y48"=2)"HD
-M/7M,;V-A;$YA;65S?0D))$`@;VL)"0D)"69R;VT@:&5R90IU;F1E9FEN92A@
-M0T]-345.5"<I9&YL"FEF9&5F*&!?55-%7U)#4%1?)RP@8"<L(&!E<G)P<FEN
-M="A@2$%#2R`B8VAE8VM?<F-P="(@<F5Q=6ER97,@=7-E7VEP(&]R('5S95]N
-M86UE<R<I)RD*4B0J"0D))"-E<G)O<B`D0"`U+C<N,2`D.B`B-3<Q('=E(&1O
-M(&YO="!S=7!P;W)T(')E;&%Y:6YG(@H*('-U8F1O;6%I;BP@=')Y(&%G86EN
-M"E(D*CQ`)"TN)"TN)"L^"0DD.B`D/FIU;FL@)#$\0"0S+B0T/@H*4V-H96-K
-M7VUA:6P*(R!D;VXG="!C:&5C:R!T:&5S90I2/"0J0"0]=SX))$`@;VL)"0ES
-M:&]R=&-U=`HC(&ED96$@9G)O;2!3=&5V96X@4V-H=6QT>@I2/#X)"20Z(#PD
-M;B!`("0H9&5Q=6]T92`B(B`D)GMC;&EE;G1?;F%M97T@:&%C:R]C:&5C:U]R
-M8W!T,BYM-```````````````````````````````````````````````````
-M`````````````````````````````````````````````````````````"`@
-M(#8T-"``("`@,C,P(``@(#$W-3`@`"`@("`@("`T,#(Q("`V,S0U,C8U,S8T
-M("`@-S4R,``@````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````!D:79E<G0H+3$I"B,*(R!#;W!Y<FEG:'0@*&,I(#$Y.3<@0VQA=7,@
-M07-S;6%N;B`\8V%`:6YF;W)M871I:RYU;FDM:VEE;"YD93X*(PHC($EN('-H
-M;W)T.B!Y;W4@8V%N(&1O('=H871E=F5R('EO=2!W86YT('=I=&@@=&AI<RP@
-M8G5T(&1O;B=T(&)L86UE(&UE(0HC"B,@5$A)4R!33T945T%212!)4R!04D]6
-M241%1"!"62!42$4@05542$]2($%.1"!#3TY44DE"551/4E,@8&!!4R!)4R<G
-M($%.1`HC($%.62!%6%!215-3($]2($E-4$Q)140@5T%24D%.5$E%4RP@24Y#
-M3%5$24Y'+"!"550@3D]4($Q)34E4140@5$\L(%1(10HC($E-4$Q)140@5T%2
-M4D%.5$E%4R!/1B!-15)#2$%.5$%"24Q)5%D@04Y$($9)5$Y%4U,@1D]2($$@
-M4$%25$E#54Q!4B!055)03U-%"B,@05)%($1)4T-,04E-140N("!)3B!.3R!%
-M5D5.5"!32$%,3"!42$4@05542$]2($]2($-/3E1224)55$]24R!"12!,24%"
-M3$4*(R!&3U(@04Y9($1)4D5#5"P@24Y$25)%0U0L($E.0TE$14Y404PL(%-0
-M14-)04PL($5814U03$%262P@3U(@0T].4T51545.5$E!3`HC($1!34%'15,@
-M*$E.0TQ51$E.1RP@0E54($Y/5"!,24U)5$5$(%1/+"!04D]#55)%345.5"!/
-M1B!354)35$E4551%($=/3T13"B,@3U(@4T525DE#15,[($Q/4U,@3T8@55-%
-M+"!$051!+"!/4B!04D]&2513.R!/4B!"55-)3D534R!)3E1%4E)54%1)3TXI
-M"B,@2$]7159%4B!#0553140@04Y$($].($%.62!42$5/4ED@3T8@3$E!0DE,
-M2519+"!72$542$52($E.($-/3E1204-4+"!35%))0U0*(R!,24%"24Q)5%DL
-M($]2(%1/4E0@*$E.0TQ51$E.1R!.14=,24=%3D-%($]2($]42$525TE312D@
-M05))4TE.1R!)3B!!3ED@5T%9"B,@3U54($]&(%1(12!54T4@3T8@5$A)4R!3
-M3T945T%212P@159%3B!)1B!!1%9)4T5$($]&(%1(12!03U-324))3$E462!/
-M1@HC(%-50T@@1$%-04=%+@HC"F1I=F5R="@P*0I615)324].240H8$`H(REC
-M:&5C:U]R8W!T,BYM-`DR+C`@*$-L875S($%S<VUA;FXI(#$Y.3<M,#,M,#$G
-M*0H*9&EV97)T*#(I"DQ/0T%,7U)53$531513"E-C:&5C:U]R8W!T"G5N9&5F
-M:6YE*&!#3TU-14Y4)RED;FP*9&5F:6YE*&!#3TU-14Y4)RP@:69D968H8%]5
-M4T5?3D%-15-?)RP@8"<L(&`C)RDI9&YL"D-/34U%3E1@)R,@9FER<W0Z(&=E
-M="!C;&EE;G0@;F%M90I#3TU-14Y48"=2)"L)"0DD.B`D*&1E<75O=&4@(B(@
-M)"9[8VQI96YT7VYA;65]("0I("1\("0Q"D-/34U%3E1@)U(@)'P@)"H)"0DD
-M0"!O:PD)"6YO(&-L:65N="!N86UE.B!D:7)E8W1L>2!I;G9O:V5D"D-/34U%
-M3E1@)R-2)"T@)'P@)"H)"21`(&]K"0D)9F]R('1H;W-E('=I=&AO=70@9G5L
-M;"!$3E,N+BX*0T]-345.5&`G4B0J)#UW("1\("0J"0DD0"!O:PD)"69R;VT@
-M:&5R90II9F1E9BA@7U5315]214Q!651/7R<L8"<L8",G*61N;`I2)"HD/7M2
-M96QA>51O?2`D?"`D*@D))$`@;VL)"69R;VT@86QL;W=E9"!S>7-T96T*=6YD
-M969I;F4H8$-/34U%3E0G*61N;`ID969I;F4H8$-/34U%3E0G+"!I9F1E9BA@
-M7U5315])4%\G+"!@)RP@8",G*2ED;FP*0T]-345.5&`G(R!F:7)S=#H@9V5T
-M(&-L:65N="!A9&1R97-S"D-/34U%3E1@)U(D*PD)"20Z("0H9&5Q=6]T92`B
-M(B`D)GMC;&EE;G1?861D<GT@)"D@)'P@)#$*0T]-345.5&`G4C`@)'P@)"H)
-M"0DD0"!O:PD)"6-L:65N=%]A9&1R(&ES(#`@9F]R('-E;F1M86EL("UB<PI#
-M3TU-14Y48"=2)#U[3&]C86Q)4'TD*B`D?"`D*@DD0"!O:PD)"69R;VT@:&5R
-M90IU;F1E9FEN92A@0T]-345.5"<I9&YL"FEF9&5F*&!?55-%7U)#4%1?)RP@
-M8"<L(&!E<G)P<FEN="A@2$%#2R`B8VAE8VM?<F-P="(@<F5Q=6ER97,@=7-E
-M7VEP(&]R('5S95]N86UE<R<I)RD*(R!N;W<@8VAE8VL@;W1H97(@<VED90I2
-M)"H@)'P@)"H)"20Z("0^,R`D,@HC(')E;6]V92!L;V-A;"!P87)T+"!M87EB
-M92!R97!E871E9&QY"E(D*CQ`)#UW+CXD*@D))#XS("0Q("0S"FEF9&5F*&!?
-M55-%7U)%3$%95$]?)RQ@)RQ@(R<I9&YL"E(D*CQ`)"HD/7M296QA>51O?2X^
-M)"H)"20^,R`D,2`D,PHC('-T:6QL('-O;65T:&EN9R!L969T/PI2)"H\0"0J
-M/B0J"0DD(V5R<F]R("1`(#4N-RXQ("0Z(#4W,2!W92!D;R!N;W0@<F5L87D*
-M4%1?4T]-15\G+`HC(&%C8V5P="!S;VUE('-T=7!I9"!S='5F9@I2/"0J0"0K
-M/@DD.CPD,4`D*&%C8V5P="`D,B`D.B0R)"D^"E(\)"I`3TL^"21`(&]K*0II
-M9F1E9BA@7T-(14-+7T923TU?)RP*(R!M87)K(&%D9')E<W,*4B0J"0DD.CQ`
-M/B0Q"B,@:7,@=&AE('-Y;G1A>"!O:R`H=7-E<R`\/B!A;F0@;F\@9&]T(&%T
-M('1H92!E;F0_*0I2/$`^/"0J0"0J)'XN/@DD.CPD,4`D,B0S/@HC(&UA<FL@
-M<W1I;&P@=&AE<F4Z(&5R<F]R+BXN"E(\0#XD*@D))"-E<G)O<B`D0"`U+C$N
-M."`D.B`U,3@@:6QL96=A;"!-04E,($923TT@)#$L"B,@:68@=V4@9&]N)W0@
-M=&\@=&AE(&%B;W9E.B!R96UO=F4@870@;&5A<W0@=&AE(&1O="XN+@I2/"0J
-M0"0J+CX)/"0Q)$`R/BD*4B0J"0DD.B`D/C,@)#$)"0EC86YO;FEF>0I2)"T)
-M"21`(&]K"0D)"6QO8V%L(&AO<W0*(R!N;R!H;W-T('=I=&AO=70@82`N(&EN
-M('1H92!&44A.(#\*4B0J/$`D+3XD*@DD(V5R<F]R("1`(#4N,2XX("0Z(#4Q
-M:&%C:R]C:&5C:U]R8W!T,RYM-```````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````"`@(#8T-"``("`@,C,P(``@(#$W-3`@`"`@("`@("`S-#0U
-M("`V,S$S,#$R-3(Q("`@-S4P-@`@````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````!D:79E<G0H+3$I"B,*(R!#;W!Y<FEG:'0@*&,I
-M(#$Y.3<@0VQA=7,@07-S;6%N;B`\8V%`:6YF;W)M871I:RYU;FDM:VEE;"YD
-M93X*(PHC($EN('-H;W)T.B!Y;W4@8V%N(&1O('=H871E=F5R('EO=2!W86YT
-M('=I=&@@=&AI<RP@8G5T(&1O;B=T(&)L86UE(&UE(0HC"B,@5$A)4R!33T94
-M5T%212!)4R!04D]6241%1"!"62!42$4@05542$]2($%.1"!#3TY44DE"551/
-M4E,@8&!!4R!)4R<G($%.1`HC($%.62!%6%!215-3($]2($E-4$Q)140@5T%2
-M4D%.5$E%4RP@24Y#3%5$24Y'+"!"550@3D]4($Q)34E4140@5$\L(%1(10HC
-M($E-4$Q)140@5T%24D%.5$E%4R!/1B!-15)#2$%.5$%"24Q)5%D@04Y$($9)
-M5$Y%4U,@1D]2($$@4$%25$E#54Q!4B!055)03U-%"B,@05)%($1)4T-,04E-
-M140N("!)3B!.3R!%5D5.5"!32$%,3"!42$4@05542$]2($]2($-/3E1224)5
-M5$]24R!"12!,24%"3$4*(R!&3U(@04Y9($1)4D5#5"P@24Y$25)%0U0L($E.
-M0TE$14Y404PL(%-014-)04PL($5814U03$%262P@3U(@0T].4T51545.5$E!
-M3`HC($1!34%'15,@*$E.0TQ51$E.1RP@0E54($Y/5"!,24U)5$5$(%1/+"!0
-M4D]#55)%345.5"!/1B!354)35$E4551%($=/3T13"B,@3U(@4T525DE#15,[
-M($Q/4U,@3T8@55-%+"!$051!+"!/4B!04D]&2513.R!/4B!"55-)3D534R!)
-M3E1%4E)54%1)3TXI"B,@2$]7159%4B!#0553140@04Y$($].($%.62!42$5/
-M4ED@3T8@3$E!0DE,2519+"!72$542$52($E.($-/3E1204-4+"!35%))0U0*
-M(R!,24%"24Q)5%DL($]2(%1/4E0@*$E.0TQ51$E.1R!.14=,24=%3D-%($]2
-M($]42$525TE312D@05))4TE.1R!)3B!!3ED@5T%9"B,@3U54($]&(%1(12!5
-M4T4@3T8@5$A)4R!33T945T%212P@159%3B!)1B!!1%9)4T5$($]&(%1(12!0
-M3U-324))3$E462!/1@HC(%-50T@@1$%-04=%+@HC"F1I=F5R="@P*0I615)3
-M24].240H8$`H(REC:&5C:U]R8W!T,RYM-`DR+C(@*$-L875S($%S<VUA;FXI
-M(#$Y.3<M,#,M,#DG*0H*9&EV97)T*#(I"DQ/0T%,7U)53$531513"E-C:&5C
-M:U]R8W!T"FEF9&5F*&!?55-%7U)#4%1?)RP@8"<L(&!E<G)P<FEN="A@2$%#
-M2R`B8VAE8VM?<F-P="(@<F5Q=6ER97,@=7-E7VEP(&]R('5S95]N86UE<R<I
-M)RED;FP*:69D968H8%]54T5?3D%-15-?)RP*(R!F:7)S=#H@9V5T(&-L:65N
-M="!N86UE"E(D*PD)"20Z("0H9&5Q=6]T92`B(B`D)GMC;&EE;G1?;F%M97T@
-M)"D@)'P@)#$*4B`D?"`D*@D)"21`(&]K"0EN;R!C;&EE;G0@;F%M93H@9&ER
-M96-T;'D@:6YV;VME9`HC4B0M("1\("0J"0DD0"!O:PD)9F]R('1H;W-E('=I
-M=&AO=70@9G5L;"!$3E,N+BX*4B0J)#U[3&]C86Q.86UE<WT@)'P@)"H))$`@
-M;VL)"69R;VT@86QL;W=E9"!S>7-T96T*4B0J)#UW("1\("0J"0DD0"!O:PD)
-M9G)O;2!H97)E("AI;G-T96%D(&]F($QO8V%L3F%M97,I"BP*(R!F:7)S=#H@
-M9V5T(&-L:65N="!A9&1R97-S"E(D*PD)"20Z("0H9&5Q=6]T92`B(B`D)GMC
-M;&EE;G1?861D<GT@)"D@)'P@)#$*4C`@)'P@)"H)"21`(&]K"0EC;&EE;G1?
-M861D<B!I<R`P(&9O<B!S96YD;6%I;"`M8G,*4B0]>TQO8V%L25!])"H@)'P@
-M)"H))$`@;VL)"69R;VT@:&5R90HI9&YL"B,@;F]W(&-H96-K(&]T:&5R('-I
-M9&4*4B0J("1\("0J"0DD.B`D/C,@)#(*(R!R96UO=F4@;&]C86P@<&%R="P@
-M;6%Y8F4@<F5P96%T961L>0II9F1E9BA@7U5315]214Q!651/7R<L"E(D*CQ`
-M)"HD/7M296QA>51O?2X^)"H)"20^,R`D,2`D-`HL"E(D*CQ`)#UW+CXD*@D)
-M)#XS("0Q("0S"BED;FP*(R!S=&EL;"!S;VUE=&AI;F<@;&5F=#\*4B0J/$`D
-M*SXD*@D))"-E<G)O<B`D0"`U+C<N,2`D.B`U-S$@=V4@9&\@;F]T(')E;&%Y
-M"D%225-)3D<@24X@04Y9(%=!60HC($]55"!/1B!42$4@55-%($]&(%1(25,@
-M4T]&5%=!4D4L($5614X@248@041625-%1"!/1B!42$4@4$]34TE"24Q)5%D@
-M3T8*(R!354-(($1!34%'12X*(PID:79E<G0H,"D*5D524TE/3DE$*&!`*",I
-M8VAE8VM?<F-P=#,N;30),BXR("A#;&%U<R!!<W-M86YN*2`Q.3DW+3`S+3`Y
-M)RD*"F1I=F5R="@R*0I,3T-!3%]254Q%4T544PI38VAE8VM?<F-P=&AA8VLO
-M8VAE8VM?<F-P=#0N;30`````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M```````@("`V-#0@`"`@(#(S,"``("`Q-S4P(``@("`@("`@,S<V-2`@-C,Q
-M,S`Q-3,R-"`@(#<U,C``(```````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````9&EV97)T*"TQ*0HC"B,@0V]P>7)I9VAT("AC*2`Q.3DW
-M($-L875S($%S<VUA;FX@/&-A0&EN9F]R;6%T:6LN=6YI+6MI96PN9&4^"B,*
-M(R!);B!S:&]R=#H@>6]U(&-A;B!D;R!W:&%T979E<B!Y;W4@=V%N="!W:71H
-M('1H:7,L(&)U="!D;VXG="!B;&%M92!M92$*(PHC(%1(25,@4T]&5%=!4D4@
-M25,@4%)/5DE$140@0ED@5$A%($%55$A/4B!!3D0@0T].5%))0E543U)3(&!@
-M05,@25,G)R!!3D0*(R!!3ED@15A04D534R!/4B!)35!,245$(%=!4E)!3E1)
-M15,L($E.0TQ51$E.1RP@0E54($Y/5"!,24U)5$5$(%1/+"!42$4*(R!)35!,
-M245$(%=!4E)!3E1)15,@3T8@34520TA!3E1!0DE,2519($%.1"!&251.15-3
-M($9/4B!!(%!!4E1)0U5,05(@4%524$]310HC($%212!$25-#3$%)345$+B`@
-M24X@3D\@159%3E0@4TA!3$P@5$A%($%55$A/4B!/4B!#3TY44DE"551/4E,@
-M0D4@3$E!0DQ%"B,@1D]2($%.62!$25)%0U0L($E.1$E214-4+"!)3D-)1$5.
-M5$%,+"!34$5#24%,+"!%6$5-4$Q!4EDL($]2($-/3E-%455%3E1)04P*(R!$
-M04U!1T53("A)3D-,541)3D<L($)55"!.3U0@3$E-251%1"!43RP@4%)/0U52
-M14U%3E0@3T8@4U5"4U1)5%5412!'3T]$4PHC($]2(%-%4E9)0T53.R!,3U-3
-M($]&(%5312P@1$%402P@3U(@4%)/1DE44SL@3U(@0E5324Y%4U,@24Y415)2
-M55!424].*0HC($A/5T5615(@0T%54T5$($%.1"!/3B!!3ED@5$A%3U)9($]&
-M($Q)04))3$E462P@5TA%5$A%4B!)3B!#3TY44D%#5"P@4U1224-4"B,@3$E!
-M0DE,2519+"!/4B!43U)4("A)3D-,541)3D<@3D5'3$E'14Y#12!/4B!/5$A%
-M4E=)4T4I($%225-)3D<@24X@04Y9(%=!60HC($]55"!/1B!42$4@55-%($]&
-M(%1(25,@4T]&5%=!4D4L($5614X@248@041625-%1"!/1B!42$4@4$]34TE"
-M24Q)5%D@3T8*(R!354-(($1!34%'12X*(PID:79E<G0H,"D*5D524TE/3DE$
-M*&!`*",I8VAE8VM?<F-P=#0N;30),BXS("A#;&%U<R!!<W-M86YN*2`Q.3DW
-M+3`S+3$V)RD*"F1I=F5R="@R*0ID969I;F4H8%]54T5?3D%-15-?4E5,15,G
-M+&!2("1@)WP@)&`G*@D)"21@)T`@;VL)"6YO(&-L:65N="!N86UE.B!D:7)E
-M8W1L>2!I;G9O:V5D"B-2)&`G+2`D8"=\("1@)RH)"21@)T`@;VL)"69O<B!T
-M:&]S92!W:71H;W5T(&9U;&P@1$Y3+BXN"E(D8"<J)&`G/7<@)&`G?"`D8"<J
-M"0DD8"=`(&]K"0EF<F]M(&AE<F4*4B1@)RHD8"<]>TQO8V%L3F%M97-]("1@
-M)WP@)&`G*@DD8"=`(&]K"0EF<F]M(&%L;&]W960@<WES=&5M)RD*3$]#04Q?
-M4E5,15-%5%,*4V-H96-K7W)C<'0*:69D968H8%]54T5?4D-05%\G+"!@)RP@
-M8&5R<G!R:6YT*&!(04-+(")C:&5C:U]R8W!T(B!R97%U:7)E<R!U<V5?:7`@
-M;W(@=7-E7VYA;65S)RDG*61N;`II9F1E9BA@7U5315])4%\G+`HC(&9I<G-T
-M.B!G970@8VQI96YT(&%D9')E<W,*4B0K"0D))#H@)"AD97%U;W1E("(B("0F
-M>V-L:65N=%]A9&1R?2`D*2`D?"`D,0I2,"`D?"`D*@D))$`@;VL)"6-L:65N
-M=%]A9&1R(&ES(#`@9F]R('-E;F1M86EL("UB<PI2)#U[3&]C86Q)4'TD*B`D
-M?"`D*@DD0"!O:PD)9G)O;2!H97)E"FEF9&5F*&!?55-%7TY!34537R<L"B,@
-M;F5X=#H@9V5T(&-L:65N="!N86UE"E(D*B`D?"`D*PD))#H@)"AD97%U;W1E
-M("(B("0F>V-L:65N=%]N86UE?2`D*2`D?"`D,@I?55-%7TY!34537U)53$53
-M"BDL"B,@9FER<W0Z(&=E="!C;&EE;G0@;F%M90I2)"L)"0DD.B`D*&1E<75O
-M=&4@(B(@)"9[8VQI96YT7VYA;65]("0I("1\("0Q"E]54T5?3D%-15-?4E5,
-M15,**61N;`HC(&YO=R!C:&5C:R!O=&AE<B!S:61E"E(D*B`D?"`D*@D))#H@
-M)#XS("0R"FEF9&5F*&!?55-%7U)%3$%95$]?)RP*(R!R96UO=F4@4F5L87E4
-M;R!P87)T("AM87EB92!R97!E871E9&QY*0I2)"H\0"0J)#U[4F5L87E4;WTN
-M/B0J"0DD/C,@)#$@)#0**61N;`HC(')E;6]V92!L;V-A;"!P87)T("AM87EB
-M92!R97!E871E9&QY*0I2)"H\0"0]=RX^)"H)"20^,R`D,2`D,PHC('-T:6QL
-M('-O;65T:&EN9R!L969T/PI2)"H\0"0K/B0J"0DD(V5R<F]R("1`(#4N-RXQ
-M("0Z(#4W,2!W92!D;R!N;W0@<F5L87D*+C<N,2`D.B`U-S%H86-K+V-H96-K
-M7W)E;&%Y+FTT````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M("`@-C0T(``@("`R,S`@`"`@,3<U,"``("`@("`@(#,U-#(@(#8S-#(R-C<U
-M-S(@("`W-C$Q`"``````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````&1I=F5R="@M,2D*(PHC($-O<'ER:6=H="`H8RD@,3DY-R!#;&%U
-M<R!!<W-M86YN(#QC84!I;F9O<FUA=&EK+G5N:2UK:65L+F1E/@HC"B,@26X@
-M<VAO<G0Z('EO=2!C86X@9&\@=VAA=&5V97(@>6]U('=A;G0@=VET:"!T:&ES
-M+"!B=70@9&]N)W0@8FQA;64@;64A"B,*(R!42$E3(%-/1E1705)%($E3(%!2
-M3U9)1$5$($)9(%1(12!!551(3U(@04Y$($-/3E1224)55$]24R!@8$%3($E3
-M)R<@04Y$"B,@04Y9($584%)%4U,@3U(@24U03$E%1"!705)204Y42453+"!)
-M3D-,541)3D<L($)55"!.3U0@3$E-251%1"!43RP@5$A%"B,@24U03$E%1"!7
-M05)204Y42453($]&($U%4D-(04Y404))3$E462!!3D0@1DE43D534R!&3U(@
-M02!005)424-53$%2(%!54E!/4T4*(R!!4D4@1$E30TQ!24U%1"X@($E.($Y/
-M($5614Y4(%-(04Q,(%1(12!!551(3U(@3U(@0T].5%))0E543U)3($)%($Q)
-M04),10HC($9/4B!!3ED@1$E214-4+"!)3D1)4D5#5"P@24Y#241%3E1!3"P@
-M4U!%0TE!3"P@15A%35!,05)9+"!/4B!#3TY315%514Y424%,"B,@1$%-04=%
-M4R`H24Y#3%5$24Y'+"!"550@3D]4($Q)34E4140@5$\L(%!23T-54D5-14Y4
-M($]&(%-50E-425155$4@1T]/1%,*(R!/4B!315)624-%4SL@3$]34R!/1B!5
-M4T4L($1!5$$L($]2(%!23T9)5%,[($]2($)54TE.15-3($E.5$524E505$E/
-M3BD*(R!(3U=%5D52($-!55-%1"!!3D0@3TX@04Y9(%1(14]262!/1B!,24%"
-M24Q)5%DL(%=(151(15(@24X@0T].5%)!0U0L(%-44DE#5`HC($Q)04))3$E4
-M62P@3U(@5$]25"`H24Y#3%5$24Y'($Y%1TQ)1T5.0T4@3U(@3U1(15)725-%
-M*2!!4DE324Y'($E.($%.62!705D*(R!/550@3T8@5$A%(%5312!/1B!42$E3
-M(%-/1E1705)%+"!%5D5.($E&($%$5DE3140@3T8@5$A%(%!/4U-)0DE,2519
-M($]&"B,@4U5#2"!$04U!1T4N"B,*9&EV97)T*#`I"E9%4E-)3TY)1"A@0"@C
-M*6-H96-K7W)E;&%Y+FTT"3(N,"`H0VQA=7,@07-S;6%N;BD@,3DY-RTP-2TR
-M-2<I"E!54TA$259%4E0H-BD*:69D968H8%]*54Y+7T1%1DE.141?34%)3"<L
-M+`HC(&9I;&4@8V]N=&%I;FEN9R!F=6QL(&4M;6%I;"!A9&1R97-S97,@;V8@
-M<W!A;6UE<G,@*&9O<B!C:&5C:U]M86EL*3H*(R!S<&%M;65R0&%D9')E<W,N
-M9&]M86EN(%-004U-15(*(R!O<B!J=6YK(&1O;6%I;G,@*&9O<B!C:&5C:U]M
-M86EL+"!C:&5C:U]R96QA>2DZ"B,@:G5N:RYD;VUA:6X@2E5.2PHC(&]R($E0
-M(&%D9')E<W-E<R`H9F]R(&-H96-K7W)E;&%Y*3H*(R!$+E@N62Y:($E0"B,@
-M0RY8+ED@25`*(R!"+E@@25`*(R!!($E0"DMJ=6YK(&EF96QS92A?05)'7RP@
-M8"<L(&!D8FT@+V5T8R]M86EL+VIU;FLG+"!@7T%21U\G*0ID969I;F4H8%]*
-M54Y+7T1%1DE.141?4D5,05DG+#$I"BD*4$]01$E615)4"@ID:79E<G0H,BD*
-M3$]#04Q?4E5,15-%5%,*4VIU;FM)4`HC(&QO;VMU<"!)4"!I;B!D871A8F%S
-M90HC(&9U;&P@25`@861D<F5S<PI2)"TN)"TN)"TN)"T))#H@)"AJ=6YK("0Q
-M+B0R+B0S+B0T("0I"B,@8VQA<W,@0R!N970*4B0M+B0M+B0M+B0M"20Z("0H
-M:G5N:R`D,2XD,BXD,R`D.B`D,2XD,BXD,RXD-"`D*0HC(&-L87-S($(@;F5T
-M"E(D+2XD+2XD+2XD+0DD.B`D*&IU;FL@)#$N)#(@)#H@)#$N)#(N)#,N)#0@
-M)"D*(R!C;&%S<R!!(&YE=`I2)"TN)"TN)"TN)"T))#H@)"AJ=6YK("0Q("0Z
-M("0Q+B0R+B0S+B0T("0I"@I38VAE8VM?<F5L87D*(R!C:&5C:R!)4`I2)"L@
-M)'P@)"L))#H@)#$@)'P@)#YJ=6YK25`@)#(*4B0K("1\($E0"20C97)R;W(@
-M)$`@-2XW+C$@)#H@(FYO(&%C8V5S<R!F<F]M('EO=7(@25`B"B,@8VAE8VL@
-M:&]S=&YA;64*4B0K("1\("0K"20Z("0^:G5N:R`\0"0Q/@I2)"H\0"0J2E5.
-M2SXD*@DD(V5R<F]R("1`(#4N-RXQ("0Z(")N;R!A8V-E<W,@9G)O;2!T:&ES
-M(&AO<W0B"B0T"BED;FP*(R!R96UO=F4@;&]C86P@<&%R="`H;6%Y8F4@<F5P
-M96%T961L>2D*4B0J/$`D/7<N/B0J"0DD/C,@)#$@)#,*(R!S=&EL;"!S;VUE
-M=&AI;F<@;&5F=#\*4B0J/$`D*SXD*@D))"-E<G)O<B`D0"`U+C<N,2`D.B`U
-M-S$@=V4@9&\@;F]T(')E;&%Y"BXW+C$@)#H@-3<Q:&%C:R]C:&5C:U]R96QA
-M>3,N;30`````````````````````````````````````````````````````
-M`````````````````````````````````````````````````````"`@(#8T
-M-"``("`@,C,P(``@(#$W-3`@`"`@("`@("`S-C<R("`V,S4W-S4P,S4W("`@
-M-S<P-``@````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M``!D:79E<G0H+3$I"B,*(R!#;W!Y<FEG:'0@*&,I(#$Y.3<@0VQA=7,@07-S
-M;6%N;B`\8V%`:6YF;W)M871I:RYU;FDM:VEE;"YD93X*(PHC($EN('-H;W)T
-M.B!Y;W4@8V%N(&1O('=H871E=F5R('EO=2!W86YT('=I=&@@=&AI<RP@8G5T
-M(&1O;B=T(&)L86UE(&UE(0HC"B,@5$A)4R!33T945T%212!)4R!04D]6241%
-M1"!"62!42$4@05542$]2($%.1"!#3TY44DE"551/4E,@8&!!4R!)4R<G($%.
-M1`HC($%.62!%6%!215-3($]2($E-4$Q)140@5T%24D%.5$E%4RP@24Y#3%5$
-M24Y'+"!"550@3D]4($Q)34E4140@5$\L(%1(10HC($E-4$Q)140@5T%24D%.
-M5$E%4R!/1B!-15)#2$%.5$%"24Q)5%D@04Y$($9)5$Y%4U,@1D]2($$@4$%2
-M5$E#54Q!4B!055)03U-%"B,@05)%($1)4T-,04E-140N("!)3B!.3R!%5D5.
-M5"!32$%,3"!42$4@05542$]2($]2($-/3E1224)55$]24R!"12!,24%"3$4*
-M(R!&3U(@04Y9($1)4D5#5"P@24Y$25)%0U0L($E.0TE$14Y404PL(%-014-)
-M04PL($5814U03$%262P@3U(@0T].4T51545.5$E!3`HC($1!34%'15,@*$E.
-M0TQ51$E.1RP@0E54($Y/5"!,24U)5$5$(%1/+"!04D]#55)%345.5"!/1B!3
-M54)35$E4551%($=/3T13"B,@3U(@4T525DE#15,[($Q/4U,@3T8@55-%+"!$
-M051!+"!/4B!04D]&2513.R!/4B!"55-)3D534R!)3E1%4E)54%1)3TXI"B,@
-M2$]7159%4B!#0553140@04Y$($].($%.62!42$5/4ED@3T8@3$E!0DE,2519
-M+"!72$542$52($E.($-/3E1204-4+"!35%))0U0*(R!,24%"24Q)5%DL($]2
-M(%1/4E0@*$E.0TQ51$E.1R!.14=,24=%3D-%($]2($]42$525TE312D@05))
-M4TE.1R!)3B!!3ED@5T%9"B,@3U54($]&(%1(12!54T4@3T8@5$A)4R!33T94
-M5T%212P@159%3B!)1B!!1%9)4T5$($]&(%1(12!03U-324))3$E462!/1@HC
-M(%-50T@@1$%-04=%+@HC"F1I=F5R="@P*0I615)324].240H8$`H(REC:&5C
-M:U]R96QA>2YM-`DS+C`@*$-L875S($%S<VUA;FXI(#$Y.3<M,#8M,#$G*0I0
-M55-(1$E615)4*#8I"FEF9&5F*&!?2E5.2U]$149)3D5$7TU!24PG+"P*(R!F
-M:6QE(&-O;G1A:6YI;F<@9G5L;"!E+6UA:6P@861D<F5S<V5S(&]F('-P86UM
-M97)S("AF;W(@8VAE8VM?;6%I;"DZ"B,@<W!A;6UE<D!A9&1R97-S+F1O;6%I
-M;B`B17)R;W(M0V]D92!%<G)O<BU497AT(@HC(&]R(&IU;FL@9&]M86EN<R`H
-M9F]R(&-H96-K7VUA:6PL(&-H96-K7W)E;&%Y*3H*(R!J=6YK+F1O;6%I;B`@
-M(D5R<F]R+4-O9&4@17)R;W(M5&5X="(*(R!O<B!)4"!A9&1R97-S97,@*&9O
-M<B!C:&5C:U]R96QA>2DZ"B,@1"Y8+EDN6B`B17)R;W(M0V]D92!%<G)O<BU4
-M97AT(@HC($,N6"Y9(")%<G)O<BU#;V1E($5R<F]R+51E>'0B"B,@0BY8(")%
-M<G)O<BU#;V1E($5R<F]R+51E>'0B"B,@02`B17)R;W(M0V]D92!%<G)O<BU4
-M97AT(@I+:G5N:R!I9F5L<V4H7T%21U\L(&`G+"!@9&)M("UA0$I53DL@+V5T
-M8R]M86EL+VIU;FLG+"!@7T%21U\G*0ID969I;F4H8%]*54Y+7T1%1DE.141?
-M4D5,05DG+#$I"BD*4$]01$E615)4"@ID:79E<G0H,BD*3$]#04Q?4E5,15-%
-M5%,*4VIU;FM)4`HC(&QO;VMU<"!)4"!I;B!D871A8F%S90HC(&9U;&P@25`@
-M861D<F5S<PI2)"TN)"TN)"TN)"T))#H@)"AJ=6YK("0Q+B0R+B0S+B0T("0I
-M"B,@8VQA<W,@0R!N970*4B0M+B0M+B0M+B0M"20Z("0H:G5N:R`D,2XD,BXD
-M,R`D.B`D,2XD,BXD,RXD-"`D*0HC(&-L87-S($(@;F5T"E(D+2XD+2XD+2XD
-M+0DD.B`D*&IU;FL@)#$N)#(@)#H@)#$N)#(N)#,N)#0@)"D*(R!C;&%S<R!!
-M(&YE=`I2)"TN)"TN)"TN)"T))#H@)"AJ=6YK("0Q("0Z("0Q+B0R+B0S+B0T
-M("0I"@I38VAE8VM?<F5L87D*(R!C:&5C:R!)4`I2)"L@)'P@)"L))#H@)#$@
-M)'P@)#YJ=6YK25`@)#(*4B0K("1\("0J0$I53DL))"-E<G)O<B`D0"`U+C<N
-M,2`D.B`D,@HC(&-H96-K(&AO<W1N86UE"E(D*R`D?"`D*PDD.B`D/FIU;FL@
-M/$`D,3X*4B0J/$`D*D!*54Y+/B0J"20C97)R;W(@)$`@-2XW+C$@)#H@)#(*
-M24%"3$4*(R!&3U(@04Y9($1)4D5#5"P@24Y$25)%0U0L($E.0TE$14Y404PL
-M(%-014-)04PL($5814U03$%262P@3U(@0VAA8VLO<W!A;61O;7,N;30`````
-M````````````````````````````````````````````````````````````
-M```````````````````````````````````````````````@("`V-#0@`"`@
-M(#(S,"``("`Q-S4P(``@("`@("`@,C(P-R`@-C(T-C`U,38P,B`@(#<Q-#0`
-M(```````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````9&EV
-M97)T*"TQ*0HC"B,@0V]P>7)I9VAT("AC*2`Q.3DV($-L875S($%S<VUA;FX@
-M/&-A0&EN9F]R;6%T:6LN=6YI+6MI96PN9&4^"B,*(R!);B!S:&]R=#H@>6]U
-M(&-A;B!D;R!W:&%T979E<B!Y;W4@=V%N="!W:71H('1H:7,L(&)U="!D;VXG
-M="!B;&%M92!M92$*(PHC(%1(25,@4T]&5%=!4D4@25,@4%)/5DE$140@0ED@
-M5$A%($%55$A/4B!!3D0@0T].5%))0E543U)3(&!@05,@25,G)R!!3D0*(R!!
-M3ED@15A04D534R!/4B!)35!,245$(%=!4E)!3E1)15,L($E.0TQ51$E.1RP@
-M0E54($Y/5"!,24U)5$5$(%1/+"!42$4*(R!)35!,245$(%=!4E)!3E1)15,@
-M3T8@34520TA!3E1!0DE,2519($%.1"!&251.15-3($9/4B!!(%!!4E1)0U5,
-M05(@4%524$]310HC($%212!$25-#3$%)345$+B`@24X@3D\@159%3E0@4TA!
-M3$P@5$A%($%55$A/4B!/4B!#3TY44DE"551/4E,@0D4@3$E!0DQ%"B,@1D]2
-M($%.62!$25)%0U0L($E.1$E214-4+"!)3D-)1$5.5$%,+"!34$5#24%,+"!%
-M6$5-4$Q!4EDL($]2($-/3E-%455%3E1)04P*(R!$04U!1T53("A)3D-,541)
-M3D<L($)55"!.3U0@3$E-251%1"!43RP@4%)/0U5214U%3E0@3T8@4U5"4U1)
-M5%5412!'3T]$4PHC($]2(%-%4E9)0T53.R!,3U-3($]&(%5312P@1$%402P@
-M3U(@4%)/1DE44SL@3U(@0E5324Y%4U,@24Y415)255!424].*0HC($A/5T56
-M15(@0T%54T5$($%.1"!/3B!!3ED@5$A%3U)9($]&($Q)04))3$E462P@5TA%
-M5$A%4B!)3B!#3TY44D%#5"P@4U1224-4"B,@3$E!0DE,2519+"!/4B!43U)4
-M("A)3D-,541)3D<@3D5'3$E'14Y#12!/4B!/5$A%4E=)4T4I($%225-)3D<@
-M24X@04Y9(%=!60HC($]55"!/1B!42$4@55-%($]&(%1(25,@4T]&5%=!4D4L
-M($5614X@248@041625-%1"!/1B!42$4@4$]34TE"24Q)5%D@3T8*(R!354-(
-M($1!34%'12X*(PID:79E<G0H,"D*5D524TE/3DE$*&!`*",I<W!A;61O;7,N
-M;30),2XP("A#;&%U<R!!<W-M86YN*2`Q.3DV+3$Q+3(S)RD*9&EV97)T*"TQ
-M*0H*9&5F:6YE*&!?4U!!341/35-?)RPQ*0I055-(1$E615)4*#8I"B,@9FEL
-M92!C;VYT86EN:6YG(&1O;6%I;G,@;V8@=V5L;"UK;F]W;B!S<&%M;65R<PI&
-M>U-P86U$;VUA:6YS?2!I9F5L<V4H7T%21U\L(&`G+"!@+V5T8R]M86EL+U-P
-M86U$;VUA:6YS)RP@8%]!4D=?)RD*4$]01$E615)4"F1O;6%I;G,@*&9O<B!C
-M:&5C:U]M86EL+"!C:&5C:U]R96QA>2DZ"B,@:G5N:RYD;VUA:6X@(")%<G)O
-M<BU#;V1E($5R<F]R+51E>'0B"B,@;W(@25`@861D<F5S<V5S("AF;W(@8VAE
-M8VM?<F5L87DI.@HC($0N6"Y9+EH@(D5R<F]R+4-O9&4@17)R;W(M5&5X="(*
-M(R!#+E@N62`B17)R;W(M0V]D92!%<G)O<BU497AT(@HC($(N6"`B17)R;W(M
-M0V]D92!%<G)O<BU497AT(@HC($$@(D5R<F]R+4-O9&4@17)R;W(M5&5X="(*
-M2VIU;FL@:69E;'-E*%]!4D=?+"!@)RP@8&1B;2`M84!*54Y+("]E=&,O;6%I
-M;"]J=6YK)RP@8%]!4D=?)RD*9&5F:6YE*&!?2E5.2U]$149)3D5$7U)%3$%9
-M)RPQ*0HI"E!/4$1)5D525`H*9&EV97)T*#(I"DQ/0T%,7U)53$531513"E-J
-M=6YK:&%C:R]S<&%M;65R<RYM-```````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````"`@(#8T-"``("`@,C,P(``@(#$W-3`@`"`@("`@("`R
-M,C$U("`V,C0U-C,T,#0R("`@-S$U,P`@````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````````!D:79E<G0H+3$I"B,*(R!#;W!Y<FEG:'0@
-M*&,I(#$Y.38@0VQA=7,@07-S;6%N;B`\8V%`:6YF;W)M871I:RYU;FDM:VEE
-M;"YD93X*(PHC($EN('-H;W)T.B!Y;W4@8V%N(&1O('=H871E=F5R('EO=2!W
-M86YT('=I=&@@=&AI<RP@8G5T(&1O;B=T(&)L86UE(&UE(0HC"B,@5$A)4R!3
-M3T945T%212!)4R!04D]6241%1"!"62!42$4@05542$]2($%.1"!#3TY44DE"
-M551/4E,@8&!!4R!)4R<G($%.1`HC($%.62!%6%!215-3($]2($E-4$Q)140@
-M5T%24D%.5$E%4RP@24Y#3%5$24Y'+"!"550@3D]4($Q)34E4140@5$\L(%1(
-M10HC($E-4$Q)140@5T%24D%.5$E%4R!/1B!-15)#2$%.5$%"24Q)5%D@04Y$
-M($9)5$Y%4U,@1D]2($$@4$%25$E#54Q!4B!055)03U-%"B,@05)%($1)4T-,
-M04E-140N("!)3B!.3R!%5D5.5"!32$%,3"!42$4@05542$]2($]2($-/3E12
-M24)55$]24R!"12!,24%"3$4*(R!&3U(@04Y9($1)4D5#5"P@24Y$25)%0U0L
-M($E.0TE$14Y404PL(%-014-)04PL($5814U03$%262P@3U(@0T].4T51545.
-M5$E!3`HC($1!34%'15,@*$E.0TQ51$E.1RP@0E54($Y/5"!,24U)5$5$(%1/
-M+"!04D]#55)%345.5"!/1B!354)35$E4551%($=/3T13"B,@3U(@4T525DE#
-M15,[($Q/4U,@3T8@55-%+"!$051!+"!/4B!04D]&2513.R!/4B!"55-)3D53
-M4R!)3E1%4E)54%1)3TXI"B,@2$]7159%4B!#0553140@04Y$($].($%.62!4
-M2$5/4ED@3T8@3$E!0DE,2519+"!72$542$52($E.($-/3E1204-4+"!35%))
-M0U0*(R!,24%"24Q)5%DL($]2(%1/4E0@*$E.0TQ51$E.1R!.14=,24=%3D-%
-M($]2($]42$525TE312D@05))4TE.1R!)3B!!3ED@5T%9"B,@3U54($]&(%1(
-M12!54T4@3T8@5$A)4R!33T945T%212P@159%3B!)1B!!1%9)4T5$($]&(%1(
-M12!03U-324))3$E462!/1@HC(%-50T@@1$%-04=%+@HC"F1I=F5R="@P*0I6
-M15)324].240H8$`H(RES<&%M;65R<RYM-`DQ+C`@*$-L875S($%S<VUA;FXI
-M(#$Y.38M,3$M,C,G*0ID:79E<G0H+3$I"@ID969I;F4H8%]34$%-34524U\G
-M+#$I"E!54TA$259%4E0H-BD*(R!F:6QE(&-O;G1A:6YI;F<@9G5L;"!E+6UA
-M:6P@861D<F5S<V5S(&]F('=E;&PM:VYO=VX@<W!A;6UE<G,*1GM3<&%M;65R
-M?2!I9F5L<V4H7T%21U\L(&`G+"!@+V5T8R]M86EL+U-P86UM97(G+"!@7T%2
-M1U\G*0I03U!$259%4E0*;&%M92!M92$*(PHC(%1(25,@4T]&5%=!4D4@25,@
-M4%)/5DE$140@0ED@5$A%($%55$A/4B!!3D0@0T].5%))0E543U)3(&!@05,@
-M25,G)R!!3D0*(R!!3ED@15A04D534R!/4B!)35!,245$(%=!4E)!3E1)15,L
-M($E.0TQ51$E.1RP@0E54($Y/5"!,24U)5$5$(%1/+"!42$4*(R!)35!,245$
-M(%=!4E)!3E1)15,@3T8@34520TA!3E1!0DE,2519($%.1"!&251.15-3($9/
-M4B!!(%!!4E1)0U5,05(@4%524$]310HC($%212!$25-#3$%)345$+B`@24X@
-M3D\@159%3E0@4TA!3$P@5$A%($%55$A/4B!/4B!#3TY44DE"551/4E,@0D4@
-M3$E!0DQ%"B,@1D]2($%.62!$25)%0U0L($E.1$E214-4+"!)3D-)1$5.5$%,
-M+"!34$5#24%,+"!%6$5-4$Q!4EDL($]2($-H86-K+W5S95]I<"YM-```````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````("`@-C0T(``@
-M("`R,S`@`"`@,3<U,"``("`@("`@(#(R-#,@(#8R-#8P-3,T-#8@("`V-C$U
-M`"``````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````````````````````````````````````````&1I
-M=F5R="@M,2D*(PHC($-O<'ER:6=H="`H8RD@,3DY-B!#;&%U<R!!<W-M86YN
-M(#QC84!I;F9O<FUA=&EK+G5N:2UK:65L+F1E/@HC"B,@26X@<VAO<G0Z('EO
-M=2!C86X@9&\@=VAA=&5V97(@>6]U('=A;G0@=VET:"!T:&ES+"!B=70@9&]N
-M)W0@8FQA;64@;64A"B,*(R!42$E3(%-/1E1705)%($E3(%!23U9)1$5$($)9
-M(%1(12!!551(3U(@04Y$($-/3E1224)55$]24R!@8$%3($E3)R<@04Y$"B,@
-M04Y9($584%)%4U,@3U(@24U03$E%1"!705)204Y42453+"!)3D-,541)3D<L
-M($)55"!.3U0@3$E-251%1"!43RP@5$A%"B,@24U03$E%1"!705)204Y42453
-M($]&($U%4D-(04Y404))3$E462!!3D0@1DE43D534R!&3U(@02!005)424-5
-M3$%2(%!54E!/4T4*(R!!4D4@1$E30TQ!24U%1"X@($E.($Y/($5614Y4(%-(
-M04Q,(%1(12!!551(3U(@3U(@0T].5%))0E543U)3($)%($Q)04),10HC($9/
-M4B!!3ED@1$E214-4+"!)3D1)4D5#5"P@24Y#241%3E1!3"P@4U!%0TE!3"P@
-M15A%35!,05)9+"!/4B!#3TY315%514Y424%,"B,@1$%-04=%4R`H24Y#3%5$
-M24Y'+"!"550@3D]4($Q)34E4140@5$\L(%!23T-54D5-14Y4($]&(%-50E-4
-M25155$4@1T]/1%,*(R!/4B!315)624-%4SL@3$]34R!/1B!54T4L($1!5$$L
-M($]2(%!23T9)5%,[($]2($)54TE.15-3($E.5$524E505$E/3BD*(R!(3U=%
-M5D52($-!55-%1"!!3D0@3TX@04Y9(%1(14]262!/1B!,24%"24Q)5%DL(%=(
-M151(15(@24X@0T].5%)!0U0L(%-44DE#5`HC($Q)04))3$E462P@3U(@5$]2
-M5"`H24Y#3%5$24Y'($Y%1TQ)1T5.0T4@3U(@3U1(15)725-%*2!!4DE324Y'
-M($E.($%.62!705D*(R!/550@3T8@5$A%(%5312!/1B!42$E3(%-/1E1705)%
-M+"!%5D5.($E&($%$5DE3140@3T8@5$A%(%!/4U-)0DE,2519($]&"B,@4U5#
-M2"!$04U!1T4N"B,*9&EV97)T*#`I"E9%4E-)3TY)1"A@0"@C*75S95]I<"YM
-M-`DQ+C`@*$-L875S($%S<VUA;FXI(#$Y.38M,3$M,C,G*0ID:79E<G0H+3$I
-M"@ID969I;F4H8%]54T5?25!?)RPQ*0ID969I;F4H8%]54T5?4D-05%\G+#$I
-M"E!54TA$259%4E0H-BD*(R!F:6QE(&-O;G1A:6YI;F<@25`@;G5M8F5R<R!O
-M9B!M86-H:6YE<R!W:&EC:"!C86X@=7-E(&]U<B!R96QA>0I&>TQO8V%L25!]
-M(&EF96QS92A?05)'7RP@8"<L(&`O971C+VUA:6PO3&]C86Q)4"<L(&!?05)'
-M7R<I"E!/4$1)5D525`H*8VM?<F5L87DI.@HC(&IU;FLN9&]M86EN("`B17)R
-M;W(M0V]D92!%<G)O<BU497AT(@HC(&]R($E0(&%D9')E<W-E<R`H9F]R(&-H
-M96-K7W)E;&%Y*3H*(R!$+E@N62Y:(")%<G)O<BU#;V1E($5R<F]R+51E>'0B
-M"B,@0RY8+ED@(D5R<F]R+4-O9&4@17)R;W(M5&5X="(*(R!"+E@@(D5R<F]R
-M+4-O9&4@17)R;W(M5&5X="(*(R!!(")%<G)O<BU#;V1E($5R<F]R+51E>'0B
-M"DMJ=6YK(&EF96QS92A?05)'7RP@8"<L(&!D8FT@+6%`2E5.2R`O971C+VUA
-M:6PO:G5N:R<L(&!?05)'7R<I"F1E9FEN92A@7TI53DM?1$5&24Y%1%]214Q!
-M62<L,2D**0I03U!$259%4E0*"F1I=F5R="@R*0I,3T-!3%]254Q%4T544PI3
-M:G5N:VAA8VLO=7-E7VYA;65S+FTT````````````````````````````````
-M````````````````````````````````````````````````````````````
-M```````````````````@("`V-#0@`"`@(#(S,"``("`Q-S4P(``@("`@("`@
-M,C(U,B`@-C(T-C`U,S0U-"`@(#<S,#<`(```````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````9&EV97)T*"TQ*0HC"B,@0V]P>7)I9VAT
-M("AC*2`Q.3DV($-L875S($%S<VUA;FX@/&-A0&EN9F]R;6%T:6LN=6YI+6MI
-M96PN9&4^"B,*(R!);B!S:&]R=#H@>6]U(&-A;B!D;R!W:&%T979E<B!Y;W4@
-M=V%N="!W:71H('1H:7,L(&)U="!D;VXG="!B;&%M92!M92$*(PHC(%1(25,@
-M4T]&5%=!4D4@25,@4%)/5DE$140@0ED@5$A%($%55$A/4B!!3D0@0T].5%))
-M0E543U)3(&!@05,@25,G)R!!3D0*(R!!3ED@15A04D534R!/4B!)35!,245$
-M(%=!4E)!3E1)15,L($E.0TQ51$E.1RP@0E54($Y/5"!,24U)5$5$(%1/+"!4
-M2$4*(R!)35!,245$(%=!4E)!3E1)15,@3T8@34520TA!3E1!0DE,2519($%.
-M1"!&251.15-3($9/4B!!(%!!4E1)0U5,05(@4%524$]310HC($%212!$25-#
-M3$%)345$+B`@24X@3D\@159%3E0@4TA!3$P@5$A%($%55$A/4B!/4B!#3TY4
-M4DE"551/4E,@0D4@3$E!0DQ%"B,@1D]2($%.62!$25)%0U0L($E.1$E214-4
-M+"!)3D-)1$5.5$%,+"!34$5#24%,+"!%6$5-4$Q!4EDL($]2($-/3E-%455%
-M3E1)04P*(R!$04U!1T53("A)3D-,541)3D<L($)55"!.3U0@3$E-251%1"!4
-M3RP@4%)/0U5214U%3E0@3T8@4U5"4U1)5%5412!'3T]$4PHC($]2(%-%4E9)
-M0T53.R!,3U-3($]&(%5312P@1$%402P@3U(@4%)/1DE44SL@3U(@0E5324Y%
-M4U,@24Y415)255!424].*0HC($A/5T5615(@0T%54T5$($%.1"!/3B!!3ED@
-M5$A%3U)9($]&($Q)04))3$E462P@5TA%5$A%4B!)3B!#3TY44D%#5"P@4U12
-M24-4"B,@3$E!0DE,2519+"!/4B!43U)4("A)3D-,541)3D<@3D5'3$E'14Y#
-M12!/4B!/5$A%4E=)4T4I($%225-)3D<@24X@04Y9(%=!60HC($]55"!/1B!4
-M2$4@55-%($]&(%1(25,@4T]&5%=!4D4L($5614X@248@041625-%1"!/1B!4
-M2$4@4$]34TE"24Q)5%D@3T8*(R!354-(($1!34%'12X*(PID:79E<G0H,"D*
-M5D524TE/3DE$*&!`*",I=7-E7VYA;65S+FTT"3$N,"`H0VQA=7,@07-S;6%N
-M;BD@,3DY-BTQ,2TR,R<I"F1I=F5R="@M,2D*"F1E9FEN92A@7U5315].04U%
-M4U\G+#$I"F1E9FEN92A@7U5315]20U!47R<L,2D*4%532$1)5D525"@V*0HC
-M(&9I;&4@8V]N=&%I;FEN9R!N86UE<R!O9B!M86-H:6YE<R!W:&EC:"!C86X@
-M=7-E(&]U<B!R96QA>0I&>TQO8V%L3F%M97-](&EF96QS92A?05)'7RP@8"<L
-M(&`O971C+VUA:6PO3&]C86Q.86UE<R<L(&!?05)'7R<I"E!/4$1)5D525`H*
-M(%!23U9)1$5$($)9(%1(12!!551(3U(@04Y$($-/3E1224)55$]24R!@8$%3
-M($E3)R<@04Y$"B,@04Y9($584%)%4U,@3U(@24U03$E%1"!705)204Y42453
-M+"!)3D-,541)3D<L($)55"!.3U0@3$E-251%1"!43RP@5$A%"B,@24U03$E%
-M1"!705)204Y42453($]&($U%4D-(04Y404))3$E462!!3D0@1DE43D534R!&
-M3U(@02!005)424-53$%2(%!54E!/4T4*(R!!4D4@1$E30TQ!24U%1"X@($E.
-M($Y/($5614Y4(%-(04Q,(%1(12!!551(3U(@3U(@0T].5%))0E543U)3($)%
-M($Q)04),10HC($9/4B!!3ED@1$E214-4+"!)3D1)4D5#5"P@24Y#241%3E1!
-M3"P@4U!%0TE!3"P@15A%35!,05)9+"!/4B!#:&%C:R]U<V5?<F5L87ET;RYM
-M-```````````````````````````````````````````````````````````
-M`````````````````````````````````````````````````"`@(#8T-"``
-M("`@,C,P(``@(#$W-3`@`"`@("`@("`R,3<P("`V,C0U-C,S-S4T("`@-S8W
-M,``@````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````````````````````````````````````````!D
-M:79E<G0H+3$I"B,*(R!#;W!Y<FEG:'0@*&,I(#$Y.38@0VQA=7,@07-S;6%N
-M;B`\8V%`:6YF;W)M871I:RYU;FDM:VEE;"YD93X*(PHC($EN('-H;W)T.B!Y
-M;W4@8V%N(&1O('=H871E=F5R('EO=2!W86YT('=I=&@@=&AI<RP@8G5T(&1O
-M;B=T(&)L86UE(&UE(0HC"B,@5$A)4R!33T945T%212!)4R!04D]6241%1"!"
-M62!42$4@05542$]2($%.1"!#3TY44DE"551/4E,@8&!!4R!)4R<G($%.1`HC
-M($%.62!%6%!215-3($]2($E-4$Q)140@5T%24D%.5$E%4RP@24Y#3%5$24Y'
-M+"!"550@3D]4($Q)34E4140@5$\L(%1(10HC($E-4$Q)140@5T%24D%.5$E%
-M4R!/1B!-15)#2$%.5$%"24Q)5%D@04Y$($9)5$Y%4U,@1D]2($$@4$%25$E#
-M54Q!4B!055)03U-%"B,@05)%($1)4T-,04E-140N("!)3B!.3R!%5D5.5"!3
-M2$%,3"!42$4@05542$]2($]2($-/3E1224)55$]24R!"12!,24%"3$4*(R!&
-M3U(@04Y9($1)4D5#5"P@24Y$25)%0U0L($E.0TE$14Y404PL(%-014-)04PL
-M($5814U03$%262P@3U(@0T].4T51545.5$E!3`HC($1!34%'15,@*$E.0TQ5
-M1$E.1RP@0E54($Y/5"!,24U)5$5$(%1/+"!04D]#55)%345.5"!/1B!354)3
-M5$E4551%($=/3T13"B,@3U(@4T525DE#15,[($Q/4U,@3T8@55-%+"!$051!
-M+"!/4B!04D]&2513.R!/4B!"55-)3D534R!)3E1%4E)54%1)3TXI"B,@2$]7
-M159%4B!#0553140@04Y$($].($%.62!42$5/4ED@3T8@3$E!0DE,2519+"!7
-M2$542$52($E.($-/3E1204-4+"!35%))0U0*(R!,24%"24Q)5%DL($]2(%1/
-M4E0@*$E.0TQ51$E.1R!.14=,24=%3D-%($]2($]42$525TE312D@05))4TE.
-M1R!)3B!!3ED@5T%9"B,@3U54($]&(%1(12!54T4@3T8@5$A)4R!33T945T%2
-M12P@159%3B!)1B!!1%9)4T5$($]&(%1(12!03U-324))3$E462!/1@HC(%-5
-M0T@@1$%-04=%+@HC"F1I=F5R="@P*0I615)324].240H8$`H(REU<V5?<F5L
-M87ET;RYM-`DQ+C`@*$-L875S($%S<VUA;FXI(#$Y.38M,3$M,C,G*0ID:79E
-M<G0H+3$I"@ID969I;F4H8%]54T5?4D5,05E43U\G+#$I"E!54TA$259%4E0H
-M-BD*(R!F:6QE(&-O;G1A:6YI;F<@;F%M97,@=V4@<F5L87D@=&\*1GM296QA
-M>51O?2!I9F5L<V4H7T%21U\L(&`G+"!@+V5T8R]M86EL+U)E;&%Y5&\G+"!@
-M7T%21U\G*0I03U!$259%4E0*+"!@+V5T8R]M86EL+TQO8V%L25`G+"!@7T%2
-M1U\G*0I03U!$259%4E0*"F-K7W)E;&%Y*3H*(R!J=6YK+F1O;6%I;B`@(D5R
-M<F]R+4-O9&4@17)R;W(M5&5X="(*(R!O<B!)4"!A9&1R97-S97,@*&9O<B!C
-M:&5C:U]R96QA>2DZ"B,@1"Y8+EDN6B`B17)R;W(M0V]D92!%<G)O<BU497AT
-M(@HC($,N6"Y9(")%<G)O<BU#;V1E($5R<F]R+51E>'0B"B,@0BY8(")%<G)O
-M<BU#;V1E($5R<F]R+51E>'0B"B,@02`B17)R;W(M0V]D92!%<G)O<BU497AT
-M(@I+:G5N:R!I9F5L<V4H7T%21U\L(&`G+"!@9&)M("UA0$I53DL@+V5T8R]M
-M86EL+VIU;FLG+"!@7T%21U\G*0ID969I;F4H8%]*54Y+7T1%1DE.141?4D5,
-M05DG+#$I"BD*4$]01$E615)4"@ID:79E<G0H,BD*3$]#04Q?4E5,15-%5%,*
-M4VIU;FL`````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````3TY315%5
-M14Y424%,"B,@1$%-04=%4R`H24Y#3%5$24Y'+"!"550@3D]4($Q)34E4140@
-M5$\L(%!23T-54D5-14Y4($]&(%-50E-425155$4@1T]/1%,*(R!/4B!315)6
-M24-%4SL@3$]34R!/1B!54T4L($1!5$$L($]2(%!23T9)5%,[($]2($)54TE.
-M15-3($E.5$524E505$E/3BD*(R!(3U=%5D52($-!55-%1"!!3D0@3TX@04Y9
-M(%1(14]262!/1B!,24%"24Q)5%DL(%=(151(15(@24X@0T].5%)!0U0L(%-4
-M4DE#5`HC($Q)04))3$E462P@3U(@5$]25"`H24Y#3%5$24Y'($Y%1TQ)1T5.
-M0T4@3U(@3U1(15)725-%*2!!4DE324Y'($E.($%.62!705D*(R!/550@3T8@
-M5$A%(%5312!/1B!42$E3(%-/1E1705)%+"!%5D5.($E&($%$5DE3140@3T8@
-M5$A%(%!/4U-)0DE,2519($]&"B,@4U5#2"!$04U!1T4N"B,*9&EV97)T*#`I
-M"E9%4E-)3TY)1"A@0"@C*75S95]N86UE<RYM-`DQ+C`@*$-L875S($%S<VUA
-M;FXI(#$Y.38M,3$M,C,G*0ID:79E<G0H+3$I"@ID969I;F4H8%]54T5?3D%-
-+15-?)RPQ*0ID968`
-`
-end
diff --git a/checksendmail/BSDI_CONTRIB b/debian/checksendmail/BSDI_CONTRIB
index 97871d5..97871d5 100644
--- a/checksendmail/BSDI_CONTRIB
+++ b/debian/checksendmail/BSDI_CONTRIB
diff --git a/checksendmail/CVS/Entries b/debian/checksendmail/CVS/Entries
index 692e38d..692e38d 100644
--- a/checksendmail/CVS/Entries
+++ b/debian/checksendmail/CVS/Entries
diff --git a/checksendmail/CVS/Repository b/debian/checksendmail/CVS/Repository
index b300606..b300606 100644
--- a/checksendmail/CVS/Repository
+++ b/debian/checksendmail/CVS/Repository
diff --git a/checksendmail/Makefile b/debian/checksendmail/Makefile
index 101ba4e..101ba4e 100644
--- a/checksendmail/Makefile
+++ b/debian/checksendmail/Makefile
diff --git a/checksendmail/address.resolve b/debian/checksendmail/address.resolve
index 01f3011..01f3011 100644
--- a/checksendmail/address.resolve
+++ b/debian/checksendmail/address.resolve
diff --git a/checksendmail/checksendmail.8 b/debian/checksendmail/checksendmail.8
index b129c35..b129c35 100644
--- a/checksendmail/checksendmail.8
+++ b/debian/checksendmail/checksendmail.8
diff --git a/checksendmail/checksendmail.perl b/debian/checksendmail/checksendmail.perl
index a8e9e11..a8e9e11 100644
--- a/checksendmail/checksendmail.perl
+++ b/debian/checksendmail/checksendmail.perl
diff --git a/debian/control b/debian/control
index c964212..59bcfeb 100644
--- a/debian/control
+++ b/debian/control
@@ -2,7 +2,7 @@ Source: sendmail
Section: mail
Priority: extra
Maintainer: Richard Nelson <cowboy@debian.org>
-Standards-Version: 2.4.0.0
+Standards-Version: 2.5.0.0
Package: sendmail
Architecture: any
diff --git a/debian/copyright b/debian/copyright
index b34d8e5..b68a73b 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -1,47 +1,101 @@
This is the Debian Linux prepackaged version of Sendmail, a powerful mail
transport agent.
-This package was put together by Robert Leslie <rob@mars.org> and is
-now being maintained by Johnie Ingram <johnie@debian.org>. The
-sources were obtained from:
+This package was put together by Robert Leslie <rob@mars.org>, was
+maintained by Johnie Ingram <johnie@debian.org>, and is now being
+maintained by Richard Nelson <cowboy@debian.org>. The sources were
+were obtained from:
ftp://ftp.sendmail.org/pub/sendmail/
-The following copyright applies to this software:
-
-
- Copyright (c) 1983, 1995-1997 Eric P. Allman
- Copyright (c) 1988 The Regents of the University of California.
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 3. All advertising materials mentioning features or use of this software
- must display the following acknowledgement:
- This product includes software developed by the University of
- California, Berkeley and its contributors.
- 4. Neither the name of the University nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
-
-
-On Debian systems, further copyright information can be found in the
-file /usr/doc/copyright/BSD.
+ The following copyright applies to this software:
+
+ 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/1998)
diff --git a/debian/db-examples/access b/debian/db-examples/access
new file mode 100644
index 0000000..31d8c38
--- /dev/null
+++ b/debian/db-examples/access
@@ -0,0 +1,66 @@
+# /etc/mail/access
+# Copyright (c) 1998, Richard Nelson <cowboy@debian.org>.
+# Time-stamp: <1998/10/27 10:00:00 cowboy>
+# GPL'd config file, please feed any gripes, suggestions, etc. to me
+#
+# Function:
+# Access Control for this smtp server - determines:
+# * Who we accept mail from
+# * Who we accept relaying from
+# * Who we will not send to
+#
+# Usage:
+# FEATURE(access_db[, hash -o /etc/mail/access])dnl
+# makemap hash access < access
+#
+# Format:
+# lhs:
+# email addr <user@[host.domain]>
+# domain name unless FEATURE(relay_hosts_only) is used,
+# then this is a fqdn - and relay-domains ($=R)
+# must also be fqdns.
+# network number must end on an octet boundary, or
+# you're stuck going the longwinded way ;-{
+# rhs:
+# OK accept mail even if other rules in the
+# running ruleset would reject it.
+# RELAY Allow domain to relay through your SMTP
+# server. RELAY also serves an implicit
+# OK for the other checks.
+# REJECT reject the sender/recipient with a general
+# purpose message that can be customized.
+# confREJECT_MSG [550 Access denied] will be issued
+# DISCARD discard the message completely using
+# the $#discard mailer.
+# ### any text where ### is an RFC 821 compliant error code
+# and "any text" is a message to return for
+# the command
+# Examples:
+# spammer@aol.com REJECT
+# FREE.STEALTH.MAILER@ 550 Spam not accepted
+#
+# Notes:
+# With FEATURE(blacklist_recipients) this is also possible:
+# badlocaluser 550 Mailbox disabled for this username
+# host.mydomain.com 550 That host does not accept mail
+# user@otherhost.mydomain.com 550 Mailbox disabled for this recipient
+#
+# Related:
+# define(`confREJECT_MSG', `550 Access denied')dnl
+# define(`confCR_FILE', `-o /etc/mail/relay-domains')dnl <<- $=R
+# FEATURE(relay_hosts_only)dnl
+# FEATURE(relay_entire_domain)dnl <<- relays any host in the $=m class
+# FEATURE(relay_based_on_MX)dnl <<- relaying for boxes MX'd to you
+# FEATURE(blacklist_recipients)dnl
+# FEATURE(rbl[,alternate server])dnl
+# FEATURE(orbs[,alternate server])dnl <<- Debian addition
+# FEATURE(accept_unqualified_senders)dnl
+# FEATURE(accept_unresolvable_domains)dnl
+#
+# Local addresses 10.x.x.x, 127.x.x.x, 192.168.x.x can relay
+10 RELAY
+127 RELAY
+192.168 RELAY
+#
+# Hosts that are allowed to talk to me
+#
diff --git a/debian/db-examples/relay-domains b/debian/db-examples/relay-domains
new file mode 100644
index 0000000..a1f319d
--- /dev/null
+++ b/debian/db-examples/relay-domains
@@ -0,0 +1,34 @@
+# /etc/mail/relay-domains
+# Copyright (c) 1998, Richard Nelson <cowboy@debian.org>.
+# Time-stamp: <1998/10/27 10:00:00 cowboy>
+# GPL'd config file, please feed any gripes, suggestions, etc. to me
+#
+# Function:
+# Control what hosts are allowed to relay (or be a relay)
+#
+# Usage:
+# define(`confCR_FILE', `-o /etc/mail/relay-domains')dnl
+#
+# Format:
+# lhs:
+#
+# Notes:
+# Class $=R
+# These are domains unless FEATURE(relay_hosts_only) is used,
+# then these names must be fully qualified host names!
+#
+# Related:
+# FEATURE(relay_hosts_only)dnl
+# FEATURE(relay_entire_domain)dnl <<- relays any host in the $=m class
+# FEATURE(relay_based_on_MX)dnl <<- relaying for boxes MX'd to you
+# FEATURE(access_db)dnl
+# EATURE(blacklist_recipients)dnl
+# FEATURE(rbl[,alternate server])dnl
+# FEATURE(orbs[,alternate server])dnl <<- Debian addition
+# FEATURE(accept_unqualified_senders)dnl
+# FEATURE(accept_unresolvable_domains)dnl
+#
+# Hosts that I will relay to:
+#
+# Hosts that can relay to me:
+#
diff --git a/debian/debian.m4 b/debian/debian.m4
index 8c111e4..8344772 100644
--- a/debian/debian.m4
+++ b/debian/debian.m4
@@ -33,7 +33,7 @@ divert(-1)
# SUCH DAMAGE.
#
divert(0)
-VERSIONID(`@(#)debian.m4 8.8 (Debian) 01/21/98')
+VERSIONID(`@(#)debian.m4 8.9.3 (Debian) 19990210')
define(`confCF_VERSION', `Debian/GNU')dnl
define(`LOCAL_MAILER_PATH', `/usr/sbin/sensible-mda')dnl
dnl define(`LOCAL_MAILER_FLAGS', `mnru9')dnl
@@ -44,19 +44,21 @@ define(`PROCMAIL_MAILER_PATH', `/usr/bin/procmail')dnl
define(`USENET_MAILER_PATH', `/usr/bin/inews')dnl
define(`confSAFE_QUEUE', `True')dnl
define(`confTEMP_FILE_MODE', `600')dnl
-define(`STATUS_FILE', `/var/log/sendmail.st')dnl
-define(`confCW_FILE', `-o /etc/mail/sendmail.cw')dnl
-define(`confCT_FILE', `-o /etc/mail/sendmail.ct')dnl
-define(`confCON_EXPENSIVE', `True')dnl
+define(`STATUS_FILE', `/var/log/sendmail.st')dnl
+define(`HELP_FILE', `/usr/share/misc/sendmail.hf')dnl
define(`confHOST_STATUS_DIRECTORY', `/var/state/sendmail')dnl
+define(`confCW_FILE', `-o /etc/mail/sendmail.cw')dnl
+define(`confCT_FILE', `-o /etc/mail/sendmail.ct')dnl
+define(`confCR_FILE', `-o /etc/mail/relay-domains')dnl
+define(`confUSERDB_SPEC', ` /etc/mail/users.db')dnl
+define(`confCON_EXPENSIVE', `True')dnl
define(`confDIAL_DELAY', `45')dnl
define(`confTO_ICONNECT', `30s')dnl
define(`confQUEUE_SORT_ORDER', `Host')dnl
-define(`confMAX_DAEMON_CHILDREN', `30s')dnl
-define(`confDONT_INIT_GROUPS', `True')dnl
+define(`confMAX_DAEMON_CHILDREN', `30')dnl
+define(`confEBINDIR', `/usr/sbin')dnl
# These undocumented features are available in Debian sendmail.
-
# O PidFile=/var/run/sendmail.pid
# O WritableDirectoriesAreFatal=False
# O ChownIsAlwaysSafe=False
@@ -64,6 +66,25 @@ define(`confDONT_INIT_GROUPS', `True')dnl
# O MaxRecipientPerMessage=
# O DeadLetterDrop=False
# O RrtImpliesDSN=False
-# O TCPWrappers=False
+# O TCPWrappers=False -- not for 8.9.0+
+# These are the sendmail 8.9.0 security enhancements
+define(`confDONT_BLAME_SENDMAIL',`ClassFileInUnsafeDirPath,ForwardFileInGroupWritableDirPath,GroupWritableAliasFile,GroupWritableForwardFileSafe,GroupWritableIncludeFileSafe,IncludeFileInGroupWritableDirPath,MapInUnsafeDirPath')dnl
+LOCAL_CONFIG
+# Sendmail 8.9.1a patch for mime headers to protect the various MUAs:
+# This option causes MIME headers to be truncated to a total of 256
+# characters; no individual field is permitted to exceed 128
+# characters. These values should be safe for the common mail clients
+# that are vulnerable.
+#
+# Note: there is a speed trade here, as the entire message must be scanned
+O MaxMimeHeaderLength=256/128
+
+# Sendmail 8.9.3 fix for header based DOS
+# Number of bytes allowed for mail headers, default=32k.
+define(confMAX_HEADERS_LENGTH, 32768)
+
+#
+DOMAIN(generic)dnl
+FEATURE(access_db, `hash -o /etc/mail/access.db')dnl
diff --git a/debian/debproto.mc b/debian/debproto.mc
index 6841807..01c4fdb 100644
--- a/debian/debproto.mc
+++ b/debian/debproto.mc
@@ -38,5 +38,5 @@ divert(-1)
#
divert(0)
-VERSIONID(`@(#)sendmail.mc 8.7 (Linux) 3/5/96')
+VERSIONID(`@(#)sendmail.mc 8.9.1a (Linux) 19981026')
OSTYPE(debian)dnl
diff --git a/debian/dirs b/debian/dirs
deleted file mode 100644
index 23b4a3f..0000000
--- a/debian/dirs
+++ /dev/null
@@ -1,15 +0,0 @@
-DEBIAN
-etc/init.d
-usr/bin
-usr/sbin
-usr/man/man1
-usr/man/man5
-usr/man/man8
-usr/doc/sendmail
-usr/lib/sm.bin
-usr/lib/sendmail.cf/hack
-usr/lib/sendmail.cf/domain
-usr/lib/sendmail.cf/ostype
-usr/lib/sendmail.cf/cf
-var/state/sendmail
-var/log
diff --git a/debian/ip-up.d b/debian/ip-up.d
index 7bada47..e965be2 100644
--- a/debian/ip-up.d
+++ b/debian/ip-up.d
@@ -10,5 +10,8 @@
# Start/reload sendmail as needed
#/etc/init.d/sendmail reload
+# Purge the persistant host status so that *all* mail will be tried
+purgestat
+
# Process the sendmail queue
-#runq
+runq
diff --git a/debian/nodns.m4 b/debian/nodns.m4
index c84d2c5..489e90b 100644
--- a/debian/nodns.m4
+++ b/debian/nodns.m4
@@ -38,7 +38,7 @@ divert(-1)
undefine(`confBIND_OPTS')dnl
define(`confSERVICE_SWITCH_FILE', `/etc/nssnodns.conf')dnl
FEATURE(nocanonify)
-# HACK(nodns): What DNS?
+# `HACK(nodns)': What DNS?
O DontProbeInterfaces=True
diff --git a/debian/notes b/debian/notes
new file mode 100644
index 0000000..6eb17ea
--- /dev/null
+++ b/debian/notes
@@ -0,0 +1,2 @@
+dpkg-source -x, dpkg-buildpackage -B -rsudo and then fetch the changes file, pgp-ing and ready, the flag -B is important to the binary-indep section of the debian/rules file --- thats all
+*haggie!koptein@ppp014asc.fho-emden.de* powerpc builds all packages with an auto-builder (wanna-build), but it is currently broken with an db error
diff --git a/debian/orbs.m4 b/debian/orbs.m4
new file mode 100644
index 0000000..1be5bb3
--- /dev/null
+++ b/debian/orbs.m4
@@ -0,0 +1,5 @@
+VERSIONID(`@(#)orbs.m4 1.1 1998-09-14')
+divert(-1)
+
+dnl define(`_ORBS_', ifelse(_ARG_, `', `orbs.dorkslayers.com', `_ARG_'))dnl
+define(`_ORBS_', ifelse(_ARG_, `', `relays.orbs.org', `_ARG_'))dnl
diff --git a/debian/orbs.patch.README b/debian/orbs.patch.README
new file mode 100644
index 0000000..d6b12d6
--- /dev/null
+++ b/debian/orbs.patch.README
@@ -0,0 +1,112 @@
+From MAILER-DAEMON Tue Oct 20 12:08:00 1998
+Date: Tue, 20 Oct 1998 12:08:00 -0400 (EDT)
+From: Mail System Internal Data <MAILER-DAEMON@badlands.lexington.ibm.com>
+Subject: DON'T DELETE THIS MESSAGE -- FOLDER INTERNAL DATA
+X-IMAP: 0908899680 0000000000
+Status: RO
+
+This text is part of the internal format of your mail folder, and is not
+a real message. It is created automatically by the mail system software.
+If deleted, important folder data will be lost, and it will be re-created
+with the data reset to initial values.
+
+From cowboy@badlands.lexington.ibm.com Tue Oct 20 11:48:28 1998 -0400
+Status: R
+X-Status:
+X-Keywords:
+Return-Path: <<@LEXVMK.LEXINGTON.IBM.COM:SMTP3@IINUS1>>
+Received: from LEXVMK.LEXINGTON.IBM.COM (lexvmk.lexington.ibm.com [9.51.16.254])
+ by badlands.lexington.ibm.com (8.9.1a/8.9.1/Debian/GNU) with SMTP id LAA31227
+ for <cowboy@badlands.lexington.ibm.com>; Tue, 20 Oct 1998 11:48:27 -0400
+Received: from LEXVMK by LEXVMK.LEXINGTON.IBM.COM (IBM VM SMTP V2R4)
+ with BSMTP id 8846; Tue, 20 Oct 98 11:48:26 EDT
+Received: by LEXVMK (cvtto822 4.0.0) via <smtp3@iinus1> id 9595 (RFC822)
+ for <cowboy@lexgate>; Tue, 20 Oct 98 11:48:26 -0400
+Received: from master.debian.org [209.176.56.5] by vnet.IBM.COM (IBM VM SMTP V2R4a) via TCP with SMTP ; Tue, 20 Oct 1998 11:48:20 EDT
+Received: (qmail 8440 invoked by uid 1163); 20 Oct 1998 15:48:21 -0000
+Delivered-To: cowboy@debian.org
+Received: (qmail 8427 invoked by uid 847); 20 Oct 1998 15:48:20 -0000
+Delivered-To: joey-packages-sendmail@packages.debian.org
+Received: (qmail 8422 invoked from network); 20 Oct 1998 15:48:19 -0000
+Received: from jupiter.bsfh.org (ph@204.101.57.25)
+ by master.debian.org with SMTP; 20 Oct 1998 15:48:19 -0000
+Received: (from ph@localhost)
+ by jupiter.bsfh.org (8.9.1a/8.9.1/Debian/GNU) id LAA13376
+ for sendmail@packages.debian.org; Tue, 20 Oct 1998 11:48:18 -0400
+Message-ID: <19981020114817.A1338@jupiter.bsfh.org>
+Date: Tue, 20 Oct 1998 11:48:17 -0400
+From: Paul Haggart <ph@bsfh.org>
+To: sendmail@packages.debian.org
+Subject: orbs - open relay blocking system
+Mime-Version: 1.0
+Content-Type: multipart/mixed; boundary=zhXaljGHf11kAtnf
+X-Mailer: Mutt 0.93.2i
+X-Uptime: 4:41pm up 3 min, 3 users, load average: 1.16, 0.53, 0.20
+X-SpamBouncer: 1.00h (10/18/98)
+X-SBRule: Pass-No Pattern Matching
+X-SBClass: OK
+X-Sorted: Default
+
+
+--zhXaljGHf11kAtnf
+Content-Type: text/plain; charset=us-ascii
+
+ Is there any way I can get the orbs.m4 and proto.m4 patch into the next
+sendmail? I hate patching my local version because it all disappears at the
+next upgrade.
+
+ I've attached the files.
+
+ More info about ORBS is at http://www.dorkslayers.com/orbs/
+
+--
+Paul Haggart - System Admin, Cybertap Inc. - Debian Linux - PGP 0xD61313E9
+
+
+--zhXaljGHf11kAtnf
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: attachment; filename="proto.m4.patch"
+
+*** proto.m4.19980930 Wed Sep 30 20:21:52 1998
+--- proto.m4 Wed Sep 30 20:18:18 1998
+***************
+*** 1068,1076 ****
+ ifdef(`_RBL_', `dnl
+ # MAPS project checks -- http://maps.vix.com/
+ R$* $: $&{client_addr}
+! R$-.$-.$-.$- $: $(host $4.$3.$2.$1._RBL_. $: OK $)
+! ROK $@ OK
+! R$+ $#error $@ 5.7.1 $: "Mail from " $&{client_addr} " refused; see http://maps.vix.com/rbl/"',
+ `dnl')
+
+ ######################################################################
+--- 1068,1084 ----
+ ifdef(`_RBL_', `dnl
+ # MAPS project checks -- http://maps.vix.com/
+ R$* $: $&{client_addr}
+! R$-.$-.$-.$- $: <?> $(host $4.$3.$2.$1._RBL_. $: OK $)
+! R<?>OK $: OKSOFAR
+! R<?>$+ $#error $@ 5.7.1 $: "Mail from " $&{client_addr} " refused; see http://maps.vix.com/rbl/"',
+! `dnl')
+!
+! ifdef(`_ORBS_', `dnl
+! # ORBS project checks -- http://www.dorkslayers.com/orbs/
+! R$* $: $&{client_addr}
+! R$-.$-.$-.$- $: <?> $(host $4.$3.$2.$1._ORBS_. $: OK $)
+! R<?>OK $: OKSOFAR
+! R<?>$+ $#error $@ 5.7.1 $: "Mail from " $&{client_addr} " refused; see http://www.dorkslayers.com/orbs/"',
+ `dnl')
+
+ ######################################################################
+
+--zhXaljGHf11kAtnf
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: attachment; filename="orbs.m4"
+
+VERSIONID(`@(#)orbs.m4 1.1 1998-09-14')
+divert(-1)
+
+define(`_ORBS_', ifelse(_ARG_, `', `orbs.dorkslayers.com', `_ARG_'))dnl
+
+--zhXaljGHf11kAtnf--
+
diff --git a/debian/orca.m4 b/debian/orca.m4
new file mode 100644
index 0000000..c881cb8
--- /dev/null
+++ b/debian/orca.m4
@@ -0,0 +1,4 @@
+VERSIONID(`@(#)orca.m4 1.0 1998-11-23')
+divert(-1)
+
+define(`_ORCA_', ifelse(_ARG_, `', `dul.orca.bc.ca', `_ARG_'))dnl
diff --git a/debian/part1 b/debian/part1
deleted file mode 100644
index f6f347a..0000000
--- a/debian/part1
+++ /dev/null
@@ -1,1755 +0,0 @@
-Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!hookup!nic.ott.hookup.net!vertex.tor.hookup.net!nic.win.hookup.net!news-out.internetmci.com!newsfeed.internetmci.com!uwm.edu!math.ohio-state.edu!howland.erols.net!newsxfer3.itd.umich.edu!news.cic.net!not-for-mail
-From: brad@etext.org
-Newsgroups: comp.mail.sendmail,comp.mail.misc,comp.answers,news.answers
-Subject: comp.mail.sendmail Frequently Asked Questions (Part 1 of 2)
-Followup-To: comp.mail.sendmail
-Date: 27 Mar 1997 06:01:28 GMT
-Organization: The ETEXT Archives
-Lines: 1734
-Approved: news-answers-request@MIT.Edu
-Distribution: world
-Expires: 05/01/97 02:00:01
-Message-ID: <5hd2fo$pou$1@news.cic.net>
-Reply-To: sendmail-faq@etext.org (Sendmail FAQ Maintainers)
-NNTP-Posting-Host: locust.cic.net
-Summary: This posting contains a list of Frequently Asked Questions
- (and their answers) about the program "sendmail", distributed with
- many versions of Unix. It should be read by anyone who wishes to
- post to the Usenet newsgroup comp.mail.sendmail.
-Keywords: sendmail mail SMTP FAQ
-X-Posting-Frequency: posted on the 27th of each month
-Xref: senator-bedfellow.mit.edu comp.mail.sendmail:42630 comp.mail.misc:38790 comp.answers:25080 news.answers:98196
-
-Posted-By: auto-faq 3.1.1.2
-Archive-name: mail/sendmail-faq/part1
-
-URL: http://www.his.com/~brad/sendmail/index.html
-
-
- comp.mail.sendmail
- Frequently Asked Questions (FAQ)
- Last updated March 24, 1997
-
- Copyright 1996, by Brad Knowles, all rights reserved
-
-
-This FAQ is edited and maintained by Brad Knowles <brad@etext.org>.
-The official archive for all FAQs posted to <news:news.answers>
-is <ftp://rtfm.mit.edu/pub/usenet/news.answers/>, with many known
-mirrors. On this site, the latest version of this FAQ can be found
-in <ftp://rtfm.mit.edu/pub/usenet/news.answers/mail/sendmail-faq/>.
-Since this server tends to be extremely busy, as an alternative,
-you might want to try using <http://www.imc.org/sendmail-faq-1>
-and <http://www.imc.org/sendmail-faq-2> instead.
-
-If you don't have access to FTP or WWW, this FAQ can be retrieved by
-sending Internet email to <mail-server@rtfm.mit.edu> with an empty
-subject line (it gets ignored) and the command "send
-usenet/news.answers/mail/sendmail-faq/part*" as the body of the
-message (omitting the quotes, of course).
-
-As an alternative, you might want to try sending Internet email
-to <info@imc.org> with an empty subject line (it gets ignored)
-and "send sendmail-faq-*" as the body of the body of the message
-(again, omitting the quotes).
-
-Additional alternative access methods are detailed within.
-
-
-This FAQ is in RFC 1153 digest format. The "Date:" field of each
-entry represents the date of the last update made to that entry.
-
-
-This FAQ has now been split into two parts, to try and make it easier
-to pass through older or less capable news or mail gateways.
-
-
-The intent is to ultimately make this document more web-friendly (in
-that all original work is done in SGML), and using the linuxdoc-sgml
-tools, automatically generate both the HTML and ASCII text versions,
-automatically posting the ASCII version to comp.mail.sendmail as
-appropriate.
-
-In the meanwhile, all pseudo-HTMLized versions of this FAQ are
-considered unsupported. We cannot be held responsible for what
-someone else's program does to this document in an attempt to
-make it more web-friendly. Nevertheless, the Landfield Hypertext
-Usenet FAQ Archive seems to work well, and if you must access
-the comp.mail.sendmail FAQ via the web, try slinging over to
-<http://www.landfield.com/faqs/mail/sendmail-faq/>.
-
-
-Comments/updates should be sent to <sendmail-faq@etext.org>.
-
-----------------------------------------------------------------------
-
-Date: March 24, 1997
-Subject: Table of Contents
-
-Table of Contents
-=================
-
- PART ONE
- ========
-
- 0. TO DO
-
- 1. COPYRIGHT NOTICE / REDISTRIBUTION REQUIREMENTS
-
- 2. INTRODUCTION / MISCELLANEOUS
- 2.1 What is this newsgroup?
- 2.2 What is the scope of this FAQ?
- 2.3 Where can I find the latest version of this FAQ?
- 2.4 How do I access comp.mail.sendmail by email?
- 2.5 Where can I ask email-related DNS questions?
- 2.6 How can I subscribe to these newsgroups?
- 2.7 Which version of sendmail should I run?
- 2.8 What is the latest release of sendmail?
- 2.9 Where can I find it?
- 2.10 What are the differences between Version 8 and other
- versions?
- 2.11 What's the best platform for running sendmail?
- 2.12 What is BIND and where can I get the latest version?
- 2.13 What is smrsh and where can I get it?
- 2.14 What is smap and where can I get it?
- 2.15 What is TCP-Wrappers and where can I get it?
- 2.16 Why won't db 1.85 build for my SGI running Irix >= 5.2?
- 2.17 What is makemap and where can I get it?
-
- 3. VERSION 8 SPECIFIC ISSUES
- 3.1 How do I make all my addresses appear to be from a single
- host?
- 3.2 How do I rewrite my "From:" lines to read
- ``First_Last@My.Domain''?
- 3.3 So what was the user database feature intended for?
- 3.4 Why are you so hostile to using full names for email
- addresses?
- 3.5 Where do I find this user database (UserDB) code?
- 3.6 How do I get the user database to work with Pine or
- with FEATURE(always_add_domain)?
- 3.7 How do I manage several (virtual) domains?
- 3.8 There are four UUCP mailers listed in the configuration
- files. Which one should I use?
- 3.9 How do I fix "undefined symbol inet_aton" and "undefined
- symbol _strerror" messages?
- 3.10 How do I solve "collect: I/O error on connection" errors?
- 3.11 Why can't my users forward their mail to a program?
- 3.12 Why do connections to the SMTP port take such a long time?
- 3.13 Why do I get "unknown mailer error 5 -- mail: options
- MUST PRECEDE recipients" errors?
- 3.14 Why does version 8 sendmail panic my SunOS box?
- 3.15 Why does the "From " header gets mysteriously munged
- when I send to an alias?
- 3.16 Why doesn't MASQUERADE_AS (or the user database) work
- for envelope addresses as well as header addresses?
- 3.17 How do I run version 8 sendmail and support the MAIL11V3
- protocol?
- 3.18 Why do messages disappear from my queue unsent?
- 3.19 When is sendmail going to support RFC 1522 MIME header
- encoding?
- 3.20 Why can't I get mail to some places, but instead
- always get the error "reply: read error from
- name.of.remote.host"?
- 3.21 Why doesn't "FEATURE(xxx)" work?
- 3.22 How do I configure sendmail to not use DNS?
- 3.23 How do I get all my queued mail delivered to my Unix
- box from my ISP?
-
-
- PART TWO
- ========
-
- 4. GENERAL SENDMAIL ISSUES
- 4.1 Should I use a wildcard MX for my domain?
- 4.2 How can I set up an auto-responder?
- 4.3 How can I get sendmail to deliver local mail to
- $HOME/.mail instead of into /usr/spool/mail (or
- /usr/mail)?
- 4.4 Why does it deliver the mail interactively when I'm
- trying to get it to go into queue only mode?
- 4.5 How can I solve "config error: mail loops back to
- myself" messages?
- 4.6 Why does my sendmail process sometimes hang when
- connecting over a SLIP/PPP link?
- 4.7 How can I summarize the statistics generated by
- sendmail in the syslog?
- 4.8 How can I check my sendmail.cf to ensure that it's
- re-writing addresses correctly?
- 4.9 What is procmail, and where can I get it?
- 4.10 How can I solve "cannot alias non-local names" errors?
-
- 5. VENDOR/OS SPECIFIC SENDMAIL ISSUES
- 5.1 Sun Microsystems SunOS/Solaris 1.x/2.x
- 5.1.1 How can I solve "line 273: replacement $3 out of
- bounds" errors?
- 5.1.2 How can I solve "line 445: bad ruleset 96 (50 max)"
- errors?
- 5.1.3 Why does version 8 sendmail (< 8.7.5) sometimes
- hang under Solaris 2.5?
- 5.1.4 Why can't I use SunOS/Solaris to get email to
- certain large sites?
- 5.2 IBM AIX
- 5.2.1 The system resource controller always reports
- sendmail as "inoperative". What's wrong?
- 5.2.2 Why can't I use AIX to get email to some sites?
- 5.2.3 Why can't I get sendmail 8.7.1 to use MX records
- with AIX 3.2.5?
-
- 6. ADDITIONAL INFORMATION SOURCES (RFC 1807 bibliography format)
- 6.1 Reference material devoted exlusively to sendmail
- 6.2 Reference material with chapters or sections on sendmail
- 6.3 Reference material on subjects related to sendmail
- 6.4 World-wide web index pages on sendmail
- 6.5 World-wide web index pages Internet email in general
- 6.6 Online tutorials for sendmail
- 6.7 Online archives of mailing lists and Usenet newsgroups,
- relating to Internet email
-
- 7. THANKS!
-
-------------------------------
-
-Date: January 17, 1997
-Subject: Q0 -- TO DO list
-
-* Make the FAQ more web-friendly by writing it in SGML and using
- the linuxdoc-sgml tools to automate the generation of the HTML
- and ASCII text versions.
-* Index
-* Additional net resources (web pages, anonymous ftp sites, etc...)
-* Larger, more clearly written annotated bibliography (including RFCs
- and comments/corrections for books specific to sendmail)
-* Reorganize by platform/version of sendmail (All Sun questions in one
- section, all AIX questions in another, etc...)
-
-------------------------------
-
-Date: May 28, 1996
-Subject: Q1 -- COPYRIGHT NOTICE / REDISTRIBUTION REQUIREMENTS
-
- The entire contents of this document are copyright 1996 by Brad
-Knowles, all rights reserved.
-
- This document may be freely distributed for non-profit purposes
-(including, but not limited to: posting to mailing lists, Usenet
-newsgroups, and world-wide-web pages; inclusion on CD-ROM or other
-distribution media; and insertion into text retrieval systems), so
-long as it is the latest version available at the time, all parts are
-distributed together, and it is kept completely intact without
-editing, changes, deletions, or additions. Non-profit redistribution
-in accordance with these guidelines does not require contact with or
-approval from the copyright holder.
-
- Redistribution of this document for profit without express prior
-permission is not allowed. At the very least, expect to provide the
-copyright holder a free copy of the product (exactly as it would be
-sold to customers, all distribution media intact), or a percentage of
-the gross revenue from said product and sufficient proof that the
-integrity and completeness requirements set for non-profit
-distribution will be met.
-
-
- In the event that the copyright holder discovers a redistributed
-version that is not in compliance with the above requirements, he will
-make a good-faith effort to get it corrected or removed, and failing
-that, at least note its deprecated status in a new version. Legal
-action will likely be taken against redistribution for profit that
-is not in compliance with the above requirements.
-
-------------------------------
-
-Date: May 28, 1996
-Subject: Q2.1 -- What is this newsgroup?
-
- The Usenet newsgroup <news:comp.mail.sendmail> is dedicated to the
-discussion of the program named "sendmail" in all its various forms.
-It is most commonly found on computers running a flavor of the
-Operating System known as Unix, or derived from Unix.
-
- This program has been ported to other OSes, but those versions
-have typically been ported by a particular vendor and are considered
-proprietary. There are many versions of sendmail, but the original
-author (Eric Allman) is continuing development on a particular version
-typically referred to as "Version Eight" or sometimes just "V8". This
-is considered by many to be the One True Version. This is also the
-version that this FAQ is centered around.
-
-
- If you have a question that amounts to "How do I send mail to my
-friend?", then you're in the wrong newsgroup. You should first check
-with your System or E-Mail Administrator(s), BBS SysOp(s), etc...
-before you post your question publicly, since the answer will likely
-be very highly dependant on what software and hardware you have. You
-also don't want to embarass yourself publicly, nor do you want to
-annoy the kinds of people who are likely to be the counterparts of
-your System or E-Mail Administrator(s), BBS SysOp(s), etc.... If
-asking them doesn't do you any good, make sure you read this FAQ and
-the other mail-related FAQs at the archive sites listed below.
-
- If you have a question about another program similar to sendmail
-(technically referred to as an "SMTP MTA"), an SMTP Gateway package,
-or a LAN email package, then you should see if there is another group
-in the <news:comp.mail> hierarchy that more closely matches the
-particular program you want to ask a question about. For example, the
-SMTP MTA known as Smail has <news:comp.mail.smail> dedicated to it.
-The Mail User Agent (MUA) Eudora has two newsgroups dedicated to it
-(<news:comp.mail.eudora.mac> and <news:comp.mail.eudora.ms-windows>),
-depending on which hardware platform you use. If there isn't a more
-appropriate newsgroup, try <news:comp.mail.misc>. Again, make sure
-your question isn't already addressed in one of the mail-related
-FAQs or other available documentation. See the IMC website (more
-info below) for a good list of mail-related FAQs.
-
-
- If you have a question about an older or vendor-proprietary
-version of sendmail, be prepared for a lot of answers that amount to
-"Get V8". Version 8 isn't a panacea, but it does solve many problems
-known to plague previous versions, as well as having many new features
-that make it much easier to administer large or complex sites. In
-many cases, it makes at least possible what was previously virtually
-impossible, and relatively easy the previously difficult.
-
-
- There are, of course, many alternative programs that have sprung
-up in an attempt to answer one or another weakness or perceived fault
-of sendmail, but so far, none of them have had the kind of success it
-would require to unseat it as the de facto standard program for
-sending Internet mail. Obviously, this forum should not be used to
-discuss the merits of any of the alternative programs versus sendmail.
-These kinds of discussions should be taken to <news:comp.mail.misc>,
-or you should agitate to get a new newsgroup or newsgroup hierarchy
-created where that sort of thing is acceptable (or even the norm, such
-as a <news:comp.mail.advocacy> or <news:comp.mail.mta.advocacy>
-newsgroup).
-
-------------------------------
-
-Date: July 9, 1996
-Subject: Q2.2 -- What is the scope of this FAQ?
-
- This FAQ is strongly centered around version 8 sendmail, for many
-reasons. First and foremost, this is the area of most interest on the
-part of the maintainer of this FAQ. Secondly, version 8 is where most
-of the additional development is being concentrated. Version 8
-sendmail is also the best documented of all SMTP MTAs, by virtue of
-the book by Bryan Costales (see entry
-sendmail-faq//book/ISBN/1-56592-056-2 in Q6.1).
-
- Other versions of sendmail get mentioned in passing, and some
-interesting interactions between version 8 and various OSes is also
-covered.
-
- This FAQ is aimed primarily at the experienced Unix System
-Administrator/Postmaster/DNS Domain Administrator. If you're looking
-for introductory texts, see the references in Q6.1.
-
-
- Where I've provided URLs, I've generally tried to keep them
-exactly as they should be entered, without line breaks or anything
-else. This may make them or the surrounding text ugly, but hopefully
-they'll be easier to cut-and-paste, or just click on once I've got an
-HTMLized version. However, this has not been possible in the
-bibliography section, since I'm trying to adhere to RFC 1807
-guidelines, and they explicitly require lines to be no longer than 79
-characters. In those cases, I've tried to break the lines at
-relatively obvious and innocuous places.
-
-------------------------------
-
-Date: January 21, 1997
-Subject: Q2.3 -- Where can I find the latest version of this FAQ?
-
- I post changes as they occur to my sendmail FAQ support page
-at <http://www.his.com/pub/brad/sendmail/>.
-
- The ASCII text of my private version can be found at
-<ftp://ftp.his.com/pub/brad/sendmail/sendmail-faq/part*>, while
-the latest "single part" version before the split can be found at
-<ftp://ftp.his.com/pub/brad/sendmail/sendmail-faq/old>. I don't
-have an HTMLized version yet, but when I do, I will put in a link
-to it from my support page as well as updating this document.
-
-
- The official version (as posted to <news:news.answers>) is in
-<ftp://rtfm.mit.edu/pub/usenet/news.answers/mail/sendmail-faq/>.
-
- The Internet Mail Consortium <http://www.imc.org>
-maintains an archive of email related FAQs and many other
-documents. On their site, the latest version of this FAQ
-can be found in <http://www.imc.org/sendmail-faq-1> and
-<http://www.imc.org/sendmail-faq-2>.
-
-
- Unfortunately, the parser for the Ohio State semi-official
-pseudo-HTMLized version tends to misinterpret the way I provide
-URLs, so I no longer support it or provide the URL for this FAQ at
-that site. However, Kent Landfield has put together an alternative
-web archive of Usenet FAQs, and it appears to parse things in a
-more sensible manner.
-
- The root of the Landfield FAQ archive is at
-<http://www.landfield.com/faqs/>, and the comp.mail.sendmail FAQ
-can be found at <http://www.landfield.com/faqs/mail/sendmail-faq/>.
-
- The Landfield Usenet Hypertext FAQ Archive supports full text
-searching with multiple ways to access Usenet's Frequently Asked
-Question postings. Hyperlinks are enabled where ever possible to
-make references easy to follow. A full set of FAQ statistics is
-also available.
-
-
- If you don't have access to FTP or WWW, this FAQ can be
-retrieved by sending Internet email to <mail-server@rtfm.mit.edu>
-with an empty subject line (it gets ignored) and the command "send
-usenet/news.answers/mail/sendmail-faq/part*" as the body of the
-message (omitting the quotes, of course).
-
- Since this server tends to be extremely busy, as an alternative,
-you might want to try sending Internet email to <info@imc.org> with
-an empty subject line (it gets ignored) and "send sendmail-faq-*"
-as the body of the body of the message (again, omitting the quotes).
-
-
- Well known mirrors for the FAQs archived at rtfm.mit.edu can be
-found at:
-
- Continent URL
- --------- -------------------------------------------
- North <ftp://mirrors.aol.com/pub/rtfm/usenet/>
- America <ftp://ftp.uu.net/usenet/news.answers/>
- <ftp://ftp.seas.gwu.edu/pub/rtfm/>
- <http://www.landfield.com/faqs/>
- Europe <ftp://ftp.uni-paderborn.de/pub/FAQ/>
- <ftp://ftp.Germany.EU.net/pub/newsarchive/news.answers/>
- <ftp://ftp.sunet.se/pub/usenet/>
- <http://www.cs.ruu.nl/cgi-bin/faqwais/>
- <http://www.lib.ox.ac.uk/internet/news/faq/by_group.index.html>
- Asia <ftp://nctuccca.edu.tw/USENET/FAQ/>
- <ftp://hwarang.postech.ac.kr/pub/usenet/news.answers/>
- <ftp://ftp.hk.super.net/mirror/faqs/>
- Australia <ftp://ftp.info.au/usenet/FAQs/>
-
-
-
- Additional information on how to get access
-to various Internet resources by email can be
-found in Bob Rankin's Internet-by-Email FAQ,
-<ftp://rtfm.mit.edu/pub/usenet/news.answers/internet-services/access-via-email>.
-
- To get the latest edition of this document sent to you by return
-email, send a message to one of these addresses:
-
- To: mail-server@rtfm.mit.edu (for US, Canada & South America)
- Enter only this line in the BODY of the note:
- send usenet/news.answers/internet-services/access-via-email
-
- To: mailbase@mailbase.ac.uk (for Europe, Asia, etc.)
- Enter only this line in the BODY of the note:
- send lis-iis e-access-inet.txt
-
-------------------------------
-
-Date: November 24, 1996
-Subject: Q2.4 -- How do I access comp.mail.sendmail by email?
-
- Send email to <mxt@dl.ac.uk> with the command "sub
-comp-news.comp.mail.sendmail full-US-ordered-email-address" as
-the body of the message (with your correct address in place of the
-"full-US-ordered-email-address", and omitting the double quotes in
-all cases of this example).
-
- E-mail you want posted on comp.mail.sendmail should be sent to
-<comp-mail-sendmail@dl.ac.uk>
-
-------------------------------
-
-Date: March 23, 1996
-Subject: Q2.5 -- Where can I ask email-related DNS questions?
-
- Depending on how deeply they get into the DNS, they can be asked
-here. However, you'll probably be told that you should send them to
-the Usenet newsgroup <news:comp.protocols.tcp-ip.domains> (DNS in
-general) or to the Info-BIND mailing list (if the question is specific
-to that program).
-
-------------------------------
-
-Date: May 23, 1996
-Subject: Q2.6 -- How can I subscribe to these?
-
- For <news:comp.protocols.tcp-ip.domains>, you have to be on
-Usenet. They don't have a news-to-mail gateway yet (I'm working on
-this), but they do have a FAQ, and it can be found at
-<ftp://ftp.njit.edu/pub/dns/Comp.protocols.tcp-ip.domains.FAQ>.
-
- Questions from all levels of experience can be found on this
-newsgroup (as well as people to answer them), so don't be shy about
-asking a question you think may be too simple.
-
-
- For the Info-BIND mailing list, send email to
-<bind-request@vix.com> with and empty subject (it gets ignored) and
-the command "subscribe" as the body of the message. Submissions
-should be sent to <bind@vix.com>.
-
- Note that this list is now moderated, and anything you post to it
-may get material added, deleted, or changed by the moderator. He
-reserves the right to reject any postings (and possibly unsubscribe
-the poster), if he deems them inappropriate.
-
-------------------------------
-
-Date: May 23, 1996
-Subject: Q2.7 -- Which version of sendmail should I run?
-
- If you're concerned at all about the security of your machines,
-you should make sure you're at least running a recent release of
-version 8 sendmail (either from your vendor or the public version
-detailed in 1.8).
-
- Check the CERT Alerts and Summaries (details in 1.13) to make sure
-that you're running a version that is free of known security holes.
-Just because the sendmail program provided by your vendor isn't list
-doesn't mean that you're not vulnerable, however. If your particular
-vendor or version isn't listed, check with your vendor and on the
-appropriate Internet mailing lists and Usenet newsgroups to verify.
-
- If nothing else, the most recent public version is usually a
-pretty good bet, although you should check <news:comp.mail.sendmail>
-to see if anyone has posted recent comments that haven't yet been
-folded into a new release.
-
-
- That said, you need to look at what the primary function is for
-the machine. If its primary function is to run some CAD/CAM package
-on the desk of an Engineer, then there's probably not much sense in
-replacing the vendor-supplied version of sendmail (assuming it's
-secure, according to the CERT Alerts and Summaries). Just set the
-machine up to forward all outbound mail to a central mail relay, and
-then worry about making that central mail relay the best it can be.
-Also arrange to have all their inbound mail pass through a central
-Mail eXchanger (probably the same machine as the central Mail Relay),
-for the same reasons.
-
-
- If the primary function for a machine is to act as that central
-Mail Relay/Mail eXchanger, then I *strongly* recommend the best
-version of sendmail you can get, and in my opinion that is the latest
-release of version 8. IDA sendmail is also pretty good, but virtually
-everything it does, version 8 does better, and version 8 has the
-additional advantage of having continued development as well. On a
-central mailhub, recent versions of IDA sendmail are the oldest
-sendmail that I'd even consider leaving in place instead of replacing
-with version 8.
-
- However, keep in mind that version 8 still hasn't been ported (so
-far as we know) to some of the older (and perhaps more esoteric)
-platforms, and if you're stuck using one of them, you may not have
-much choice.
-
-
- Recently, some vendors have started shipping (or announced that
-they will soon ship) version 8 sendmail pre-configured for their
-machines. Unfortunately, in most cases this means you get a
-pre-compiled binary and a sendmail.cf file (that may need a bit of
-tweaking), but not much else of the "standard" version 8 sendmail
-installation kit. Silicon Graphics (SGI) is known to already be
-shipping version 8 sendmail in this fashion, and both Hewlett-Packard
-and Sun Microsystems have announced that they soon will be (Sun has a
-patch today that can be applied to upgrade many machines to an older
-release of version 8 sendmail).
-
- This may be suitable for desktop machines forwarding all their
-mail to a central Mail Relay and receiving all their mail from a
-central Mail eXchanger, but I personally believe that this is not
-likely to be suitable for the central Mail Relay/Mail eXchanger
-itself. In that case, I recommend you get and install the latest
-version and get the m4 macros, the on-line documentation, the source
-code, etc....
-
-------------------------------
-
-Date: January 21, 1997
-Subject: Q2.8 -- What is the latest release of sendmail?
-
- For version 8 sendmail, there are three release trees.
-
- For those people who, for whatever reason, are unable or
-unwilling to upgrade to version 8.8.z, releases of version 8.6 and
-8.7 sendmail are still available. As of this writing, the most
-recent release of version 8.6 sendmail is 8.6.13, and the most
-recent release of version 8.7 sendmail is 8.7.6.
-
- For the most recent releases of 8.6 and 8.7 sendmail, there is a
-version number difference between the sendmail program itself and the
-associated configuration files. This is okay. The security-related
-bug fixes that were made only required changes to the sendmail
-program itself and not the configuration files, so only the version
-number of the sendmail program itself was incremented.
-
-
- The most recent release of version 8.8 sendmail is 8.8.5.
-
- On machines exposed directly to the Internet, you should either
-already be running 8.8.5 sendmail or plan on upgrading to it in the
-immediate future. This release is considered "mature", has security
-fixes included that will not be found in any previous release, and
-therefore supercedes all previous releases.
-
- There is no further support for previous releases of sendmail.
-
-------------------------------
-
-Date: January 21, 1997
-Subject: Q2.9 -- Where can I find it?
-
- By anonymous FTP from ftp.sendmail.org in /pub/sendmail, or (in
-URL form) via <ftp://ftp.sendmail.org/pub/sendmail/>. If you care,
-there should be files in this directory that end with the extension
-".sig" which you can check with PGP to make sure that corresponding
-archives haven't been modified. You'll need to have the PGP key
-of Eric Allman on your public keyring to be able to verify these
-archives with their associated .sig files.
-
- Current releases of sendmail can also be found at
-<ftp://ftp.cs.berkeley.edu/ucb/src/sendmail/>.
-
- There are no other known official version 8 sendmail mirrors.
-
-
- Check the sendmail home page at <http://www.sendmail.org/> for
-late-breaking updates and other useful information.
-
- If you want to be notified regarding future updates to sendmail
-and other items of potential interest, you may want to subscribe
-to the sendmail-announce mailing list. Address your subscription
-requests to "majordomo@lists.sendmail.org" with "subscribe
-sendmail-announce" as the body of the message.
-
-------------------------------
-
-Date: March 23, 1996
-Subject: Q2.10 -- What are the differences between Version 8 and
- other versions?
-
- See doc/changes/changes.{me,ps} in the distribution. See also
-RELEASE_NOTES at the top level.
-
-------------------------------
-
-Date: March 24, 1997
-Subject: Q2.11 -- What is BIND and where can I get the latest version?
-
- BIND stands for "Berkeley Internet Name Daemon", and is the
-Internet de-facto standard program for turning host names into IP
-addresses.
-
- The BIND Home Page is at <http://www.isc.org/bind.html>, which
-provides pointers to the most recent release of BIND. Note that
-BIND 4.9.5-P1 is the most recent "production version", and BIND
-8.1 (the next major release; skipping 5.x-7.x) is a "release
-candidate" as of version 8.1T3B. See the BIND 8.1T3B announcement
-at <ftp://ftp.isc.org/isc/bind/src/testing/t3b-ann.asc> for more
-information.
-
-
- Note that there are bugs in older resolver libraries, which can
-cause problems getting to large sites (that list more than five IP
-addresses for a particular name), or represent a huge security hole
-as they do not check the returned data to see if it will fit in the
-amount of space pre-allocated for it.
-
- If at all possible, you should get the most recent "release"
-version of BIND and make a serious attempt to integrate it into
-your configuration, since virtually all vendor-provided resolver
-libaries are woefully out of date.
-
-------------------------------
-
-Date: March 24, 1997
-Subject: Q2.12 -- What's the best platform for running sendmail?
-
- Generally speaking, I adhere to the old axiom that you should
-choose what software you want to run first, then choose the platform
-(hardware and OS) that best runs this software. By this token, if
-sendmail is the software, then a recent version of BSD Unix would
-probably be best, since sendmail was developed at UC Berkeley on
-BSD Unix. FreeBSD and BSD/OS are two known implementations of
-BSD Unix for Intel-based PC's (among other hardware platforms),
-and this would make them the most "native" OSes for sendmail.
-FreeBSD is freely available by anonymous ftp or on CD-ROM, and
-BSD/OS is a commercial product.
-
- However, not everyone has this kind of "luxury". If you're on a
-homogenous network (i.e., completely composed of only one type of
-hardware and OS), then you should probably be running the same OS as
-the rest of the machines on the network, regardless of the axiom
-stated above. You may have other problems, but you should at least be
-able to get some local support on the OS for your machine.
-
-
- Either way, if the primary function of the machine is to handle
-"large" quantities of mail (for whatever value you define "large"
-to be), I strongly recommend getting the latest stable release of
-version 8 sendmail.
-
- On the other hand, if the primary function of the machine is
-to sit on some Engineer's desk and do CAD, then it may be easier
-for you to leave the vendor-supplied version of sendmail on that
-machine (after suitable configuration), and instead concentrate
-your efforts on making the central mail handling machine(s) as
-robust and capable as they can be.
-
- However, you may be surprised to find that it is easier
-for you to support only one version of sendmail across all the
-various platforms than it is to try and support multiple versions of
-sendmail, each unique for their particular platform. In that case,
-the easy solution is to put version 8 sendmail everywhere, and not
-have to worry about vendor-specific problems with older versions.
-
-
- For more information on BSD Unix in general, see the Usenet
-newsgroups under <news:comp.unix.bsd>, <news:comp.bugs.4bsd>,
-<news:comp.os.386bsd>. For more information on BSD/OS, see the BSD
-newsgroups mentioned above, or the BSD/OS Home Page at
-<http://www.bsdi.com/>. For more information on FreeBSD, see the
-Usenet newsgroups under <news:comp.unix.bsd.freebsd>, or the FreeBSD
-Home Page at <http://www.freebsd.org/>.
-
-------------------------------
-
-Date: July 9, 1996
-Subject: Q2.13 -- What is smrsh and where can I get it?
-
- From <ftp://info.cert.org/pub/tools/smrsh/README>:
-
- smrsh is a restricted shell utility that provides the ability
- to specify, through a configuration, an explicit list of
- executable programs. When used in conjunction with sendmail,
- smrsh effectively limits sendmail's scope of program execution
- to only those programs specified in smrsh's configuration.
-
- smrsh has been written with portability in mind, and uses
- traditional Unix library utilities. As such, smrsh should
- compile on most Unix C compilers.
-
-The purpose for restricting the list of programs that can be executed
-in this manner is to keep mail messages (either through an alias or
-the .forward file in a user's home directory) from being sent to
-arbitrary programs which are not necessarily known to be sufficiently
-paranoid in checking their input, and can therefore be easily
-subverted (this is related to, but different from, the /etc/shells
-feature discussed in Q3.11).
-
- More information regarding the CERT-CC can be found at their web
-site, <http://www.cert.org>. For more information on CERT Alerts and
-CERT Summaries, see <ftp://info.cert.org/pub/cert_advisories/> and
-<ftp://info.cert.org/pub/cert_summaries/>, respectively.
-
-
- You can find smrsh in the most recent sendmail source archive, as
-well as <ftp://info.cert.org/pub/tools/smrsh/>. Other very useful
-programs can be found in <ftp://info.cert.org/pub/tools/>.
-
-------------------------------
-
-Date: July 5, 1996
-Subject: Q2.14 -- What is smap and where can I get it?
-
- Smap (and smapd) are tools out of the Trusted Information Systems
-(TIS) Firewall Toolkit (fwtk). They were originally written by
-firewall expert Marcus Ranum under contract to TIS, and TIS is
-continuing what maintenance there is. The toolkit may be found at
-<ftp://ftp.tis.com/pub/firewalls/toolkit/>. Support questions
-regarding the toolkit may be sent to <mailto:fwall-support@tis.com>,
-while you may join their mailing list <mailto:fwall-users@tis.com> by
-sending electronic mail to <mailto:fwall-users-request@tis.com>.
-
-
- The concept of smap and smapd is that sendmail is a huge,
-monolithic setuid root program that is virtually impossible to verify
-as being "correct" and free from bugs (historically, sendmail has been
-rather buggy and an easy mark for system crackers to exploit, although
-with the advent of version 8 sendmail, this becomes much more
-difficult). In contrast, smap and smapd are very small (only a few
-hundred lines long), and relatively easy to verify as being correct
-and functioning as designed (however, as you will see later, we can
-question their design). According to the theory, it is therefore
-safer and "better" to run smap and smapd as "wrappers" around
-sendmail, which would no longer need to be run setuid root.
-
- Unfortunately, smap and smapd have a few problems of their
-own, and don't appear to have been updated since late March 1996.
-There have been conflicting reports of incompatibilities between
-smapd and sendmail 8.7.y (both cannot be run on the same machine,
-although if you're running sendmail 8.6.x and smap/smapd on the
-local machine, people on the outside can still use sendmail 8.7.y
-to talk to you).
-
- For further information on smap and smapd, see the documentation
-that comes with the TIS Firewall Toolkit.
-
-
- For more information on firewalls, see the Firewalls FAQ at
-<http://www.v-one.com/newpages/faq.htm>.
-
-------------------------------
-
-Date: January 21, 1996
-Subject: Q2.15 -- What is TCP-Wrappers and where can I get it?
-
- TCP-Wrappers is another security enhancement package. The theory
-is that you take programs being run under inetd (see /etc/inetd.conf)
-and before you run the program to do the real work (ftpd, telnetd,
-etc...), you first run the connection attempt through a package that
-checks to see if the IP address of the source packet is coming from a
-host known to be either good or bad (you may filter connection
-attempts by source host name, domain name, raw IP address, port they
-are attempting to connect to; and either allow known good connections
-through thus refusing unknown connections, or accept all connections
-except those known to be bad).
-
- The practice of TCP-Wrappers actually follows the theory
-quite well. It is a very useful and important tool in the System
-Administrator's Bag of Things To Help You Secure Your Machine
->From Crackers, Spammers, Junkmailers, and Other Undesirables.
-However, it only works for programs that communicate via TCP packets
-(not UDP, such as NFS) started up out of inetd. It does not work
-for RPC-based services, and programs that start up a daemon outside
-of inetd and just leave it running obviously don't benefit beyond
-the initial connection that gets the daemon started (however, see
-the FTP URL below for other packages that can help secure RPC and
-portmapper-based services).
-
- However, most sendmail installations tend to start up a daemon and
-leave it running at all times. If you did run sendmail out of inetd,
-you'd lose the benefit of the load average checking code that is
-executed only in daemon mode, and for systems that handle a lot of
-mail, this is vitally important.
-
- You can get TCP-Wrappers from
-<ftp://ftp.win.tue.nl/pub/security/>, a site that has
-a whole host of other useful security tools, such as
-securelib, portmap, satan, cops, crack, etc... You can
-also find pointers to many other useful security tools at
-<http://ciac.llnl.gov/ciac/SecurityTools.html>, and the COAST Archive
-at <http://www.cs.purdue.edu/homes/spaf/hotlists/csec.html> is a
-veritable cornucopia of all things security related. The SANS 1996
-Network Security Roadmap at <http://www.sans.org/roadmap.html> has
-much useful information and pointers to many other useful resources.
-
-
- For the adventurous, you can get a source patch for version
-8 sendmail (created for 8.7.6, but with work, applicable to older
-releases) that will take the core TCP-Wrappers code and integrate
-it into the daemon, so that you get the best of both worlds.
-However, this isn't as smoothly integrated as it should be, is not
-for the faint-of-heart, and is certainly not officially supported
-by the orginal author of sendmail (Eric Allman). This functionality
-is integrated in a different fashion into version 8.8.5 sendmail.
-
- You should be able to find the unsupported patch at
-<ftp://ftp.win.tue.nl/pub/security/sendmail-tcpd.patch>.
-
-------------------------------
-
-Date: November 24, 1996
-
-Subject: Q2.16 -- Why won't db 1.85 build for my SGI running Irix
- >= 5.2?
-
- The db 1.85 package as available from ftp.cs.berkeley.edu
-provides Irix support up to Irix 4.05F, but 5.{2,3} need a slightly
-patched version. Some vendors also provide db standard with their OS
-(DEC Unix 4.0, for example).
-
- A tarball incorporating these changes is available at
-<ftp://ftp.his.com/pub/brad/sendmail/irix5.tar.gz>. This will
-extract into ./db.1.85/PORT/irix.5.2, with a symbolic link
-created from ./db.1.85/PORT/irix.5.3 to this same directory.
-Make sure you extract this archive into the same directory
-where you extracted the db 1.85 archive as available from
-ftp.cs.berkeley.edu. (see Q3.5 for more information on getting
-the db 1.85 package). An ASCII context diff of this same patch is
-at <ftp://ftp.his.com/pub/brad/sendmail/irix4-5.diff>.
-
- A version of db 1.85 that has been supposedly patched
-to compile under Irix 6.2 has been made available at
-<http://reality.sgi.com/ariel/db-1.85-irix.tar.Z>, but I haven't
-had a chance to download and check it out yet.
-
-------------------------------
-
-Date: August 30, 1996
-
-Subject: Q2.17 -- What is makemap and where can I get it?
-
- The program "makemap" is used to build the databases used by
-version 8 sendmail, for things like the UserDB, mailertables,
-etc....
-
- It is distributed as part of the basic Operating System from
-some vendors, but source code for it is also included at the root
-level of the sendmail archive (at least, it is for sendmail 8.6.12
-and 8.7.5, and presumably will continue to be as newer releases come
-out). However, it is not considered a "supported" part of version
-8 sendmail. Just like the other source provided in the archive,
-the Makefile will likely need some tweaking for your specific site.
-
- It turns out that Irix 5.3 doesn't appear to have the dbm or
-ndbm libraries, but to compile makemap.c, you need to have -DNDBM
-on the "DBMDEF=" line (some necessary things are defined only
-in /usr/include/ndbm.h). Try just leaving off "-lndbm" from the
-"LIBS=" line in the Makefile for makemap.
-
- If you plan on using makemap with db 1.85 on an SGI machine
-running a version of Irix later than 4.x, see Q2.16 for some
-additional steps to get db 1.85 compiled on your machine.
-
-------------------------------
-
-Date: May 28, 1996
-Subject: Q3.1 -- How do I make all my addresses appear to be from a
- single host?
-
- Using the m4 macros, use:
-
- MASQUERADE_AS(my.dom.ain)
-
- This will cause all addresses to be sent out as being from the
-indicated domain.
-
- On your mailhub/mailhost/Domain Mail eXchanger, you may need to
-add "my.dom.ain" to the sendmail.cw file or the "Cwhost.my.dom.ain"
-line in the sendmail.cf file.
-
- If you're using version 8.7 sendmail, and you want to hide this
-information in the envelope as well as the headers, use:
-
- FEATURE(masquerade_envelope)
-
-------------------------------
-
-Date: January 24, 1996
-Subject: Q3.2 -- How do I rewrite my From: lines to read
- ``First_Last@My.Domain''?
-
- There are a couple of ways of doing this. This describes using
-the "user database" code. This is still experimental, and was
-intended for a different purpose -- however, it does work with a bit
-of care. It does require that you have the Berkeley "db" package
-installed (it won't work with DBM).
-
- First, create your input file. This should have lines like:
-
- loginname:mailname First_Last
- First_Last:maildrop loginname
-
- If your login name is "john" and your full name is "John Q.
-Public", then this would be:
-
- john:mailname John_Q_Public@your.domain.goes.here
- John_Q_Public:maildrop john
-
- The words "mailname" and "maildrop" must be typed in literally,
-just as they appear.
-
-
- Install this file in (say) /etc/userdb. Create the database:
-
- makemap -d btree /etc/userdb.db < /etc/userdb
-
- You can then create a config file that uses this. You will have
-to include the following in your .mc file:
-
- define(confUSERDB_SPEC, /etc/userdb.db)
- FEATURE(notsticky)
-
- Version 8.7 sendmail changes the semantics of this feature such
-that notsticky is turned on by default, and if you want the old (8.6)
-behaviour, you instead define:
-
- FEATURE(stickyhost)
-
-
- You also need to make sure that you have the "ik" flags specified
-on the affected mailer definition.
-
-
- Note: The program "makemap" is discussed in further detail
-in Q2.17. The UserDB feature is discussed further on pp. 643-645
-of _sendmail, 2nd Ed._ by Costales.
-
-------------------------------
-
-Date: March 23, 1996
-Subject: Q3.3 -- So what was the user database feature intended for?
-
- The intent was to have all information for a given user (where the
-user is the unique login name, not an inherently non-unique full name)
-in one place. This would include phone numbers, addresses, and so
-forth. The "maildrop" feature is because Berkeley does not use a
-centralized mail server (there are a number of reasons for this that
-are mostly historic), and so we need to know where each user gets his
-or her mail delivered -- i.e., the mail drop.
-
- UC Berkeley is (was) in the process of setting up their
-environment so that mail sent to an unqualified "name" goes to that
-person's preferred maildrop; mail sent to "name@host" goes to that
-host. The purpose of "FEATURE(notsticky)" is to cause "name@host" to
-be looked up in the user database for delivery to the maildrop.
-
-------------------------------
-
-Date: March 23, 1996
-Subject: Q3.4 -- Why are you so hostile to using full names for email
- addresses?
-
- Because full names are not unique. For example, the computer
-community has two Andy Tannenbaums and two Peter Deutsches. At one
-time, Bell Labs had two Stephen R. Bournes with offices a few doors
-apart. You can create alternative addresses (e.g.,
-Stephen_R_Bourne_2), but that's even worse -- which one of them has to
-have their name desecrated in this way? And you can bet that one of
-them will get most of the other person's email.
-
- So called "full names" are just an attempt to create longer
-versions of unique names. Rather that lulling people into a sense of
-security, I'd rather that it be clear that these handles are
-arbitrary. People should use good user agents that have alias
-mappings so that they can attach arbitrary names for their personal
-use to those with whom they correspond (such as the MH alias file).
-
- Even worse is fuzzy matching in email -- this can make good
-addresses turn bad. For example, Eric Allman is currently (to the
-best of our knowledge) the only ``Allman'' at Berkeley, so mail sent
-to <Allman@Berkeley.EDU> should get to him. But if another Allman
-ever appears, this address could suddenly become ambiguous. He's been
-the only Allman at Berkeley for over fifteen years -- to suddenly have
-this "good address" bounce mail because it is ambiguous would be a
-heinous wrong.
-
- Directory services should be as fuzzy as possible (within reason,
-of course). Mail services should be unique.
-
-------------------------------
-
-Date: November 24, 1996
-Subject: Q3.5 -- Where do I find this user database (UserDB) code?
-
- The user database code is part of the Sendmail V8 distribution.
-However, it depends on your installing the db library from the
-package at <ftp://ftp.cs.berkeley.edu/pub/4bsd/db.1.85.tar.gz>.
-If you install this library, edit the Makefile to include the
-right option (-DNEWDB), and then make sendmail again, you get a
-binary which has the database features described in the book and
-the documentation provided in the sendmail source archive.
-
- If you're using SGI Irix above 4.x, see Q2.16 for the patches
-you will need to get db 1.85 working on your machine.
-
-------------------------------
-
-Date: July 19, 1996
-Subject: Q3.6 -- How do I get the user database to work with Pine or
- with FEATURE(always_add_domain)?
-
- The basic incompatibility with Pine and the user database option
-is in how Pine writes From addresses in the header. Most MUAs write
-the From address as "From: user", while Pine, for reasons given in
-its documentation, write the From address as "From: user@FQDN"
-(FQDN=fully qualified domain name). Using the m4 feature macro
-"always_add_domain" has the same effect. Because of this difference,
-the user database does not rewrite these headers.
-
- One solution to this problem is to make the following change in
-the sendmail.mc file compiled by m4 into your /etc/sendmail.cf (or
-wherever your sendmail.cf file is located) after you have the user
-database option installed and working with other MUAs:
-
- Early in the section(s) where you are setting configuration
-variables, add the following:
-
- # Define our userdb file for FQDN rewrites
- Kuserdb btree -o /etc/userdb.db
-
- And a bit later, before the "MAILER()" entries, but after other
-configuration options have been set:
-
- LOCAL_RULE_1
- ########################################################
- ### Local Ruleset 1, rewrite sender header & envelope ##
- ########################################################
- #Thanks to Bjart Kvarme <bjart.kvarme@usit.uio.no>
- S1
- R$- $1 < @ $j . > user => user@localhost
- R$- < @ $=w . > $* $: $1 < @ $2 . > $3 ?? $1 user@localhost ?
- R$+ ?? $+ $: $1 ?? $(userdb $2 : mailname $: @ $)
- R$+ ?? @ $@ $1 Not found
- R$+ ?? $+ $>3 $2 Found, rewrite
-
- #NOTE ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^
- # Use Tab Characters Use Tab Characters in these regions
- # to make three columns (the line with "mailname" only has 2 columns).
-
- Now the user database should re-write messages sent with Pine or
-anything else that causes local users to have their address be fully
-qualified (both header and envelope sender will be properly
-re-written). If this still does not work for you, try adding the
-following to either the system-wide pine.conf, pine.conf.fixed, or
-your personal .pinerc:
-
- user-domain=localhost
-
- This has been known to help solve the problem for some people.
-
- However, a more elegant (read: m4-based) solution for version 8
-sendmail users has yet to be created.
-
-------------------------------
-
-Date: March 24, 1997
-Subject: Q3.7 -- How do I manage several (virtual) domains?
-
- If you want to provide mailservice to several domains and be able
-to add identical names across different domains, as in this example:
-
- user@a.dom.ain mb1@dom.ain
- user@b.dom.ain mb2@dom.ain
- user@c.dom.ain mb@outer.space
-
- you may accomplish this by using an external database in
-conjunction with minor Ruleset rewriting in sendmail.cf. Many ISPs
-(Internet Service Providers) have asked me and here's a general
-solution (you may combine it with userdb's if you need to):
-
- 1. Make a textfile (I usually make one for each domain and
- concatenate them before database-compilation) with the
- following structure:
-
- user@a.dom.ain mb1@dom.ain
- user@b.dom.ain mb2@dom.ain
- user@c.dom.ain mb@outer.space
-
- The LHS (Left Hand Side) is the mail-adress of a particular
- user and the RHS is the corresponding mailbox. An example
- that might apply to the real world:
-
- webmaster@josnet.se wm.list@eowyn.josnet.se
- webmaster@client1.se joe@client1.se
- webmaster@client2.se anne@another.provider.se
- webmaster@client3.se joe@client3.se
- joe@client1.se c1_joe@mail.josnet.se
- joe@client3.se joeuser
-
- Note that you have to spell out the complete email-address in
- the LHS entry. The RHS entry may be either a local address
- (for example 'johan' if that account exists) or a complete
- email-adress on another system (or a domain that the server
- recognizes as local for that matter).
-
- 2. Compile the textfile into a database:
-
- makemap hash mbt.db <mbt
-
- You may you use other lookup-methods than hash (btree for
- example). The resulting database is mbt.db in this example
- and the input is the textfile mbt.
-
- 3. Add a few lines in sendmail.cf:
-
- A. In the beginning (typically in the "local info" section or
- together with the user database option in the "options"
- section):
-
- # Declare mbt as a hash-lookup database:
- Kmbt hash /etc/mail/mbt.db
-
- B. In the Ruleset 98 (local part of ruleset 0) section, add:
-
- # Use mailboxtable-database:
- R$+ < @ $+ . > $: $1 < @ $2 > .
- R$+ < @ $+ > $* $: $(mbt $1@$2 $: $1 < @ $2 > $3 $)
- R$+ < @ $+ > $* $: $(mbt $2 $: $1 < @ $2 > $3 $)
- RERROR $* $#error $: $1
- R$+ < @ $+ > . $: $1 < @ $2 . >
-
- If you have any other rewrite rules in ruleset 98, these
- should be able to either go after or before the existing
- rules, but you may have to do some experimenting to
- find out which placement works best.
-
- 4. The next-to-last line of these rules let you have an alias
- file like:
-
- joe@somedom.com joe
- jim@somedom.com jim@othersite
- somedom.com ERROR "No such user"
-
- And still have mail addressed to unknown users at that domain
- bounce properly. You can also do a form of redirects, such
- as:
-
- fred@somedom.com ERROR "This user has moved to fred@otherdom.com"
-
- 5. Test with sendmail -bv and/or sendmail -bt
-
- 6. Restart sendmail. You must do this in order to have the
- daemon reread the sendmail.cf.
-
-
- Note: Alternate sets of instructions and/or kits
-can be found at <http://www.westnet.com/providers>,
-<http://hub.org/softdocs/Sendmail-VD>,
-<ftp://samson.oslo.uninett.no/pub/unix/sendmail/>, and
-<http://jos.net/projects/mbt/>. None of these have been tested
-by the maintainer of this FAQ, but are believed to work correctly.
-Which you use is a matter of your personal aesthetics.
-
-
- If you're using version 8.8 sendmail, you can make use of the
-new "virtual user table" feature (for one thing, it won't require
-that you add new rewrite rules to your sendmail configuration, as
-the previous example does).
-
- 1. Put "FEATURE(virtusertable)" in your sendmail.mc
- file.
-
- 2. By default, sendmail will build tables out of
- /etc/virtusertable. If you want to change this, put
- something like:
-
- define(`VIRTUSER_TABLE', `-o hash /usr/local/lib/virtusertable')dnl
-
- in your sendmail.mc file.
-
- 3. Construct the virtusertable file like so:
-
- info@foo.com foo-info
- info@bar.com bar-info
- @baz.org jane@elsewhere.net
- @somedom.com error : 5.5.0 User unknown
-
- (Contrast with steps 1 and 4 in the previous example
- using regular mailertables).
-
- 4. Compile the textfile into a database:
-
- makemap hash /etc/virtusertable.db </etc/virtusertable
-
- You may you use other lookup-methods than hash (btree
- for example). Make sure that this database type matches
- what is defined for the table in step 2.
-
- 5. Put all the domains listed on the LHS of these aliases
- in your sendmail.cw file, or on the Cw line in your
- sendmail.cf.
-
- 6. Recompile your sendmail.cf from your sendmail.mc and
- test it.
-
- 7. Once you are satisfied, move it into place and restart
- sendmail.
-
-
- Note that the virtusertable is only referenced for inbound
-mail (more accurately, only for controlling delivery). If you
-want to rewrite mail addresses from your virtual domain users as
-they pass through your system, you'll also need to make comparable
-modifications to the genericstable (used for rewriting).
-
-------------------------------
-
-Date: July 9, 1996
-Subject: Q3.8 -- There are four UUCP mailers listed in the
- configuration files. Which one should I use?
-
- The choice is partly a matter of local preferences and what is
-running at the other end of your UUCP connection. Unlike good
-protocols that define what will go over the wire, UUCP uses the policy
-that you should do what is right for the other end; if they change,
-you have to change. This makes it hard to do the right thing, and
-discourages people from updating their software. In general, if you
-can avoid UUCP, please do.
-
- If you can't avoid it, you'll have to find the version that is
-closest to what the other end accepts. Following is a summary of the
-UUCP mailers available.
-
- uucp-old (obsolete name: "uucp")
- This is the oldest, the worst (but the closest to UUCP) way of
- sending messages across UUCP connections. It does bangify
- everything and prepends $U (your UUCP name) to the sender's
- address (which can already be a bang path itself). It can only
- send to one address at a time, so it spends a lot of time
- copying duplicates of messages. Avoid this if at all possible.
-
- uucp-new (obsolete name: "suucp")
- The same as above, except that it assumes that in one rmail
- command you can specify several recipients. It still has a lot
- of other problems.
-
- uucp-dom
- This UUCP mailer keeps everything as domain addresses.
- Basically, it uses the SMTP mailer rewriting rules.
-
- Unfortunately, a lot of UUCP mailer transport agents require
- bangified addresses in the envelope, although you can use
- domain-based addresses in the message header. (The envelope
- shows up as the From_ line on UNIX mail.) So....
-
- uucp-uudom
- This is a cross between uucp-new (for the envelope addresses)
- and uucp-dom (for the header addresses). It bangifies the
- envelope sender (From_ line in messages) without adding the
- local hostname, unless there is no host name on the address at
- all (e.g., "wolf") or the host component is a UUCP host name
- instead of a domain name ("somehost!wolf" instead of
- "some.dom.ain!wolf").
-
- Examples:
-
- We are on host grasp.insa-lyon.fr (UUCP host name "grasp"). The
- following summarizes the sender rewriting for various mailers:
-
- Mailer sender rewriting in the envelope
- ------ ------ -------------------------
- uucp-{old,new} wolf grasp!wolf
- uucp-dom wolf wolf@grasp.insa-lyon.fr
- uucp-uudom wolf grasp.insa-lyon.fr!wolf
-
- uucp-{old,new} wolf@fr.net grasp!fr.net!wolf
- uucp-dom wolf@fr.net wolf@fr.net
- uucp-uudom wolf@fr.net fr.net!wolf
-
- uucp-{old,new} somehost!wolf grasp!somehost!wolf
- uucp-dom somehost!wolf somehost!wolf@grasp.insa-lyon.fr
- uucp-uudom somehost!wolf grasp.insa-lyon.fr!somehost!wolf
-
-
- If your only contact with the external world is through UUCP,
-you'll probably want to recompile sendmail with support for DNS turned
-off (if your host architecture supports a service switch file that
-sendmail understands, it will use the service switch however you've
-got it configured, even if you've compiled sendmail with DNS support
-turned off, so make sure the service switch file is also properly
-configured).
-
- Using "FEATURE(nodns)" probably won't completely satisfy you, as
-more recent releases of version 8 sendmail really, REALLY, want to
-know what their canonical hostname is, and will go to great lengths to
-figure this out from the DNS. But if you don't have any nameservers,
-this can obviously add significant amounts of time to process startup
-as sendmail repeatedly tries (and fails) to find this information. It
-then becomes doubly important to have the proper Fully Qualified
-Domain Name (FQDN) listed first in your /etc/hosts file or in the file
-used to build your NIS/NIS+ table (or whatever you use).
-
- For more information on "FEATURE(nodns)", see the RELEASE_NOTES
-file for sendmail versions 8.7.1 and later (search for "FQDN"), as
-well as _sendmail_, page 741 (page reference correct as of first
-edition, first printing).
-
-------------------------------
-
-Date: March 23, 1996
-Subject: Q3.9 -- How do I fix "undefined symbol inet_aton" and
- "undefined symbol _strerror" messages?
-
- You've probably replaced your resolver with the version from BIND
-4.9.3. You need to compile with -l44bsd in order to get the
-additional routines.
-
-------------------------------
-
-Date: March 24, 1997
-Subject: Q3.10 -- How do I solve "collect: I/O error on connection"
- errors?
-
- There is nothing wrong. This is just a diagnosis of a condition
-that had not been diagnosed before. If you are getting a lot of these
-from a single host, there is probably some incompatibility between 8.x
-and that host. If you get a lot of them in general, you may have
-network problems that are causing connections to get reset.
-
- Note that if you are using PPP and the MTU on your end does
-not match what your service provider has configured, you may see
-these problems. Discuss with your service provider what the MTU
-should be set to, and correct if there is a mismatch.
-
-------------------------------
-
-Date: July 9, 1996
-Subject: Q3.11 -- Why can't my users forward their mail to a program?
-
- I just upgraded to version 8 sendmail and now when my users try to
-forward their mail to a program they get an "illegal shell" or "cannot
-mail to programs" message and their mail is not delivered. What's
-wrong?
-
- In order for people to be able to run a program from their
-.forward file, version 8 sendmail insists that their shell (that is,
-the shell listed for that user in the passwd entry) be a "valid"
-shell, meaning a shell listed in /etc/shells. If /etc/shells does not
-exist, a default list is used, typically consisting of /bin/sh and
-/bin/csh.
-
- This is to support environments that may have NFS-shared
-directories mounted on machines on which users do not have login
-permission. For example, many people make their file server
-inaccessible for performance or security reasons; although users have
-directories, their shell on the server is /usr/local/etc/nologin or
-some such. If you allowed them to run programs anyway you might as
-well let them log in.
-
- If you are willing to let users run programs from their .forward
-file even though they cannot telnet or rsh in (as might be reasonable
-if you run smrsh to control the list of programs they can run) then
-add the line:
-
- /SENDMAIL/ANY/SHELL/
-
-to /etc/shells. This must be typed exactly as indicated, in caps,
-with the trailing slash.
-
-NOTA BENE: DO NOT list /usr/local/etc/nologin in /etc/shells -- this
-will open up other security problems.
-
-
- IBM AIX does not use /etc/shells -- a list of allowable login
-shells is contained, along with many other login parameters, in
-/etc/security/login.cfg. You can copy the information in the
-"shells=" stanza into a /etc/shells on your system so sendmail will
-have something to use. Do NOT add "/usr/lib/uucp/uucico" or any other
-non-login shell into /etc/shells.
-
- Also note that there are some weird things that AFS throws into
-the mix, and these can keep a program from running or running
-correctly out of .forward files or the system-wide aliases.
-
-
- See also "smrsh" in Q2.13.
-
-------------------------------
-
-Date: November 24, 1996
-Subject: Q3.12 -- Why do connections to the SMTP port take such a
- long time?
-
- I just upgraded to version 8 sendmail and suddenly connections to
-the SMTP port take a long time. What is going wrong?
-
- It's probably something weird in your TCP implementation that
-makes the IDENT code act oddly. On most systems version 8 sendmail
-tries to do a ``callback'' to the connecting host to get a validated
-user name (see RFC 1413 for detail). If the connecting host does not
-support such a service it will normally fail quickly with "Connection
-refused", but certain kinds of packet filters and certain TCP
-implementations just time out.
-
- To test this (pre-8.7.y sendmail), set the IDENT timeout to zero
-using:
-
- define(`confREAD_TIMEOUT',`Ident=0')dnl
-
-in the .mc file used by m4 to generate your sendmail.cf file.
-Alternatively, if you don't use m4, you can put ``OrIdent=0'' in the
-configuration file (we recommend the m4 solution, since that makes
-maintenance much easier for people who don't understand sendmail
-re-write rules, or after you've been away from it for a while).
-Either way, this will completely disable all use of the IDENT
-protocol.
-
- For version 8.7.y sendmail (and above), you should instead use:
-
- define(`confTO_IDENT',`0s')dnl
-
-
- Another possible problem is that you have your name server and/or
-resolver configured improperly. Make sure that all "nameserver"
-entries in /etc/resolv.conf point to functional servers. If you are
-running your own server, make certain that all the servers listed in
-your root cache are up to date (this file is usually called something
-like "/var/namedb/root.cache"; see your /etc/named.boot file to get
-your value). Either of these can cause long delays.
-
-------------------------------
-
-Date: March 23, 1996
-Subject: Q3.13 -- Why do I get "unknown mailer error 5 -- mail:
- options MUST PRECEDE recipients" errors?
-
- I just upgraded to version 8 sendmail and suddenly I get errors
-such as ``unknown mailer error 5 -- mail: options MUST PRECEDE
-recipients.'' What is going wrong?
-
- You need OSTYPE(systype) in your .mc file, where "systype" is set
-correctly for your hardware & OS combination -- otherwise the
-configurations use a default that probably disagrees with your local
-mail system. See cf/README for details.
-
- If this is on a Sun workstation, you might also want to take a
-look at the local mailer flags in the Sun-supplied sendmail.cf and
-compare them to the local mailer flags generated for your version 8
-sendmail.cf. If they differ, you might try changing the V8 flags to
-match the Sun flags.
-
-------------------------------
-
-Date: March 24, 1996
-Subject: Q3.14 -- Why does version 8 sendmail panic my SunOS box?
-
- Sendmail 8.7.y panics SunOS 4.1.3_U1 (at least for 1<=y<=3)
-and SunOS 4.1.3, and sendmail 8.6.x seems fine on both machines (at
-least for 9<=x<=12).
-
- The problem is that a kernel patch is missing, specifically
-100584-08 (4.1.3), 102010-03 (4.1.3_U1), or 102517 (4.1.4).
-This should be available from your hardware vendor through your
-support contract or their online support facilities (including
-being available on the SunSolve CD).
-
-------------------------------
-
-Date: March 23, 1996
-Subject: Q3.15 -- Why does the "From " header gets mysteriously
- munged when I send to an alias?
-
- ``It's not a bug, it's a feature.'' This happens when you have a
-"owner-list" alias and you send to "list". V8 propagates the owner
-information into the envelope sender field (which appears as the "From
-" header on UNIX mail or as the Return-Path: header) so that
-downstream errors are properly returned to the mailing list owner
-instead of to the sender. In order to make this appear as sensible as
-possible to end users, I recommend making the owner point to a
-"request" address -- for example:
-
- list: :include:/path/name/list.list
- owner-list: list-request
- list-request: eric
-
- This will make message sent to "list" come out as being "From
-list-request" instead of "From eric".
-
-------------------------------
-
-Date: November 24, 1996
-Subject: Q3.16 -- Why doesn't MASQUERADE_AS (or the user database)
- work for envelope addresses as well as header addresses?
-
- Believe it or not, this is intentional. The interpretation of the
-standards by the version 8 sendmail development group was that this
-was an inappropriate rewriting, and that if the rewriting were
-incorrect at least the envelope would contain a valid return address.
-
-
- If you're using version 8.7.y sendmail (or later), you can use
-
- FEATURE(masquerade_envelope)
-
- in your sendmail.mc file to change this behaviour.
-
-------------------------------
-
-Date: March 23, 1996
-Subject: Q3.17 -- How do I run version 8 sendmail and support the
- MAIL11V3 protocol?
-
- Get the reimplementation of the mail11 protocol by Keith Moore
-from <ftp://gatekeeper.dec.com/pub/DEC/gwtools/> (with contributions
-from Paul Vixie).
-
-------------------------------
-
-Date: March 23, 1996
-Subject: Q3.18 -- Why do messages disappear from my queue unsent?
-
- When I look in the queue directory I see that qf* files have been
-renamed to Qf*, and sendmail doesn't see these. What's wrong?
-
- If you look closely you should find that the Qf files are owned by
-users other than root. Since sendmail runs as root it refuses to
-believe information in non-root-owned qf files, and it renames them to
-Qf to get them out of the way and make it easy for you to find. The
-usual cause of this is twofold: first, you have the queue directory
-world writable (which is probably a mistake -- this opens up other
-security problems) and someone is calling sendmail with an "unsafe"
-flag, usually a -o flag that sets an option that could compromise
-security. When sendmail sees this it gives up setuid root
-permissions.
-
- The usual solution is to not use the problematic flags. If you
-must use them, you have to write a special queue directory and have
-them processed by the same uid that submitted the job in the first
-place.
-
-------------------------------
-
-Date: March 23, 1996
-Subject: Q3.19 -- When is sendmail going to support RFC 1522 MIME
- header encoding?
-
- This is considered to be a MUA issue rather than an MTA issue.
-
-Quoth Eric Allman:
-
- The primary reason is that the information necessary to
- do the encoding (that is, 8->7 bit) is unknown to the MTA.
- In specific, the character set used to encode names in headers
- is _NOT_ necessarily the same as used to encode the body
- (which is already encoded in MIME in the charset parameter
- of the Content-Type: header). Furthermore, it is perfectly
- reasonable for, say, a Swede to be living and working in Korea,
- or a Russian living and working in Germany, and want their
- name to be encoded in their native character set; it could
- even be that the sender was Japanese, the recipient Russian,
- and the body encoded in ISO 8859-1. If all I have are 8-bit
- characters, I can't choose the charset properly.
-
- Similarly, when doing 7->8 bit conversions, I don't want
- to throw away this information, as it is necessary for proper
- presentation to the end user.
-
-------------------------------
-
-Date: January 17, 1997
-Subject: Q3.20 -- Why can't I get mail to some places, but
- instead always get the error "reply: read error from
- name.of.remote.host"?
-
- This is usually caused by a bug in the remote host's mail server,
-or Mail Transport Agent (MTA). The "EHLO" command of ESMTP causes
-the remote server to drop the SMTP connection. There are several
-MTAs that have this problem, but one of the most common server
-implementations can be identified by the "220 All set, fire away"
-greeting it gives when you telnet to its SMTP port.
-
- To work around this problem, you can configure sendmail to use
-a mailertable with an entry telling sendmail to use plain SMTP when
-talking to that host:
-
- name.of.remote.host smtp:name.of.remote.host
-
-
- Sites which must run a host with this broken SMTP implemetation
-should do so by having a site running sendmail or some other
-reliable (and reasonably modern) SMTP MTA act as an MX server for
-the problem host.
-
-
- There is also a problem wherein some TCP/IP implementations
-are broken, and if any connection attempt to a remote end gets a
-"connection refused", then *all* connections to that site will
-get closed. Of course, if you try to use the IDENT protocol across
-a firewall (at either end), this is highly likely to result in the
-same apparent kind of "read error".
-
- The fix is simple -- on those machines with broken TCP/IP
-implementations, do not attempt to use IDENT. When compiling newer
-releases of version 8 sendmail, the compiler should automatically
-detect whether you're on a machine that is known to have this kind
-of TCP/IP networking problem, and make sure that sendmail does
-not attempt to use IDENT. If you've since patched your machine so
-that it no longer has this problem, you'll need to go back in and
-explicitly configure sendmail for support of IDENT, if you want
-that feature.
-
-------------------------------
-
-Date: January 17, 1996
-Subject: Q3.21 -- Why doesn't "FEATURE(xxx)" work?
-
- When creating m4 Master Config (".mc") files for version 8
-sendmail, many "FEATURE()" macros simply change the definition of
-internal variables that are referenced in the "MAILER()" definitions.
-
- To make sure that everything works as desired, you need to
-make sure that "OSTYPE()" macros are put at the very beginning
-of the file, followed by "FEATURE()" and "HACK()" macros, local
-definitions, and at the very bottom, the "MAILER()" definitions.
-
-------------------------------
-
-Date: March 24, 1997
-Subject: Q3.22 -- How do I configure sendmail to not use DNS?
-
- In situations where you're behind a firewall, or across a
-dial-up line, there are times when you need to make sure that
-programs (such as sendmail) do not use the DNS at all.
-
-
- With version 8.8, you change the service switch file to omit
-"DNS" and use only NIS, files, and other map types as appropriate.
-
- With previous releases of version 8 sendmail, you need to
-recompile the binary and make sure that "NAMED_BIND" is turned off
-in src/conf.h.
-
-
- Note that you'll need to forward all your outbound mail to
-another machine as a "relay" (one that does use DNS, and understands
-how to properly use MX records, etc...), otherwise you won't be able
-to get mail to any site(s) other than the one(s) you configure in
-your /etc/hosts file (or whatever).
-
-------------------------------
-
-Date: March 24, 1997
-Subject: Q3.23 -- How do I get all my queued mail delivered to my
- Unix box from my ISP?
-
- Assuming you're running sendmail or some other SMTP MTA on
-some sort of a Unix host, and your ISP uses version 8.8 sendmail
-and they queue all mail for your domain (as opposed to stuffing it
-all in one file that you need to download via POP3 or somesuch),
-something like the following script should do the trick:
-
- #!/bin/sh
- telnet mail.myisp.com. 25 < __EOF__
- EHLO me.mydomain.com
- ETRN mydomain.com
- QUIT
- __EOF__
-
-
- Note that this is indented for readability, and the real script
-would have column position #1 of the file be the first printable
-character in each line.
-
- Of course, you'll have to fill in the appropriate details for
-"mail.myisp.com", "mydomain.com", etc....
-
-
- If this script doesn't work, you may have problems with "here"
-documents being fed as standard input to commands (like telnet). In
-that case, you'll need to build a similar script using "expect". For
-more information on expect, see <http://expect.nist.gov> and the book
-"Exploring Expect: A Tcl-Based Toolkit for Automating Interactive
-Applications" (<http://www.ora.com/catalog/expect/noframes.html>).
-
-
- If your ISP doesn't use version 8.8 sendmail, you may have to
-cobble together alternative solutions. They may have a "ppplogin"
-script that is executed every time your machines dials them up, and
-if so, you may be able to have them modified this script so as to
-put a "sendmail -qRmydomain.com" in it (which is effectively what
-the "ETRN" command does, but in a safer fashion).
-
- Alternatively, they may have a hacked finger daemon, so
-that you'd put "finger mydomain.com@theirhost.theirdomain.com"
-in your script. Or, they may have some other solution for you.
-However, only they would be able to answer what solutions they have
-available to them.
-
- Obviously, the easiest and most "standard" solution is to have
-them upgrade their system to the most recent stable release of
-version 8.8 sendmail.
-
-------------------------------
-
-Comments/updates should be sent to <sendmail-faq@etext.org>.
-
-Copyright 1996, by Brad Knowles, all rights reserved
-
-End of comp.mail.sendmail Frequently Asked Questions (FAQ), part 1 of 2
-***********************************************************************
diff --git a/debian/part2 b/debian/part2
deleted file mode 100644
index d91ab4d..0000000
--- a/debian/part2
+++ /dev/null
@@ -1,1467 +0,0 @@
-Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!thetimes.pixel.kodak.com!news.kodak.com!news.sprintlink.net!news-pen-16.sprintlink.net!news.etcfiber.net!pjm-gate.pjm.com!dsinc!netnews.upenn.edu!news-xfer.netaxs.com!tezcat!cam-news-hub1.bbnplanet.com!cpk-news-hub1.bbnplanet.com!news.bbnplanet.com!newsxfer3.itd.umich.edu!newsxfer.itd.umich.edu!aanews.merit.net!branch.com!news.bizserve.com!news
-From: brad@etext.org
-Newsgroups: comp.mail.sendmail,comp.mail.misc,comp.answers,news.answers
-Subject: comp.mail.sendmail Frequently Asked Questions (Part 2 of 2)
-Followup-To: comp.mail.sendmail
-Date: 27 Apr 1997 04:57:53 GMT
-Organization: The ETEXT Archives
-Lines: 1446
-Approved: news-answers-request@MIT.Edu
-Distribution: world
-Expires: 06/01/97 01:00:01
-Message-ID: <5jumch$i1l@kahuna.bizserve.com>
-Reply-To: sendmail-faq@etext.org (Sendmail FAQ Maintainers)
-NNTP-Posting-Host: locust.etext.org
-Summary: This posting contains a list of Frequently Asked Questions
- (and their answers) about the program "sendmail", distributed with
- many versions of Unix. It should be read by anyone who wishes to
- post to the Usenet newsgroup comp.mail.sendmail.
-Keywords: sendmail mail SMTP FAQ
-X-Posting-Frequency: posted on the 27th of each month
-Xref: senator-bedfellow.mit.edu comp.mail.sendmail:43555 comp.mail.misc:39333 comp.answers:25606 news.answers:100741
-
-Posted-By: auto-faq 3.1.1.2
-Archive-name: mail/sendmail-faq/part2
-
-URL: http://www.his.com/~brad/sendmail/index.html
-
-
- comp.mail.sendmail
- Frequently Asked Questions (FAQ)
- Last updated March 24, 1997
-
- Copyright 1996, by Brad Knowles, all rights reserved
-
-
-This FAQ is edited and maintained by Brad Knowles <brad@etext.org>.
-The official archive for all FAQs posted to <news:news.answers>
-is <ftp://rtfm.mit.edu/pub/usenet/news.answers/>, with many known
-mirrors. On this site, the latest version of this FAQ can be found
-in <ftp://rtfm.mit.edu/pub/usenet/news.answers/mail/sendmail-faq/>.
-Since this server tends to be extremely busy, as an alternative,
-you might want to try using <http://www.imc.org/sendmail-faq-1>
-and <http://www.imc.org/sendmail-faq-2> instead.
-
-If you don't have access to FTP or WWW, this FAQ can be retrieved by
-sending Internet email to <mail-server@rtfm.mit.edu> with an empty
-subject line (it gets ignored) and the command "send
-usenet/news.answers/mail/sendmail-faq/part*" as the body of the
-message (omitting the quotes, of course).
-
-As an alternative, you might want to try sending Internet email
-to <info@imc.org> with an empty subject line (it gets ignored)
-and "send sendmail-faq-*" as the body of the body of the message
-(again, omitting the quotes).
-
-Additional alternative access methods are detailed within.
-
-
-This FAQ is in RFC 1153 digest format. The "Date:" field of each
-entry represents the date of the last update made to that entry.
-
-
-This FAQ has now been split into two parts, to try and make it easier
-to pass through older or less capable news or mail gateways.
-
-
-The intent is to ultimately make this document more web-friendly (in
-that all original work is done in SGML), and using the linuxdoc-sgml
-tools, automatically generate both the HTML and ASCII text versions,
-automatically posting the ASCII version to comp.mail.sendmail as
-appropriate.
-
-In the meanwhile, all pseudo-HTMLized versions of this FAQ are
-considered unsupported. We cannot be held responsible for what
-someone else's program does to this document in an attempt to
-make it more web-friendly. Nevertheless, the Landfield Hypertext
-Usenet FAQ Archive seems to work well, and if you must access
-the comp.mail.sendmail FAQ via the web, try slinging over to
-<http://www.landfield.com/faqs/mail/sendmail-faq/>.
-
-
-Comments/updates should be sent to <sendmail-faq@etext.org>.
-
-----------------------------------------------------------------------
-
-Date: March 24, 1997
-Subject: Table of Contents
-
-Table of Contents
-=================
-
- PART ONE
- ========
-
- 0. TO DO
-
- 1. COPYRIGHT NOTICE / REDISTRIBUTION REQUIREMENTS
-
- 2. INTRODUCTION / MISCELLANEOUS
- 2.1 What is this newsgroup?
- 2.2 What is the scope of this FAQ?
- 2.3 Where can I find the latest version of this FAQ?
- 2.4 How do I access comp.mail.sendmail by email?
- 2.5 Where can I ask email-related DNS questions?
- 2.6 How can I subscribe to these newsgroups?
- 2.7 Which version of sendmail should I run?
- 2.8 What is the latest release of sendmail?
- 2.9 Where can I find it?
- 2.10 What are the differences between Version 8 and other
- versions?
- 2.11 What's the best platform for running sendmail?
- 2.12 What is BIND and where can I get the latest version?
- 2.13 What is smrsh and where can I get it?
- 2.14 What is smap and where can I get it?
- 2.15 What is TCP-Wrappers and where can I get it?
- 2.16 Why won't db 1.85 build for my SGI running Irix >= 5.2?
- 2.17 What is makemap and where can I get it?
-
- 3. VERSION 8 SPECIFIC ISSUES
- 3.1 How do I make all my addresses appear to be from a single
- host?
- 3.2 How do I rewrite my "From:" lines to read
- ``First_Last@My.Domain''?
- 3.3 So what was the user database feature intended for?
- 3.4 Why are you so hostile to using full names for email
- addresses?
- 3.5 Where do I find this user database (UserDB) code?
- 3.6 How do I get the user database to work with Pine or
- with FEATURE(always_add_domain)?
- 3.7 How do I manage several (virtual) domains?
- 3.8 There are four UUCP mailers listed in the configuration
- files. Which one should I use?
- 3.9 How do I fix "undefined symbol inet_aton" and "undefined
- symbol _strerror" messages?
- 3.10 How do I solve "collect: I/O error on connection" errors?
- 3.11 Why can't my users forward their mail to a program?
- 3.12 Why do connections to the SMTP port take such a long time?
- 3.13 Why do I get "unknown mailer error 5 -- mail: options
- MUST PRECEDE recipients" errors?
- 3.14 Why does version 8 sendmail panic my SunOS box?
- 3.15 Why does the "From " header gets mysteriously munged
- when I send to an alias?
- 3.16 Why doesn't MASQUERADE_AS (or the user database) work
- for envelope addresses as well as header addresses?
- 3.17 How do I run version 8 sendmail and support the MAIL11V3
- protocol?
- 3.18 Why do messages disappear from my queue unsent?
- 3.19 When is sendmail going to support RFC 1522 MIME header
- encoding?
- 3.20 Why can't I get mail to some places, but instead
- always get the error "reply: read error from
- name.of.remote.host"?
- 3.21 Why doesn't "FEATURE(xxx)" work?
- 3.22 How do I configure sendmail to not use DNS?
- 3.23 How do I get all my queued mail delivered to my Unix
- box from my ISP?
-
-
- PART TWO
- ========
-
- 4. GENERAL SENDMAIL ISSUES
- 4.1 Should I use a wildcard MX for my domain?
- 4.2 How can I set up an auto-responder?
- 4.3 How can I get sendmail to deliver local mail to
- $HOME/.mail instead of into /usr/spool/mail (or
- /usr/mail)?
- 4.4 Why does it deliver the mail interactively when I'm
- trying to get it to go into queue only mode?
- 4.5 How can I solve "config error: mail loops back to
- myself" messages?
- 4.6 Why does my sendmail process sometimes hang when
- connecting over a SLIP/PPP link?
- 4.7 How can I summarize the statistics generated by
- sendmail in the syslog?
- 4.8 How can I check my sendmail.cf to ensure that it's
- re-writing addresses correctly?
- 4.9 What is procmail, and where can I get it?
- 4.10 How can I solve "cannot alias non-local names" errors?
-
- 5. VENDOR/OS SPECIFIC SENDMAIL ISSUES
- 5.1 Sun Microsystems SunOS/Solaris 1.x/2.x
- 5.1.1 How can I solve "line 273: replacement $3 out of
- bounds" errors?
- 5.1.2 How can I solve "line 445: bad ruleset 96 (50 max)"
- errors?
- 5.1.3 Why does version 8 sendmail (< 8.7.5) sometimes
- hang under Solaris 2.5?
- 5.1.4 Why can't I use SunOS/Solaris to get email to
- certain large sites?
- 5.2 IBM AIX
- 5.2.1 The system resource controller always reports
- sendmail as "inoperative". What's wrong?
- 5.2.2 Why can't I use AIX to get email to some sites?
- 5.2.3 Why can't I get sendmail 8.7.1 to use MX records
- with AIX 3.2.5?
-
- 6. ADDITIONAL INFORMATION SOURCES (RFC 1807 bibliography format)
- 6.1 Reference material devoted exlusively to sendmail
- 6.2 Reference material with chapters or sections on sendmail
- 6.3 Reference material on subjects related to sendmail
- 6.4 World-wide web index pages on sendmail
- 6.5 World-wide web index pages Internet email in general
- 6.6 Online tutorials for sendmail
- 6.7 Online archives of mailing lists and Usenet newsgroups,
- relating to Internet email
-
- 7. THANKS!
-
-------------------------------
-
-Date: July 9, 1996
-Subject: Q4.1 -- Should I use a wildcard MX for my domain?
-
- If at all possible, no.
-
- Wildcard MX records have lots of semantic "gotcha"s. For example,
-they will match a host "unknown.your.domain" -- if you don't
-explicitly test for unknown hosts in your domain, you will get "config
-error: mail loops back to myself".
-
- See RFCs 1535, 1536, and 1912 (updates RFC 1537) for more detail
-and other related (or common) problems. See also _DNS and BIND_ by
-Albitz and Liu.
-
- They can also cause your system to add your domain to outgoing
-FQDNs in a desperate attempt to get the mail to where it's supposed to
-go, but because *.your.domain is valid due to the wildcard MX,
-delivery to not.real.domain.your.domain will get dumped on you, and
-you may even find yourself in a loop as the domain keeps getting
-tacked on time after time after time (the "config error: mail loops
-back to myself" problem).
-
-
- Wildcard MX records are just a bad idea, plain and simple.
-They don't work the way you'd expect, and virtually no one gets
-them right. Avoid them at all costs.
-
-------------------------------
-
-Date: March 23, 1996
-Subject: Q4.2 -- How can I set up an auto-responder?
-
- This is a local mailer issue, not a sendmail issue. Depending on
-what you're doing, look at procmail (see Q4.9), ftpmail, or Majordomo.
-
-
- The latest version of Majordomo can be found at
-<ftp://ftp.greatcircle.com/pub/majordomo/>. It is written in Perl and
-requires either Perl 4.036, and appears to run with only minor tweaks
-under 5.001a or later. Make sure to check out the web interface for
-Majordomo called "Mailserv" at <http://iquest.com/~fitz/www/mailserv/>
-or "LWGate" at <http://www.netspace.org/users/dwb/lwgate.html>. The
-latest versions of Perl (both 4.x and 5.x) can be found in
-<http://www.metronet.com/perlinfo/src/>. More information about Perl
-can be found at <http://www.metronet.com/perlinfo/perl5.html>
-
- The latest version of ftpmail can be found at
-<ftp://src.doc.ic.ac.uk/packages/ftpmail> or any comp.sources.misc
-archive (volume 37).
-
-------------------------------
-
-Date: July 9, 1996
-Subject: Q4.3 -- How can I get sendmail to deliver local mail to
- $HOME/.mail instead of into /usr/spool/mail (or /usr/mail)?
-
- Again, this is a local mailer issue, not a sendmail issue. Either
-modify your local mailer (source code will be required) or change the
-program called in the "local" mailer configuration description to be a
-new program that does this local delivery. One program that is
-capable of doing this is procmail (see Q4.9), although there are
-probably many others as well.
-
- You might be interested in reading the paper ``HLFSD: Delivering
-Email to your $HOME'' available in the Proceedings of the USENIX
-System Administration (LISA VII) Conference (November 1993). More
-information is at <ftp://ftp.cs.columbia.edu/pub/hlfsd/README.hlfsd>,
-while the actual archive of the papers is at
-<ftp://ftp.cs.columbia.edu/pub/hlfsd/hlfsd-paper.tar.gz> (tar archive,
-gzip'ed).
-
-------------------------------
-
-Date: March 23, 1996
-Subject: Q4.4 -- Why does it deliver the mail interactively when I'm
- trying to get it to go into queue only mode?
-
- Or, I'm trying to use the "don't deliver to expensive mailer"
-flag, and it delivers the mail interactively anyway. I can see it
-does it: here's the output of "sendmail -v foo@somehost" (or Mail -v
-or equivalent).
-
-
- The -v flag to sendmail (which is implied by the -v flag to Mail
-and other programs in that family) tells sendmail to watch the
-transaction. Since you have explicitly asked to see what's going on,
-it assumes that you do not want to to auto-queue, and turns that
-feature off. Remove the -v flag and use a "tail -f" of the log
-instead to see what's going on.
-
- If you are trying to use the "don't deliver to expensive mailer"
-flag (mailer flag "e"), be sure you also turn on global option "c" --
-otherwise it ignores the mailer flag.
-
-------------------------------
-
-Date: January 17, 1997
-Subject: Q4.5 -- How can I solve "config error: mail loops back to
- myself" messages?
-
- I'm getting these error messages:
-
- 553 relay.domain.net config error: mail loops back to myself
- 554 <user@domain.net>... Local configuration error
-
- How can I solve this problem?
-
- You have asked mail to the domain (e.g., domain.net) to be
-forwarded to a specific host (in this case, relay.domain.net)
-by using an MX record, but the relay machine doesn't recognize
-itself as domain.net. Add domain.net to /etc/sendmail.cw (if you
-are using FEATURE(use_cw_file)) or add "Cw domain.net" to your
-configuration file.
-
-
- IMPORTANT: When making changes to your configuration file, be
-sure you kill and restart the sendmail daemon (for ANY change in the
-configuration, not just this one):
-
- kill `head -1 /etc/sendmail.pid`
- sh -c "`tail -1 /etc/sendmail.pid`"
-
- NOTA BENE: kill -1 does not work with versions prior to 8.7.y!
-
- With version 8.8.z sendmail, if the daemon was started up with
-a full pathname (i.e., "/usr/lib/sendmail -bd -q13m"), then you
-should be able to send it a HUP signal ("kill -1", or more safely,
-"kill -HUP") and have it reload itself (version 8.7.y sendmail
-cannot do this safely, and represents a security risk if it's not
-replaced with version 8.8.3 or later).
-
-------------------------------
-
-Date: March 23, 1996
-Subject: Q4.6 -- Why does my sendmail process sometimes hang when
- connecting over a SLIP/PPP link?
-
- I'm connected to the network via a SLIP/PPP link. Sometimes my
-sendmail process hangs (although it looks like part of the message has
-been transfered). Everything else works. What's wrong?
-
- Most likely, the problem isn't sendmail at all, but the low level
-network connection. It's important that the MTU (Maximum Transfer
-Unit) for the SLIP connection be set properly at both ends. If they
-disagree, large packets will be trashed and the connection will hang.
-
-------------------------------
-
-Date: November 24, 1996
-Subject: Q4.7 -- How can I summarize the statistics generated by
- sendmail in the syslog?
-
- This question is addressed on page 319 of _sendmail_ by Bryan
-Costales.
-
- An updated version of this syslog-stat.pl script (so that
-it understands the log format used in version 8 sendmail) is
-at <ftp://ftp.his.com/pub/brad/sendmail/syslog_stats>. The
-updated version of ssl has been uploaded to the SMTP Resources
-Directory (in <ftp://ftp.is.co.za/networking/mail/tools/>),
-as well as <ftp://ftp.his.com/pub/brad/sendmail/ssl>.
-There is also another program (written by Bryan Beecher) at
-<ftp://ftp.his.com/pub/brad/sendmail/smtpstats>.
-
- If you're interested in summarizing POP statistics, there is
-<ftp://ftp.his.com/pub/brad/sendmail/popstats>, also written by
-Bryan Beecher.
-
-
- To see what else is available today, check the Comprehensive Perl
-Archive Network <ftp://ftp.funet.fi/pub/languages/perl/CPAN/CPAN> or
-<ftp://ftp.cis.ufl.edu/pub/perl/CPAN/CPAN> for the site nearest you.
-For the scripts themselves, look under CPAN/scripts/mailstuff/ at
-any CPAN site. For more information, see the comp.lang.perl.*
-FAQs at <ftp://ftp.cis.ufl.edu:/pub/perl/faq/FAQ> or
-<ftp://rtfm.mit.edu:/pub/usenet/comp.lang.perl.*/>.
-
-
- There is also the "Sendmail Statistics Project" which has a web
-page at <http://www.josnet.se/projects/ssp/>. Although they have
-examples online of what the output might look like, it now appears
-that this project is either dead or at least indefinitely on hold.
-Still, you may be able to talk to the authors in order to get what
-code from them you can.
-
-
- If you're interested in using these kinds of tools to help
-you do some near real-time monitoring of your system, you might be
-interested in MEWS (Mail Early Warning System). From the README:
-
- If you've ever written a perl script to parse sendmail
- log files looking for errors, MEWS might be of interest to
- you. If you've ever thought about writing a perl script to
- munge sendmail log files, cringed a little and hurriedly
- came up with an excuse not to do it, read on.
-
- If you don't have a Solaris 2.5 machine, you can probably
- stop reading here.
-
- The Mail Early Warning System (MEWS) gives postmasters
- immediate notification of trouble spots on your mail
- backbone. It only works with sendmail.
-
- To explain it in a nutshell, whenever sendmail returns a
- 4xx or 5xx SMTP code, with the MEWS modifications, it also
- sends the code over UDP to a daemon which then replays the
- error message to interested parties. The man pages go into
- a little bit more detail.
-
-
- If this sounds like something you might be interested in
-getting more details about, you can find the MEWS archive at
-<ftp://ftp.qualcomm.com/pub/people/eamonn/mews.tar.Z>.
-
-------------------------------
-
-Date: July 9, 1996
-Subject: Q4.8 -- How can I check my sendmail.cf to ensure that it's
- re-writing addresses correctly?
-
- The recommended program for this is "checksendmail" by Rob
-Kolstad. Old versions of this are available on various archive sites,
-but currently, the only way to get the most recent version (which has
-been updated to understand version 8.7 long option name syntax, as
-well as now supporting both Perl 4.x and Perl 5.x) is from Rob
-himself.
-
- The latest archive will be made publicly available (most likely
-through the SMTPRD run by Andras Salamon; see Q6.5, entry
-sendmail-faq//online/index/14) as soon as it is received.
-
-------------------------------
-
-Date: July 9, 1996
-Subject: Q4.9 -- What is procmail, and where can I get it?
-
- The program "procmail" is a replacement for the local mailer
-(variously called /bin/mail, /usr/bin/mail, mail.local, rmail,
-etc...). It has been ported to run on virtually every OS you're
-likely to run into, and has a whole host of features. It is typically
-about 30% faster performing the job of the local mailer than programs
-such as /bin/mail or /usr/bin/mail, it has been hammered on widely to
-make it extremely secure (much more so than most local mailers) and
-very robust. Procmail is also capable of helping you put a quota on a
-user's mailbox through the standard Unix quota mechanism (see Q4.3).
-
- In short, whatever you've got, you're almost guaranteed that
-procmail is better (if nothing else, the author has been able to focus
-lots of time and energy into making it the best and fastest tool
-available, while most system vendors just throw something together as
-fast as they can and move on to the whole rest of the OS).
-
- However, this only begins to scratch the surface of what procmail
-is capable of. It's most important feature is the fact that it gives
-you a standard way to create rules (procmail calls them "recipes") to
-process your mail before the messages get put into your mailbox, and
-for that feature alone, it is one of the most important tools any
-administrator can have in their repertoire. By filtering out or
-automatically dealing with 80% of your daily cruft, it lets you spend
-more time on the hard 20%.
-
- Note that recent releases of version 8 sendmail natively support
-using procmail as an alternate local mailer (see
-"FEATURE(local_procmail)" for version 8.7 and above). They also
-support procmail as an additional local mailer, if you're concerned
-about flat-out replacing your current local mailer with procmail (see
-"MAILER(procmail)" in version 8.7 and above).
-
-
- You can also install procmail as a user and run it out of your
-.forward file, although this tends to be a bit slower and less
-efficient.
-
-
- The latest version of procmail can be found at
-<ftp://ftp.informatik.rwth-aachen.de/pub/packages/procmail/>.
-
-
- Procmail is also the core to a mailing list management package
-called "SmartList", so if you've already got procmail, adding
-SmartList may be a good option. Some listowners prefer Majordomo,
-Listserv, or one of those other programs, but SmartList has more than
-a few adherents as well. Your personal tastes will dictate whether
-you swear by SmartList or at it.
-
-------------------------------
-
-Date: March 24, 1997
-Subject: Q4.10 -- How can I solve "cannot alias non-local names"
- errors?
-
- I upgraded from my vendor's sendmail to the latest version and
-now I'm getting these error messages when I run "newaliases":
-
- /etc/aliases: line 13: MAILER-DAEMON... cannot alias non-local names
- /etc/aliases: line 14: postmaster... cannot alias non-local names
-
- How can I solve this problem?
-
-
- Your local mailer doesn't have the "A" flag specified. Edit the
-Mlocal line in sendmail.cf and add "A" to the flags listed after
-"F=".
-
- Better yet, if you're running a recent version of sendmail
-that uses m4 to generate .cf files from .mc files, regenerate your
-sendmail.cf and see if that fixes the problem. Remember to install
-the new sendmail.cf and restart the sendmail daemon.
-
-------------------------------
-
-Date: March 23, 1996
-Subject: Q5.1.1 -- How can I solve "line 273: replacement $3 out of
- bounds" errors?
-
- When I use sendmail V8 with a Sun config file I get lines like:
-
- /etc/sendmail.cf: line 273: replacement $3 out of bounds
-
- the line in question reads:
-
- R$*<@$%y>$* $1<@$2.LOCAL>$3 user@ether
-
- what does this mean? How do I fix it?
-
- V8 doesn't recognize the Sun "$%y" syntax, so as far as it is
-concerned, there is only a $1 and a $2 (but no $3) in this line. Read
-Rick McCarty's paper on "Converting Standard Sun Config Files to
-Sendmail Version 8", in the contrib directory (file
-"converting.sun.configs") in the latest version 8 sendmail
-distribution for a full discussion of how to do this.
-
-------------------------------
-
-Date: March 23, 1996
-Subject: Q5.1.2 -- How can I solve "line 445: bad ruleset 96 (50 max)"
- errors?
-
- When I use sendmail V8 on a Sun, I sometimes get lines like:
-
- /etc/sendmail.cf: line 445: bad ruleset 96 (50 max)
-
- what does this mean? How do I fix it?
-
- You're somehow trying to start up the old Sun sendmail (or
-sendmail.mx) with a version 8 sendmail config file, which Sun's
-sendmail doesn't like. Check your /etc/rc.local, any procedures that
-have been created to stop and re-start the sendmail processes, etc....
-Make sure that you've switched everything over to using the new
-sendmail. To keep this problem from ever happening again, try the
-following (make sure you're logged in as root):
-
- mv /usr/lib/sendmail /usr/lib/sendmail.old
- ln -s /usr/local/lib/sendmail.v8 /usr/lib/sendmail
- mv /usr/lib/sendmail.mx /usr/lib/sendmail.mx.old
- ln -s /usr/local/lib/sendmail.v8 /usr/lib/sendmail.mx
- chmod 0000 /usr/lib/sendmail.old
- chmod 0000 /usr/lib/sendmail.mx.old
-
- Assuming, of course, that you have installed sendmail V8 in
-/usr/local/lib/sendmail.v8.
-
-------------------------------
-
-Date: May 23, 1996
-Subject: Q5.1.3 -- Why does version 8 sendmail (< 8.7.5) sometimes
- hang under Solaris 2.5?
-
- In moving from Solaris 2.4 to Solaris 2.5, the kernel changed its
-name and is now in /kernel/genunix instead of /kernel/unix, so
-_PATH_UNIX in conf.h is pointing to the wrong place.
-
- If you can't upgrade to the latest release of sendmail 8.8.z,
-the next best thing to do is change _PATH_UNIX in conf.h (in the
-solaris2 part) to point to the generic interface /dev/ksyms, like so:
-
- # define _PATH_UNIX "/dev/ksyms"
-
-------------------------------
-
-Date: November 24, 1996
-Subject: Q5.1.4 -- Why can't I use SunOS/Solaris to get email to
- certain large sites?
-
- This is most likely a problem in your resolver libraries
-(DNS, /etc/hosts, NIS, etc...). Older Sun (and Solaris?) resolver
-libraries allocated enough room for only five IP addresses for each
-host name, and if any program ever ran across a name with more than
-five IP addresses for it, the program would crash.
-
- For example, this would keep you from getting mail to CompuServe,
-since (at the time of this writing) they list eleven IP addresses
-for mx1.compuserve.com (one of the named MXes for compuserve.com).
-
- This will affect you even if you use version 8 sendmail, since
-it's a problem in the resolver libraries, and not in sendmail itself.
-
-
- You should either get patches to the resolver libraries from
-Sun, or the latest version of BIND (see Q2.12) and install their
-resolver library routines. Between the two, installing BIND is a
-bit more work, but it typically gives you much more up-to-date code
-to help you resist attacks to your systems, more capable programs
-to be used for serving the DNS (including support for IPv6 and
-several other features), and some very useful utility programs.
-
-------------------------------
-
-Date: July 5, 1996
-Subject: Q5.2.1 -- The system resource controller always reports
- sendmail as "inoperative". What's wrong?
-
- When I use version 8 sendmail on an IBM RS/6000 running AIX, the
-system resource controller always reports sendmail as "inoperative",
-even though it's actually running. What's wrong?
-
- When running as a daemon, sendmail detaches from its parent
-process, fooling the SRC into thinking that sendmail has exited. To
-fix this, issue the commands:
-
- kill `head -1 /etc/sendmail.pid`
- chssys -s sendmail -f 9 -n 15 -S -a "-d99.100"
- # use "-d0.1" in sendmail 8.6.x
- startsrc -s sendmail -a "-bd -q30m"
- # your sendmail args may vary
-
- Now the SRC should report the correct status of sendmail. If you
-are using version 8.6.x, use "-d0.1" instead of "-d99.100" (the debug
-options changed somewhat in version 8.7). In 8.6.x a side-effect of
-the "-d0.1" option is that a few lines of debug output will be printed
-on the system console every time sendmail starts up.
-
- For more information, read up on the System Resource Controller,
-the lssrc command and the chssys command in the online AIX
-documentation.
-
-------------------------------
-
-Date: May 23, 1996
-Subject: Q5.2.2 -- Why can't I use AIX to get email to some sites?
-
- When I use IBM's sendmail on an IBM RS/6000 running AIX trying to
-get to certain sites, it seems that I can get to some of them and not
-others. What's wrong?
-
- There are two possible problems here:
-
- 1) Your version of sendmail is not configured to recognize MX
- records in the DNS. Search through your sendmail.cf
- looking for "OK MX" or "OK ALL". Older configurations had
- this line commented out, and this will cause mail from you
- to some sites to fail (because those sites have MX
- records, but no A records in their DNS for the specific
- Fully Qualified Domain Name you're trying to mail to).
-
- For more information, see the comp.unix.aix FAQ
- <ftp://rtfm.mit.edu:/pub/usenet/news.answers/aix-faq/>.
-
- 2) There is a negative caching bug in AIX 3.2.5 with
- /usr/sbin/named executables that are less than 103000
- bytes long. Ask your IBM representative to give you PMP
- 3251, or the most recent patch that fixes this problem for
- your particular configuration and version of the OS.
-
-------------------------------
-
-Date: July 5, 1996
-Subject: Q5.2.3 -- Why can't I get sendmail 8.7.1 to use MX records
- with AIX 3.2.5?
-
- IBM, in their infinite wisdom, provided a header file that would
-easily mis-compile. This resulted in the struct{} for the DNS query
-to be mis-allocated, and MX processing would barf.
-
- Fix 1) upgrade to 8.7.5 - this has a code fix for this problem.
-
- Fix 2) Install the BIND 4.9.4 libraries and include files and
-tweak the Makefile.AIX to use them - I *think* these Get It Right (if
-not, at least it'll die during compile rather than failing weirdly at
-runtime).
-
- Fix 3) Hack Makefile.AIX to pass a -DBIT_ZERO_ON_LEFT to cause the
-headers to use the right #ifdefs.
-
-------------------------------
-
-Date: January 21, 1997
-Subject: Q6 -- Additional information sources
-
- This probably isn't in strict RFC 1807 format, but I'm getting
-closer. Unfortunately, the format detailed in RFC 1807 was never
-intended to be used in this fashion, so I'm doing a bit of square-peg
-fitting into round holes.
-
- Note that the publisher ids that I've assigned should not be
-misconstrued to imply that I have actually published all these
-documents, it's just that I need some sort of reasonable entry for the
-RFC 1807 "ID" field, and in lieu of information to the contrary
-indicating what the actual publishers have registered, I have assigned
-my own, independant, "third-party" IDs. Hopefully, the bibliographic
-entries below make it obvious who the real publishers of the various
-documents are.
-
-
- 6.1 Reference material devoted exlusively to sendmail
-
- BIB-VERSION:: CS-TR-v2.1
- ID:: sendmail-faq//online/reference/1
- ENTRY:: March 23, 1996
- TYPE:: Reference manual, available online in printable format
- REVISION:: January 21, 1997; Updated URL & mailing list info
- TITLE:: Sendmail Installation and Operation Guide
- AUTHOR:: Allman, Eric
- CONTACT:: Eric Allman <eric@Sendmail.ORG>
- InReference, Inc.
- NASA Ames Technology Commercialization Center
- 155-A Moffett Park Drive, Suite 104
- Sunnyvale, CA 94089
- Phone: 1+408 541-7615
- Fax: 1+408 734-4946
- DATE:: November 19, 1995
- PAGES:: 69
- RETRIEVAL:: Contents of manual is in doc/op/op.ps of sendmail source
- archive
- KEYWORD:: version 8.7.5 sendmail
- LANGUAGE:: English
- NOTES:: {g|n}roff "me" macro format version is in doc/op/op.me
- See: URL:http://www.sendmail.org/
-
-ABSTRACT::
-
-The documentation written by Eric Allman himself, comes with the
-sendmail distribution. The file in doc/op/op.me (nroff "me" macro
-format) may have a different number of pages depending on the type of
-device it is printed on, etc....
-
-Eric provides his free consulting in the form of continuing
-development on sendmail, and occasional posts to comp.mail.sendmail.
-Please don't be so rude as to ask him to provide further free
-consulting directly to you. If you (or your company) is willing to
-compensate his for his consulting time, he may be willing to listen.
-At the very least, you should make sure you've exhausted all other
-courses of action before resorting to adding another message to the
-thousands he gets per day.
-
-
-Check the sendmail home page at <http://www.sendmail.org/> for
-late-breaking updates and other useful information.
-
-If you want to be notified regarding future updates to sendmail and
-other items of potential interest, you may want to subscribe to the
-sendmail-announce mailing list. Address your subscription requests
-to "majordomo@lists.sendmail.org" with "subscribe sendmail-announce"
-as the body of the message.
-
-
-END:: sendmail-faq//online/reference/1
-
- BIB-VERSION:: CS-TR-v2.1
- ID:: sendmail-faq//book/ISBN/1-56592-056-2
- ENTRY:: March 23, 1996
- REVISION:: January 21, 1997; Updated info re: 2nd Ed.
- TYPE:: Reference book, hardcopy
- TITLE:: sendmail
- AUTHOR:: Costales, Bryan
- AUTHOR:: Allman, Eric
- AUTHOR:: Rickert, Neil
- CONTACT:: Bryan Costales <bcx@BCX.COM>
- O'Reilly & Associates, Inc.
- 103 Morris Street, Suite A
- Sebastapol, CA 95472
- Order by phone: 800-998-9938 (US/Canada inquiries)
- 800-889-8969 (US/Canada credit card orders)
- 707-829-0515 (local/overseas)
- DATE:: November, 1993
- PAGES:: 792
- COPYRIGHT:: Copyright (c) 1993 O'Reilly & Associates, Inc. All rights
- reserved.
- LANGUAGE:: English
- NOTES:: See: URL:http://www.ora.com/gnn/bus/ora/item/sendmail.html
-
-ABSTRACT::
-
-The definitive reference for version 8 sendmail.
-
-At least three printings of first edition have come out, and the
-information above is for the first printing.
-
-As of yet, this book has not been updated to include versions of
-sendmail after 8.6.4.
-
-Bryan provides his consulting to the world in the form of his book,
-unless you're willing to compensate him for his services as well.
-Like Eric, you should make sure you've exhausted all other courses of
-action before you spend any of his valuable time.
-
-
-The second edition has now been published (focussing exclusively
-on version 8.8 sendmail), with an ISBN of 1-56592-222-0. It has
-been expanded to 1,050 pages long and expanded coverage of many
-new topics too numerous to name.
-
-END:: sendmail-faq//book/ISBN/1-56592-056-2
-
- BIB-VERSION:: CS-TR-v2.1
- ID:: sendmail-faq//book/ISBN/1-55558-127-7
- ENTRY:: March 23, 1996
- TYPE:: Reference book, hardcopy
- REVISION:: Sep 9, 1996; fixed typo
- TITLE:: Sendmail: Theory and Practice
- AUTHOR:: Avolio, Frederick M.
- AUTHOR:: Vixie, Paul A.
- CONTACT:: Fred Avolio <fma@al.org>, Paul Vixie <vix@al.org>
- Digital Press
- 225 Wildwood Avenue
- Woburn, MA 01801, USA
- Ordering Info: voice 1 800 366 2665
- fax 1 800 446 6520
- DATE:: 1994
- PAGES:: 262
- COPYRIGHT:: Copyright (c) by 1995 Butterworth-Heinemann
- LANGUAGE:: English
- NOTES:: See: URL:http://www.vix.com/vix/smtap/
-
-ABSTRACT::
-
-Centers more on IDA sendmail (at least partly because version 8 didn't
-exist when they began the book). Written more like a college
-Sophomore or Junior level textbook.
-
-While you'll probably never let the Costales book out of your grubby
-little hands (especially if you do much work with version 8 sendmail),
-this is a book you'll probably read once or maybe twice, learn some
-very valuable things, but then likely put on a shelf and not read or
-reference again (unless you have to write up a bibliographic entry for
-it). Makes a better introduction to sendmail for management types,
-especially if you don't want them getting their hands on too much
-"dangerous" technical information. Also a *lot* smaller and less
-imposing.
-
-If possible, I recommend getting both, but if you can only get one,
-get Costales unless you're going to be working exclusively with IDA
-sendmail, in which case Avolio & Vixie will probably be more useful.
-
-Note that Paul Vixie is extremely busy working on further development
-of BIND, the Internet de facto standard program for serving the DNS,
-upon which all Internet services depend, mail being only one of them.
-Like Eric and Bryan, he's also very busy. Unless you're willing to
-compensate him for his services, please let him get real work done.
-
-END:: sendmail-faq//book/ISBN/1-55558-127-7
-
-
- 6.2 Reference material with chapters or sections on sendmail
-
- BIB-VERSION:: CS-TR-v2.1
- ID:: sendmail-faq//book/ISBN/0-13-151051-7
- ENTRY:: March 23, 1996
- TYPE:: Reference book, hardcopy
- REVISION:: May 23, 1996; Updated abstract.
- TITLE:: Unix System Administration Handbook, Second Edition
- AUTHOR:: Nemeth, Evi
- AUTHOR:: Snyder, Garth
- AUTHOR:: Seebass, Scott
- AUTHOR:: Hein, Trent R.
- CONTACT:: <sa-book@admin.com>
- Prentice-Hall, Inc.
- Upper Saddle River, New Jersey 07458
- DATE:: January, 1995
- PAGES:: 780
- COPYRIGHT:: Copyright (c) 1995 by Prentice Hall PTR
- LANGUAGE:: English
- NOTES:: See: URL:http://www.admin.com/
-
-ABSTRACT::
-
-Still the best hands-on Unix System Administration book around.
-Covers far more than just sendmail, but the sixty-four pages (pages
-455-518 in the third printing) it does devote are very well written
-and quite useful. Also provides a version of Rob Kolstad's
-checksendmail script on the accompanying CD-ROM.
-
-Note that Eric Allman and Marshall Kirk McKusick wrote the Foreword
-for the Second Edition. This should give you at least an inkling as
-to how essential this book is, even for experienced Unix
-administrators.
-
-END:: sendmail-faq//book/ISBN/0-13-151051-7
-
- BIB-VERSION:: CS-TR-v2.1
- ID:: sendmail-faq//book/ISBN/0-201-58629=0
- ENTRY:: March 23, 1996
- TYPE:: Reference book, hardcopy
- REVISION:: March 27, 1996; Changed ID format to include ISBN,
- moved URL to NOTES field from OTHER_ACCESS field,
- also updated ABSTRACT
- REVISION:: March 29, 1996; Updated ID, PAGES, COPYRIGHT, and ABSTRACT
- TITLE:: Practical Internetworking With TCP/IP and UNIX
- AUTHOR:: Carl-Mitchell, Smoot
- AUTHOR:: Quarterman, John S.
- CONTACT:: <tic@tic.com>
- Addison Wesley Publishing Company
- Computer Science & Engineering Division
- One Jacob Way
- Reading, MA 01867
- USA
- Orders: voice://800-822-6339 (USA)
- fax://617-942-1117
- DATE:: 1993
- PAGES:: 476
- COPYRIGHT:: Copyright (c) 1993 by Addison-Wesley Publishing
- Company, Inc.
- LANGUAGE:: English
- NOTES:: See URL:http://heg-school.aw.com/cseng/authors/mitchell/
- practical/practical.html
-
-ABSTRACT::
-
-Devotes 50 pages (most of chapter 8) to discussion of sendmail. As
-far as TCP/IP networking books go that also happen to discuss
-sendmail, it seems well-written and clear (better than I recall Hunt's
-book being), but rather dated in the face of books devoted to the
-topic and all the recent development activity in the sendmail
-community. Forget about the references, though. The newest
-sendmail-related reference listed is dated 1983, ten years before the
-date on this book and most certainly wildly out-of-date now.
-
-There are other books written on the subject of Internetworking with
-TCP/IP (most notably Comer), but this particular book seems to have a
-unique mix of theory (if perhaps a bit dated) and practical advice.
-Other books tend to have lots of one or the other, or split their
-theory and nitty-gritty details into separate books in a series (like
-Comer).
-
-Assuming that an update will be coming out soon, it probably deserves
-a place on the shelf of most System or Network Administrators, right
-next to _Internetworking with TCP/IP_ by Comer, _Managing Internet
-Information Services_ by Liu, et. al., _DNS and BIND_ by Albitz and
-Liu, _Unix System Administration_ by Nemeth, et. al., and last, but
-certainly not least, _sendmail_ by Costales. However, it deserves
-this place more because of the non-sendmail related material, as
-opposed to what sendmail-related material there is.
-
-END:: sendmail-faq//book/ISBN/0-201-58629-0
-
- BIB-VERSION:: CS-TR-v2.1
- ID:: sendmail-faq//book/ISBN/0-937175-82-X
- ENTRY:: March 23, 1996
- TYPE:: Reference book, hardcopy
- REVISION:: March 27, 1996; Changed ID format to include ISBN,
- moved URL to NOTES field from OTHER_ACCESS field
- TITLE:: TCP/IP Network Administration
- AUTHOR:: Hunt, Craig
- CONTACT:: O'Reilly & Associates, Inc.
- 103 Morris Street, Suite A
- Sebastapol, CA 95472
- Order by phone: 800-998-9938 (US/Canada inquiries)
- 800-889-8969 (US/Canada credit card orders)
- 707-829-0515 (local/overseas)
- DATE:: August, 1992
- PAGES:: 502
- LANGUAGE:: English
- NOTES:: See: URL:http://www.ora.com/gnn/bus/ora/item/tcp.html
-
-ABSTRACT::
-
-The book I learned sendmail from when there was no other book in print
-that even mentioned the name.
-
-Here primarily for historical purposes, especially with respect to the
-sending of Internet mail and the DNS. Some of the other TCP/IP
-networking stuff is relevant, but this book is getting more and more
-dated as time goes by.
-
-END:: sendmail-faq//book/ISBN/0-937175-82-X
-
-
- 6.3 Reference material on subjects related to sendmail
-
- BIB-VERSION:: CS-TR-v2.1
- ID:: sendmail-faq//book/ISBN/1-56592-010-4
- ENTRY:: March 23, 1996
- TYPE:: Reference book, hardcopy
- REVISION:: January 21, 1997; Updated info re: 2nd Ed.
- TITLE:: DNS and BIND
- AUTHOR:: Albitz, Paul
- AUTHOR:: Liu, Cricket
- CONTACT:: O'Reilly & Associates, Inc.
- 103 Morris Street, Suite A
- Order by phone: 800-998-9938 (US/Canada inquiries)
- 800-889-8969 (US/Canada credit card orders)
- 707-829-0515 (local/overseas)
- DATE:: October 1992
- PAGES:: 418
- COPYRIGHT:: Copyright (c) 1992 O'Reilly & Associates, Inc. All rights
- reserved.
- LANGUAGE:: English
- NOTES:: See: URL:http://www.ora.com/gnn/bus/ora/item/dns.html
-
-ABSTRACT::
-
-As definitive as Costales is on sendmail, this book is on the subject
-of the Domain Name System (DNS) and the most common server software
-for the DNS, namely BIND.
-
-It hasn't been updated yet to reflect the massive changes that
-happened with BIND 4.9.3 (and the recent flurry of related activity in
-the DNS community), but even as old as it is, it still stands the test
-of time as the one book *every* DNS/Domain Administrator should have
-on their shelf.
-
-Since the sending of Internet mail is so very heavily dependant on the
-DNS, it obviously also belongs on the shelf of any Postmaster or
-System Administrator whose site does Internet email. And that means
-virtually every administrator of every site on the Internet.
-
-
-This book has recently been updated with a second edition, ISBN
-1-56592-236-0 and 438 pages. It includes updated discussion of
-BIND 4.9.4, as well as many other topics.
-
-END:: sendmail-faq//book/ISBN/1-56592-010-4
-
- BIB-VERSION:: CS-TR-v2.1
- ID:: sendmail-faq//book/ISBN/0-937175-93-5
- ENTRY:: March 23, 1996
- TYPE:: Reference book, hardcopy
- REVISION:: March 27, 1996; Changed ID format to include ISBN,
- moved URL to NOTES field from OTHER_ACCESS field
- TITLE:: Managing UUCP and Usenet
- AUTHOR:: Todino, Grace
- AUTHOR:: O'Reilly, Tim
- CONTACT:: O'Reilly & Associates, Inc.
- 103 Morris Street, Suite A
- Order by phone: 800-998-9938 (US/Canada inquiries)
- 800-889-8969 (US/Canada credit card orders)
- 707-829-0515 (local/overseas)
- DATE:: January 1992
- PAGES:: 368
- LANGUAGE:: English
- NOTES:: See: URL:http://www.ora.com/gnn/bus/ora/item/muucp.html
-
-ABSTRACT::
-
-The definitive book for installing and managing UUCP.
-
-The general assumption with version 8 sendmail is that virtually no
-one uses UUCP to send email anymore, but if that assumption isn't true
-for you, then you probably need this book.
-
-END:: sendmail-faq//book/ISBN/0-937175-93-5
-
-
- 6.4 World-wide web index/resource pages on sendmail
-
- BIB-VERSION:: CS-TR-v2.1
- ID:: sendmail-faq//online/index/10
- ENTRY:: March 23, 1996
- TYPE:: Online sendmail index
- REVISION:: March 27, 1996; moved URL from RETRIEVAL field to
- OTHER_ACCESS field.
- TITLE:: comp.mail.sendmail FAQ Support Page
- AUTHOR:: Knowles, Brad
- CONTACT:: Brad Knowles <brad@etext.org>
-OTHER_ACCESS:: URL:http://www.his.com/~brad/sendmail/
- LANGUAGE:: English
-
-ABSTRACT::
-
-Support Page for this FAQ.
-
-END:: sendmail-faq//online/index/10
-
- BIB-VERSION:: CS-TR-v2.1
- ID:: sendmail-faq//online/index/17
- ENTRY:: March 25, 1996
- TYPE:: Online sendmail index
- REVISION:: March 27, 1996; moved URL from RETRIEVAL field to
- OTHER_ACCESS field.
- TITLE:: comp.mail.sendmail Most Frequently Asked Questions Support Page
- AUTHOR:: Assman, Claus
- CONTACT:: Claus Assmann <ca@informatik.uni-kiel.de>
-OTHER_ACCESS:: URL:http://www.informatik.uni-kiel.de/~ca/email/english.html
- LANGUAGE:: English
-
-ABSTRACT::
-
-Most Frequently Asked Questions on comp.mail.sendmail and their
-answers. Also has some links to a few other resources.
-
-END:: sendmail-faq//online/index/17
-
-
- BIB-VERSION:: CS-TR-v2.1
- ID:: sendmail-faq//online/index/11
- ENTRY:: March 23, 1996
- TYPE:: Online sendmail index
- REVISION:: May 23, 1996; Updated abstract.
- TITLE:: Henry's sendmail Page!
- AUTHOR:: Farkas, Henry
- CONTACT:: Henry Farkas <hfarkas@ims.advantis.com>
-OTHER_ACCESS:: URL:http://newstand.ims.advantis.com/henry/sendmail.html
- LANGUAGE:: English
-
-ABSTRACT::
-
-Has collected a few direct pointers to a few places, although I prefer
-to either have pointers to well-known index sites and let them do the
-hard work for me or do myself the work of making my site one of those
-well-known indexes.
-
-Still, worth taking a look at.
-
-END:: sendmail-faq//online/index/11
-
-
- BIB-VERSION:: CS-TR-v2.1
- ID:: sendmail-faq//online/resources/22
- ENTRY:: November 24, 1996
- TITLE:: IICONS Sendmail Resources
- AUTHOR:: Caloca, Paul
- CONTACT:: Paul Caloca <pcaloca@iicons.com>
- COPYRIGHT:: Copyright (c) 1996 Paul Caloca. All Rights Reserved.
-OTHER_ACCESS:: URL:http://www.iicons.com/sendmail/index.html
- LANGUAGE:: English
-
-ABSTRACT::
-
-Provides information on how to compile Sendmail and the NEWDB
-db.1.85 for Solaris 2. Also has a section on which Sun patches
-update Solaris 2 to BIND 4.9.3.
-
-Has pointers to some non-Sun/Solaris sendmail resources, especially
-including CERT Advisories related to sendmail.
-
-
-END:: sendmail-faq//online/index/22
-
-
- 6.5 World-wide web index pages and other reference on Internet
- email in general
-
- BIB-VERSION:: CS-TR-v2.1
- ID:: sendmail-faq//online/index/12
- ENTRY:: March 23, 1996
- TYPE:: Online general Internet email index
- REVISION:: March 27, 1996; moved URL from RETRIEVAL field to
- OTHER_ACCESS field.
- TITLE:: Internet Mail Consortium web site
- CORP-AUTHOR:: Internet Mail Consortium
- CONTACT:: <info@imc.org>
-OTHER_ACCESS:: URL:http://www.imc.org/
- LANGUAGE:: English
-
-ABSTRACT::
-
-If it has to do with Internet email, you'll probably find it here or a
-link to it from here.
-
-They have or have information on email-related Usenet FAQs, RFCs,
-Internet Drafts (documents that are in the process of becoming RFCs),
-IETF Working Groups, security standards, and are running a few
-email-related mailing lists.
-
-Tends to be focussed on the standards issues.
-
-If you care about Internet email, you should make it your duty in life
-to check this site frequently.
-
-END:: sendmail-faq//online/index/12
-
- BIB-VERSION:: CS-TR-v2.1
- ID:: sendmail-faq//online/index/13
- ENTRY:: March 23, 1996
- TYPE:: Online general Internet email index
- REVISION:: August 20, 1996; Updated URL.
- TITLE:: Email References
- AUTHOR:: Wohler, Bill
- CONTACT:: Bill Wohler <wohler@worldtalk.com>
-OTHER_ACCESS:: URL:http://www.worldtalk.com/html/msg_resources/email_ref.html
- LANGUAGE:: English
-
-ABSTRACT::
-
-The most exhaustive index site I know of for Internet email related
-documents outside of the Internet Mail Consortium.
-
-Also has pointers to other organizations that relate to Internet
-email, such as the Electronic Messaging Association and the European
-Electronic Messaging Association.
-
-Tends to be focussed on the server and standards issues.
-
-END:: sendmail-faq//online/index/13
-
- BIB-VERSION:: CS-TR-v2.1
- ID:: sendmail-faq//online/index/14
- ENTRY:: March 23, 1996
- TYPE:: Online general Internet email index
- REVISION:: June 28, 1996; Added acronym for SMTPRD
- TITLE:: SMTP Resources Directory (SMTPRD)
- AUTHOR:: Salamon, Andras
- AUTHOR:: Knowles, Brad
- CONTACT:: Andras Salamon <smtprd@dns.net>
-OTHER_ACCESS:: URL:http://www.dns.net/smtprd/
- LANGUAGE:: English
-
-ABSTRACT::
-
-Another good index site, but still very much in the early phases of
-gestation. Based very heavily on the DNS Resources Directory, also by
-Andras Salamon, at <http://www.is.co.za/dnsrd/>.
-
-A well-rounded site, for the amount of material it covers so far.
-
-END:: sendmail-faq//online/index/14
-
- BIB-VERSION:: CS-TR-v2.1
- ID:: sendmail-faq//online/index/15
- ENTRY:: March 23, 1996
- TYPE:: Online general Internet email index
- REVISION:: March 27, 1996; moved URL from RETRIEVAL field to
- OTHER_ACCESS field.
- TITLE:: E-Mail Web Resources
- AUTHOR:: Wall, Matt
- CONTACT:: Matt Wall <wall+@cmu.edu>
-OTHER_ACCESS:: URL:http://andrew2.andrew.cmu.edu/cyrus/email/email.html
- LANGUAGE:: English
-
-ABSTRACT::
-
-Another good index site, tends to be more focussed on client side and
-LAN email packages. Also lists some email services, which no one else
-that I've seen appears to have taken the time to catalog.
-
-Excellent side-by-side feature comparison of various MUAs and their
-compliance with various Internet protocols.
-
-END:: sendmail-faq//online/index/15
-
-
- 6.6 Online tutorials for sendmail
-
- BIB-VERSION:: CS-TR-v2.1
- ID:: sendmail-faq//online/tutorial/9
- ENTRY:: March 23, 1996
- TYPE:: Online sendmail tutorial
- REVISION:: March 27, 1996; moved URL from RETRIEVAL field to
- OTHER_ACCESS field.
- TITLE:: Sendmail V8: A (Smoother) Engine Powers Network Email
- AUTHOR:: Reich, Richard
- CONTACT:: Richard Reich <richard@reich.com>
- DATE:: February 8, 1996
- COPYRIGHT:: Copyright (c) 1995 The McGraw-Hill Companies, Inc.
- All Rights Reserved.
-OTHER_ACCESS:: URL:http://www.unixworld.com/unixworld/archives/95/tutorial/
- 008/008.txt.html
- LANGUAGE:: English
- NOTES:: UnixWorld Online: Tutorial: Article No. 008
-
-ABSTRACT::
-
-Good technical introduction. Some useful references. Notably does
-not reference this FAQ as a place to get more information.
-
-END:: sendmail-faq//online/article/9
-
- BIB-VERSION:: CS-TR-v2.1
- ID:: sendmail-faq//online/tutorial/16
- ENTRY:: March 23, 1996
- TYPE:: Online sendmail tutorial
- REVISION:: March 27, 1996; moved URL from RETRIEVAL field to
- OTHER_ACCESS field.
- TITLE:: Sendmail -- Care and Feeding
- AUTHOR:: Quinton, Reg
- CONTACT:: Reg Quinton <reggers@julian.uwo.ca>
- Computing and Communications Services
- The University of Western Ontario
- London, Ontario N6A 5B7
- Canada
- DATE:: March 24, 1992
-OTHER_ACCESS:: URL:ftp://ftp.sterling.com/mail/sendmail/uwo-course/
- sendmail.txt.Z
- LANGUAGE:: English
- NOTES:: Postscript version also available. See ftp://ftp.sterling.com/
- mail/sendmail/uwo-course/sendmail.ps.Z
-
-ABSTRACT::
-
-Dated. Only here until I find better.
-
-END:: sendmail-faq//online/tutorial/16
-
- BIB-VERSION:: CS-TR-v2.1
- ID:: sendmail-faq//online/tutorial/21
- ENTRY:: March 27, 1996
- TYPE:: Online sendmail tutorial
- TITLE:: Explosion in a Punctuation Factory
- AUTHOR:: Bryan Costales
- CONTACT:: Becca Thomas <editor@unixworld.com>
- DATE:: January 1994
- COPYRIGHT:: Copyright (c) 1995 The McGraw-Hill Companies, Inc.
- All Rights Reserved.
-OTHER_ACCESS:: URL:http://www.unixworld.com/unixworld/archives/94/tutorial/
- 01/01.txt.html
- LANGUAGE:: English
-
-ABSTRACT::
-
-Good introduction on how sendmail re-write rules work.
-
-END:: sendmail-faq//online/article/21
-
-
- 6.7 Online archives of mailing lists and Usenet newsgroups,
- relating to Internet email
-
- BIB-VERSION:: CS-TR-v2.1
- ID:: sendmail-faq//online/archive/18
- ENTRY:: March 25, 1996
- TYPE:: Online Usenet newgroup archive
- REVISION:: March 27, 1996; moved URL from RETRIEVAL field to
- OTHER_ACCESS field.
- TITLE:: DejaNews
-OTHER_ACCESS:: URL:http://www.dejanews.com
- LANGUAGE:: English
- NOTES:: Archives/indexes only Usenet news.
-
-ABSTRACT::
-
-The first, and still most focussed, Usenet news archive/index site.
-Others archive/index news as well as other things, but none that I've
-seen do it better.
-
-Go to "Power Search" then "Query Filter" if you wish to restrict the
-newsgroups you search on to something like just comp.mail.sendmail and
-not all newsgroups.
-
-END:: sendmail-faq//online/archive/18
-
- BIB-VERSION:: CS-TR-v2.1
- ID:: sendmail-faq//online/archive/19
- ENTRY:: March 25, 1996
- TYPE:: Online Usenet newgroup archive
- REVISION:: March 27, 1996; moved URL from RETRIEVAL field to
- OTHER_ACCESS field.
- TITLE:: AltaVista
-OTHER_ACCESS:: URL:http://www.altavista.digital.com
- LANGUAGE:: English
- NOTES:: Archives/indexes Usenet news and World-wide web pages.
-
-ABSTRACT::
-
-One of the leading indexes of world-wide web pages, and their
-archive/index of Usenet news is obviously secondary.
-
-END:: sendmail-faq//online/archive/19
-
- BIB-VERSION:: CS-TR-v2.1
- ID:: sendmail-faq//online/archive/20
- ENTRY:: March 25, 1996
- TYPE:: Online Usenet newgroup archive
- REVISION:: July 9, 1996; Additional information based on experience
- TITLE:: InReference
-OTHER_ACCESS:: URL:http://www.reference.com
- LANGUAGE:: English
- NOTES:: Not officially online yet, in final stages of beta
-
-ABSTRACT::
-
-Has promise to be the best Usenet news/publicly accessible mailing
-list index/archive site in the world. We'll see how well it delivers
-on this promise. It's in the final stages of beta testing (and is now
-open to the public), and seems quite solid. I haven't yet figured out
-how to really make proper use of the underlying power I'm sure is
-there, but it looks good. Of course, you'll need to wait a little
-while as they backfill their archives before searches will turn up all
-that much information, but it already compares favourably to DejaNews.
-
-Some of the best minds I know of are working on this project, so if it
-can be done, I figure they can do it.
-
-END:: sendmail-faq//online/archive/20
-
- BIB-VERSION:: CS-TR-v2.1
- ID:: sendmail-faq//online/archive/21
- ENTRY:: May 24, 1996
- TYPE:: Online archive of spam/junkmail
- TITLE:: list-managers spam discussion archives
- AUTHOR:: Gilman, Al
- CONTACT:: Al Gilman <asgilman@access.digex.net>
-OTHER_ACCESS:: URL:http://www.access.digex.net/~asgilman/spam/
-OTHER_ACCESS:: URL:ftp://www.access.digex.net/~asgilman/spam/
- LANGUAGE:: English
-
-ABSTRACT::
-
-These collections of past mail from the list-managers discussion list
-can be retrieved by ftp or HTTP.
-
-For anonymous ftp, open ftp.digex.net and cd to
-/pub/access/asgilman/spam.
-
-For http, G)o to http://www.access.digex.net/~asgilman/spam/ In this
-directory you will find, _inter alia_, two files which are mail
-folders:
-
- spam -- collects examples of spams
- spam-NOT -- collects discussion of spam countermeasures
-
-END:: sendmail-faq//online/archive/21
-
-------------------------------
-
-Date: July 9, 1996
-Subject: Q7 -- THANKS!
-
-
-Special thanks to:
-
- Eric Allman The core of the material here comes from
- his FAQ for version 8.6.9 sendmail. I
- couldn't even have gotten started were it
- not for him. And if he hadn't written
- sendmail, there obviously wouldn't even
- be a FAQ. Heck, there might not even be an
- Internet.
-
- Paul Southworth Provides FAQ posting services, useful
- comments on various sections, and the
- mailclient-faq. I couldn't have kept
- doing this were it not for his help.
-
- Ed Ravin Virtually all the material regarding the
- use of sendmail on AIX is his, and most
- of it has been carried over verbatim.
-
-Thanks also to:
-
- Neil Hoggarth, Andras Salamon, Johan Svensson, Christopher X.
- Candreva, Bill Wohler, Matthew Wall, Henry W. Farkas, Claus
- Assmann, Curt Sampson, Rebecca Lasher, Jim Davis, David Keegel,
- Betty Lee, Alain Durand, Walter Schweizer, Christophe Wolfhugel,
- Al Gilman, Valdis Kletnieks, John Gardiner Myers, Paul DuBois,
- Adam Bentley, Dave Sill, Dave Wreski, Paul Caloca, Eamonn
- Coleman, Michael Fuhr, Betty Lee, Derrell Lipman, and the
- readers and posters of comp.mail.sendmail.
-
-------------------------------
-
-Comments/updates should be sent to <sendmail-faq@etext.org>.
-
-Copyright 1996, by Brad Knowles, all rights reserved
-
-End of comp.mail.sendmail Frequently Asked Questions (FAQ), part 2 of 2
-***********************************************************************
diff --git a/debian/patch.collect b/debian/patch.collect
deleted file mode 100644
index 6aad2fd..0000000
--- a/debian/patch.collect
+++ /dev/null
@@ -1,25 +0,0 @@
-*** collect.c.orig Wed May 20 02:36:05 1998
---- collect.c Thu May 28 13:29:09 1998
-***************
-*** 353,360 ****
- if (*--bp != '\n' || *--bp != '\r')
- bp++;
- *bp = '\0';
-! if (bitset(H_EOH, chompheader(buf, FALSE, hdrp, e)))
-! mstate = MS_BODY;
- break;
-
- case MS_BODY:
---- 353,364 ----
- if (*--bp != '\n' || *--bp != '\r')
- bp++;
- *bp = '\0';
-! if (bitset(H_EOH, chompheader(buf, FALSE, hdrp, e))) {
-! mstate = MS_BODY;
-! if (tTd(30, 35))
-! printf("H_EOH, istate=%d, mstate=%d\n", istate, mstate);
-! goto nextstate;
-! }
- break;
-
- case MS_BODY:
diff --git a/debian/patch.orbs-orca b/debian/patch.orbs-orca
new file mode 100644
index 0000000..7e9275e
--- /dev/null
+++ b/debian/patch.orbs-orca
@@ -0,0 +1,42 @@
+*** ../cf/m4/proto.m4 Tue Dec 29 12:42:07 1998
+--- proto.m4 Tue Jan 5 15:10:53 1999
+***************
+*** 1101,1110 ****
+ ifdef(`_RBL_', `dnl
+ # DNS based IP address spam lists
+ R$* $: $&{client_addr}
+! R$-.$-.$-.$- $: $(host $4.$3.$2.$1._RBL_. $: OK $)
+! ROK $@ OK
+! R$+ $#error $@ 5.7.1 $: "Mail from " $&{client_addr} " refused by blackhole site _RBL_"',
+ `dnl')
+
+ ######################################################################
+ ### check_mail -- check SMTP ``MAIL FROM:'' command argument
+--- 1101,1127 ----
+ ifdef(`_RBL_', `dnl
+ # DNS based IP address spam lists
+ R$* $: $&{client_addr}
+! R$-.$-.$-.$- $: <?> $(host $4.$3.$2.$1._RBL_. $: OK $)
+! R<?>OK $: OKSOFAR
+! R<?>$+ $#error $@ 5.7.1 $: "Mail from " $&{client_addr} " refused by blackhole site _RBL_"',
+ `dnl')
++
++ ifdef(`_ORBS_', `dnl
++ # ORBS project checks -- http://www.dorkslayers.com/orbs/
++ R$* $: $&{client_addr}
++ R$-.$-.$-.$- $: <?> $(host $4.$3.$2.$1._ORBS_. $: OK $)
++ R<?>OK $: OKSOFAR
++ R<?>$+ $#error $@ 5.7.1 $: "Mail from " $&{client_addr} " refused; see http://www.orbs.org/"',
++ `dnl')
++
++ ifdef(`_ORCA_', `dnl
++ # ORCA project checks -- http://www.orca.bc.ca/dul/
++ R$* $: $&{client_addr}
++ R$-.$-.$-.$- $: <?> $(host $4.$3.$2.$1._ORCA_. $: OK $)
++ R<?>OK $: OKSOFAR
++ R<?>$+ $#error $@ 5.7.1 $: "Mail from " $&{client_addr} " refused; see http://www.orca.bc.ca/dul/"',
++ `dnl')
++
+
+ ######################################################################
+ ### check_mail -- check SMTP ``MAIL FROM:'' command argument
diff --git a/debian/postinst.debhelper b/debian/postinst.debhelper
deleted file mode 100644
index f0e9469..0000000
--- a/debian/postinst.debhelper
+++ /dev/null
@@ -1,72 +0,0 @@
-# Automatically added by dh_suidregister
-if [ -e /etc/suid.conf -a -x /usr/sbin/suidregister ]; then
- suidregister -s sendmail /usr/sbin/sendmail root root 4755
-else
- chown root.root /usr/sbin/sendmail
- chmod 4755 /usr/sbin/sendmail
-fi
-# End automatically added section
-# Automatically added by dh_suidregister
-if [ -e /etc/suid.conf -a -x /usr/sbin/suidregister ]; then
- suidregister -s sendmail /usr/sbin/sendmail root root 4755
-else
- chown root.root /usr/sbin/sendmail
- chmod 4755 /usr/sbin/sendmail
-fi
-# End automatically added section
-# Automatically added by dh_suidregister
-if [ -e /etc/suid.conf -a -x /usr/sbin/suidregister ]; then
- suidregister -s sendmail /usr/sbin/sendmail root root 4755
-else
- chown root.root /usr/sbin/sendmail
- chmod 4755 /usr/sbin/sendmail
-fi
-# End automatically added section
-# Automatically added by dh_suidregister
-if [ -e /etc/suid.conf -a -x /usr/sbin/suidregister ]; then
- suidregister -s sendmail /usr/sbin/sendmail root root 4755
-else
- chown root.root /usr/sbin/sendmail
- chmod 4755 /usr/sbin/sendmail
-fi
-# End automatically added section
-# Automatically added by dh_suidregister
-if [ -e /etc/suid.conf -a -x /usr/sbin/suidregister ]; then
- suidregister -s sendmail /usr/sbin/sendmail root root 4755
-else
- chown root.root /usr/sbin/sendmail
- chmod 4755 /usr/sbin/sendmail
-fi
-# End automatically added section
-# Automatically added by dh_suidregister
-if [ -e /etc/suid.conf -a -x /usr/sbin/suidregister ]; then
- suidregister -s sendmail /usr/sbin/sendmail root root 4755
-else
- chown root.root /usr/sbin/sendmail
- chmod 4755 /usr/sbin/sendmail
-fi
-# End automatically added section
-# Automatically added by dh_suidregister
-if [ -e /etc/suid.conf -a -x /usr/sbin/suidregister ]; then
- suidregister -s sendmail /usr/sbin/sendmail root root 4755
-else
- chown root.root /usr/sbin/sendmail
- chmod 4755 /usr/sbin/sendmail
-fi
-# End automatically added section
-# Automatically added by dh_suidregister
-if [ -e /etc/suid.conf -a -x /usr/sbin/suidregister ]; then
- suidregister -s sendmail /usr/sbin/sendmail root root 4755
-else
- chown root.root /usr/sbin/sendmail
- chmod 4755 /usr/sbin/sendmail
-fi
-# End automatically added section
-# Automatically added by dh_suidregister
-if [ -e /etc/suid.conf -a -x /usr/sbin/suidregister ]; then
- suidregister -s sendmail /usr/sbin/sendmail root root 4755
-else
- chown root.root /usr/sbin/sendmail
- chmod 4755 /usr/sbin/sendmail
-fi
-# End automatically added section
diff --git a/debian/postrm.debhelper b/debian/postrm.debhelper
deleted file mode 100644
index fb8bdab..0000000
--- a/debian/postrm.debhelper
+++ /dev/null
@@ -1,45 +0,0 @@
-# Automatically added by dh_suidregister
-if [ -e /etc/suid.conf -a -x /usr/sbin/suidunregister ]; then
- suidunregister -s sendmail /usr/sbin/sendmail
-fi
-# End automatically added section
-# Automatically added by dh_suidregister
-if [ -e /etc/suid.conf -a -x /usr/sbin/suidunregister ]; then
- suidunregister -s sendmail /usr/sbin/sendmail
-fi
-# End automatically added section
-# Automatically added by dh_suidregister
-if [ -e /etc/suid.conf -a -x /usr/sbin/suidunregister ]; then
- suidunregister -s sendmail /usr/sbin/sendmail
-fi
-# End automatically added section
-# Automatically added by dh_suidregister
-if [ -e /etc/suid.conf -a -x /usr/sbin/suidunregister ]; then
- suidunregister -s sendmail /usr/sbin/sendmail
-fi
-# End automatically added section
-# Automatically added by dh_suidregister
-if [ -e /etc/suid.conf -a -x /usr/sbin/suidunregister ]; then
- suidunregister -s sendmail /usr/sbin/sendmail
-fi
-# End automatically added section
-# Automatically added by dh_suidregister
-if [ -e /etc/suid.conf -a -x /usr/sbin/suidunregister ]; then
- suidunregister -s sendmail /usr/sbin/sendmail
-fi
-# End automatically added section
-# Automatically added by dh_suidregister
-if [ -e /etc/suid.conf -a -x /usr/sbin/suidunregister ]; then
- suidunregister -s sendmail /usr/sbin/sendmail
-fi
-# End automatically added section
-# Automatically added by dh_suidregister
-if [ -e /etc/suid.conf -a -x /usr/sbin/suidunregister ]; then
- suidunregister -s sendmail /usr/sbin/sendmail
-fi
-# End automatically added section
-# Automatically added by dh_suidregister
-if [ -e /etc/suid.conf -a -x /usr/sbin/suidunregister ]; then
- suidunregister -s sendmail /usr/sbin/sendmail
-fi
-# End automatically added section
diff --git a/debian/rbl.m4 b/debian/rbl.m4
deleted file mode 100644
index 0b740b0..0000000
--- a/debian/rbl.m4
+++ /dev/null
@@ -1,14 +0,0 @@
-divert(0)
-VERSIONID(`@(#)rbl.m4 1.2 (RBL) 11/18/97')
-
-LOCAL_RULESETS
-#
-# Deny spammers during MAIL command if the IP address of the incoming
-# connection is in the RBL map (http://maps.vix.com/rbl/)
-#
-Scheck_mail
-R$* $: $(dequote "" $&{client_addr} $)
-R0 $@ OK
-R$-.$-.$-.$- $: $(host $4.$3.$2.$1.rbl.maps.vix.com. $: OK $)
-ROK $@ OK
-R$+ $#error $@ 5.7.1 $: " Mail from " $(dequote "" $&{client_addr}$) " refused, see http://maps.vix.com/rbl/"
diff --git a/debian/rblspam.m4 b/debian/rblspam.m4
deleted file mode 100644
index 48d6c29..0000000
--- a/debian/rblspam.m4
+++ /dev/null
@@ -1,66 +0,0 @@
-divert(-1)
-# This is a variation on the tradinal RBL filters that dumps email to
-# a separate user rather than bouncing it back. It is recommended that
-# a user spam be created to recieve the mail.
-
-# This works as discussed in the web page http://maps.vix.com/
-
-# The two ways to use the MAPS RBL are: transfer and inquiry. In
-# inquiry mode you start by knowing the IPv4 dotted quad address of
-# some host or mail relay, and you use some network protoco l to ask
-# MAPS whether that host is listed in the RBL. If the host is so
-# listed, you can choose a next step which is appropriate to your site
-# security policy. At our site we reject all mail from hosts listed in
-# the MAPS RB L, and some of our hosts also route all traffic destined
-# for such hosts to a local black hole .
-
-# The rules below direct all such mail to a designated spam
-# user. Please note that this means the mail is not rejected, and the
-# spammer has no incentive to stop; the default configuration rejects
-# the mail with an error; and this not totally in line with the intent
-# of the Mail Abuse Prevention System's Realtime Blackhole List. The
-# are trying to make sure the spammers are delibrately
-# disconnected. For this reason, I have provided a means of rejecting
-# the message (by uncommenting a line) just like the original
-# configuration does.
-
-# Please use this hack after due consideration, this is not for every
-# one.
-
-
-# The simplest way to get started using the MAPS RBL to protect your
-# mail relay ag ainst theft of service by spammers is to arrange for
-# it to make a DNS query (of a stylized name) whenever you receive an
-# incoming mail message from a host whose spam status you do not
-# know. In Sendmail (version 8.8 or later), this is done using
-# configuration rules like these:
-
-
-divert(0)
-VERSIONID(`@(#)my_rbl.m4 1.2 (Manoj Srivastava) 1998-02-05')
-PUSHDIVERT(6)
-# Login of the user selected to recieve all spam
-D{SpamUser} ifelse(_ARG_, `', `spam', `_ARG_')
-POPDIVERT
-
-
-divert(2)
-LOCAL_RULESETS
-
-S98
-# Try and ensure that the sender is not blacklisted
-R$* $: $1 $| $(dequote "" $&{client_addr} $)
-R$* $| $1 # no match, restore
-
-# check with upstream site
-R$* $| $-.$-.$-.$- $: $1 $| $(host $5.$4.$3.$2.rbl.maps.vix.com. $: OK $)
-
-# handle results of lookup
-R$* $| OK $1 # no match, restore
-R$* $| $1 # no match, restore
-
-# Comment this line, and un comment the next to actually reject the message
-R$* $| $+ ${SpamUser} < @ $j . > # save to spam user
-#R$* $| $+ $#error $@ 5.7.1 $: " Mail from " $(dequote "" $&{client_addr} $) " refused, see http://maps.vix.com/rbl/"
-
-divert(0)
diff --git a/debian/rules b/debian/rules
index c5eecb3..47b2763 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,258 +1,219 @@
#!/usr/bin/make -f
# -*- makefile -*-
-# Debianrules for building a Debian package
-# Version 1.5
+# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess.
#
-# These rules have been specifically designed NOT to require root to
-# run them. At any time root privileges are required, the command to be
-# executed will be made obvious and root's password will be prompted for.
-# Of course, root may still run this and no password will be required.
+# This file is also based upon prior sendmail makefiles
#
-# Robert Leslie <rob@mars.org>
+# Richard Nelson <cowboy@debian.org>
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
package=sendmail
version=$(shell expr `pwd` : '.*-\([0-9.].*\)')
version_main=$(shell expr `pwd` : '.*-\([0-9]*.[0-9.]*\)')
-LIBS = -ldb -lresolv -lnsl -lwrap
-DBMDEF = -DNEWDB -DNIS
-ENVDEF = -DHASFLOCK=1 -DTCPWRAPPERS=1 -include $(shell pwd)/debian/el33t.h \
- -I/usr/include/db
-
-CC=cc
-GCC = $(CC) $(HACK)
-OFLAGS = -O2
-SHELL=/bin/bash
+#-------------
+build: build-stamp
+build-stamp:
+ dh_testdir
+ # Add here commands to compile the package.
+ #$(MAKE)
-.SILENT: rmail/rmail
+ cp -f debian/site.config.m4 BuildTools/Site/site.config.m4
+ $(MAKE)
-rmail/rmail:
- cd rmail && $(GCC) $(OFLAGS) rmail.c -o rmail
+ # Debian stuff
+ cd debian && gcc -O2 -o sensible-mda sensible-mda.c
+ touch build-stamp
+#-------------
+clean:
+ dh_testdir
+ dh_testroot
+ rm -f build-stamp install-stamp
-.PHONY: man bin
-
-build:
- $(checkdir)
-# -ln -sf /usr/include/gdbm-ndbm.h src/ndbm.h
- cd src && ./makesendmail sendmail \
- CC="$(GCC)" O="$(OFLAGS)" DBMDEF="$(DBMDEF)" \
- ENVDEF="$(ENVDEF)" INCDIRS="$(INCDIRS)" \
- LIBS="$(LIBS)" LIBDIRS=""
- $(MAKE) -C mailstats -f Makefile.dist mailstats \
- CC="$(GCC)" O="$(OFLAGS)" \
- INCDIRS="-I../src" LIBDIRS=""
- $(MAKE) -C makemap -f Makefile.dist makemap \
- CC="$(GCC)" O="$(OFLAGS)" \
- INCDIRS="-I../src -I/usr/include/db" \
- LIBDIRS="" LIBS="$(LIBS)" DBMDEF="$(DBMDEF)"
- $(MAKE) -C praliases -f Makefile.dist praliases \
- CC="$(GCC)" O="$(OFLAGS)" \
- INCDIRS="-I../src -I/usr/include/db" \
- LIBDIRS="" LIBS="$(LIBS)"
-# -$(MAKE) -C mail.local -f Makefile.dist mail.local \
-# CC="$(GCC)" O="$(OFLAGS)" INCDIRS="-I../src" \
-# LIBDIRS="" LIBS="" ENVDEF="-DBSD4_4"
- $(MAKE) -C smrsh -f Makefile.dist smrsh \
- CC="$(GCC)" O="$(OFLAGS)" \
- ENVDEF="-DCMDDIR=\\\"/usr/lib/sm.bin\\\" \
- -DPATH=\\\"/usr/bin:/bin\\\"" \
- INCDIRS="-I../src" LIBDIRS=""
- $(MAKE) -f debian/rules rmail/rmail
- cd doc && { \
- for doc in changes/changes intro/intro op/op usenix/usenix; \
- do test -f $$doc.txt || \
- nroff -me $$doc.me | cat -s > $$doc.txt; done; \
- }
- test -f debian/part1 && test -f debian/part2
- cd debian && gcc -o sensible-mda sensible-mda.c
- touch build
+ # Add here commands to clean up after the build process.
+ #-$(MAKE) clean
+ #-$(MAKE) distclean
+ cp -f debian/site.config.m4 BuildTools/Site/site.config.m4
+ -$(MAKE) clean
-l33ch:
- cd debian && \
- wget ftp://rtfm.mit.edu/pub/usenet/news.answers/mail/sendmail-faq/part1
- cd debian && \
- wget ftp://rtfm.mit.edu/pub/usenet/news.answers/mail/sendmail-faq/part2
+ # Local approximation of distclean
+ for file in \
+ src mail.local mailstats makemap praliases rmail smrsh; do \
+ rm -rf $$(find . -name "obj*" -type d); \
+ done;
+ rm -f BuildTools/Site/site.config.m4
+ rm -f debian/{check.tar,sensible-mda}
+ find .. -name $(package)*.asc -size 0 -maxdepth 1 -exec rm {} ";"
+ chmod +x debian/{runq,sendmailconfig}
+ dh_clean
-man:
- cp -p debian/runq.1 debian/tmp/usr/man/man1
- cp -p debian/sendmailconfig.8 debian/tmp/usr/man/man8
- cp -p debian/sensible-mda.8 debian/tmp/usr/man/man8
- for file in src/*.[158] mailstats/*.8 makemap/*.8 \
- praliases/*.8 smrsh/*.8 rmail/*.8; do \
- base=$$(basename $$file); \
- ext=$$(echo $$file | sed -e "s/.*\(.\)$$/\1/"); \
- sed -e "s#/usr/adm/sm.bin#/usr/lib/sm.bin#g" \
- -e "s#/etc/sendmail.hf#/usr/lib/sendmail.hf#g" \
- -e "s#/bin:/usr/bin:/usr/ucb#/usr/bin:/bin#g" \
- -e "s#/etc/rc#/etc/init.d/sendmail#g" $$file \
- > debian/tmp/usr/man/man$$ext/$$base; \
- done
- install -m 644 contrib/etrn.pl debian/tmp/usr/man/man8/etrn.8
- install -m 644 contrib/expn.pl debian/tmp/usr/man/man8/expn.8
- cp -p checksendmail/address.resolve debian/tmp/usr/doc/$(package)
- cp -p checksendmail/checksendmail.8 debian/tmp/usr/man/man8
+#-------------
+install: install-stamp
+install-stamp: build-stamp
+ dh_testdir
+ dh_testroot
+ #dh_clean -k
+ dh_clean
+ dh_installdirs
+ # Add here commands to install the package into debian/tmp.
+ #-$(MAKE) prefix=`pwd`/debian/tmp/usr install
-bin:
- install rmail/rmail debian/tmp/usr/bin
- cd src && ./makesendmail install-sendmail \
- DESTDIR="$$(pwd)/../debian/tmp" BINGRP="root"
- STDIR="$$(pwd)/../debian/tmp/var/log"
-# cd debian/tmp && mv etc/sendmail.hf usr/lib
- rm -f debian/tmp/etc/sendmail.st
- $(MAKE) -s -C mailstats -f Makefile.dist install-mailstats \
- DESTDIR="../debian/tmp"
- $(MAKE) -s -C makemap -f Makefile.dist install-makemap \
- DESTDIR="../debian/tmp"
- $(MAKE) -s -C praliases -f Makefile.dist install-praliases \
- DESTDIR="../debian/tmp"
- $(MAKE) -s -C smrsh -f Makefile.dist install-smrsh \
- BINDIR="../debian/tmp/usr/sbin"
-# -$(MAKE) -s -C mail.local -f Makefile.dist install-mail.local \
-# BINDIR="../debian/tmp/usr/sbin"
- strip --strip-debug debian/tmp/usr/{bin,sbin}/*
- install debian/sendmailconfig debian/sensible-mda debian/tmp/usr/sbin
- install debian/runq debian/tmp/usr/bin
+ chmod 700 debian/tmp/var/state/sendmail
+
+ # sendmail install proper... with a little help ;-}
+ cp -f debian/site.config.m4 BuildTools/Site/site.config.m4
+ $(MAKE) install \
+ DESTDIR="$$(pwd)/debian/tmp"
+ cd rmail/obj* && $(MAKE) force-install \
+ DESTDIR="../../debian/tmp"
+ # correct what the m4 build process did...
+ mv debian/tmp/usr/bin/rmail debian/tmp/usr/sbin/rmail
+ ln -sf ../sbin/rmail debian/tmp/usr/bin/rmail
+ #mv debian/tmp/usr/sbin/sendmail debian/tmp/usr/sbin/sendmail.real
+ #chmod 4755 debian/tmp/usr/sbin/sendmail.real
+ for file in \
+ debian/tmp/usr/bin/{hoststat,mailq,newaliases,purgestat} \
+ debian/tmp/usr/lib/sendmail; do \
+ ln -sf ../sbin/sendmail $$file; \
+ done;
+
+ # contributed stuff - scripts
sed "s?/usr/local/bin/perl?/usr/bin/perl?g" contrib/etrn.pl \
+ | sed "s?/etc/sendmail.cf?/etc/mail/sendmail.cf?g" \
> debian/tmp/usr/sbin/etrn
+ chmod a+x debian/tmp/usr/sbin/etrn
sed "s?/usr/local/bin/perl?/usr/bin/perl?g" contrib/expn.pl \
> debian/tmp/usr/bin/expn
- chmod 755 debian/tmp/usr/sbin/etrn debian/tmp/usr/bin/expn
- install checksendmail/checksendmail.perl debian/tmp/usr/sbin/checksendmail
- for file in debian/tmp/usr/bin/{hoststat,mailq,newaliases,purgestat} \
- debian/tmp/usr/lib/sendmail; do \
- rm -f $$file && ln -s ../sbin/sendmail $$file; \
- done
+ chmod a+x debian/tmp/usr/bin/expn
+ sed "s?/etc/sendmail.cf?/etc/mail/sendmail.cf?g" \
+ debian/checksendmail/checksendmail.perl \
+ > debian/tmp/usr/sbin/checksendmail
+ chmod a+x debian/tmp/usr/sbin/checksendmail
+ # man
+ sed "s?/usr/local/bin/perl?/usr/bin/perl?g" contrib/etrn.pl \
+ > debian/tmp/usr/man/man8/etrn.8
+ sed "s?/usr/local/bin/perl?/usr/bin/perl?g" contrib/expn.pl \
+ > debian/tmp/usr/man/man8/expn.8
+ cp -p debian/checksendmail/checksendmail.8 debian/tmp/usr/man/man8/
+ # examples
+ sed "s?/bin/perl?/usr/bin/perl?g" contrib/passwd-to-alias.pl \
+ > debian/tmp/usr/doc/$(package)/examples/passwd-to-alias
+ # Debian stuff
+ install debian/sendmailconfig debian/sensible-mda \
+ debian/tmp/usr/sbin
+ install debian/runq debian/tmp/usr/bin
+ #install -m 755 debian/socks_wrapper debian/tmp/usr/sbin/sendmail
+ # sendmail documentation
+ cp -p doc/*/*.ps debian/tmp/usr/doc/$(package)
+ cd doc && { \
+ for doc in \
+ changes/changes intro/intro op/op usenix/usenix; do\
+ base=$$(basename $$doc.txt); \
+ test -f $$doc.txt || \
+ nroff -me $$doc.me | \
+ cat -s > ../debian/tmp/usr/doc/sendmail/$$base; \
+ done; \
+ }
+
+ # m4 configuration directories
+ cp -p cf/README debian/tmp/usr/doc/$(package)/cf.README
+ cp -a cf/{feature,m4,mailer,sh,domain,ostype} \
+ debian/tmp/usr/share/sendmail.cf
+ chmod a+x debian/tmp/usr/share/sendmail.cf/sh/*
+ cp debian/debproto.mc debian/tmp/usr/share/sendmail.cf/cf/
+ cp debian/debian.m4 debian/tmp/usr/share/sendmail.cf/ostype/
+ cp debian/orbs.m4 debian/tmp/usr/share/sendmail.cf/feature/
+ cp debian/orca.m4 debian/tmp/usr/share/sendmail.cf/feature/
+
+ cp -p debian/{aliases,nssnodns.conf} debian/tmp/etc
+ #$(MAKE) -f debian/rules hacks
+
+ dh_movefiles
+ touch install-stamp
+
+#-------------
+binary-indep: build install
+# There are no architecture-independent files to be uploaded
+# generated by this package. If there were any they would be
+# made here.
+
+#-------------
+binary-arch: build install
+# dh_testversion
+ dh_testdir
+ dh_testroot
+ dh_installchangelogs RELEASE_NOTES
+ dh_installcron
+ dh_installdocs
+# dh_installemacsen
+ dh_installexamples
+ dh_installinit
+ dh_installmanpages mail.local/*
+ cd debian/tmp/usr/man/man8 && \
+ ln -sf sendmail.8.gz ./purgestat.8.gz && \
+ ln -sf sendmail.8.gz ./hoststat.8.gz
+ # ln -sf sendmail.8.gz ./sendmail.real.8.gz
+# dh_undocumented
+ dh_installmenu
+ #
+ $(MAKE) -s -f debian/rules buildinfo
+ #
+ dh_strip
+ dh_compress
+ dh_fixperms
+ #dh_link
+ dh_suidregister
+ dh_installdeb
+ dh_shlibdeps
+ dh_gencontrol
+ dh_makeshlibs
+ dh_md5sums
+ dh_builddeb
+#-------------
+l33ch:
+ dh_testdir
+ cd debian && \
+ wget --passive-ftp --timestamping \
+ ftp://rtfm.mit.edu/pub/usenet/comp.mail.sendmail/sendmail_FAQ
+
+#-------------
hacks:
cd debian && uudecode check.tar.uue
cd debian/tmp/usr/doc/$(package) && tar -xf ../../../../check.tar
cd debian/tmp/usr/doc/$(package)/hack; \
- for file in *; do \
+ for file in *; do \
sed "s/dbm /hash /g" < $$file \
- > ../../../lib/sendmail.cf/hack/$$file; \
- done
+ > ../../../share/sendmail.cf/hack/$$file; \
+ done
sed "s/dbm /hash /g" debian/tmp/usr/doc/$(package)/README.check \
> debian/tmp/usr/doc/$(package)/README.Spam
rm debian/tmp/usr/doc/$(package)/README.check
rm -r debian/tmp/usr/doc/$(package)/hack/
- cp -p debian/{rbl*,nodns}.m4 debian/tmp/usr/lib/sendmail.cf/hack
-
-
-binary-indep: checkroot
- $(checkdir)
-
-binary-arch: checkroot build
- $(checkdir)
- rm -rf debian/tmp && install -d debian/tmp
- cd debian/tmp && install -d $$(cat ../dirs)
- cp debian/{conffiles,control} debian/tmp/DEBIAN
- install debian/{pre*,post*} debian/tmp/DEBIAN
-
- $(MAKE) -f debian/rules man
- cp -p doc/*/{*.ps,*.txt} debian/tmp/usr/doc/$(package)
- cp -p RELEASE_NOTES debian/tmp/usr/doc/$(package)/changelog
-# cp -p debian/changelog \
-# debian/tmp/usr/doc/$(package)/changelog.Debian
- cp -p cf/README debian/tmp/usr/doc/$(package)/cf.README
- cp -p debian/part1 debian/tmp/usr/doc/$(package)/FAQ-1.txt
- cp -p debian/part2 debian/tmp/usr/doc/$(package)/FAQ-2.txt
- find debian/tmp/usr/doc/$(package) debian/tmp/usr/man \
- -type f -exec gzip -v9 {} ";"
- cd debian/tmp/usr/man/man8 && \
- ln -s sendmail.8.gz ./purgestat.8.gz && \
- ln -s sendmail.8.gz ./hoststat.8.gz
- cp -p debian/{README*,copyright} contrib/passwd-to-alias.pl \
- KNOWNBUGS debian/tmp/usr/doc/$(package)
- chmod a-x debian/tmp/usr/doc/$(package)/passwd-to-alias.pl
- cp debian/debproto.mc debian/tmp/usr/lib/sendmail.cf/cf
- cp -p debian/debian.m4 cf/ostype/* \
- debian/tmp/usr/lib/sendmail.cf/ostype
- cp -p cf/domain/* debian/tmp/usr/lib/sendmail.cf/domain
- cp -a cf/{feature,m4,mailer,sh} debian/tmp/usr/lib/sendmail.cf
-
- $(MAKE) -f debian/rules bin
- $(MAKE) -f debian/rules hacks
- install debian/init.d debian/tmp/etc/init.d/$(package)
- #install -m 755 debian/ip-up.d debian/tmp/etc/ppp/ip-up.d/$(package)
- #install -m 755 debian/ip-down.d debian/tmp/etc/ppp/ip-down.d/$(package)
- cp -p debian/{aliases,nssnodns.conf} debian/tmp/etc
-
- chmod -R u=rwX,go=rX debian/tmp
- chown -R root.root debian/tmp
- chmod 4755 debian/tmp/usr/sbin/sendmail
- chmod 700 debian/tmp/var/state/sendmail
- $(MAKE) -s -f debian/rules buildinfo
-
-# dh_installdocs
-# dh_installexamples
-# dh_installmenu
-# dh_installcron
-# dh_installmanpages
- dh_installchangelogs
-# dh_movefiles
- dh_strip
-# dh_compress
- dh_fixperms
- dh_suidregister
- dh_installdeb
- dh_shlibdeps
- dh_gencontrol
-# dh_makeshlibs
- dh_md5sums
- dh_builddeb
-
-
-clean:
- $(checkdir)
- rm -f build
- test ! -d debian/tmp || rm -rf debian/tmp
- $(MAKE) -C smrsh -f Makefile.dist clean
- $(MAKE) -C praliases -f Makefile.dist clean
- $(MAKE) -C makemap -f Makefile.dist clean
- $(MAKE) -C mailstats -f Makefile.dist clean
- $(MAKE) -C mail.local -f Makefile.dist clean
- rm -f doc/{changes/changes,intro/intro,op/op,usenix/usenix}.txt
- rm -rf rmail/rmail stamp-build $$(find . -name "*~") src/obj.*
- rm -rf $$(find debian/* -type d) $$(find src makemap -type l)
- rm -rf debian/{files*,*substvars*} debian/{check.tar,sensible-mda}
- find .. -name $(package)*.asc -size 0 -maxdepth 1 -exec rm {} ";"
- chmod +x debian/{pre*,post*,runq,sendmailconfig}
-
+ cp -p debian/{rbl*,nodns}.m4 debian/tmp/usr/share/sendmail.cf/hack
+#-------------
buildinfo:
@echo; dpkg -l gcc "libc6*" binutils ldso make dpkg-dev $(BUILDINFO) \
| awk '$$1 == "ii" { printf("%s-%s\n", $$2, $$3) }' \
| tee debian/tmp/usr/doc/$(package)/buildinfo.Debian; echo
chmod 644 debian/tmp/usr/doc/$(package)/buildinfo.Debian
-# cd debian/tmp && md5sum $$(find * -type f -not -regex "DEBIAN/.*") \
-# > DEBIAN/md5sums
-# rm -f debian/tmp/files.sig
-# -cd debian/tmp && pgp -sat +clearsig=on DEBIAN/md5sums -o files.sig \
-# && chmod 644 files.sig \
-# && mv -v files.sig usr/doc/$(package)/checksums.txt
-
-
-define checkdir
- test -f debian/rules
-endef
+#-------------
# Below here is fairly generic really
-binary: binary-indep binary-arch
-
source diff:
@echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
-checkroot:
- $(checkdir)
- test root = "`whoami`"
-
-.PHONY: binary binary-arch binary-indep clean checkroot
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary
diff --git a/debian/runq b/debian/runq
index b68b35a..a62522c 100644
--- a/debian/runq
+++ b/debian/runq
@@ -22,5 +22,6 @@ case $# in
;;
* ) ;;
esac
-
-exec /usr/sbin/sendmail -q $*
+
+COMMAND=/usr/sbin/sendmail
+exec $COMMAND -q $*
diff --git a/debian/sendmail-8.8.5-tcpwrap b/debian/sendmail-8.8.5-tcpwrap
deleted file mode 100644
index 1cf0971..0000000
--- a/debian/sendmail-8.8.5-tcpwrap
+++ /dev/null
@@ -1,82 +0,0 @@
-
- PREVENT UNAUTHORIZED USE OF YOUR HOSTS AS SMTP RELAY
-
- Miquel van Smoorenburg <miquels@cistron.nl> 14-Jun-1996
-
-The patch at the end of this file adds a new option to sendmail,
-`W' or `TcpWrappers'. This makes it possible for precompiled distributions
-to ship binaries compiled with -DTCPWRAPPERS without any unexpected
-side-effects, since the option is off by default.
-
-Here's the diff to the sendmail-8.8.5 source:
-
-diff -ru sendmail-8.8.5.orig/src/conf.c sendmail-8.8.5/src/conf.c
---- sendmail-8.8.5.orig/src/conf.c Tue Jan 21 16:47:13 1997
-+++ sendmail-8.8.5/src/conf.c Tue Jun 3 14:26:44 1997
-@@ -4026,7 +4029,8 @@
- return FALSE;
-
- #if TCPWRAPPERS
-- if (!hosts_ctl("sendmail", hostname, anynet_ntoa(sap), STRING_UNKNOWN))
-+ if (TcpWrappers &&
-+ !hosts_ctl("sendmail", hostname, anynet_ntoa(sap), STRING_UNKNOWN))
- {
- # ifdef LOG
- if (LogLevel >= 4)
-diff -ru sendmail-8.8.5.orig/src/readcf.c sendmail-8.8.5/src/readcf.c
---- sendmail-8.8.5.orig/src/readcf.c Wed Jan 15 02:51:29 1997
-+++ sendmail-8.8.5/src/readcf.c Tue Jun 3 15:19:48 1997
-@@ -1424,6 +1424,9 @@
- { "FallbackMXhost", 'V', FALSE },
- { "Verbose", 'v', TRUE },
- { "TryNullMXList", 'w', FALSE },
-+#ifdef TCPWRAPPERS
-+ { "TcpWrappers", 'W', TRUE },
-+#endif
- { "QueueLA", 'x', FALSE },
- { "RefuseLA", 'X', FALSE },
- { "RecipientFactor", 'y', FALSE },
-@@ -2069,6 +2072,11 @@
- break;
-
- /* 'W' available -- was wizard password */
-+#ifdef TCPWRAPPERS
-+ case 'W':
-+ TcpWrappers = atobool(val);
-+ break;
-+#endif
-
- case 'x': /* load avg at which to auto-queue msgs */
- QueueLA = atoi(val);
-diff -ru sendmail-8.8.5.orig/src/sendmail.8 sendmail-8.8.5/src/sendmail.8
---- sendmail-8.8.5.orig/src/sendmail.8 Fri Jan 17 00:25:50 1997
-+++ sendmail-8.8.5/src/sendmail.8 Tue Jun 3 15:03:28 1997
-@@ -432,6 +432,15 @@
- This may not be available if your sendmail does not have the
- .Dv USERDB
- option compiled in.
-+.It Li TcpWrappers
-+Use the
-+.Dv sendmail
-+entry in
-+.Pa /etc/hosts.allow
-+to decide if the remote host has access to the SMTP port.
-+This may not be available if your sendmail does not have the
-+.Dv TCPWRAPPERS
-+option compiled in.
- .It Li ForkEachJob
- Fork each job during queue runs.
- May be convenient on memory-poor machines.
-diff -ru sendmail-8.8.5.orig/src/sendmail.h sendmail-8.8.5/src/sendmail.h
---- sendmail-8.8.5.orig/src/sendmail.h Wed Jan 15 02:51:29 1997
-+++ sendmail-8.8.5/src/sendmail.h Tue Jun 3 14:25:43 1997
-@@ -1168,6 +1168,9 @@
- #ifdef _FFR_DSN_RRT
- EXTERN bool RrtImpliesDsn; /* turn Return-Receipt-To: into DSN */
- #endif
-+#ifdef TCPWRAPPERS
-+EXTERN bool TcpWrappers; /* Use tcp wrappers for access control. */
-+#endif
- EXTERN bool IgnoreHostStatus; /* ignore long term host status files */
- EXTERN bool SingleThreadDelivery; /* single thread hosts on delivery */
- EXTERN bool UnsafeGroupWrites; /* group-writable files are unsafe */
diff --git a/debian/sendmail-8.8.8-ismx-4 b/debian/sendmail-8.8.8-ismx-4
deleted file mode 100644
index 7185096..0000000
--- a/debian/sendmail-8.8.8-ismx-4
+++ /dev/null
@@ -1,161 +0,0 @@
-
- PREVENT UNAUTHORIZED USE OF YOUR HOSTS AS SMTP RELAY
-
- Miquel van Smoorenburg <miquels@cistron.nl> 03-Mar-1998
-
-This patch adds a new map type to sendmail-8.8.8, called "ismx". That
-maps checks if we (all names in class 'w') are an MX for a certain domain.
-If so, the input hostname is replaced by our hostname, or TEMPFAIL if the DNS
-lookup failed.
-
-This can be used together with the "check_rcpt" rule to deny relaying for
-domains for which we are officially not an MX, without listing all domains
-in a configuration file. This prevents that your host is being used as
-a spam relay. However your host will still relay for hosts that it is
-officially an MX for, without any extra administration.
-
-Ofcourse you can put a list of IP numbers/networks in the file "LocalIP"
-to list hosts that may use your host as relay or smarthost. This is
-useful for a machine that is used internally as SMTP relay, for e.g.
-Eudora or Pegasus mail clients. The fields in this file are used with
-a substring match; for example 192.168 will match 192.168.0.0/16,
-192.168.1 will match 192.168.1.0/24 and 192.168.1.2 will only match
-that specific IP address. One entry per line.
-
-If you want to add some more hosts/domains you relay for but which
-do not have an MX entry pointing at your server, or which are not
-in class `w', you can put them in the file "RelayTo".
-
-Both files (LocalIP and RelayTo) must exist, even if they are otherwise
-empty. Comments (using `#') are allowed.
-
-
-These are the sendmail rules, with thanks to Niels Bakker <niels@euro.net>
-
-8.8.8-2 Documentation update, rules rewrite
-8.8.8-3 Allow <@a,b:user@c> in MAIL FROM:
-8.8.8-4 Use ismx map to differentiate between soft and hard lookup
- errors in Scheck_mail
-
-LOCAL_CONFIG
-Kismx ismx
-F{LocalIP} /etc/mail/LocalIP
-FR /etc/mail/RelayTo
-
-LOCAL_RULESETS
-Scheck_mail
-#
-# Check that the domain name is valid.
-#
-R< @ $+ : $+ @ $+ > $: < $2 @ $3 > Strip SMTP route-addr
-R<$*@$=w> $@ <OK> shortcut (class w)
-R$- $@ <OK> local host
-R<> $@ <OK> bounce
-R$* $: <?> $>3 $1 canonify
-R<?> $* < @ $+ . > $: $1 < @ $2 > qualified
-R<?> $* < @ $+ > $: <?> $(ismx $2 $: NOMX $)
-R<?> TEMPFAIL $# error $@ 4.5.1 $: 451 Cannot resolve that - try again later.
-R<?> $* $# error $@ 5.7.1 $: 571 Invalid host name
-
-Scheck_rcpt
-#
-# Local users (LocalIP) can relay anywhere.
-#
-R$+ $: $(dequote "" $&{client_addr} $) $| $1
-R0 $| $* $@ <OK> no client addr: directly invoked
-R$={LocalIP}$* $| $* $@ <OK> from here
-R$* $| $* $: $2 undo damage
-#
-# Anything terminating locally is also OK.
-#
-R$* $: $>Parse0 $>3 $1
-R$+ < @ $* . > $* $: $1 < @ $2 >
-R$+ < @ $=w > $@ <OK> we deliver
-R$+ < @ $=R > $@ <OK> we relay
-#
-# See if we are MX for this host
-#
-R$+ < $* @ $+ > $* $: $1 < $2 @ $(ismx $3 $: NOMX $) > $4
-R$+ < $* @ NOMX > $* $# error $@ 5.7.1 $: 571 I do not relay for that address.
-R$+ < $* @ TEMPFAIL > $* $# error $@ 4.5.1 $: 451 Cannot resolve target domain.
-R$* $@ <OK>
-
-
-Note that if the MX lookup fails, a temporary rather than a fatal error
-code is returned so that the message will not get lost.
-
-Here's the diff to the sendmail-8.8.8 source. Note that if you are
-running Debian/Linux, the sendmail-8.8.8 package already has this patch
-incorporated.
-
-
-diff -u --recursive --new-file sendmail-8.8.8.orig/src/conf.c sendmail-8.8.8/src/conf.c
---- sendmail-8.8.8.orig/src/conf.c Mon Oct 20 17:41:38 1997
-+++ sendmail-8.8.8/src/conf.c Mon Jan 12 11:24:15 1998
-@@ -368,6 +368,10 @@
- MAPDEF("bestmx", NULL, MCF_OPTFILE,
- map_parseargs, null_map_open, null_map_close,
- bestmx_map_lookup, null_map_store);
-+
-+ MAPDEF("ismx", NULL, MCF_OPTFILE,
-+ map_parseargs, null_map_open, null_map_close,
-+ ismx_map_lookup, null_map_store);
- #endif
-
- MAPDEF("host", NULL, 0,
-diff -u --recursive --new-file sendmail-8.8.8.orig/src/domain.c sendmail-8.8.8/src/domain.c
---- sendmail-8.8.8.orig/src/domain.c Sat Aug 2 20:06:53 1997
-+++ sendmail-8.8.8/src/domain.c Mon Jan 12 11:24:15 1998
-@@ -481,6 +481,52 @@
- return map_rewrite(map, mxhosts[0], strlen(mxhosts[0]), av);
- }
- /*
-+** ISMX -- find if we are the MX for a certain host.
-+**
-+** This is really a hack, but I don't see any obvious way
-+** to generalize it at the moment.
-+*/
-+
-+char *
-+ismx_map_lookup(map, name, av, statp)
-+ MAP *map;
-+ char *name;
-+ char **av;
-+ int *statp;
-+{
-+ int nmx, i, len;
-+ auto int rcode;
-+ int saveopts = _res.options;
-+ char *mxhosts[MAXMXHOSTS + 1];
-+ char *mymx = NULL;
-+
-+ _res.options &= ~(RES_DNSRCH|RES_DEFNAMES);
-+ nmx = getmxrr(name, mxhosts, FALSE, &rcode);
-+ _res.options = saveopts;
-+ if (rcode != EX_TEMPFAIL) {
-+ if (nmx <= 0)
-+ return NULL;
-+ for(i = 0; i < nmx; i++) {
-+ len = strlen(mxhosts[i]);
-+ if (len && mxhosts[i][len - 1] == '.')
-+ mxhosts[i][len - 1] = 0;
-+ if (wordinclass(mxhosts[i], 'w')) {
-+ mymx = mxhosts[i];
-+ break;
-+ }
-+ }
-+ if (mymx == NULL)
-+ return NULL;
-+ } else
-+ mymx = "TEMPFAIL";
-+
-+ if (bitset(MF_MATCHONLY, map->map_mflags))
-+ return map_rewrite(map, name, strlen(name), NULL);
-+ else
-+ return map_rewrite(map, mymx, strlen(mymx), av);
-+}
-+
-+ /*
- ** DNS_GETCANONNAME -- get the canonical name for named host using DNS
- **
- ** This algorithm tries to be smart about wildcard MX records.
diff --git a/debian/sendmail.README.Debian b/debian/sendmail.README.Debian
new file mode 100644
index 0000000..7cad251
--- /dev/null
+++ b/debian/sendmail.README.Debian
@@ -0,0 +1,32 @@
+ ***** Important notes on sendmail 8.9.2 ****
+
+1) Sendmail now always uses TCP wrappers (/etc/hosts.allow /etc/hosts.deny)
+ This is a change from prior versions where wrapper support was enabled
+ via sendmail.mc.
+
+ Please make sure you add the appropriate entry to the /etc/hosts.* file.
+ The most likely candidate is to place sendmail: all in /etc/hosts.allow
+
+2) You should *really* read RELEASE_NOTES... There are *many* changes for
+ spam control.
+ A) Relaying is, by default, prohibitted
+ B) Mail from non-resolvable domains is, by default, prohibitted
+
+ **** Other information ****
+
+This Debian package includes an automatic configuration utility
+`sendmailconfig' which can be run at any time to modify the current sendmail
+configuration.
+
+Most mail-related configuration files are kept in the /etc/mail directory.
+
+Specialized configurations can be accomplished by editing the file
+/etc/mail/sendmail.mc by hand and then running `sendmailconfig' to generate
+and use the appropriate corresponding sendmail.cf file. Such configurations
+can make use of the m4 configuration macros kept in the /usr/share/sendmail.cf
+directory. See also the other documentation in this directory.
+
+Finally, the file /etc/aliases holds a text representation of the current mail
+aliases. See the aliases(5) man page for more information. If you edit this
+file, be sure to run `newaliases' to update the corresponding binary database.
+
diff --git a/debian/sendmail.TODO b/debian/sendmail.TODO
new file mode 100644
index 0000000..5b6cbe5
--- /dev/null
+++ b/debian/sendmail.TODO
@@ -0,0 +1,29 @@
+Misc:
+ hack nodns needs cleanup, currently not even installed!
+ cleanup/extend sendmailconfig
+ -- get rid of feature(nodns)
+
+Doc:
+ add hoststat to sendmail manpage
+
+FHS:
+ * /usr/doc -> /usr/share/doc
+ * /usr/man -> /usr/share/man
+ * /usr/lib/sm.bin -> ?
+ * /usr/lib/sendmail (obsolete link used by rmail/pine/others)
+
+IRC comments:
+* <wichert> cowboy: I use a LUSER_RELAY here, which sends everything to another machine. That other machine uses a different maildomain, so I would like the luserrelay to rewrite the from-address when relaying
+<cowboy> wichert: does genericstable work with the relay?
+<wichert> cowboy: that probably, but that will rewrite _all_ outgoing mail
+<cowboy> wichert: so you want it rewritten *only* when going through the relay?
+<wichert> cowboy: indeed. And only for the receiving persons
+<cowboy> wichert: hrm... I guess a new mailer def for the relay eh?
+<wichert> cowboy: probably, FEATUER(luser_relay,host,rewrite_to) or so, with the 3rd param being optional
+<cowboy> wichert: hrm... so you using aliases now?
+<wichert> cowboy: no, people who do a group-reply to something I sent just get errors now
+<cowboy> wichert: interesting... have you considered masquerading as your luser_relay, and then using generictable/user db to override for the uids that actually exist?
+<wichert> cowboy: sounds like a hack and certainly does not scale very well
+<cowboy> wichert: most definetly true ;-{
+
+* <wichert> cowboy: another thing: you might want to make a /usr/doc/sendmail/README.spam or so with info about all spam/relay-control hacks/features that are in the Debian package, with a couple of examples
diff --git a/debian/conffiles b/debian/sendmail.conffiles
index 2108bcc..2108bcc 100644
--- a/debian/conffiles
+++ b/debian/sendmail.conffiles
diff --git a/debian/sendmail.dirs b/debian/sendmail.dirs
new file mode 100644
index 0000000..3e077c9
--- /dev/null
+++ b/debian/sendmail.dirs
@@ -0,0 +1,17 @@
+DEBIAN
+etc/init.d
+usr/bin
+usr/sbin
+usr/man/man1
+usr/man/man5
+usr/man/man8
+usr/doc/sendmail
+usr/doc/sendmail/examples
+usr/lib/sm.bin
+usr/share/misc
+usr/share/sendmail.cf/hack
+usr/share/sendmail.cf/domain
+usr/share/sendmail.cf/ostype
+usr/share/sendmail.cf/cf
+var/state/sendmail
+var/log
diff --git a/debian/sendmail.docs b/debian/sendmail.docs
new file mode 100644
index 0000000..828c838
--- /dev/null
+++ b/debian/sendmail.docs
@@ -0,0 +1,5 @@
+FAQ
+KNOWNBUGS
+README
+RELEASE_NOTES
+debian/sendmail_FAQ
diff --git a/debian/sendmail.examples b/debian/sendmail.examples
new file mode 100644
index 0000000..a5996a1
--- /dev/null
+++ b/debian/sendmail.examples
@@ -0,0 +1,3 @@
+debian/ip-up.d
+debian/ip-down.d
+debian/checksendmail/address.resolve
diff --git a/debian/init.d b/debian/sendmail.init
index ff8422a..3d688b4 100644
--- a/debian/init.d
+++ b/debian/sendmail.init
@@ -12,17 +12,18 @@ Q="10m"
PATH=/bin:/usr/bin:/sbin:/usr/sbin
DAEMON=/usr/sbin/sendmail
+COMMAND=/usr/sbin/sendmail
PIDFILE=/var/run/sendmail.pid
NAME=sendmail
FLAGS="defaults 50"
-test -x $DAEMON -a -f /etc/sendmail.cf || exit 0
+test -x $DAEMON -a -d /usr/doc/sendmail || exit 0
case "$1" in
start)
( cd /var/spool/mqueue && rm -f [lnx]f* )
echo -n "Starting mail transport agent: sendmail"
- start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- -bd -q"$Q"
+ start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --startas $COMMAND -- -bd -q"$Q"
echo "."
;;
@@ -34,6 +35,7 @@ case "$1" in
restart)
$0 stop
+ sleep 2
$0 start
;;
diff --git a/debian/postinst b/debian/sendmail.postinst
index 6c4ecbc..14d7efc 100644
--- a/debian/postinst
+++ b/debian/sendmail.postinst
@@ -4,6 +4,7 @@
# Version 1.2
#
# Robert Leslie <rob@mars.org>
+# Note: can't use debhelper here because the actions aren't contiguous
case "$1" in
configure)
@@ -20,6 +21,8 @@ case "$1" in
;;
esac
+#if [ "$2" == "" ]; then echo "first time"; fi
+
if [ -e /etc/suid.conf -a -x /usr/sbin/suidregister ]; then
suidregister -s sendmail /usr/sbin/sendmail root root 4755
else
@@ -90,16 +93,45 @@ then
mv -f /etc/sendmail.cf /etc/sendmail.cf.old
fi
fi
-
-ln -sf mail/sendmail.cf /etc/sendmail.cf
-
+#ln -sf mail/sendmail.cf /etc/sendmail.cf
+
+#-----------------------------------------------------------
+if test "$1" = configure && dpkg --compare-versions "$2" lt 8.9.1-13; then
+ echo " "
+ echo "*** IMPORTANT ***"
+ echo " "
+ echo "The format of sendmails databases has changed (now using libdb2)."
+ echo "You *MUST* update your databases (newaliases, users, etc.)"
+ echo "before allowing sendmail to restart."
+ echo " "
+ echo "Press <Enter> to continue"
+ read yn
+ fi
+
+#-----------------------------------------------------------
# Check existing /etc/mail/sendmail.cf
-if [ -f /etc/mail/sendmail.cf ]
-then
+if [ -f /etc/mail/sendmail.cf ]; then
+ if test "$1" = configure && dpkg --compare-versions "$2" lt 8.9.2; then
+ echo " "
+ echo "*** IMPORTANT ***"
+ echo " "
+ echo "This version of sendmail moves more configuration files from"
+ echo "/etc/... to /etc/mail/... ie: domaintable,genericstable, etc."
+ echo " "
+ echo "If you you use any of these, you *MUST*:"
+ echo " 1)"
+ echo " A) Move them by hand from /etc/... to /etc/mail/..."
+ echo " B) Move any script to create databases from the text"
+ echo " or"
+ echo " 2) Update your sendmail.mc to explicitly name the file"
+ echo " FEATURE(genericstable, \`hash -o /etc/mail/genericstable.db')dnl"
+ echo " "
+ echo "Press <Enter> to continue"
+ read yn
+ fi
if (sed -n -e "/^DZ/s/^DZ//p" /etc/mail/sendmail.cf \
- | grep 8.8.8 > /dev/null)
- then
+ | grep "8.9.3" > /dev/null); then
echo "Existing /etc/mail/sendmail.cf found, and it appears it may be"
echo -n "compatible with this version of sendmail. Use it? [Y] "
read yn
@@ -120,7 +152,7 @@ then
"as /etc/mail/sendmail.cf.old ..."
mv -f /etc/mail/sendmail.cf /etc/mail/sendmail.cf.old
;;
- esac
+ esac
fi
test -f /etc/mail/sendmail.cf || sendmailconfig --no-reload
diff --git a/debian/postrm b/debian/sendmail.postrm
index 2ebac2e..6411504 100644
--- a/debian/postrm
+++ b/debian/sendmail.postrm
@@ -17,10 +17,6 @@ case "$1" in
rm -f /etc/sendmail.cf /etc/aliases.{db,dir,pag}
rm -f /etc/mail/sendmail.{cf,cw,ct,mc}{,.old}
rmdir /etc/mail 2>/dev/null || true
- update-rc.d sendmail remove >/dev/null
- if [ -e /etc/suid.conf -a -x /usr/sbin/suidunregister ]; then
- suidunregister -s sendmail /usr/sbin/sendmail
- fi
;;
failed-upgrade|abort-install|abort-upgrade|disappear)
@@ -30,4 +26,6 @@ case "$1" in
echo "postrm called with unknown argument \`$1'" >&2
exit 0
;;
-esac
+ esac
+
+#DEBHELPER#
diff --git a/debian/preinst b/debian/sendmail.preinst
index 0a2830d..0a2830d 100644
--- a/debian/preinst
+++ b/debian/sendmail.preinst
diff --git a/debian/prerm b/debian/sendmail.prerm
index 6fa8b78..614318d 100644
--- a/debian/prerm
+++ b/debian/sendmail.prerm
@@ -7,7 +7,7 @@
case "$1" in
remove|upgrade|deconfigure)
- /etc/init.d/sendmail stop
+ #DEBHELPER#
;;
failed-upgrade)
diff --git a/debian/sendmail.suid b/debian/sendmail.suid
new file mode 100644
index 0000000..baa49ef
--- /dev/null
+++ b/debian/sendmail.suid
@@ -0,0 +1 @@
+/usr/sbin/sendmail
diff --git a/debian/sendmail_FAQ b/debian/sendmail_FAQ
new file mode 100644
index 0000000..d01d134
--- /dev/null
+++ b/debian/sendmail_FAQ
@@ -0,0 +1,182 @@
+Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!news.kodak.com!news-nysernet-16.sprintlink.net!news-in-east1.sprintlink.net!news.sprintlink.net!news-feed1.tiac.net!cam-news-hub1.bbnplanet.com!su-news-feed4.bbnplanet.com!news.gtei.net!newsfeed1.uswest.net!newsfeed3.uswest.net!namche.Sun.COM!sunnews1.Eng.Sun.COM!engnews2.Eng.Sun.COM!opal!jbeck
+From: John Beck <jbeck@eng.sun.com>
+Newsgroups: comp.mail.sendmail,comp.mail.misc,comp.answers,news.answers
+Subject: sendmail FAQ
+Supersedes: <sendmail-faq-1-913320001@eng.sun.com>
+Followup-To: comp.mail.sendmail
+Date: 25 Dec 1998 20:00:23 GMT
+Organization: Sendmail Consortium
+Lines: 159
+Approved: news-answers-request@MIT.EDU
+Distribution: world
+Expires: Fri, 15 Jan 1999 20:00:02 GMT
+Message-ID: <sendmail-faq-1-914616002@eng.sun.com>
+Reply-To: sendmail+faq@sendmail.org (Sendmail FAQ)
+NNTP-Posting-Host: opal.eng.sun.com
+Summary: This posting contains a list of Frequently Asked Questions
+ about the program "sendmail", distributed with many versions of Unix.
+ The answers are at the given URLs. They should be read by anyone who
+ wishes to post to the Usenet newsgroup comp.mail.sendmail.
+Keywords: sendmail, mail, SMTP, FAQ
+Originator: jbeck@opal
+Xref: senator-bedfellow.mit.edu comp.mail.sendmail:67640 comp.mail.misc:47448 comp.answers:34384 news.answers:147451
+
+Posted-By: auto-faq 3.3 (Perl 5.006)
+Archive-name: mail/sendmail/faq
+Posting-Frequency: posted on the 10th and 25th of each month
+Last-modified: December 22, 1998
+URL: http://www.sendmail.org/faq/
+Maintainer: Sendmail FAQ <sendmail+faq@sendmail.org>
+
+ Sendmail
+ Frequently Asked Questions (FAQ)
+
+ Last updated December 22, 1998
+
+ Changes since the last post on 10 Dec 1998 20:00:28 GMT
+ * Updated 4.7
+ -----------------------------------------------------------------------
+ * Questions about the FAQ: <sendmail+faq@sendmail.org>
+ * General questions: <sendmail-questions@sendmail.org>
+ * Bug reports: <sendmail-bugs@sendmail.org>
+ * Questions/comments about the web site <sendmail-www@sendmail.org>
+ -----------------------------------------------------------------------
+ If you post a message to comp.mail.sendmail *and* send it to one of the
+ above addresses, please clearly indicate so at the top of your message.
+ -----------------------------------------------------------------------
+
+Table of Contents
+
+ * 1. COPYRIGHT NOTICE / REDISTRIBUTION REQUIREMENTS
+ http://www.sendmail.org/faq/section1.html
+
+ * 2. INTRODUCTION / MISCELLANEOUS
+ http://www.sendmail.org/faq/section2.html
+
+ + 2.1 What is this newsgroup?
+ + 2.2 What is the scope of this FAQ?
+ + 2.3 Where can I find the latest version of this FAQ?
+ + 2.4 How do I access comp.mail.sendmail by email?
+ + 2.5 Where can I ask email-related DNS questions?
+ + 2.6 How can I subscribe to these newsgroups?
+ + 2.7 Which version of sendmail should I run?
+ + 2.8 What is the latest release of sendmail?
+ + 2.9 Where can I find it?
+ + 2.10 What are the differences between Version 8 and other versions?
+ + 2.11 What's the best platform for running sendmail?
+ + 2.12 What is BIND and where can I get the latest version?
+ + 2.13 What is smrsh and where can I get it?
+ + 2.14 What is smap and where can I get it?
+ + 2.15 What is TCP-Wrappers and where can I get it?
+ + 2.16 Why won't db 1.85 build on my machine?
+ + 2.17 What is makemap and where can I get it?
+
+ * 3. VERSION 8 SPECIFIC ISSUES
+ http://www.sendmail.org/faq/section3.html
+
+ + 3.1 How do I make all my addresses appear to be from a single host?
+ + 3.2 How do I rewrite my "From:" lines to read
+ ``First_Last@My.Domain'' or ``Different_Name@My.Domain''?
+ + 3.3 Why are you so hostile to using full names for email addresses?
+ + 3.4 So what was the user database feature intended for?
+ + 3.5 Where do I find this user database (UserDB) code?
+ + 3.6 How do I get the user database to work with Pine or with
+ FEATURE(always_add_domain)?
+ + 3.7 How do I manage several (virtual) domains?
+ + 3.8 There are four UUCP mailers listed in the configuration files.
+ Which one should I use?
+ + 3.9 How do I fix "undefined symbol inet_aton" and
+ "undefined symbol _strerror" messages?
+ + 3.10 How do I solve "collect: I/O error on connection" or
+ "reply: read error from host.name" errors?
+ + 3.11 Why can't my users forward their mail to a program?
+ + 3.12 Why do connections to the SMTP port take such a long time?
+ + 3.13 Why do I get "unknown mailer error 5 -- mail: options MUST
+ PRECEDE recipients" errors?
+ + 3.14 Why does version 8 sendmail panic my SunOS box?
+ + 3.15 Why does the Unix From line get mysteriously munged when I send
+ to an alias?
+ + 3.16 Why doesn't MASQUERADE_AS (or the user database) work
+ for envelope addresses as well as header addresses?
+ + 3.17 How do I run version 8 sendmail and support the MAIL11V3 protocol?
+ + 3.18 Why do messages disappear from my queue unsent?
+ + 3.19 When is sendmail going to support RFC 1522 MIME header encoding?
+ + 3.20 Why can't I get mail to some places, but instead always get
+ the error "reply: read error from name.of.remote.host"?
+ + 3.21 Why doesn't "FEATURE(xxx)" work?
+ + 3.22 How do I configure sendmail not to use DNS?
+ + 3.23 How do I get all my queued mail delivered to my Unix box from
+ my ISP?
+ + 3.24 Why do I get the error message unable to write
+ /etc/mail/sendmail.pid?
+ + 3.25 Why can't I compile sendmail with Berkeley DB 2.X?
+ + 3.26 What operating systems has Berkeley sendmail been ported to?
+ + 3.27 How do I prevent "Relaying Denied" errors for my clients?
+ + 3.28 Why isn't virtual hosting working, even after I added a
+ "Kvirtuser" line to sendmail.cf ?
+ + 3.29 How can I add a header specifying the actual recipient when having
+ multiple users in a virtual domain go to a single mailbox?
+ + 3.30 What do I do when Build fails because groff was not found?
+ + 3.31 What does "class hash not available" mean?
+
+ * 4. GENERAL SENDMAIL ISSUES
+ http://www.sendmail.org/faq/section4.html
+
+ + 4.1 Should I use a wildcard MX for my domain?
+ + 4.2 How can I set up an auto-responder?
+ + 4.3 How can I get sendmail to deliver local mail to $HOME/.mail
+ instead of into /usr/spool/mail (or /usr/mail)?
+ + 4.4 Why does it deliver the mail interactively when I'm trying to get
+ it to go into queue only mode?
+ + 4.5 How can I solve "MX list for hostname points back to hostname"
+ and "config error: mail loops back to myself" messages?
+ + 4.6 Why does my sendmail process sometimes hang when connecting over
+ a SLIP/PPP link?
+ + 4.7 How can I summarize the statistics generated by sendmail in the
+ syslog?
+ + 4.8 How can I check my sendmail.cf to ensure that it's re-writing
+ addresses correctly?
+ + 4.9 What is procmail, and where can I get it?
+ + 4.10 How can I solve "cannot alias non-local names" errors?
+ + 4.11 Is sendmail Year 2000 compliant?
+ + 4.12 How can I batch remote mail to be sent using my ISP while
+ delivering local mail immediately?
+ + 4.13 What does "unknown mailer error 1" mean?
+
+ * 5. VENDOR/OS SPECIFIC SENDMAIL ISSUES
+ http://www.sendmail.org/faq/section5.html
+
+ + 5.1 Sun Microsystems SunOS/Solaris 1.x/2.x
+
+ o 5.1.1 How can I solve "line 273: replacement $3 out of bounds"
+ errors?
+ o 5.1.2 How can I solve "line 445: bad ruleset 96 (50 max)" errors?
+ o 5.1.3 Why does version 8 sendmail (< 8.7.5) sometimes hang
+ under Solaris 2.5?
+ o 5.1.4 Why can't I use SunOS/Solaris to get email to certain
+ large sites?
+ o 5.1.5 Why do I have trouble compiling on Solaris?
+ o 5.1.6 How does 8.X compare to 8.X+Sun?
+
+ + 5.2 IBM AIX
+
+ o 5.2.1 The system resource controller always reports sendmail
+ as "inoperative". What's wrong?
+ o 5.2.2 Why can't I use AIX to get email to some sites?
+ o 5.2.3 Why can't I get sendmail 8.7.1 to use MX records with
+ AIX 3.2.5?
+
+ * 6. ADDITIONAL INFORMATION SOURCES (RFC 1807 bibliography format)
+ http://www.sendmail.org/faq/section6.html
+
+ + 6.1 Reference material devoted exclusively to sendmail
+ + 6.2 Reference material with chapters or sections on sendmail
+ + 6.3 Reference material on subjects related to sendmail
+ + 6.4 World-wide web index pages on sendmail
+ + 6.5 World-wide web index pages Internet email in general
+ + 6.6 Online tutorials for sendmail
+ + 6.7 Online archives of mailing lists and Usenet newsgroups,
+ relating to Internet email
+
+ * 7. THANKS!
+ http://www.sendmail.org/faq/section7.html
diff --git a/debian/sendmailconfig b/debian/sendmailconfig
index 3d44a9e..a729607 100644
--- a/debian/sendmailconfig
+++ b/debian/sendmailconfig
@@ -1,11 +1,14 @@
-#!/bin/sh -e
+#!/bin/sh
#
# Interactively configure Sendmail for Debian
#
-# Robert Leslie <rob@mars.org>
+# Robert Leslie <rob@mars.org>,
+# Rick Nelson <cowboy@debian.org>
PATH="/usr/sbin:/usr/bin:/sbin:/bin"
+FILE="/etc/mail/sendmail.mc"
+set +e
reload="yes"
umask 022
@@ -80,18 +83,34 @@ input() {
}
testconfig() {
- CONFIG=$(grep "$1" /etc/mail/sendmail.mc 2>/dev/null)
+ CONFIG=$(grep "$1" $FILE 2>/dev/null)
+}
+
+testwrap() {
+ WRAP=$(grep "^[^#:]*sendmail[^:]*[:]" /etc/hosts.allow 2>/dev/null)
+}
+
+updatewrap() {
+ echo "Updating /etc/hosts.allow, adding \"sendmail: all\"."
+ echo "sendmail: all" | cat - /etc/hosts.allow >/etc/hosts.allow.new
+ mv -f /etc/hosts.allow.new /etc/hosts.allow
+ /etc/init.d/netbase reload >/dev/null
}
makecf() {
echo "Generating /etc/mail/sendmail.cf from /etc/mail/sendmail.mc ..."
- m4 /usr/lib/sendmail.cf/m4/cf.m4 /etc/mail/sendmail.mc \
+ m4 /usr/share/sendmail.cf/m4/cf.m4 $FILE \
>/etc/mail/sendmail.cf.new
mv -f /etc/mail/sendmail.cf.new /etc/mail/sendmail.cf
echo "Updating alias database ..."
newaliases
+ testwrap
+ if [ "$WRAP" = "" ]; then
+ updatewrap
+ fi
+
if [ "$reload" ] && \
yesno "Reload the running sendmail now with the new configuration" Y
then
@@ -102,7 +121,7 @@ makecf() {
###############################################################################
-if [ -f /etc/mail/sendmail.mc ]
+if [ -f $FILE ]
then
if yesno "Configure sendmail with the existing /etc/mail/sendmail.mc" Y
then
@@ -113,8 +132,8 @@ fi
###############################################################################
-exec 3>/etc/mail/sendmail.mc.new
-trap "rm -f /etc/mail/sendmail.mc.new" 0
+exec 3>$FILE.new
+trap "rm -f $FILE.new" 0
###############################################################################
@@ -127,7 +146,8 @@ EOT
echo -n "Press [ENTER] "
read REPLY
-cat /usr/lib/sendmail.cf/cf/debproto.mc >&3
+cat /usr/share/sendmail.cf/cf/debproto.mc >&3
+echo "LOCAL_CONFIG" >&3
###############################################################################
@@ -145,24 +165,63 @@ echo "$mailname" >/etc/mailname
###############################################################################
-descrip "Null Client" <<EOT
-A special configuration known as the "null client" can be created for this
-host if all mail should be forwarded to a central hub via a local SMTP-based
-network. This may be a suitable configuration if you want to forward all of
-your mail to your local Internet service provider (ISP) for delivery.
-
-To enable this option, give the name of the host to which all mail should be
-forwarded. Otherwise leave the option empty or answer \`NONE' to disable it.
-EOT
+#descrip "Null Client" <<EOT
+#A special configuration known as the "null client" can be created for this
+#host if all mail should be forwarded to a central hub via a local SMTP-based
+#network. This may be a suitable configuration if you want to forward all of
+#your mail to your local Internet service provider (ISP) for delivery.
+#
+#To enable this option, give the name of the host to which all mail should be
+#forwarded. Otherwise leave the option empty or answer \`NONE' to disable it.
+#EOT
nullclient=""
! testconfig "FEATURE(nullclient" ||
nullclient=$(echo -n "$CONFIG" | sed -e 's/[^,]*, *\([^)]*\).*/\1/')
+#
+#input "Null client forward host" nullclient NONE
+#
+#test -z "$nullclient" || echo "FEATURE(nullclient, $nullclient)dnl" >&3
+
+if [ -n "$nullclient" ]; then
+ echo " "
+ echo " *** IMPORTANT *** "
+ echo " "
+ echo "You are using a nullclient setup. This is ill advised as it"
+ echo "makes your machine an open relay: If you ever connect to the"
+ echo "internet, anyone can forge mail and send it through your machine"
+ echo "to anyone else on the internet! - not a pretty picture."
+ echo " "
+ echo "I will convert this into a Smart Host config for you. A Smart Host"
+ echo "setup is a superset of nullclient - you lose nothing, but gain local"
+ echo "delivery without kluges, and, of course you're no longer an open relay"
+ echo " "
+ echo "You will need to accept your nullclient hostname below, when asked"
+ echo "for a smart host."
+ echo " "
+ echo "Press <Enter> to continue"
+ read yn
+ fi
+
+###############################################################################
+descrip "Smart Host" <<EOT
+A "Smart Host" is one that can deliver mail to external machines. By using
+a "Smart Host", we don't need DNS, or good connectivity ourselves. This is
+most likely what you want if you have a dialup link, or sit behind a firewall.
+
+To enable this option, give the name of the host to which all non-local mail
+should be forwarded. Otherwise leave the option empty.
+EOT
-input "Null client forward host" nullclient NONE
-
-test -z "$nullclient" || echo "FEATURE(nullclient, $nullclient)dnl" >&3
+smarthost=""
+if [ -n $nullclient ]; then
+ smarthost=$nullclient
+ fi
+! testconfig "define(\`SMART_HOST', smtp:" ||
+ smarthost=$(echo -n "$CONFIG" | sed -e 's/[^:]*:*\([^)]*\).*/\1/')
+input "Smart Host:" smarthost ""
+test -z $smarthost || echo "define(\`SMART_HOST', smtp:$smarthost)dnl" >&3
###############################################################################
descrip "Address Canonification" <<EOT
@@ -201,7 +260,7 @@ it is still a good idea to enable this so local programs can use it.
EOT
smtp="Y"
-if [ -f /etc/mail/sendmail.mc ]
+if [ -f $FILE ]
then
testconfig "MAILER(smtp)" || smtp="N"
fi
@@ -216,7 +275,7 @@ If you want mail envelopes (as well as mail headers) to appear to come from
EOT
masqenvelope="Y"
-if [ -f /etc/mail/sendmail.mc ]
+if [ -f $FILE ]
then
testconfig "FEATURE(masquerade_envelope)" || masqenvelope="N"
fi
@@ -268,12 +327,13 @@ to another host. If in doubt, it is safe to leave this option enabled.
EOT
acceptmailname="Y"
-if [ -f /etc/mail/sendmail.mc ]
+if [ -f $FILE ]
then
testconfig "^Cw.*$mailname" || acceptmailname="N"
fi
yesno "Accept mail for \`$mailname'" acceptmailname || true
+test "N" = "$acceptmailname" || echo "Cw$mailname" >&3
###############################################################################
@@ -350,7 +410,7 @@ need to do some additional configuration, perhaps outside of this script.
EOT
uucp="N"
-if [ -f /etc/mail/sendmail.mc ]
+if [ -f $FILE ]
then
testconfig "FEATURE(nouucp)" || uucp="Y"
fi
@@ -503,15 +563,14 @@ test "4h" = "$qw" || echo "define(\`confTO_QUEUEWARN', \`$qw')dnl" >&3
test "5d" = "$qr" || echo "define(\`confTO_QUEUERETURN', \`$qr')dnl" >&3
###############################################################################
-
+echo "MAILER_DEFINITIONS" >&3
echo "MAILER(local)dnl" >&3
test "N" = "$smtp" || echo "MAILER(smtp)dnl" >&3
-test "N" = "$acceptmailname" || echo "Cw$mailname" >&3
###############################################################################
-if [ -e /etc/ifmail/config ] && [ -e /usr/lib/sendmail.cf/mailer/ifmail.m4 ];
+if [ -e /etc/ifmail/config ] && [ -e /usr/share/sendmail.cf/mailer/ifmail.m4 ];
then
echo "MAILER(ifmail)dnl" >&3
fi
@@ -520,15 +579,16 @@ fi
fi # finished non-"null client" configuration
-echo "MASQUERADE_AS($mailname)dnl" >&3
###############################################################################
echo "" >&3
+echo "LOCAL_CONFIG" >&3
+echo "MASQUERADE_AS($mailname)dnl" >&3
-if [ -f /etc/mail/sendmail.mc ]
+if [ -f $FILE ]
then
- sed -n -e '/^## Custom/,$p' /etc/mail/sendmail.mc >&3
+ sed -n -e '/^## Custom/,$p' $FILE >&3
else
echo "## Custom configurations below (will be preserved)" >&3
fi
@@ -542,7 +602,7 @@ file. (Local changes made at the end of /etc/mail/sendmail.mc will be
preserved by \`$0'.)
The m4 library files for sendmail configuration are kept in the
-/usr/lib/sendmail.cf directory. You may wish to review the documentation in
+/usr/share/sendmail.cf directory. You may wish to review the documentation in
/usr/doc/sendmail to assist in further customization.
You may wish to customize your alias database; see the aliases(5) man page
@@ -553,13 +613,13 @@ EOT
exec 3>&-
-if [ -f /etc/mail/sendmail.mc ]
+if [ -f $FILE ]
then
echo "Saving old /etc/mail/sendmail.mc as /etc/mail/sendmail.mc.old ..."
- mv -f /etc/mail/sendmail.mc /etc/mail/sendmail.mc.old
+ mv -f $FILE $FILE.old
fi
-mv -f /etc/mail/sendmail.mc.new /etc/mail/sendmail.mc
+mv -f $FILE.new $FILE
trap 0
makecf
diff --git a/debian/sensible-mda.c b/debian/sensible-mda.c
index e9afa31..84246e8 100644
--- a/debian/sensible-mda.c
+++ b/debian/sensible-mda.c
@@ -2,7 +2,7 @@
* sensible-mda.c
* Copyright (c) 1998, Johnie Ingram.
* Copyright (c) 1998, Richard Nelson <cowboy@debian.org>.
- * Time-stamp: <1998/06/16 14:28:33 cowboy>
+ * Time-stamp: <1998/08/13 10:00:00 cowboy>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -21,26 +21,43 @@
*/
#include <stdio.h>
+#include <stdlib.h>
#include <sys/stat.h>
#include <unistd.h>
+#include <pwd.h>
+#include <sys/types.h>
// TODO: declare -x TCPREMOTEIP="$3"
#define PROCMAIL "/usr/bin/procmail"
#define DELIVER "/usr/bin/deliver"
+#define PROCMAILRCS "/etc/procmailrcs/"
static struct stat MDA_stat;
+static struct stat procmailrc_stat;
static int done = 1;
+static struct passwd* passwd_entry;
int
main (int argc, char *argv[])
{
+ char *procmailrc;
+
if (!stat(PROCMAIL, &MDA_stat)) {
if (MDA_stat.st_mode & S_ISUID) {
- done = 0;
- execl (PROCMAIL, PROCMAIL, "-t", "-Y", "-f",
- argv[1], "-d", argv[2], NULL);
+ procmailrc=malloc(strlen(PROCMAILRCS)+strlen(argv[2])+1);
+ sprintf(procmailrc,"%s%s",PROCMAILRCS,argv[2]);
+ passwd_entry=getpwnam(argv[2]);
+ if (passwd_entry && !stat(procmailrc, &procmailrc_stat) && procmailrc_stat.st_uid==passwd_entry->pw_uid) {
+ done = 0;
+ execl (PROCMAIL, PROCMAIL, "-t", "-f",
+ argv[1], "-m", procmailrc, NULL);
+ } else {
+ done = 0;
+ execl (PROCMAIL, PROCMAIL, "-t", "-f",
+ argv[1], "-d", argv[2], NULL);
+ }
}
else
fprintf(stderr, "Ack!?! %s is not setuid!\n", PROCMAIL);
diff --git a/debian/site.config.m4 b/debian/site.config.m4
new file mode 100644
index 0000000..393e9ee
--- /dev/null
+++ b/debian/site.config.m4
@@ -0,0 +1,40 @@
+#
+# Debian site config file for building sendmail
+#
+# src
+APPENDDEF(`confENVDEF', `-DHASFLOCK=1')dnl
+APPENDDEF(`confENVDEF', `-DTCPWRAPPERS=1')dnl
+APPENDDEF(`confENVDEF', `-D_FFR_MAX_MIME_HEADER_LENGTH=1')dnl
+APPENDDEF(`confENVDEF', `-D_FFR_MAX_HEADERS_LENGTH=1')
+APPENDDEF(`confENVDEF', `-D_PATH_SENDMAILCF=\"/etc/mail/sendmail.cf\"')dnl
+APPENDDEF(`confENVDEF', `-include ../../debian/el33t.h')dnl
+# smrsh
+APPENDDEF(`confENVDEF', `-DCMDDIR=\"/usr/lib/sm.bin\"')dnl
+APPENDDEF(`confENVDEF', `-DPATH=\"/usr/bin:/bin\"')dnl
+# rmail
+APPENDDEF(`confENVDEF', `-D_PATH_SENDMAIL=\"/usr/sbin/sendmail\"')dnl
+# compilation
+define(`confOPTIMIZE', `-O2')dnl
+define(`confMAPDEF', `-DNEWDB -DNIS -DMAP_REGEX')dnl
+define(`confINCDIRS', `-I/usr/include/db2')dnl
+define(`confLIBS', `-ldb2 -lnsl -lwrap -lresolv')dnl
+define(`confLIBSEARCH', `db2 bind resolv 44bsd')dnl
+# paths
+define(`confMANROOT', `/usr/man/man')dnl
+define(`confHDIR', `/usr/lib')dnl
+define(`confSTDIR', `/var/log')dnl
+define(`confMBINDIR', `/usr/sbin')dnl
+define(`confEBINDIR', `/usr/sbin')dnl
+define(`confUBINDIR', `/usr/bin')dnl
+define(`confHFDIR', `/usr/share/misc')dnl
+# owners
+define(`confMANOWN', `root')dnl
+define(`confMANGRP', `root')dnl
+define(`confSBINOWN', `root')dnl
+define(`confSBINGRP', `root')dnl
+define(`confUBINOWN', `root')dnl
+define(`confUBINGRP', `root')dnl
+# don't install man pages
+define(`confNO_MAN_INSTALL', `true')dnl
+# flags
+define(`_USE_ETC_MAIL_', `True')dnl
diff --git a/debian/socks_wrapper b/debian/socks_wrapper
new file mode 100644
index 0000000..ad89379
--- /dev/null
+++ b/debian/socks_wrapper
@@ -0,0 +1,31 @@
+#!/bin/bash
+# Richard Nelson <cowboy@debain.org>
+# Socks5 support wrapper for sendmail
+
+DAEMON=/usr/sbin/sendmail.real
+RUNSOCKS=/usr/bin/runsocks
+BASENAME=$(basename $0)
+
+# Adjust command name based upon the presence of the socks5 wrapper
+if [ -x $RUNSOCKS ]; then
+ COMMAND="$RUNSOCKS $DAEMON"
+else
+ COMMAND="$DAEMON"
+ fi
+#echo "$BASENAME command="$COMMAND
+
+# Exec the appropriate command
+case "$BASENAME" in
+ # These don't need socks support, and must be called by name
+ "hoststat" | "mailq" | "newaliases" | "purgestat")
+ exec -a $BASENAME $DAEMON "$@"
+ ;;
+ # These need socks support
+ "sendmail")
+ exec -a $DAEMON $COMMAND "$@"
+ ;;
+ # Help... shouldn't be here
+ *)
+ echo "panic, $BASENAME is not a valid alias for sendmail."
+ ;;
+ esac
diff --git a/mmuegel/README b/mmuegel/README
deleted file mode 100644
index 4547516..0000000
--- a/mmuegel/README
+++ /dev/null
@@ -1,92 +0,0 @@
--------------------------------------------------------------------------------
-Document Revision Control Information:
- mmuegel
- /usr/local/ustart/src/mail-tools/dist/foo/README,v
- 1.1 of 1993/07/28 08:12:53
--------------------------------------------------------------------------------
-
-1. Introduction
----------------
-
-These tools may be of use to those sites using sendmail. Both are written in
-Perl. Our site, Mot.COM, receives a ton of mail being a top-level domain
-gateway. We have over 24 domains under us. Needless to say, we must have
-a robust mail system or my head, and others, would be on the chopping block.
-
-2. Description
---------------
-
-The first tool, cqueue, checks the sendmail queue for problems. We use
-it to flag problems with subdomain mail servers (and even our own servers
-once in a while ;-). We run it via a cron job every hour during the day.
-You may find this too frequent, however.
-
-The other program, postclip, is used to "filter" non-deliverable NDNs that
-get sent to our Postmaster account now and then. This ensures privacy of
-e-mail and helps avoid disk problems from huge NDNs. It is different than
-a brute force "just keep the header" approach because it tries hard to keep
-other parts of the message that look like non-delivery information.
-
-Both have been used for some time at our site with no problems. Everything
-you need should be in this distribution: source, manual pages, and support
-libs. See the manual pages for a complete description of each tool.
-
-3. Installation
----------------
-
-No fancy Makefile simply because these tools are all under a large
-hierarchy at my site. Installation should be a snap, however. Install
-the nroff(1) man(5) manual pages from the man subdirectory to the
-appropriate directory on your system. This might be something like
-/usr/local/man/man1.
-
-Next, install all of the Perl libraries located in the lib subdirectory
-to your Perl library area. /usr/local/lib/perl is a good bet. The person
-who installed Perl at your site will be able to tell you for sure.
-
-Finally, you need to install the programs. Note that cqueue wants to
-run setuid root by default. This is because the sendmail queue is normally
-only readable by root or some special group. In order to let any user
-run this suidperl is used. suidperl allows a Perl program to run with the
-privileges of another user.
-
-You will have to edit both the cqueue and postclip programs to change
-the #! line at the top of each. Just change the pathname to whatever is
-appropriate on your system. Note that Larry Wall's fixin program from
-the Camel book can also be used to do this. It is very handy. It changes
-#! lines by looking at your PATH.
-
-If you do not have suidperl on your system change the #! line in cqueue
-to reference perl instead of suidperl.
-
-You may also wish to change some constants in cqueue. $DEF_QUEUE should be
-changed to your queue directory if it is not /usr/spool/mqueue. $DEF_TIME
-could be changed easy enough also. It is the time spec for the time duration
-after which a mail message will be reported on if the -a option has not been
-specified. See the manual page for more information and the format of this
-constant (same as the -t argument). Then again, neither of these has to
-be changed. Command line options are there to override their default
-values.
-
-After you have edited the programs as necessary, all that remains is to
-install them to some executable directory. Install postclip mode 555
-and cqueue mode 4555 with owner root (if using suidperl) or mode 555
-(if not using suidperl).
-
-4. Gripes, Comments, Etc
-------------------------
-
-If you start using either of these let me know. I have other mail tools I
-will likely post in the future if these prove useful. Also, if you think
-something is just plain dumb/wrong/stupid let me know!
-
-Cheers,
--Mike
-
---
-+----------------------------------------------------------------------------+
-| Michael S. Muegel | Internet E-Mail: mmuegel@mot.com |
-| UNIX Applications Startup Group | Moto Dist E-Mail: X10090 |
-| Corporate Information Office | Voice: (708) 576-0507 |
-| Motorola | Fax: (708) 576-4153 |
-+----------------------------------------------------------------------------+
diff --git a/mmuegel/libs/date.pl b/mmuegel/libs/date.pl
deleted file mode 100644
index 6732438..0000000
--- a/mmuegel/libs/date.pl
+++ /dev/null
@@ -1,324 +0,0 @@
-;#
-;# Name
-;# date.pl - Perl emulation of (the output side of) date(1)
-;#
-;# Synopsis
-;# require "date.pl";
-;# $Date = &date(time);
-;# $Date = &date(time, $format);
-;#
-;# Description
-;# This package implements the output formatting functions of date(1) in
-;# Perl. The format options are based on those supported by Ultrix 4.0
-;# plus a couple of additions from SunOS 4.1.1 and elsewhere:
-;#
-;# %a abbreviated weekday name - Sun to Sat
-;# %A full weekday name - Sunday to Saturday
-;# %b abbreviated month name - Jan to Dec
-;# %B full month name - January to December
-;# %c date and time in local format [+]
-;# %C date and time in long local format [+]
-;# %d day of month - 01 to 31
-;# %D date as mm/dd/yy
-;# %e day of month (space padded) - ` 1' to `31'
-;# %E day of month (with suffix: 1st, 2nd, 3rd...)
-;# %f month of year (space padded) - ` 1' to `12'
-;# %h abbreviated month name - Jan to Dec
-;# %H hour - 00 to 23
-;# %i hour (space padded) - ` 1' to `12'
-;# %I hour - 01 to 12
-;# %j day of the year (Julian date) - 001 to 366
-;# %k hour (space padded) - ` 0' to `23'
-;# %l date in ls(1) format
-;# %m month of year - 01 to 12
-;# %M minute - 00 to 59
-;# %n insert a newline character
-;# %p ante-meridiem or post-meridiem indicator (AM or PM)
-;# %r time in AM/PM notation
-;# %R time as HH:MM
-;# %S second - 00 to 59
-;# %t insert a tab character
-;# %T time as HH:MM:SS
-;# %u date/time in date(1) required format
-;# %U week number, Sunday as first day of week - 00 to 53
-;# %V date-time in SysV touch format (mmddHHMMyy)
-;# %w day of week - 0 (Sunday) to 6
-;# %W week number, Monday as first day of week - 00 to 53
-;# %x date in local format [+]
-;# %X time in local format [+]
-;# %y last 2 digits of year - 00 to 99
-;# %Y all 4 digits of year ~ 1700 to 2000 odd ?
-;# %z time zone from TZ environment variable w/ a trailing space
-;# %Z time zone from TZ environment variable
-;# %% insert a `%' character
-;# %+ insert a `+' character
-;#
-;# [+]: These may need adjustment to fit local conventions, see below.
-;#
-;# For the sake of compatibility, a leading `+' in the format
-;# specificaiton is removed if present.
-;#
-;# Remarks
-;# This is version 3.4 of date.pl
-;#
-;# An extension of `ctime.pl' by Waldemar Kebsch (kebsch.pad@nixpbe.UUCP),
-;# as modified by Marion Hakanson (hakanson@ogicse.ogi.edu).
-;#
-;# Unlike date(1), unknown format tags are silently replaced by "".
-;#
-;# defaultTZ is a blatant hack, but I wanted to be able to get date(1)
-;# like behaviour by default and there does'nt seem to be an easy (read
-;# portable) way to get the local TZ name back...
-;#
-;# For a cheap date, try...
-;#
-;# #!/usr/local/bin/perl
-;# require "date.pl";
-;# exit print (&date(time, shift @ARGV) . "\n") ? 0 : 1;
-;#
-;# This package is redistributable under the same terms as apply to
-;# the Perl 4.0 release. See the COPYING file in your Perl kit for
-;# more information.
-;#
-;# Please send any bug reports or comments to tmcgonigal@gallium.com
-;#
-;# Modification History
-;# Nmemonic Version Date Who
-;#
-;# NONE 1.0 02feb91 Terry McGonigal (tmcgonigal@gallium.com)
-;# Created from ctime.pl
-;#
-;# NONE 2.0 07feb91 tmcgonigal
-;# Added some of Marion Hakanson (hakanson@ogicse.ogi.edu)'s ctime.pl
-;# TZ handling changes.
-;#
-;# NONE 2.1 09feb91 tmcgonigal
-;# Corrected week number calculations.
-;#
-;# NONE 2.2 21oct91 tmcgonigal
-;# Added ls(1) date format, `%l'.
-;#
-;# NONE 2.3 06nov91 tmcgonigal
-;# Added SysV touch(1) date-time format, `%V' (pretty thin as
-;# mnemonics go, I know, but `t' and `T' were both gone already!)
-;#
-;# NONE 2.4 05jan92 tmcgonigal
-;# Corrected slight (cosmetic) problem with %V replacment string
-;#
-;# NONE 3.0 09jul92 tmcgonigal
-;# Fixed a couple of problems with &ls as pointed out by
-;# Thomas Richter (richter@ki1.chemie.fu-berlin.de), thanks Thomas!
-;# Also added a couple of SunOS 4.1.1 strftime-ish formats, %i and %k
-;# for space padded hours (` 1' to `12' and ` 0' to `23' respectivly),
-;# and %C for locale long date/time format. Changed &ampmH to take a
-;# pad char parameter to make to evaled code for %i and %k simpler.
-;# Added %E for suffixed day-of-month (ie 1st, 3rd, 4th etc).
-;#
-;# NONE 3.1 16jul92 tmcgonigal
-;# Added `%u' format to generate date/time in date(1) required
-;# format (ie '%y%m%d%H%M.%S').
-;#
-;# NONE 3.2 23jan93 tmcgonigal
-;# Added `%f' format to generate space padded month numbers, added
-;# `%E' to the header comments, it seems to have been left out (and
-;# I'm sure I wanted to use it at some point in the past...).
-;#
-;# NONE 3.3 03feb93 tmcgonigal
-;# Corrected some problems with AM/PM handling pointed out by
-;# Michael S. Muegel (mmuegel@mot.com). Thanks Michael, I hope
-;# this is the behaviour you were looking for, it seems more
-;# correct to me...
-;#
-;# NONE 3.4 26jul93 tmcgonigal
-;# Incorporated some fixes provided by DaviD W. Sanderson
-;# (dws@ssec.wisc.edu): February was spelled incorrectly and
-;# &wkno() was always using the current year while calculating
-;# week numbers, regardless of year implied by the time value
-;# passed to &date(). DaviD also contributed an improved &date()
-;# test script, thanks DaviD, I appreciate the effort. Finally,
-;# changed my mailling address from @gvc.com to @gallium.com
-;# to reflect, well, my new address!
-;#
-;# SccsId = "%W% %E%"
-;#
-require 'timelocal.pl';
-package date;
-
-# Months of the year
-@MoY = ('January', 'February', 'March', 'April', 'May', 'June',
- 'July', 'August', 'September','October', 'November', 'December');
-
-# days of the week
-@DoW = ('Sunday', 'Monday', 'Tuesday', 'Wednesday',
- 'Thursday', 'Friday', 'Saturday');
-
-# CUSTOMIZE - defaults
-$defaultTZ = 'CST'; # time zone (hack!)
-$defaultFMT = '%a %h %e %T %z%Y'; # format (ala date(1))
-
-# CUSTOMIZE - `local' formats
-$locTF = '%T'; # time (as HH:MM:SS)
-$locDF = '%D'; # date (as mm/dd/yy)
-$locDTF = '%a %b %d %T %Y'; # date/time (as dow mon dd HH:MM:SS yyyy)
-$locLDTF = '%i:%M:%S %p %A %B %E %Y'; # long date/time (as HH:MM:SS a/p day month dom yyyy)
-
-# Time zone info
-$TZ; # wkno needs this info too
-
-# define the known format tags as associative keys with their associated
-# replacement strings as values. Each replacement string should be
-# an eval-able expresion assigning a value to $rep. These expressions are
-# eval-ed, then the value of $rep is substituted into the supplied
-# format (if any).
-%Tags = ( '%a', q|($rep = $DoW[$wday])=~ s/^(...).*/\1/|, # abbr. weekday name - Sun to Sat
- '%A', q|$rep = $DoW[$wday]|, # full weekday name - Sunday to Saturday
- '%b', q|($rep = $MoY[$mon]) =~ s/^(...).*/\1/|, # abbr. month name - Jan to Dec
- '%B', q|$rep = $MoY[$mon]|, # full month name - January to December
- '%c', q|$rep = $locDTF; 1|, # date/time in local format
- '%C', q|$rep = $locLDTF; 1|, # date/time in local long format
- '%d', q|$rep = &date'pad($mday, 2, "0")|, # day of month - 01 to 31
- '%D', q|$rep = '%m/%d/%y'|, # date as mm/dd/yy
- '%e', q|$rep = &date'pad($mday, 2, " ")|, # day of month (space padded) ` 1' to `31'
- '%E', q|$rep = &date'dsuf($mday)|, # day of month (w/suffix) `1st' to `31st'
- '%f', q|$rep = &date'pad($mon+1, 2, " ")|, # month of year (space padded) ` 1' to `12'
- '%h', q|$rep = '%b'|, # abbr. month name (same as %b)
- '%H', q|$rep = &date'pad($hour, 2, "0")|, # hour - 00 to 23
- '%i', q|$rep = &date'ampmH($hour, " ")|, # hour (space padded ` 1' to `12'
- '%I', q|$rep = &date'ampmH($hour, "0")|, # hour - 01 to 12
- '%j', q|$rep = &date'pad($yday+1, 3, "0")|, # Julian date 001 - 366
- '%k', q|$rep = &date'pad($hour, 2, " ")|, # hour (space padded) ` 0' to `23'
- '%l', q|$rep = '%b %d ' . &date'ls($year)|, # ls(1) style date
- '%m', q|$rep = &date'pad($mon+1, 2, "0")|, # month of year - 01 to 12
- '%M', q|$rep = &date'pad($min, 2, "0")|, # minute - 00 to 59
- '%n', q|$rep = "\n"|, # insert a newline
- '%p', q|$rep = &date'ampmD($hour)|, # insert `AM' or `PM'
- '%r', q|$rep = '%I:%M:%S %p'|, # time in AM/PM notation
- '%R', q|$rep = '%H:%M'|, # time as HH:MM
- '%S', q|$rep = &date'pad($sec, 2, "0")|, # second - 00 to 59
- '%t', q|$rep = "\t"|, # insert a tab
- '%T', q|$rep = '%H:%M:%S'|, # time as HH:MM:SS
- '%u', q|$rep = '%y%m%d%H%M.%S'|, # daaate/time in date(1) required format
- '%U', q|$rep = &date'wkno($year, $yday, 0)|, # week number (weeks start on Sun) - 00 to 53
- '%V', q|$rep = '%m%d%H%M%y'|, # SysV touch(1) date-time format (mmddHHMMyy)
- '%w', q|$rep = $wday; 1|, # day of week - Sunday = 0
- '%W', q|$rep = &date'wkno($year, $yday, 1)|, # week number (weeks start on Mon) - 00 to 53
- '%x', q|$rep = $locDF; 1|, # date in local format
- '%X', q|$rep = $locTF; 1|, # time in local format
- '%y', q|($rep = $year) =~ s/..(..)/\1/|, # last 2 digits of year - 00 to 99
- '%Y', q|$rep = "$year"; 1|, # full year ~ 1700 to 2000 odd
- '%z', q|$rep = $TZ eq "" ? "" : "$TZ "|, # time zone from TZ env var (w/trail. space)
- '%Z', q|$rep = $TZ; 1|, # time zone from TZ env. var.
- '%%', q|$rep = '%'; $adv=1|, # insert a `%'
- '%+', q|$rep = '+'| # insert a `+'
-);
-
-sub main'date {
- local($time, $format) = @_;
- local($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst);
- local($pos, $tag, $rep, $adv) = (0, "", "", 0);
-
- # default to date/ctime format or strip leading `+'...
- if ($format eq "") {
- $format = $defaultFMT;
- } elsif ($format =~ /^\+/) {
- $format = $';
- }
-
- # Use local time if can't find a TZ in the environment
- $TZ = defined($ENV{'TZ'}) ? $ENV{'TZ'} : $defaultTZ;
- ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) =
- &gettime ($TZ, $time);
-
- # Hack to deal with 'PST8PDT' format of TZ
- # Note that this can't deal with all the esoteric forms, but it
- # does recognize the most common: [:]STDoff[DST[off][,rule]]
- if ($TZ =~ /^([^:\d+\-,]{3,})([+-]?\d{1,2}(:\d{1,2}){0,2})([^\d+\-,]{3,})?/) {
- $TZ = $isdst ? $4 : $1;
- }
-
- # watch out in 2070...
- $year += ($year < 70) ? 2000 : 1900;
-
- # now loop throught the supplied format looking for tags...
- while (($pos = index ($format, '%')) != -1) {
-
- # grab the format tag
- $tag = substr($format, $pos, 2);
- $adv = 0; # for `%%' processing
-
- # do we have a replacement string?
- if (defined $Tags{$tag}) {
-
- # trap dead evals...
- if (! eval $Tags{$tag}) {
- print STDERR "date.pl: internal error: eval for $tag failed: $@\n";
- return "";
- }
- } else {
- $rep = "";
- }
-
- # do the substitution
- substr ($format, $pos, 2) =~ s/$tag/$rep/;
- $pos++ if ($adv);
- }
-
- $format;
-}
-
-# dsuf - add `st', `nd', `rd', `th' to a date (ie 1st, 22nd, 29th)
-sub dsuf {
- local ($mday) = @_;
-
- return $mday . 'st' if ($mday =~ m/.*1$/);
- return $mday . 'nd' if ($mday =~ m/.*2$/);
- return $mday . 'rd' if ($mday =~ m/.*3$/);
- return $mday . 'th';
-}
-
-# weekno - figure out week number
-sub wkno {
- local ($year, $yday, $firstweekday) = @_;
- local ($jan1, @jan1, $wks);
-
- # figure out the `time' value for January 1 of the given year
- $jan1 = &maketime ($TZ, 0, 0, 0, 1, 0, $year-1900);
-
- # figure out what day of the week January 1 was
- @jan1= &gettime ($TZ, $jan1);
-
- # and calculate the week number
- $wks = (($yday + ($jan1[6] - $firstweekday)) + 1)/ 7;
- $wks += (($wks - int($wks) > 0.0) ? 1 : 0);
-
- # supply zero padding
- &pad (int($wks), 2, "0");
-}
-
-# ampmH - figure out am/pm (1 - 12) mode hour value, padded with $p (0 or ' ')
-sub ampmH { local ($h, $p) = @_; &pad($h>12 ? $h-12 : ($h ? $h : 12), 2, $p); }
-
-# ampmD - figure out am/pm designator
-sub ampmD { shift @_ >= 12 ? "PM" : "AM"; }
-
-# gettime - get the time via {local,gmt}time
-sub gettime { ((shift @_) eq 'GMT') ? gmtime(shift @_) : localtime(shift @_); }
-
-# maketime - make a time via time{local,gmt}
-sub maketime { ((shift @_) eq 'GMT') ? &main'timegm(@_) : &main'timelocal(@_); }
-
-# ls - generate the time/year portion of an ls(1) style date
-sub ls {
- return ((&gettime ($TZ, time))[5] == @_[0]) ? "%R" : " %Y";
-}
-
-# pad - pad $in with leading $pad until lenght $len
-sub pad {
- local ($in, $len, $pad) = @_;
- local ($out) = "$in";
-
- $out = $pad . $out until (length ($out) == $len);
- return $out;
-}
-
-1;
diff --git a/mmuegel/libs/elapsed.pl b/mmuegel/libs/elapsed.pl
deleted file mode 100644
index e8fc52a..0000000
--- a/mmuegel/libs/elapsed.pl
+++ /dev/null
@@ -1,123 +0,0 @@
-;# NAME
-;# elapsed.pl - convert seconds to elapsed time format
-;#
-;# AUTHOR
-;# Michael S. Muegel <mmuegel@mot.com>
-;#
-;# RCS INFORMATION
-;# mmuegel
-;# /usr/local/ustart/src/mail-tools/dist/foo/libs/elapsed.pl,v
-;# 1.1 of 1993/07/28 08:07:19
-
-package elapsed;
-
-# Time field types
-$DAYS = 1;
-$HOURS = 2;
-$MINUTES = 3;
-$SECONDS = 4;
-
-# The array contains four records each with four fields. The fields are,
-# in order:
-#
-# Type Specifies what kind of time field this is. Once of
-# $DAYS, $HOURS, $MINUTES, or $SECONDS.
-#
-# Multiplier Specifies what time field this is via the minimum
-# number of seconds this time field may specify. For
-# example, the minutes field would be non-zero
-# when there are 60 or more seconds.
-#
-# Separator How to separate this time field from the next
-# *greater* field.
-#
-# Format sprintf() format specifier on how to print this
-# time field.
-@MULT_AND_SEPS = ($DAYS, 60 * 60 * 24, "+", "%d",
- $HOURS, 60 * 60, ":", "%d",
- $MINUTES, 60, ":", "%02d",
- $SECONDS, 1, "", "%02d"
- );
-
-;###############################################################################
-;# Seconds_To_Elapsed
-;#
-;# Coverts a seconds count to form [d+]h:mm:ss. If $Collapse
-;# is true then the result is compacted somewhat. The string returned
-;# will be of the form [d+][[h:]mm]:ss.
-;#
-;# Arguments:
-;# $Seconds, $Collapse
-;#
-;# Examples:
-;# &Seconds_To_Elapsed (0, 0) -> 0:00:00
-;# &Seconds_To_Elapsed (0, 1) -> :00
-;#
-;# &Seconds_To_Elapsed (119, 0) -> 0:01:59
-;# &Seconds_To_Elapsed (119, 1) -> 01:59
-;#
-;# &Seconds_To_Elapsed (3601, 0) -> 1:00:01
-;# &Seconds_To_Elapsed (3601, 1) -> 1:00:01
-;#
-;# &Seconds_To_Elapsed (86401, 0) -> 1+0:00:01
-;# &Seconds_To_Elapsed (86401, 1) -> 1+:01
-;#
-;# Returns:
-;# $Elapsed
-;###############################################################################
-sub main'Seconds_To_Elapsed
-{
- local ($Seconds, $Collapse) = @_;
- local ($Type, $Multiplier, @Multipliers, $Separator, $DHMS_Used,
- $Elapsed, @Mult_And_Seps, $Print_Field);
-
- $Multiplier = 1;
- @Mult_And_Seps = @MULT_AND_SEPS;
-
- # Keep subtracting the number of seconds corresponding to a time field
- # from the number of seconds passed to the function.
- while (1)
- {
- ($Type, $Multiplier, $Separator, $Format) = splice (@Mult_And_Seps, 0, 4);
- last if (! $Multiplier);
- $Seconds -= $DHMS_Used * $Multiplier
- if ($DHMS_Used = int ($Seconds / $Multiplier));
-
- # Figure out if we should print this field
- if ($Type == $DAYS)
- {
- $Print_Field = $DHMS_Used;
- }
-
- elsif ($Collapse)
- {
- if ($Type == $HOURS)
- {
- $Print_Field = $DHMS_Used;
- }
- elsif ($Type == $MINUTES)
- {
- $Print_Field = $DHMS_Used || $Printed_Field {$HOURS};
- }
- else
- {
- $Format = ":%02d"
- if (! $Printed_Field {$MINUTES});
- $Print_Field = 1;
- };
- }
-
- else
- {
- $Print_Field = 1;
- };
-
- $Printed_Field {$Type} = $Print_Field;
- $Elapsed .= sprintf ("$Format%s", $DHMS_Used, $Separator)
- if ($Print_Field);
- };
-
- return ($Elapsed);
-};
-
-1;
diff --git a/mmuegel/libs/mail.pl b/mmuegel/libs/mail.pl
deleted file mode 100644
index eeedb11..0000000
--- a/mmuegel/libs/mail.pl
+++ /dev/null
@@ -1,140 +0,0 @@
-;# NAME
-;# mail.pl - perl function(s) to handle mail processing
-;#
-;# AUTHOR
-;# Michael S. Muegel (mmuegel@mot.com)
-;#
-;# RCS INFORMATION
-;# mmuegel
-;# /usr/local/ustart/src/mail-tools/dist/foo/libs/mail.pl,v 1.1 1993/07/28 08:07:19 mmuegel Exp
-
-package mail;
-
-# Mailer statement to eval. $Users, $Subject, and $Verbose are substituted
-# via eval
-$BIN_MAILER = "/usr/ucb/mail \$Verbose -s '\$Subject' \$Users";
-
-# Sendmail command to use when $Use_Sendmail is true.
-$SENDMAIL = '/usr/lib/sendmail $Verbose $Users';
-
-;###############################################################################
-;# Send_Mail
-;#
-;# Sends $Message to $Users with a subject of $Subject. If $Message_Is_File
-;# is true then $Message is assumed to be a filename pointing to the mail
-;# message. This is a new option and thus the backwards-compatible hack.
-;# $Users should be a space separated list of mail-ids.
-;#
-;# If everything went OK $Status will be 1 and $Error_Msg can be ignored;
-;# otherwise, $Status will be 0 and $Error_Msg will contain an error message.
-;#
-;# If $Use_Sendmail is 1 then sendmail is used to send the message. Normally
-;# a mailer such as Mail is used. By specifiying this you can include
-;# headers in addition to text in either $Message or $Message_Is_File.
-;# If either $Message or $Message_Is_File contain a Subject: header then
-;# $Subject is ignored; otherwise, a Subject: header is automatically created.
-;# Similar to the Subject: header, if a To: header does not exist one
-;# is automatically created from the $Users argument. The mail is still
-;# sent, however, to the recipients listed in $Users. This is keeping with
-;# normal sendmail usage (header vs. envelope).
-;#
-;# In both bin mailer and sendmail modes $Verbose will turn on verbose mode
-;# (normally just sendmail verbose mode output).
-;#
-;# Arguments:
-;# $Users, $Subject, $Message, $Message_Is_File, $Verbose, $Use_Sendmail
-;#
-;# Returns:
-;# $Status, $Error_Msg
-;###############################################################################
-sub main'Send_Mail
-{
- local ($Users, $Subject, $Message, $Message_Is_File, $Verbose,
- $Use_Sendmail) = @_;
- local ($BIN_MAILER_HANDLE, $Mailer_Command, $Header_Found, %Header_Map,
- $Header_Extra, $Mailer);
-
- # If the message is contained in a file read it in so we can have one
- # consistent interface
- if ($Message_Is_File)
- {
- undef $/;
- $Message_Is_File = 0;
- open (Message) || return (0, "error reading $Message: $!");
- $Message = <Message>;
- close (Message);
- };
-
- # If sendmail mode see if we need to add some headers
- if ($Use_Sendmail)
- {
- # Determine if a header block is included in the message and what headers
- # are there
- foreach (split (/\n/, $Message))
- {
- last if ($_ eq "");
- $Header_Found = $Header_Map {$1} = 1 if (/^([A-Z]\S*): /);
- };
-
- # Add some headers?
- if (! $Header_Map {"To"})
- {
- $Header_Extra .= "To: " . join (", ", $Users) . "\n";
- };
- if (($Subject ne "") && (! $Header_Map {"Subject"}))
- {
- $Header_Extra .= "Subject: $Subject\n";
- };
-
- # Add the required blank line between header/body if there where no
- # headers to begin with
- if ($Header_Found)
- {
- $Message = "$Header_Extra$Message";
- }
- else
- {
- $Message = "$Header_Extra\n$Message";
- };
- };
-
- # Get a string that is the mail command
- $Verbose = ($Verbose) ? "-v" : "";
- $Mailer = ($Use_Sendmail) ? $SENDMAIL : $BIN_MAILER;
- eval "\$Mailer = \"$Mailer\"";
- return (0, "error setting \$Mailer: $@") if ($@);
-
- # need to catch SIGPIPE in case the $Mailer call fails
- $SIG {'PIPE'} = "mail'Cleanup";
-
- # Open mailer
- return (0, "can not open mail program: $Mailer") if (! open (MAILER, "| $Mailer"));
-
- # Send off the mail!
- print MAILER $Message;
- close (MAILER);
- return (0, "error running mail program: $Mailer") if ($?);
-
- # Everything must have went AOK
- return (1);
-};
-
-;###############################################################################
-;# Cleanup
-;#
-;# Simply here so we can catch SIGPIPE and not exit.
-;#
-;# Globals:
-;# None
-;#
-;# Arguments:
-;# None
-;#
-;# Returns:
-;# Nothing exciting
-;###############################################################################
-sub Cleanup
-{
-};
-
-1;
diff --git a/mmuegel/libs/mqueue.pl b/mmuegel/libs/mqueue.pl
deleted file mode 100644
index f425ede..0000000
--- a/mmuegel/libs/mqueue.pl
+++ /dev/null
@@ -1,215 +0,0 @@
-;# NAME
-;# mqueue.pl - functions to work with the sendmail queue
-;#
-;# DESCRIPTION
-;# Both Get_Queue_IDs and Parse_Control_File are available to get
-;# information about the sendmail queue. The cqueue program is a good
-;# example of how these functions work.
-;#
-;# AUTHOR
-;# Michael S. Muegel (mmuegel@mot.com)
-;#
-;# RCS INFORMATION
-;# mmuegel
-;# /usr/local/ustart/src/mail-tools/dist/foo/libs/mqueue.pl,v
-;# 1.1 of 1993/07/28 08:07:19
-
-package mqueue;
-
-;###############################################################################
-;# Get_Queue_IDs
-;#
-;# Will figure out the queue IDs in $Queue that have both control and data
-;# files. They are returned in @Valid_IDs. Those IDs that have a
-;# control file and no data file are saved to the array globbed by
-;# *Missing_Control_IDs. Likewise, those IDs that have a data file and no
-;# control file are saved to the array globbed by *Missing_Data_IDs.
-;#
-;# If $Skip_Locked is true they a message that has a lock file is skipped
-;# and will not show up in any of the arrays.
-;#
-;# If everything went AOK then $Status is 1; otherwise, $Status is 0 and
-;# $Msg tells what went wrong.
-;#
-;# Globals:
-;# None
-;#
-;# Arguments:
-;# $Queue, $Skip_Locked, *Missing_Control_IDs, *Missing_Data_IDs
-;#
-;# Returns:
-;# $Status, $Msg, @Valid_IDs
-;###############################################################################
-sub main'Get_Queue_IDs
-{
- local ($Queue, $Skip_Locked, *Missing_Control_IDs,
- *Missing_Data_IDs) = @_;
- local (*QUEUE, @Files, %Lock_IDs, %Data_IDs, %Control_IDs, $_);
-
- # Make sure that the * argument @arrays ar empty
- @Missing_Control_IDs = @Missing_Data_IDs = ();
-
- # Save each data, lock, and queue file in @Files
- opendir (QUEUE, $Queue) || return (0, "error getting directory listing of $Queue");
- @Files = grep (/^(df|lf|qf)/, readdir (QUEUE));
- closedir (QUEUE);
-
- # Create indexed list of data and control files. IF $Skip_Locked is true
- # then skip either if there is a lock file present.
- if ($Skip_Locked)
- {
- grep ((s/^lf//) && ($Lock_IDs {$_} = 1), @Files);
- grep ((s/^df//) && (! $Lock_IDs {$_}) && ($Data_IDs {$_} = 1), @Files);
- grep ((s/^qf//) && (! $Lock_IDs {$_}) && ($Control_IDs {$_} = 1), @Files);
- }
- else
- {
- grep ((s/^df//) && ($Data_IDs {$_} = 1), @Files);
- grep ((s/^qf//) && ($Control_IDs {$_} = 1), @Files);
- };
-
- # Find missing control and data files and remove them from the lists of each
- @Missing_Control_IDs = sort (grep ((! $Control_IDs {$_}) && (delete $Data_IDs {$_}), keys (%Data_IDs)));
- @Missing_Data_IDs = sort (grep ((! $Data_IDs {$_} && (delete $Control_IDs {$_})), keys (%Control_IDs)));
-
-
- # Return the IDs in an appartently random order
- return (1, "", keys (%Control_IDs));
-};
-
-
-;###############################################################################
-;# Parse_Control_File
-;#
-;# Will pase a sendmail queue control file for useful information. See the
-;# Sendmail Installtion and Operation Guide (SMM:07) for a complete
-;# explanation of each field.
-;#
-;# The following globbed variables are set (or cleared) by this function:
-;#
-;# $Sender The sender's address.
-;#
-;# @Recipients One or more addresses for the recipient of the mail.
-;#
-;# @Errors_To One or more addresses for addresses to which mail
-;# delivery errors should be sent.
-;#
-;# $Creation_Time The job creation time in time(3) format. That is,
-;# seconds since 00:00:00 GMT 1/1/70.
-;#
-;# $Priority An integer representing the current message priority.
-;# This is used to order the queue. Higher numbers mean
-;# lower priorities.
-;#
-;# $Status_Message The status of the mail message. It can contain any
-;# text.
-;#
-;# @Headers Message headers unparsed but in their original order.
-;# Headers that span multiple lines are not mucked with,
-;# embedded \ns will be evident.
-;#
-;# In all e-mail addresses bounding <> pairs are stripped.
-;#
-;# If everything went AOK then $Status is 1. If the message with queue ID
-;# $Queue_ID just does not exist anymore -1 is returned. This is very
-;# possible and should be allowed for. Otherwise, $Status is 0 and $Msg
-;# tells what went wrong.
-;#
-;# Globals:
-;# None
-;#
-;# Arguments:
-;# $Queue, $Queue_ID, *Sender, *Recipients, *Errors_To, *Creation_Time,
-;# *Priority, *Status_Message, *Headers
-;#
-;# Returns:
-;# $Status, $Msg
-;###############################################################################
-sub main'Parse_Control_File
-{
- local ($Queue, $Queue_ID, *Sender, *Recipients, *Errors_To, *Creation_Time,
- *Priority, *Status_Message, *Headers) = @_;
- local (*Control, $_, $Not_Empty);
-
- # Required variables and the associated control. If empty at the end of
- # parsing we return a bad status.
- @REQUIRED_INFO = ('$Creation_Time', 'T', '$Sender', 'S', '@Recipients', 'R',
- '$Priority', 'P');
-
- # Open up the control file for read
- $Control = "$Queue/qf$Queue_ID";
- if (! open (Control))
- {
- return (-1) if ((-x $Queue) && (! -f "$Queue/qf$Queue_ID") &&
- (! -f "$Queue/df$Queue_ID"));
- return (0, "error opening $Control for read: $!");
- };
-
- # Reset the globbed variables just in case
- $Sender = $Creation_Time = $Priority = $Status_Message = "";
- @Recipients = @Errors_To = @Headers = ();
-
- # Look for a few things in the control file
- READ: while (<Control>)
- {
- $Not_Empty = 1;
- chop;
-
- PARSE:
- {
- if (/^T(\d+)$/)
- {
- $Creation_Time = $1;
- }
- elsif (/^S(<)?([^>]+)/)
- {
- $Sender = $2;
- }
- elsif (/^R(<)?([^>]+)/)
- {
- push (@Recipients, $2);
- }
- elsif (/^E(<)?([^>]+)/)
- {
- push (@Errors_To, $2);
- }
- elsif (/^M(.*)/)
- {
- $Status_Message = $1;
- }
- elsif (/^P(\d+)$/)
- {
- $Priority = $1;
- }
- elsif (/^H(.*)/)
- {
- $Header = $1;
- while (<Control>)
- {
- chop;
- last if (/^[A-Z]/);
- $Header .= "\n$_";
- };
- push (@Headers, $Header);
- redo PARSE if ($_);
- last if (eof);
- };
- };
- };
-
- # If the file was empty scream bloody murder
- return (0, "empty control file") if (! $Not_Empty);
-
- # Yell if we could not find a required field
- while (($Var, $Control) = splice (@REQUIRED_INFO, 0, 2))
- {
- eval "return (0, 'required control field $Control not found')
- if (! $Var)";
- return (0, "error checking \$Var: $@") if ($@);
- };
-
- # Everything went AOK
- return (1);
-};
-
-1;
diff --git a/mmuegel/libs/newgetopts.pl b/mmuegel/libs/newgetopts.pl
deleted file mode 100644
index bc73348..0000000
--- a/mmuegel/libs/newgetopts.pl
+++ /dev/null
@@ -1,213 +0,0 @@
-;# NAME
-;# newgetopts.pl - a better newgetopt (which is a better getopts which is
-;# a better getopt ;-)
-;#
-;# AUTHOR
-;# Mike Muegel (mmuegel@mot.com)
-;#
-;# mmuegel
-;# /usr/local/ustart/src/mail-tools/dist/foo/libs/newgetopts.pl,v 1.1 1993/07/28 08:07:19 mmuegel Exp
-
-;###############################################################################
-;# New_Getopts
-;#
-;# Does not care about order of switches, options, and arguments like
-;# getopts.pl. Thus all non-switches/options will be kept in ARGV even if they
-;# are not at the end. If $Pass_Invalid is set all unkown options will be
-;# passed back to the caller by keeping them in @ARGV. This is useful when
-;# parsing a command line for your script while ignoring options that you
-;# may pass to another script. If this is set New_Getopts tries to maintain
-;# the switch clustering on the unkown switches.
-;#
-;# Accepts the special argument -usage to print the Usage string. Also accepts
-;# the special option -version which prints the contents of the string
-;# $VERSION. $VERSION may or may not have an embeded \n in it. If -usage
-;# or -version are specified a status of -1 is returned. Note that the usage
-;# option is only accepted if the usage string is not null.
-;#
-;# $Switches is just like the formal arguemnt of getopts.pl. $Usage is a usage
-;# string with or without a trailing \n. *Switch_To_Order is an optional
-;# pointer to the name of an associative array which will contain a mapping of
-;# switch names to the order in which (if at all) the argument was entered.
-;#
-;# For example, if @ARGV contains -v, -x, test:
-;#
-;# $Switch_To_Order {"v"} = 1;
-;# $Switch_To_Order {"x"} = 2;
-;#
-;# Note that in the case of multiple occurances of an option $Switch_To_Order
-;# will store each occurance of the argument via a string that emulates
-;# an array. This is done by using join ($;, ...). You can retrieve the
-;# array by using split (/$;/, ...).
-;#
-;# *Split_ARGV is an optional pointer to an array which will conatin the
-;# original switches along with their values. For the example used above
-;# Split_ARGV would contain:
-;#
-;# @Split_ARGV = ("v", "", "x", "test");
-;#
-;# Another exciting ;-) feature that newgetopts has. Along with creating the
-;# normal $opt_ scalars for the last value of an argument the list @opt_ is
-;# created. It is an array which contains all the values of arguments to the
-;# basename of the variable. They are stored in the order which they occured
-;# on the command line starting with $[. Note that blank arguments are stored
-;# as "". Along with providing support for multiple options on the command
-;# line this also provides a method of counting the number of times an option
-;# was specified via $#opt_.
-;#
-;# Automatically resets all $opt_, @opt_, %Switch_To_Order, and @Split_ARGV
-;# variables so that New_Getopts may be called more than once from within
-;# the same program. Thus, if $opt_v is set upon entry to New_Getopts and
-;# -v is not in @ARGV $opt_v will not be set upon exit.
-;#
-;# Arguments:
-;# $Switches, $Usage, $Pass_Invalid, *Switch_To_Order, *Split_ARGV
-;#
-;# Returns:
-;# -1, 0, or 1 depending on status (printed Usage/Version, OK, not OK)
-;###############################################################################
-sub New_Getopts
-{
- local($taint_argumentative, $Usage, $Pass_Invalid, *Switch_To_Order,
- *Split_ARGV) = @_;
- local(@args,$_,$first,$rest,$errs, @leftovers, @current_leftovers,
- %Switch_Found);
- local($[, $*, $Script_Name, $argumentative);
-
- # Untaint the argument cluster so that we can use this with taintperl
- $taint_argumentative =~ /^(.*)$/;
- $argumentative = $1;
-
- # Clear anything that might still be set from a previous New_Getopts
- # call.
- @Split_ARGV = ();
-
- # Get the basename of the calling script
- ($Script_Name = $0) =~ s/.*\///;
-
- # Make Usage have a trailing \n
- $Usage .= "\n" if ($Usage !~ /\n$/);
-
- @args = split( / */, $argumentative );
-
- # Clear anything that might still be set from a previous New_Getopts call.
- foreach $first (@args)
- {
- next if ($first eq ":");
- delete $Switch_Found {$first};
- delete $Switch_To_Order {$first};
- eval "undef \@opt_$first; undef \$opt_$first;";
- };
-
- while (@ARGV)
- {
- # Let usage through
- if (($ARGV[0] eq "-usage") && ($Usage ne "\n"))
- {
- print $Usage;
- exit (-1);
- }
-
- elsif ($ARGV[0] eq "-version")
- {
- if ($VERSION)
- {
- print $VERSION;
- print "\n" if ($VERSION !~ /\n$/);
- }
- else
- {
- warn "${Script_Name}: no version information available, sorry\n";
- }
- exit (-1);
- }
-
- elsif (($_ = $ARGV[0]) =~ /^-(.)(.*)/)
- {
- ($first,$rest) = ($1,$2);
- $pos = index($argumentative,$first);
-
- $Switch_To_Order {$first} = join ($;, split (/$;/, $Switch_To_Order {$first}), ++$Order);
-
- if($pos >= $[)
- {
- if($args[$pos+1] eq ':')
- {
- shift(@ARGV);
- if($rest eq '')
- {
- $rest = shift(@ARGV);
- }
-
- eval "\$opt_$first = \$rest;";
- eval "push (\@opt_$first, \$rest);";
- push (@Split_ARGV, $first, $rest);
- }
- else
- {
- eval "\$opt_$first = 1";
- eval "push (\@opt_$first, '');";
- push (@Split_ARGV, $first, "");
-
- if($rest eq '')
- {
- shift(@ARGV);
- }
- else
- {
- $ARGV[0] = "-$rest";
- }
- }
- }
-
- else
- {
- # Save any other switches if $Pass_Valid
- if ($Pass_Invalid)
- {
- push (@current_leftovers, $first);
- }
- else
- {
- warn "${Script_Name}: unknown option: $first\n";
- ++$errs;
- };
- if($rest ne '')
- {
- $ARGV[0] = "-$rest";
- }
- else
- {
- shift(@ARGV);
- }
- }
- }
-
- else
- {
- push (@leftovers, shift (@ARGV));
- };
-
- # Save any other switches if $Pass_Valid
- if ((@current_leftovers) && ($rest eq ''))
- {
- push (@leftovers, "-" . join ("", @current_leftovers));
- @current_leftovers = ();
- };
- };
-
- # Automatically print Usage if a warning was given
- @ARGV = @leftovers;
- if ($errs != 0)
- {
- warn $Usage;
- return (0);
- }
- else
- {
- return (1);
- }
-
-}
-
-1;
diff --git a/mmuegel/libs/strings1.pl b/mmuegel/libs/strings1.pl
deleted file mode 100644
index a49335a..0000000
--- a/mmuegel/libs/strings1.pl
+++ /dev/null
@@ -1,147 +0,0 @@
-;# NAME
-;# strings1.pl - FUN with strings #1
-;#
-;# NOTES
-;# I wrote Format_Text_Block when I just started programming Perl so
-;# it is probably not very Perlish code. Center is more like it :-).
-;#
-;# AUTHOR
-;# Michael S. Muegel (mmuegel@mot.com)
-;#
-;# RCS INFORMATION
-;# mmuegel
-;# /usr/local/ustart/src/mail-tools/dist/foo/libs/strings1.pl,v 1.1 1993/07/28 08:07:19 mmuegel Exp
-
-package strings1;
-
-;###############################################################################;# Center
-;#
-;# Center $Text assuming the output should be $Columns wide. $Text can span
-;# multiple lines, of course :-). Lines within $Text that contain only
-;# whitespace are not centered and are instead collapsed. This may save time
-;# when printing them later.
-;#
-;# Arguments:
-;# $Text, $Columns
-;#
-;# Returns:
-;# $Centered_Text
-;###############################################################################
-sub main'Center
-{
- local ($_, $Columns) = @_;
- local ($*) = 1;
-
- s@^(.*)$@" " x (($Columns - length ($1)) / 2) . $1@eg;
- s/^[\t ]*$//g;
- return ($_);
-};
-
-;###############################################################################
-;# Format_Text_Block
-;#
-;# Formats a text string to be printed to the display or other similar device.
-;# Text in $String will be fomratted such that the following hold:
-;#
-;# + $String contains the (possibly) multi-line text to print. It is
-;# automatically word-wrapped to fit in $Columns.
-;#
-;# + \n'd are maintained and are not folded.
-;#
-;# + $Offset is pre-pended before each separate line of text.
-;#
-;# + If $Offset_Once is $TRUE $Offset will only appear on the first line.
-;# All other lines will be indented to match the amount of whitespace of
-;# $Offset.
-;#
-;# + If $Bullet_Indent is $TRUE $Offset will only be applied to the begining
-;# of lines as they occured in the original $String. Lines that are created
-;# by this routine will always be indented by blank spaces.
-;#
-;# + If $Columns is 0 no word-wrap is done. This might be useful to still
-;# to offset each line in a buffer.
-;#
-;# + If $Split_Expr is supplied the string is split on it. If not supplied
-;# the string is split on " \t\/\-\,\." by default.
-;#
-;# + If $Offset_Blank is $TRUE then empty lines will have $Offset pre-pended
-;# to them. Otherwise, they will still empty.
-;#
-;# This is a realy workhorse routine that I use in many places because of its
-;# veratility.
-;#
-;# Arguments:
-;# $String, $Offset, $Offset_Once, $Bullet_Indent, $Columns, $Split_Expr,
-;# $Offset_Blank
-;#
-;# Returns:
-;# $Buffer
-;###############################################################################
-sub main'Format_Text_Block
-{
- local ($String, $Real_Offset, $Offset_Once, $Bullet_Indent, $Columns,
- $Split_Expr, $Offset_Blank) = @_;
-
- local ($New_Line, $Line, $Chars_Per_Line, $Space_Offset, $Buffer,
- $Next_New_Line, $Num_Lines, $Num_Offsets, $Offset);
- local ($*) = 0;
- local ($BLANK_TAG) = "__FORMAT_BLANK__";
- local ($Blank_Offset) = $Real_Offset if ($Offset_Blank);
-
- # What should we split on?
- $Split_Expr = " \\t\\/\\-\\,\\." if (! $Split_Expr);
-
- # Pre-process the string - convert blank lines to __FORMAT_BLANK__ sequence
- $String =~ s/\n\n/\n$BLANK_TAG\n/g;
- $String =~ s/^\n/$BLANK_TAG\n/g;
- $String =~ s/\n$/\n$BLANK_TAG/g;
-
- # If bad $Columns/$Offset combo or no $Columns make a VERRRYYY wide $Column
- $Offset = $Real_Offset;
- $Chars_Per_Line = 16000 if (($Chars_Per_Line = $Columns - length ($Offset)) <= 0);
- $Space_Offset = " " x length ($Offset);
-
- # Get a buffer
- foreach $Line (split ("\n", $String))
- {
- $Offset = $Real_Offset if ($Bullet_Indent);
-
- # Find where to split the line
- if ($Line ne $BLANK_TAG)
- {
- $New_Line = "";
- while ($Line =~ /^([$Split_Expr]*)([^$Split_Expr]+)/)
- {
- if (length ("$New_Line$&") >= $Chars_Per_Line)
- {
- $Next_New_Line = $+;
- $New_Line = "$Offset$New_Line$1";
- $Buffer .= "\n" if ($Num_Lines++);
- $Buffer .= $New_Line;
- $Offset = $Space_Offset if (($Offset) && ($Offset_Once));
- $New_Line = $Next_New_Line;
- ++$Num_Lines;
- }
- else
- {
- $New_Line .= $&;
- };
- $Line = $';
- };
-
- $Buffer .= "\n" if ($Num_Lines++);
- $Buffer .= "$Offset$New_Line$Line";
- $Offset = $Space_Offset if (($Offset) && ($Offset_Once));
- }
-
- else
- {
- $Buffer .= "\n$Blank_Offset";
- };
- };
-
- return ($Buffer);
-
-};
-
-1;
diff --git a/mmuegel/libs/timespec.pl b/mmuegel/libs/timespec.pl
deleted file mode 100644
index 06b048d..0000000
--- a/mmuegel/libs/timespec.pl
+++ /dev/null
@@ -1,60 +0,0 @@
-;# NAME
-;# timespec.pl - convert a pre-defined time specifyer to seconds
-;#
-;# AUTHOR
-;# Michael S. Muegel (mmuegel@mot.com)
-;#
-;# RCS INFORMATION
-;# mmuegel
-;# /usr/local/ustart/src/mail-tools/dist/foo/libs/timespec.pl,v 1.1 1993/07/28 08:07:19 mmuegel Exp
-
-package timespec;
-
-%TIME_SPEC_TO_SECONDS = ("s", 1,
- "m", 60,
- "h", 60 * 60,
- "d", 60 * 60 * 24
- );
-
-$VALID_TIME_SPEC_EXPR = "[" . join ("", keys (%TIME_SPEC_TO_SECONDS)) . "]";
-
-;###############################################################################
-;# Time_Spec_To_Seconds
-;#
-;# Converts a string of the form:
-;#
-;# (<number>(s|m|h|d))+
-;#
-;# to seconds. The second part of the time spec specifies seconds, minutes,
-;# hours, or days, respectfully. The first part is the number of those untis.
-;# There can be any number of such specifiers. As an example, 1h30m means 1
-;# hour and 30 minutes.
-;#
-;# If the parsing went OK then $Status is 1, $Msg is undefined, and $Seconds
-;# is $Time_Spec converted to seconds. If something went wrong then $Status
-;# is 0 and $Msg explains what went wrong.
-;#
-;# Arguments:
-;# $Time_Spec
-;#
-;# Returns:
-;# $Status, $Msg, $Seconds
-;###############################################################################
-sub main'Time_Spec_To_Seconds
-{
- $Time_Spec = $_[0];
-
- $Seconds = 0;
- while ($Time_Spec =~ /^(\d+)($VALID_TIME_SPEC_EXPR)/)
- {
- $Seconds += $1 * $TIME_SPEC_TO_SECONDS {$2};
- $Time_Spec = $';
- };
-
- return (0, "error parsing time spec: $Time_Spec") if ($Time_Spec ne "");
- return (1, "", $Seconds);
-
-};
-
-
-1;
diff --git a/mmuegel/man/cqueue.1 b/mmuegel/man/cqueue.1
deleted file mode 100644
index 56e534b..0000000
--- a/mmuegel/man/cqueue.1
+++ /dev/null
@@ -1,166 +0,0 @@
-.TH CQUEUE 1L
-\"
-\" mmuegel
-\" /usr/local/ustart/src/mail-tools/dist/foo/man/cqueue.1,v 1.1 1993/07/28 08:08:25 mmuegel Exp
-\"
-.ds mp \fBcqueue\fR
-.de IB
-.IP \(bu 2
-..
-.SH NAME
-\*(mp - check sendmail queue for problems
-.SH SYNOPSIS
-.IP \*(mp 7
-[ \fB-abdms\fR ] [ \fB-q\fR \fIqueue-dir\fI ] [ \fB-t\fR \fItime\fR ]
-[ \fB-u\fR \fIusers\fR ] [ \fB-w\fR \fIwidth\fR ]
-.SH DESCRIPTION
-Reports on problems in the sendmail queue. With no options this simply
-means listing messages that have been in the queue longer than a default
-period along with a summary of queue mail by host and status message.
-.SH OPTIONS
-.IP \fB-a\fR 14
-Report on all messages in the queue. This is equivalent to saying \fB-t\fR 0s.
-You may like this command so much that you use it as a replacement for
-\fBmqueue\fR. For example:
-.sp 1
-.RS
-.RS
-\fBalias mqueue cqueue -a\fR
-.RE
-.RE
-.IP \fB-b\fR 14
-Also report on bogus queue files. Those are files that
-have data files and no control files or vice versa.
-.IP \fB-d\fR
-Print a detailed report of mail messages that have been queued longer than
-the specified or default time. Information that is presented includes:
-.RS
-.RS
-.IB
-Sendmail queue identifier.
-.IB
-Date the message was first queued.
-.IB
-Sender of the message.
-.IB
-One or more recipients of the message.
-.IB
-An optional status of the message. This usually indicates why the message
-has not been delivered.
-.RE
-.RE
-.IP \fB-m\fR 14
-Mail off the results if any problems were found.
-Normaly results are printed to stdout. If this option
-is specified they are mailed to one or more users. Results
-are not printed to stdout in this case. Results are \fBonly\fR
-mailed if \*(mp found something wrong.
-.IP "\fB-q\fR \fIqueue-dir\fI"
-The sendmail mail queue directory. Default is \fB/usr/spool/mqueue\fR or
-some other site configured value.
-.IP "\fB-t\fR \fItime\fR"
-List messages that have been in the queue longer than
-\fItime\fR. Time should of the form:
-.sp 1
-.RS
-.RS
-(<number>(s|m|h|d))+
-.sp 1
-.RE
-.RE
-.RS 14
-The second portion of the above definition
-specifies seconds, minutes, hours, or
-days, respectfully. The first portion is the number of
-those units. There can be any number of such specifiers.
-As an example, 1h30m means 1 hour and 30 minutes.
-.sp 1
-The default is 2 hours.
-.RE
-.IP \fB-s\fR 14
-Print a summary of messages that have been queued longer than
-the specified or default time. Two separate types of summaries are printed.
-The first summarizes the queue messages by destination host. The host name
-is gleaned from the recipient addresses for each message.
-Thus the actual host names for this summary should be taken with a grain
-of salt since ruleset 0 has not been applied to the address the host was
-taken from nor were MX records consulted. It would be possible to add
-this; however, the execution time of the script would increase
-dramatically. The second summary is by status message.
-.IP "\fB-u\fR \fIusers\fR"
-Specify list of users to send a mail report to other than
-the invoker. This option is only valid when \fB-m\fR has been
-specified. Multiple recipients may be separated by spaces.
-.IP "\fB-w\fR \fIwidth\fR"
-Specify the page width to which the output should tailored. \fIwidth\fR
-should be an integer representing some character position. The default is
-80 or some other site configured value. Output is folded neatly to match
-\fIwidth\fR.
-.SH EXAMPLES
-.nf
-% \fBdate\fR
-Tue Jan 19 12:07:20 CST 1993
-
-% \fBcqueue -t 21h45m -w 70\fR
-
-Summary of messages in queue longer than 21:45:00 by destination
-host:
-
- Number of
- Messages Destination Host
- --------- ----------------
- 2 cigseg.rtsg.mot.com
- 1 mnesouth.corp.mot.com
- ---------
- 3
-
-Summary of messages in queue longer than 21:45:00 by status message:
-
- Number of
- Messages Status Message
- --------- --------------
- 1 Deferred: Connection refused by mnesouth.corp.mot.com
- 2 Deferred: Host Name Lookup Failure
- ---------
- 3
-
-Detail of messages in queue longer than 21:45:00 sorted by creation
-date:
-
- ID: AA20573
- Date: 02:09:27 PM 01/18/93
- Sender: melrose-place-owner@ferkel.ucsb.edu
- Recipient: pbaker@cigseg.rtsg.mot.com
- Status: Deferred: Host Name Lookup Failure
-
- ID: AA20757
- Date: 02:11:30 PM 01/18/93
- Sender: 90210-owner@ferkel.ucsb.edu
- Recipient: pbaker@cigseg.rtsg.mot.com
- Status: Deferred: Host Name Lookup Failure
-
- ID: AA21110
- Date: 02:17:01 PM 01/18/93
- Sender: rd_lap_wg@mdd.comm.mot.com
- Recipient: jim_mathis@mnesouth.corp.mot.com
- Status: Deferred: Connection refused by mnesouth.corp.mot.com
-.fi
-.SH AUTHOR
-.nf
-Michael S. Muegel (mmuegel@mot.com)
-UNIX Applications Startup Group
-Corporate Information Office, Schaumburg, IL
-Motorola, Inc.
-.fi
-.SH COPYRIGHT NOTICE
-Copyright 1993, Motorola, Inc.
-.sp 1
-Permission to use, copy, modify and distribute without charge this
-software, documentation, etc. is granted, provided that this
-comment and the author's name is retained. The author nor Motorola assume any
-responsibility for problems resulting from the use of this software.
-.SH SEE ALSO
-.nf
-\fBsendmail(8)\fR
-\fISendmail Installation and Operation Guide\fR.
-.fi
diff --git a/mmuegel/man/postclip.1 b/mmuegel/man/postclip.1
deleted file mode 100644
index 6c33ef2..0000000
--- a/mmuegel/man/postclip.1
+++ /dev/null
@@ -1,59 +0,0 @@
-.TH POSTCLIP 1L
-\"
-\" mmuegel
-\" /usr/local/ustart/src/mail-tools/dist/foo/man/postclip.1,v 1.1 1993/07/28 08:08:25 mmuegel Exp
-\"
-.ds mp \fBpostclip\fR
-.SH NAME
-\*(mp - send only the headers to Postmaster
-.SH SYNOPSIS
-\*(mp [ \fB-v\fR ] [ \fIto\fR ... ]
-.SH DESCRIPTION
-\*(mp will forward non-delivery reports to a postmaster after deleting the body
-of the message. This keeps bounced mail private and helps to avoid disk space problems. \*(mp tries its best to keep as much of the header trail as possible.
-Hopefully only the original body of the message will be filtered. Only messages
-that have a subject that begins with 'Returned mail:' are filtered. This
-ensures that other mail is not accidently mucked with. Finally, note that
-\fBsendmail\fR is used to deliver the message after it has been (possibly)
-filtered. All of the original headers will remain intact.
-.sp 1
-You can use this with any \fBsendmail\fR by modifying the Postmaster alias.
-If you use IDA \fBsendmail\fR you could add the following to <machine>.m4:
-.sp 1
-.RS
-define(POSTMASTERBOUNCE, mailer-errors)
-.RE
-.sp 1
-In the aliases file, add a line similar to the following:
-.sp 1
-.RS
-mailer-errors: "|/usr/local/bin/postclip postmaster"
-.RE
-.SH OPTIONS
-.IP \fB-v\fR
-Be verbose about delivery. Probably only useful when debugging \*(mp.
-.IP \fIto\fR
-A list of one or more e-mail ids to send the modified
-Postmaster messages to. If none are specified postmaster
-is used.
-.SH AUTHOR
-.nf
-Michael S. Muegel (mmuegel@mot.com)
-UNIX Applications Startup Group
-Corporate Information Office, Schaumburg, IL
-Motorola, Inc.
-.fi
-.SH CREDITS
-The original idea to filter Postmaster mail was taken from a script by
-Christopher Davis <ckd@eff.org>.
-.SH COPYRIGHT NOTICE
-Copyright 1992, Motorola, Inc.
-.sp 1
-Permission to use, copy, modify and distribute without charge this
-software, documentation, etc. is granted, provided that this
-comment and the author's name is retained. The author nor Motorola assume any
-responsibility for problems resulting from the use of this software.
-.SH SEE ALSO
-.nf
-\fBsendmail(8)\fR
-.fi
diff --git a/mmuegel/src/cqueue b/mmuegel/src/cqueue
deleted file mode 100644
index f94252a..0000000
--- a/mmuegel/src/cqueue
+++ /dev/null
@@ -1,242 +0,0 @@
-#!/usr/bin/perl
-
-# NAME
-# cqueue - check sendmail queue for problems
-#
-# SYNOPSIS
-# Type cqueue -usage
-#
-# AUTHOR
-# Michael S. Muegel <mmuegel@mot.com>
-#
-# RCS INFORMATION
-# mmuegel
-# /usr/local/ustart/src/mail-tools/dist/foo/src/cqueue,v 1.1 1993/07/28 08:09:02 mmuegel Exp
-
-# So that date.pl does not yell (Domain/OS version does a ``)
-$ENV{'PATH'} = "";
-
-# A better getopts routine
-require "newgetopts.pl";
-require "timespec.pl";
-require "mail.pl";
-require "date.pl";
-require "mqueue.pl";
-require "strings1.pl";
-require "elapsed.pl";
-
-($Script_Name = $0) =~ s/.*\///;
-
-# Some defaults you may want to change
-$DEF_TIME = "2h";
-$DEF_QUEUE = "/usr/spool/mqueue";
-$DEF_COLUMNS = 80;
-$DATE_FORMAT = "%r %D";
-
-# Constants that probably should not be changed
-$USAGE = "Usage: $Script_Name [ -abdms ] [ -q queue-dir ] [ -t time ] [ -u user ] [ -w width ]\n";
-$VERSION = "${Script_Name} by mmuegel; 1.1 of 1993/07/28 08:09:02";
-$SWITCHES = "abdmst:u:q:w:";
-$SPLIT_EXPR = '\s,\.@!%:';
-$ADDR_PART_EXPR = '[^!@%]+';
-
-# Let getopts parse for switches
-$Status = &New_Getopts ($SWITCHES, $USAGE);
-exit (0) if ($Status == -1);
-exit (1) if (! $Status);
-
-# Check args
-die "${Script_Name}: -u only valid with -m\n" if (($opt_u) && (! $opt_m));
-die "${Script_Name}: -a not valid with -t option\n" if ($opt_a && $opt_t);
-$opt_u = getlogin || (getpwuid ($<))[0] || $ENV{"USER"} || die "${Script_Name}: can not determine who you are!\n" if (! $opt_u);
-
-# Set defaults
-$opt_t = "0s" if ($opt_a);
-$opt_t = $DEF_TIME if ($opt_t eq "");
-$opt_w = $DEF_COLUMNS if ($opt_w eq "");
-$opt_q = $DEF_QUEUE if ($opt_q eq "");
-$opt_s = $opt_d = 1 if (! ($opt_s || $opt_d));
-
-# Untaint the users to mail to
-$opt_u =~ /^(.*)$/;
-$Users = $1;
-
-# Convert time option to seconds and seconds to elapsed form
-die "${Script_Name}: $Msg\n" if (! (($Status, $Msg, $Seconds) = &Time_Spec_To_Seconds ($opt_t))[0]);
-$Elapsed = &Seconds_To_Elapsed ($Seconds, 1);
-$Time_Info = " longer than $Elapsed" if ($Seconds);
-
-# Get the current time
-$Current_Time = time;
-$Current_Date = &date ($Current_Time, $DATE_FORMAT);
-
-($Status, $Msg, @Queue_IDs) = &Get_Queue_IDs ($opt_q, 1, @Missing_Control_IDs,
- @Missing_Data_IDs);
-die "$Script_Name: $Msg\n" if (! $Status);
-
-# Yell about missing data/control files?
-if ($opt_b)
-{
-
- $Report = "\nMessages missing control files:\n\n " .
- join ("\n ", @Missing_Control_IDs) .
- "\n"
- if (@Missing_Control_IDs);
-
- $Report .= "\nMessages missing data files:\n\n " .
- join ("\n ", @Missing_Data_IDs) .
- "\n"
- if (@Missing_Data_IDs);
-};
-
-# See if any mail messages are older than $Seconds
-foreach $Queue_ID (@Queue_IDs)
-{
- # Get lots of info about this sendmail message via the control file
- ($Status, $Msg) = &Parse_Control_File ($opt_q, $Queue_ID, *Sender,
- *Recipients, *Errors_To, *Creation_Time, *Priority, *Status_Message,
- *Headers);
- next if ($Status == -1);
- if (! $Status)
- {
- warn "$Script_Name: $Queue_ID: $Msg\n";
- next;
- };
-
- # Report on message if it is older than $Seconds
- if ($Current_Time - $Creation_Time >= $Seconds)
- {
- # Build summary by host information. Keep track of each host destination
- # encountered.
- if ($opt_s)
- {
- %Host_Map = ();
- foreach (@Recipients)
- {
- if ((/@($ADDR_PART_EXPR)$/) || (/($ADDR_PART_EXPR)!$ADDR_PART_EXPR$/))
- {
- ($Host = $1) =~ tr/A-Z/a-z/;
- $Host_Map {$Host} = 1;
- }
- else
- {
- warn "$Script_Name: could not find host part from $_; contact author\n";
- };
- };
-
- # For each unique target host add to its stats
- grep ($Host_Queued {$_}++, keys (%Host_Map));
-
- # Build summary by message information.
- $Message_Queued {$Status_Message}++ if ($Status_Message);
- };
-
- # Build long report information for this creation time (there may be
- # more than one message created at the same time)
- if ($opt_d)
- {
- $Creation_Date = &date ($Creation_Time, $DATE_FORMAT);
- $Recipient_Info = &Format_Text_Block (join (", ", @Recipients),
- " Recipient: ", 1, 0, $opt_w, $SPLIT_EXPR);
- $Time_To_Report {$Creation_Time} .= <<"EOS";
-
- ID: $Queue_ID
- Date: $Creation_Date
- Sender: $Sender
-$Recipient_Info
-EOS
-
- # Add the status message if available to long report
- if ($Status_Message)
- {
- $Time_To_Report {$Creation_Time} .= &Format_Text_Block ($Status_Message,
- " Status: ", 1, 0, $opt_w, $SPLIT_EXPR) . "\n";
- };
- };
- };
-
-};
-
-# Add the summary report by target host?
-if ($opt_s)
-{
- foreach $Host (sort (keys (%Host_Queued)))
- {
- $Host_Report .= &Format_Text_Block ($Host,
- sprintf (" %-9d ", $Host_Queued{$Host}), 1, 0, $opt_w,
- $SPLIT_EXPR) . "\n";
- $Num_Hosts += $Host_Queued{$Host};
- };
- if ($Host_Report)
- {
- chop ($Host_Report);
- $Report .= &Format_Text_Block("\nSummary of messages in queue$Time_Info by destination host:\n", "", 0, 0, $opt_w);
-
- $Report .= <<"EOS";
-
- Number of
- Messages Destination Host
- --------- ----------------
-$Host_Report
- ---------
- $Num_Hosts
-EOS
- };
-};
-
-# Add the summary by message report?
-if ($opt_s)
-{
- foreach $Message (sort (keys (%Message_Queued)))
- {
- $Message_Report .= &Format_Text_Block ($Message,
- sprintf (" %-9d ", $Message_Queued{$Message}), 1, 0, $opt_w,
- $SPLIT_EXPR) . "\n";
- $Num_Messages += $Message_Queued{$Message};
- };
- if ($Message_Report)
- {
- chop ($Message_Report);
- $Report .= &Format_Text_Block ("\nSummary of messages in queue$Time_Info by status message:\n", "", 0, 0, $opt_w);
-
- $Report .= <<"EOS";
-
- Number of
- Messages Status Message
- --------- --------------
-$Message_Report
- ---------
- $Num_Messages
-EOS
- };
-};
-
-# Add the detailed message reports?
-if ($opt_d)
-{
- foreach $Time (sort { $a <=> $b} (keys (%Time_To_Report)))
- {
- $Report .= &Format_Text_Block ("\nDetail of messages in queue$Time_Info sorted by creation date:\n","", 0, 0, $opt_w) if (! $Detailed_Header++);
- $Report .= $Time_To_Report {$Time};
- };
-};
-
-# Now mail or print the report
-if ($Report)
-{
- $Report .= "\n";
- if ($opt_m)
- {
- ($Status, $Msg) = &Send_Mail ($Users, "sendmail queue report for $Current_Date", $Report, 0);
- die "${Script_Name}: $Msg" if (! $Status);
- }
-
- else
- {
- print $Report;
- };
-
-};
-
-# I am outta here...
-exit (0);
diff --git a/mmuegel/src/postclip b/mmuegel/src/postclip
deleted file mode 100644
index 63f6df0..0000000
--- a/mmuegel/src/postclip
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/usr/local/bin/perl
-
-# NAME
-# postclip - send only the headers to Postmaster
-#
-# SYNOPSIS
-# postclip [ -v ] [ to ... ]
-#
-# AUTHOR
-# Michael S. Muegel <mmuegel@mot.com>
-#
-# RCS INFORMATION
-# /usr/local/ustart/src/mail-tools/dist/foo/src/postclip,v
-# 1.1 of 1993/07/28 08:09:02
-
-# We use this to send off the mail
-require "newgetopts.pl";
-require "mail.pl";
-
-# Get the basename of the script
-($Script_Name = $0) =~ s/.*\///;
-
-# Some famous constants
-$USAGE = "Usage: $Script_Name [ -v ] [ to ... ]\n";
-$VERSION = "${Script_Name} by mmuegel; 1.1 of 1993/07/28 08:09:02";
-$SWITCHES = "v";
-
-# Let getopts parse for switches
-$Status = &New_Getopts ($SWITCHES, $USAGE);
-exit (0) if ($Status == -1);
-exit (1) if (! $Status);
-
-# Who should we send the modified mail to?
-@ARGV = ("postmaster") if (! @ARGV);
-$Users = join (" ", @ARGV);
-@ARGV = ();
-
-# Suck in the original header and save a few interesting lines
-while (<>)
-{
- $Buffer .= $_ if (! /^From /);
- $Subject = $1 if (/^Subject:\s+(.*)$/);
- $From = $1 if (/^From:\s+(.*)$/);
- last if (/^$/);
-};
-
-# Do not filter the message unless it has a subject and the subject indicates
-# it is an NDN
-if ($Subject && ($Subject =~ /^returned mail/i))
-{
- # Slurp input by paragraph. Keep track of the last time we saw what
- # appeared to be NDN text. We keep this.
- $/ = "\n\n";
- $* = 1;
- while (<>)
- {
- push (@Paragraphs, $_);
- $Last_Error_Para = $#Paragraphs
- if (/unsent message follows/i || /was not delivered because/);
- };
-
- # Now save the NDN text into $Buffer
- $Buffer .= join ("", @Paragraphs [0..$Last_Error_Para]);
-}
-
-else
-{
- undef $/;
- $Buffer .= <>;
-};
-
-# Send off the (possibly) modified mail
-($Status, $Msg) = &Send_Mail ($Users, "", $Buffer, 0, $opt_v, 1);
-die "$Script_Name: $Msg\n" if (! $Status);
diff --git a/src/collect.c.orig b/src/collect.c.orig
deleted file mode 100644
index 58f0dc7..0000000
--- a/src/collect.c.orig
+++ /dev/null
@@ -1,761 +0,0 @@
-/*
- * Copyright (c) 1983, 1995-1997 Eric P. Allman
- * 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.
- *
- * 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.
- */
-
-#ifndef lint
-static char sccsid[] = "@(#)collect.c 8.72 (Berkeley) 10/6/97";
-#endif /* not lint */
-
-# include <errno.h>
-# include "sendmail.h"
-
-/*
-** COLLECT -- read & parse message header & make temp file.
-**
-** Creates a temporary file name and copies the standard
-** input to that file. Leading UNIX-style "From" lines are
-** stripped off (after important information is extracted).
-**
-** Parameters:
-** fp -- file to read.
-** smtpmode -- if set, we are running SMTP: give an RFC821
-** style message to say we are ready to collect
-** input, and never ignore a single dot to mean
-** end of message.
-** hdrp -- the location to stash the header.
-** e -- the current envelope.
-**
-** Returns:
-** none.
-**
-** Side Effects:
-** Temp file is created and filled.
-** The from person may be set.
-*/
-
-static jmp_buf CtxCollectTimeout;
-static void collecttimeout();
-static bool CollectProgress;
-static EVENT *CollectTimeout;
-
-/* values for input state machine */
-#define IS_NORM 0 /* middle of line */
-#define IS_BOL 1 /* beginning of line */
-#define IS_DOT 2 /* read a dot at beginning of line */
-#define IS_DOTCR 3 /* read ".\r" at beginning of line */
-#define IS_CR 4 /* read a carriage return */
-
-/* values for message state machine */
-#define MS_UFROM 0 /* reading Unix from line */
-#define MS_HEADER 1 /* reading message header */
-#define MS_BODY 2 /* reading message body */
-
-void
-collect(fp, smtpmode, hdrp, e)
- FILE *fp;
- bool smtpmode;
- HDR **hdrp;
- register ENVELOPE *e;
-{
- register FILE *volatile tf;
- volatile bool ignrdot = smtpmode ? FALSE : IgnrDot;
- volatile time_t dbto = smtpmode ? TimeOuts.to_datablock : 0;
- register char *volatile bp;
- volatile int c = EOF;
- volatile bool inputerr = FALSE;
- bool headeronly;
- char *volatile buf;
- volatile int buflen;
- volatile int istate;
- volatile int mstate;
- u_char *volatile pbp;
- u_char peekbuf[8];
- char dfname[MAXQFNAME];
- char bufbuf[MAXLINE];
- extern bool isheader();
- extern void eatheader();
- extern void tferror();
-
- headeronly = hdrp != NULL;
-
- /*
- ** Create the temp file name and create the file.
- */
-
- if (!headeronly)
- {
- int tfd;
- struct stat stbuf;
-
- strcpy(dfname, queuename(e, 'd'));
- tfd = dfopen(dfname, O_WRONLY|O_CREAT|O_TRUNC, FileMode, SFF_ANYFILE);
- if (tfd < 0 || (tf = fdopen(tfd, "w")) == NULL)
- {
- syserr("Cannot create %s", dfname);
- e->e_flags |= EF_NO_BODY_RETN;
- finis();
- }
- if (fstat(fileno(tf), &stbuf) < 0)
- e->e_dfino = -1;
- else
- {
- e->e_dfdev = stbuf.st_dev;
- e->e_dfino = stbuf.st_ino;
- }
- HasEightBits = FALSE;
- e->e_msgsize = 0;
- e->e_flags |= EF_HAS_DF;
- }
-
- /*
- ** Tell ARPANET to go ahead.
- */
-
- if (smtpmode)
- message("354 Enter mail, end with \".\" on a line by itself");
-
- if (tTd(30, 2))
- printf("collect\n");
-
- /*
- ** Read the message.
- **
- ** This is done using two interleaved state machines.
- ** The input state machine is looking for things like
- ** hidden dots; the message state machine is handling
- ** the larger picture (e.g., header versus body).
- */
-
- buf = bp = bufbuf;
- buflen = sizeof bufbuf;
- pbp = peekbuf;
- istate = IS_BOL;
- mstate = SaveFrom ? MS_HEADER : MS_UFROM;
- CollectProgress = FALSE;
-
- if (dbto != 0)
- {
- /* handle possible input timeout */
- if (setjmp(CtxCollectTimeout) != 0)
- {
- if (LogLevel > 2)
- sm_syslog(LOG_NOTICE, e->e_id,
- "timeout waiting for input from %s during message collect",
- CurHostName ? CurHostName : "<local machine>");
- errno = 0;
- usrerr("451 timeout waiting for input during message collect");
- goto readerr;
- }
- CollectTimeout = setevent(dbto, collecttimeout, dbto);
- }
-
- for (;;)
- {
- if (tTd(30, 35))
- printf("top, istate=%d, mstate=%d\n", istate, mstate);
- for (;;)
- {
- if (pbp > peekbuf)
- c = *--pbp;
- else
- {
- while (!feof(fp) && !ferror(fp))
- {
- errno = 0;
- c = getc(fp);
- if (errno != EINTR)
- break;
- clearerr(fp);
- }
- CollectProgress = TRUE;
- if (TrafficLogFile != NULL && !headeronly)
- {
- if (istate == IS_BOL)
- fprintf(TrafficLogFile, "%05d <<< ",
- (int) getpid());
- if (c == EOF)
- fprintf(TrafficLogFile, "[EOF]\n");
- else
- putc(c, TrafficLogFile);
- }
- if (c == EOF)
- goto readerr;
- if (SevenBitInput)
- c &= 0x7f;
- else
- HasEightBits |= bitset(0x80, c);
- }
- if (tTd(30, 94))
- printf("istate=%d, c=%c (0x%x)\n",
- istate, c, c);
- switch (istate)
- {
- case IS_BOL:
- if (c == '.')
- {
- istate = IS_DOT;
- continue;
- }
- break;
-
- case IS_DOT:
- if (c == '\n' && !ignrdot &&
- !bitset(EF_NL_NOT_EOL, e->e_flags))
- goto readerr;
- else if (c == '\r' &&
- !bitset(EF_CRLF_NOT_EOL, e->e_flags))
- {
- istate = IS_DOTCR;
- continue;
- }
- else if (c != '.' ||
- (OpMode != MD_SMTP &&
- OpMode != MD_DAEMON &&
- OpMode != MD_ARPAFTP))
- {
- *pbp++ = c;
- c = '.';
- }
- break;
-
- case IS_DOTCR:
- if (c == '\n' && !ignrdot)
- goto readerr;
- else
- {
- /* push back the ".\rx" */
- *pbp++ = c;
- *pbp++ = '\r';
- c = '.';
- }
- break;
-
- case IS_CR:
- if (c == '\n')
- istate = IS_BOL;
- else
- {
- ungetc(c, fp);
- c = '\r';
- istate = IS_NORM;
- }
- goto bufferchar;
- }
-
- if (c == '\r' && !bitset(EF_CRLF_NOT_EOL, e->e_flags))
- {
- istate = IS_CR;
- continue;
- }
- else if (c == '\n' && !bitset(EF_NL_NOT_EOL, e->e_flags))
- istate = IS_BOL;
- else
- istate = IS_NORM;
-
-bufferchar:
- if (!headeronly)
- e->e_msgsize++;
- if (mstate == MS_BODY)
- {
- /* just put the character out */
- if (MaxMessageSize <= 0 ||
- e->e_msgsize <= MaxMessageSize)
- putc(c, tf);
- continue;
- }
-
- /* header -- buffer up */
- if (bp >= &buf[buflen - 2])
- {
- char *obuf;
-
- if (mstate != MS_HEADER)
- break;
-
- /* out of space for header */
- obuf = buf;
- if (buflen < MEMCHUNKSIZE)
- buflen *= 2;
- else
- buflen += MEMCHUNKSIZE;
- buf = xalloc(buflen);
- bcopy(obuf, buf, bp - obuf);
- bp = &buf[bp - obuf];
- if (obuf != bufbuf)
- free(obuf);
- }
- if (c >= 0200 && c <= 0237)
- {
-#if 0 /* causes complaints -- figure out something for 8.9 */
- usrerr("Illegal character 0x%x in header", c);
-#endif
- }
- else if (c != '\0')
- *bp++ = c;
- if (istate == IS_BOL)
- break;
- }
- *bp = '\0';
-
-nextstate:
- if (tTd(30, 35))
- printf("nextstate, istate=%d, mstate=%d, line = \"%s\"\n",
- istate, mstate, buf);
- switch (mstate)
- {
- extern int chompheader();
-
- case MS_UFROM:
- mstate = MS_HEADER;
-#ifndef NOTUNIX
- if (strncmp(buf, "From ", 5) == 0)
- {
- extern void eatfrom();
-
- bp = buf;
- eatfrom(buf, e);
- continue;
- }
-#endif
- /* fall through */
-
- case MS_HEADER:
- if (!isheader(buf))
- {
- mstate = MS_BODY;
- goto nextstate;
- }
-
- /* check for possible continuation line */
- do
- {
- clearerr(fp);
- errno = 0;
- c = getc(fp);
- } while (errno == EINTR);
- if (c != EOF)
- ungetc(c, fp);
- if (c == ' ' || c == '\t')
- {
- /* yep -- defer this */
- continue;
- }
-
- /* trim off trailing CRLF or NL */
- if (*--bp != '\n' || *--bp != '\r')
- bp++;
- *bp = '\0';
- if (bitset(H_EOH, chompheader(buf, FALSE, hdrp, e)))
- mstate = MS_BODY;
- break;
-
- case MS_BODY:
- if (tTd(30, 1))
- printf("EOH\n");
- if (headeronly)
- goto readerr;
- bp = buf;
-
- /* toss blank line */
- if ((!bitset(EF_CRLF_NOT_EOL, e->e_flags) &&
- bp[0] == '\r' && bp[1] == '\n') ||
- (!bitset(EF_NL_NOT_EOL, e->e_flags) &&
- bp[0] == '\n'))
- {
- break;
- }
-
- /* if not a blank separator, write it out */
- if (MaxMessageSize <= 0 ||
- e->e_msgsize <= MaxMessageSize)
- {
- while (*bp != '\0')
- putc(*bp++, tf);
- }
- break;
- }
- bp = buf;
- }
-
-readerr:
- if ((feof(fp) && smtpmode) || ferror(fp))
- {
- const char *errmsg = errstring(errno);
-
- if (tTd(30, 1))
- printf("collect: premature EOM: %s\n", errmsg);
- if (LogLevel >= 2)
- sm_syslog(LOG_WARNING, e->e_id,
- "collect: premature EOM: %s", errmsg);
- inputerr = TRUE;
- }
-
- /* reset global timer */
- clrevent(CollectTimeout);
-
- if (headeronly)
- return;
-
- if (tf != NULL &&
- (fflush(tf) != 0 || ferror(tf) ||
- (SuperSafe && fsync(fileno(tf)) < 0) ||
- fclose(tf) < 0))
- {
- tferror(tf, e);
- flush_errors(TRUE);
- finis();
- }
-
- /* An EOF when running SMTP is an error */
- if (inputerr && (OpMode == MD_SMTP || OpMode == MD_DAEMON))
- {
- char *host;
- char *problem;
-
- host = RealHostName;
- if (host == NULL)
- host = "localhost";
-
- if (feof(fp))
- problem = "unexpected close";
- else if (ferror(fp))
- problem = "I/O error";
- else
- problem = "read timeout";
- if (LogLevel > 0 && feof(fp))
- sm_syslog(LOG_NOTICE, e->e_id,
- "collect: %s on connection from %.100s, sender=%s: %s",
- problem, host,
- shortenstring(e->e_from.q_paddr, 203),
- errstring(errno));
- if (feof(fp))
- usrerr("451 collect: %s on connection from %s, from=%s",
- problem, host,
- shortenstring(e->e_from.q_paddr, 203));
- else
- syserr("451 collect: %s on connection from %s, from=%s",
- problem, host,
- shortenstring(e->e_from.q_paddr, 203));
-
- /* don't return an error indication */
- e->e_to = NULL;
- e->e_flags &= ~EF_FATALERRS;
- e->e_flags |= EF_CLRQUEUE;
-
- /* and don't try to deliver the partial message either */
- if (InChild)
- ExitStat = EX_QUIT;
- finis();
- }
-
- /*
- ** Find out some information from the headers.
- ** Examples are who is the from person & the date.
- */
-
- eatheader(e, TRUE);
-
- if (GrabTo && e->e_sendqueue == NULL)
- usrerr("No recipient addresses found in header");
-
- /* collect statistics */
- if (OpMode != MD_VERIFY)
- {
- extern void markstats();
-
- markstats(e, (ADDRESS *) NULL);
- }
-
-#if _FFR_DSN_RRT_OPTION
- /*
- ** If we have a Return-Receipt-To:, turn it into a DSN.
- */
-
- if (RrtImpliesDsn && hvalue("return-receipt-to", e->e_header) != NULL)
- {
- ADDRESS *q;
-
- for (q = e->e_sendqueue; q != NULL; q = q->q_next)
- if (!bitset(QHASNOTIFY, q->q_flags))
- q->q_flags |= QHASNOTIFY|QPINGONSUCCESS;
- }
-#endif
-
- /*
- ** Add an Apparently-To: line if we have no recipient lines.
- */
-
- if (hvalue("to", e->e_header) != NULL ||
- hvalue("cc", e->e_header) != NULL ||
- hvalue("apparently-to", e->e_header) != NULL)
- {
- /* have a valid recipient header -- delete Bcc: headers */
- e->e_flags |= EF_DELETE_BCC;
- }
- else if (hvalue("bcc", e->e_header) == NULL)
- {
- /* no valid recipient headers */
- register ADDRESS *q;
- char *hdr = NULL;
- extern void addheader();
-
- /* create an Apparently-To: field */
- /* that or reject the message.... */
- switch (NoRecipientAction)
- {
- case NRA_ADD_APPARENTLY_TO:
- hdr = "Apparently-To";
- break;
-
- case NRA_ADD_TO:
- hdr = "To";
- break;
-
- case NRA_ADD_BCC:
- addheader("Bcc", " ", &e->e_header);
- break;
-
- case NRA_ADD_TO_UNDISCLOSED:
- addheader("To", "undisclosed-recipients:;", &e->e_header);
- break;
- }
-
- if (hdr != NULL)
- {
- for (q = e->e_sendqueue; q != NULL; q = q->q_next)
- {
- if (q->q_alias != NULL)
- continue;
- if (tTd(30, 3))
- printf("Adding %s: %s\n",
- hdr, q->q_paddr);
- addheader(hdr, q->q_paddr, &e->e_header);
- }
- }
- }
-
- /* check for message too large */
- if (MaxMessageSize > 0 && e->e_msgsize > MaxMessageSize)
- {
- e->e_flags |= EF_NO_BODY_RETN|EF_CLRQUEUE;
- e->e_status = "5.2.3";
- usrerr("552 Message exceeds maximum fixed size (%ld)",
- MaxMessageSize);
- if (LogLevel > 6)
- sm_syslog(LOG_NOTICE, e->e_id,
- "message size (%ld) exceeds maximum (%ld)",
- e->e_msgsize, MaxMessageSize);
- }
-
- /* check for illegal 8-bit data */
- if (HasEightBits)
- {
- e->e_flags |= EF_HAS8BIT;
- if (!bitset(MM_PASS8BIT|MM_MIME8BIT, MimeMode) &&
- !bitset(EF_IS_MIME, e->e_flags))
- {
- e->e_status = "5.6.1";
- usrerr("554 Eight bit data not allowed");
- }
- }
- else
- {
- /* if it claimed to be 8 bits, well, it lied.... */
- if (e->e_bodytype != NULL &&
- strcasecmp(e->e_bodytype, "8BITMIME") == 0)
- e->e_bodytype = "7BIT";
- }
-
- if ((e->e_dfp = fopen(dfname, "r")) == NULL)
- {
- /* we haven't acked receipt yet, so just chuck this */
- syserr("Cannot reopen %s", dfname);
- finis();
- }
-}
-
-
-static void
-collecttimeout(timeout)
- time_t timeout;
-{
- /* if no progress was made, die now */
- if (!CollectProgress)
- longjmp(CtxCollectTimeout, 1);
-
- /* otherwise reset the timeout */
- CollectTimeout = setevent(timeout, collecttimeout, timeout);
- CollectProgress = FALSE;
-}
- /*
-** TFERROR -- signal error on writing the temporary file.
-**
-** Parameters:
-** tf -- the file pointer for the temporary file.
-** e -- the current envelope.
-**
-** Returns:
-** none.
-**
-** Side Effects:
-** Gives an error message.
-** Arranges for following output to go elsewhere.
-*/
-
-void
-tferror(tf, e)
- FILE *tf;
- register ENVELOPE *e;
-{
- setstat(EX_IOERR);
- if (errno == ENOSPC)
- {
- struct stat st;
- long avail;
- long bsize;
- extern long freediskspace __P((char *, long *));
-
- e->e_flags |= EF_NO_BODY_RETN;
- if (fstat(fileno(tf), &st) < 0)
- st.st_size = 0;
- (void) freopen(queuename(e, 'd'), "w", tf);
- if (st.st_size <= 0)
- fprintf(tf, "\n*** Mail could not be accepted");
- else if (sizeof st.st_size > sizeof (long))
- fprintf(tf, "\n*** Mail of at least %qd bytes could not be accepted\n",
- st.st_size);
- else
- fprintf(tf, "\n*** Mail of at least %ld bytes could not be accepted\n",
- (long) st.st_size);
- fprintf(tf, "*** at %s due to lack of disk space for temp file.\n",
- MyHostName);
- avail = freediskspace(QueueDir, &bsize);
- if (avail > 0)
- {
- if (bsize > 1024)
- avail *= bsize / 1024;
- else if (bsize < 1024)
- avail /= 1024 / bsize;
- fprintf(tf, "*** Currently, %ld kilobytes are available for mail temp files.\n",
- avail);
- }
- e->e_status = "4.3.1";
- usrerr("452 Out of disk space for temp file");
- }
- else
- syserr("collect: Cannot write tf%s", e->e_id);
- (void) freopen("/dev/null", "w", tf);
-}
- /*
-** EATFROM -- chew up a UNIX style from line and process
-**
-** This does indeed make some assumptions about the format
-** of UNIX messages.
-**
-** Parameters:
-** fm -- the from line.
-**
-** Returns:
-** none.
-**
-** Side Effects:
-** extracts what information it can from the header,
-** such as the date.
-*/
-
-# ifndef NOTUNIX
-
-char *DowList[] =
-{
- "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", NULL
-};
-
-char *MonthList[] =
-{
- "Jan", "Feb", "Mar", "Apr", "May", "Jun",
- "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
- NULL
-};
-
-void
-eatfrom(fm, e)
- char *fm;
- register ENVELOPE *e;
-{
- register char *p;
- register char **dt;
-
- if (tTd(30, 2))
- printf("eatfrom(%s)\n", fm);
-
- /* find the date part */
- p = fm;
- while (*p != '\0')
- {
- /* skip a word */
- while (*p != '\0' && *p != ' ')
- p++;
- while (*p == ' ')
- p++;
- if (!(isascii(*p) && isupper(*p)) ||
- p[3] != ' ' || p[13] != ':' || p[16] != ':')
- continue;
-
- /* we have a possible date */
- for (dt = DowList; *dt != NULL; dt++)
- if (strncmp(*dt, p, 3) == 0)
- break;
- if (*dt == NULL)
- continue;
-
- for (dt = MonthList; *dt != NULL; dt++)
- if (strncmp(*dt, &p[4], 3) == 0)
- break;
- if (*dt != NULL)
- break;
- }
-
- if (*p != '\0')
- {
- char *q;
-
- /* we have found a date */
- q = xalloc(25);
- (void) strncpy(q, p, 25);
- q[24] = '\0';
- q = arpadate(q);
- define('a', newstr(q), e);
- }
-}
-
-# endif /* NOTUNIX */
diff --git a/src/collect.sav b/src/collect.sav
deleted file mode 100644
index 58f0dc7..0000000
--- a/src/collect.sav
+++ /dev/null
@@ -1,761 +0,0 @@
-/*
- * Copyright (c) 1983, 1995-1997 Eric P. Allman
- * 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.
- *
- * 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.
- */
-
-#ifndef lint
-static char sccsid[] = "@(#)collect.c 8.72 (Berkeley) 10/6/97";
-#endif /* not lint */
-
-# include <errno.h>
-# include "sendmail.h"
-
-/*
-** COLLECT -- read & parse message header & make temp file.
-**
-** Creates a temporary file name and copies the standard
-** input to that file. Leading UNIX-style "From" lines are
-** stripped off (after important information is extracted).
-**
-** Parameters:
-** fp -- file to read.
-** smtpmode -- if set, we are running SMTP: give an RFC821
-** style message to say we are ready to collect
-** input, and never ignore a single dot to mean
-** end of message.
-** hdrp -- the location to stash the header.
-** e -- the current envelope.
-**
-** Returns:
-** none.
-**
-** Side Effects:
-** Temp file is created and filled.
-** The from person may be set.
-*/
-
-static jmp_buf CtxCollectTimeout;
-static void collecttimeout();
-static bool CollectProgress;
-static EVENT *CollectTimeout;
-
-/* values for input state machine */
-#define IS_NORM 0 /* middle of line */
-#define IS_BOL 1 /* beginning of line */
-#define IS_DOT 2 /* read a dot at beginning of line */
-#define IS_DOTCR 3 /* read ".\r" at beginning of line */
-#define IS_CR 4 /* read a carriage return */
-
-/* values for message state machine */
-#define MS_UFROM 0 /* reading Unix from line */
-#define MS_HEADER 1 /* reading message header */
-#define MS_BODY 2 /* reading message body */
-
-void
-collect(fp, smtpmode, hdrp, e)
- FILE *fp;
- bool smtpmode;
- HDR **hdrp;
- register ENVELOPE *e;
-{
- register FILE *volatile tf;
- volatile bool ignrdot = smtpmode ? FALSE : IgnrDot;
- volatile time_t dbto = smtpmode ? TimeOuts.to_datablock : 0;
- register char *volatile bp;
- volatile int c = EOF;
- volatile bool inputerr = FALSE;
- bool headeronly;
- char *volatile buf;
- volatile int buflen;
- volatile int istate;
- volatile int mstate;
- u_char *volatile pbp;
- u_char peekbuf[8];
- char dfname[MAXQFNAME];
- char bufbuf[MAXLINE];
- extern bool isheader();
- extern void eatheader();
- extern void tferror();
-
- headeronly = hdrp != NULL;
-
- /*
- ** Create the temp file name and create the file.
- */
-
- if (!headeronly)
- {
- int tfd;
- struct stat stbuf;
-
- strcpy(dfname, queuename(e, 'd'));
- tfd = dfopen(dfname, O_WRONLY|O_CREAT|O_TRUNC, FileMode, SFF_ANYFILE);
- if (tfd < 0 || (tf = fdopen(tfd, "w")) == NULL)
- {
- syserr("Cannot create %s", dfname);
- e->e_flags |= EF_NO_BODY_RETN;
- finis();
- }
- if (fstat(fileno(tf), &stbuf) < 0)
- e->e_dfino = -1;
- else
- {
- e->e_dfdev = stbuf.st_dev;
- e->e_dfino = stbuf.st_ino;
- }
- HasEightBits = FALSE;
- e->e_msgsize = 0;
- e->e_flags |= EF_HAS_DF;
- }
-
- /*
- ** Tell ARPANET to go ahead.
- */
-
- if (smtpmode)
- message("354 Enter mail, end with \".\" on a line by itself");
-
- if (tTd(30, 2))
- printf("collect\n");
-
- /*
- ** Read the message.
- **
- ** This is done using two interleaved state machines.
- ** The input state machine is looking for things like
- ** hidden dots; the message state machine is handling
- ** the larger picture (e.g., header versus body).
- */
-
- buf = bp = bufbuf;
- buflen = sizeof bufbuf;
- pbp = peekbuf;
- istate = IS_BOL;
- mstate = SaveFrom ? MS_HEADER : MS_UFROM;
- CollectProgress = FALSE;
-
- if (dbto != 0)
- {
- /* handle possible input timeout */
- if (setjmp(CtxCollectTimeout) != 0)
- {
- if (LogLevel > 2)
- sm_syslog(LOG_NOTICE, e->e_id,
- "timeout waiting for input from %s during message collect",
- CurHostName ? CurHostName : "<local machine>");
- errno = 0;
- usrerr("451 timeout waiting for input during message collect");
- goto readerr;
- }
- CollectTimeout = setevent(dbto, collecttimeout, dbto);
- }
-
- for (;;)
- {
- if (tTd(30, 35))
- printf("top, istate=%d, mstate=%d\n", istate, mstate);
- for (;;)
- {
- if (pbp > peekbuf)
- c = *--pbp;
- else
- {
- while (!feof(fp) && !ferror(fp))
- {
- errno = 0;
- c = getc(fp);
- if (errno != EINTR)
- break;
- clearerr(fp);
- }
- CollectProgress = TRUE;
- if (TrafficLogFile != NULL && !headeronly)
- {
- if (istate == IS_BOL)
- fprintf(TrafficLogFile, "%05d <<< ",
- (int) getpid());
- if (c == EOF)
- fprintf(TrafficLogFile, "[EOF]\n");
- else
- putc(c, TrafficLogFile);
- }
- if (c == EOF)
- goto readerr;
- if (SevenBitInput)
- c &= 0x7f;
- else
- HasEightBits |= bitset(0x80, c);
- }
- if (tTd(30, 94))
- printf("istate=%d, c=%c (0x%x)\n",
- istate, c, c);
- switch (istate)
- {
- case IS_BOL:
- if (c == '.')
- {
- istate = IS_DOT;
- continue;
- }
- break;
-
- case IS_DOT:
- if (c == '\n' && !ignrdot &&
- !bitset(EF_NL_NOT_EOL, e->e_flags))
- goto readerr;
- else if (c == '\r' &&
- !bitset(EF_CRLF_NOT_EOL, e->e_flags))
- {
- istate = IS_DOTCR;
- continue;
- }
- else if (c != '.' ||
- (OpMode != MD_SMTP &&
- OpMode != MD_DAEMON &&
- OpMode != MD_ARPAFTP))
- {
- *pbp++ = c;
- c = '.';
- }
- break;
-
- case IS_DOTCR:
- if (c == '\n' && !ignrdot)
- goto readerr;
- else
- {
- /* push back the ".\rx" */
- *pbp++ = c;
- *pbp++ = '\r';
- c = '.';
- }
- break;
-
- case IS_CR:
- if (c == '\n')
- istate = IS_BOL;
- else
- {
- ungetc(c, fp);
- c = '\r';
- istate = IS_NORM;
- }
- goto bufferchar;
- }
-
- if (c == '\r' && !bitset(EF_CRLF_NOT_EOL, e->e_flags))
- {
- istate = IS_CR;
- continue;
- }
- else if (c == '\n' && !bitset(EF_NL_NOT_EOL, e->e_flags))
- istate = IS_BOL;
- else
- istate = IS_NORM;
-
-bufferchar:
- if (!headeronly)
- e->e_msgsize++;
- if (mstate == MS_BODY)
- {
- /* just put the character out */
- if (MaxMessageSize <= 0 ||
- e->e_msgsize <= MaxMessageSize)
- putc(c, tf);
- continue;
- }
-
- /* header -- buffer up */
- if (bp >= &buf[buflen - 2])
- {
- char *obuf;
-
- if (mstate != MS_HEADER)
- break;
-
- /* out of space for header */
- obuf = buf;
- if (buflen < MEMCHUNKSIZE)
- buflen *= 2;
- else
- buflen += MEMCHUNKSIZE;
- buf = xalloc(buflen);
- bcopy(obuf, buf, bp - obuf);
- bp = &buf[bp - obuf];
- if (obuf != bufbuf)
- free(obuf);
- }
- if (c >= 0200 && c <= 0237)
- {
-#if 0 /* causes complaints -- figure out something for 8.9 */
- usrerr("Illegal character 0x%x in header", c);
-#endif
- }
- else if (c != '\0')
- *bp++ = c;
- if (istate == IS_BOL)
- break;
- }
- *bp = '\0';
-
-nextstate:
- if (tTd(30, 35))
- printf("nextstate, istate=%d, mstate=%d, line = \"%s\"\n",
- istate, mstate, buf);
- switch (mstate)
- {
- extern int chompheader();
-
- case MS_UFROM:
- mstate = MS_HEADER;
-#ifndef NOTUNIX
- if (strncmp(buf, "From ", 5) == 0)
- {
- extern void eatfrom();
-
- bp = buf;
- eatfrom(buf, e);
- continue;
- }
-#endif
- /* fall through */
-
- case MS_HEADER:
- if (!isheader(buf))
- {
- mstate = MS_BODY;
- goto nextstate;
- }
-
- /* check for possible continuation line */
- do
- {
- clearerr(fp);
- errno = 0;
- c = getc(fp);
- } while (errno == EINTR);
- if (c != EOF)
- ungetc(c, fp);
- if (c == ' ' || c == '\t')
- {
- /* yep -- defer this */
- continue;
- }
-
- /* trim off trailing CRLF or NL */
- if (*--bp != '\n' || *--bp != '\r')
- bp++;
- *bp = '\0';
- if (bitset(H_EOH, chompheader(buf, FALSE, hdrp, e)))
- mstate = MS_BODY;
- break;
-
- case MS_BODY:
- if (tTd(30, 1))
- printf("EOH\n");
- if (headeronly)
- goto readerr;
- bp = buf;
-
- /* toss blank line */
- if ((!bitset(EF_CRLF_NOT_EOL, e->e_flags) &&
- bp[0] == '\r' && bp[1] == '\n') ||
- (!bitset(EF_NL_NOT_EOL, e->e_flags) &&
- bp[0] == '\n'))
- {
- break;
- }
-
- /* if not a blank separator, write it out */
- if (MaxMessageSize <= 0 ||
- e->e_msgsize <= MaxMessageSize)
- {
- while (*bp != '\0')
- putc(*bp++, tf);
- }
- break;
- }
- bp = buf;
- }
-
-readerr:
- if ((feof(fp) && smtpmode) || ferror(fp))
- {
- const char *errmsg = errstring(errno);
-
- if (tTd(30, 1))
- printf("collect: premature EOM: %s\n", errmsg);
- if (LogLevel >= 2)
- sm_syslog(LOG_WARNING, e->e_id,
- "collect: premature EOM: %s", errmsg);
- inputerr = TRUE;
- }
-
- /* reset global timer */
- clrevent(CollectTimeout);
-
- if (headeronly)
- return;
-
- if (tf != NULL &&
- (fflush(tf) != 0 || ferror(tf) ||
- (SuperSafe && fsync(fileno(tf)) < 0) ||
- fclose(tf) < 0))
- {
- tferror(tf, e);
- flush_errors(TRUE);
- finis();
- }
-
- /* An EOF when running SMTP is an error */
- if (inputerr && (OpMode == MD_SMTP || OpMode == MD_DAEMON))
- {
- char *host;
- char *problem;
-
- host = RealHostName;
- if (host == NULL)
- host = "localhost";
-
- if (feof(fp))
- problem = "unexpected close";
- else if (ferror(fp))
- problem = "I/O error";
- else
- problem = "read timeout";
- if (LogLevel > 0 && feof(fp))
- sm_syslog(LOG_NOTICE, e->e_id,
- "collect: %s on connection from %.100s, sender=%s: %s",
- problem, host,
- shortenstring(e->e_from.q_paddr, 203),
- errstring(errno));
- if (feof(fp))
- usrerr("451 collect: %s on connection from %s, from=%s",
- problem, host,
- shortenstring(e->e_from.q_paddr, 203));
- else
- syserr("451 collect: %s on connection from %s, from=%s",
- problem, host,
- shortenstring(e->e_from.q_paddr, 203));
-
- /* don't return an error indication */
- e->e_to = NULL;
- e->e_flags &= ~EF_FATALERRS;
- e->e_flags |= EF_CLRQUEUE;
-
- /* and don't try to deliver the partial message either */
- if (InChild)
- ExitStat = EX_QUIT;
- finis();
- }
-
- /*
- ** Find out some information from the headers.
- ** Examples are who is the from person & the date.
- */
-
- eatheader(e, TRUE);
-
- if (GrabTo && e->e_sendqueue == NULL)
- usrerr("No recipient addresses found in header");
-
- /* collect statistics */
- if (OpMode != MD_VERIFY)
- {
- extern void markstats();
-
- markstats(e, (ADDRESS *) NULL);
- }
-
-#if _FFR_DSN_RRT_OPTION
- /*
- ** If we have a Return-Receipt-To:, turn it into a DSN.
- */
-
- if (RrtImpliesDsn && hvalue("return-receipt-to", e->e_header) != NULL)
- {
- ADDRESS *q;
-
- for (q = e->e_sendqueue; q != NULL; q = q->q_next)
- if (!bitset(QHASNOTIFY, q->q_flags))
- q->q_flags |= QHASNOTIFY|QPINGONSUCCESS;
- }
-#endif
-
- /*
- ** Add an Apparently-To: line if we have no recipient lines.
- */
-
- if (hvalue("to", e->e_header) != NULL ||
- hvalue("cc", e->e_header) != NULL ||
- hvalue("apparently-to", e->e_header) != NULL)
- {
- /* have a valid recipient header -- delete Bcc: headers */
- e->e_flags |= EF_DELETE_BCC;
- }
- else if (hvalue("bcc", e->e_header) == NULL)
- {
- /* no valid recipient headers */
- register ADDRESS *q;
- char *hdr = NULL;
- extern void addheader();
-
- /* create an Apparently-To: field */
- /* that or reject the message.... */
- switch (NoRecipientAction)
- {
- case NRA_ADD_APPARENTLY_TO:
- hdr = "Apparently-To";
- break;
-
- case NRA_ADD_TO:
- hdr = "To";
- break;
-
- case NRA_ADD_BCC:
- addheader("Bcc", " ", &e->e_header);
- break;
-
- case NRA_ADD_TO_UNDISCLOSED:
- addheader("To", "undisclosed-recipients:;", &e->e_header);
- break;
- }
-
- if (hdr != NULL)
- {
- for (q = e->e_sendqueue; q != NULL; q = q->q_next)
- {
- if (q->q_alias != NULL)
- continue;
- if (tTd(30, 3))
- printf("Adding %s: %s\n",
- hdr, q->q_paddr);
- addheader(hdr, q->q_paddr, &e->e_header);
- }
- }
- }
-
- /* check for message too large */
- if (MaxMessageSize > 0 && e->e_msgsize > MaxMessageSize)
- {
- e->e_flags |= EF_NO_BODY_RETN|EF_CLRQUEUE;
- e->e_status = "5.2.3";
- usrerr("552 Message exceeds maximum fixed size (%ld)",
- MaxMessageSize);
- if (LogLevel > 6)
- sm_syslog(LOG_NOTICE, e->e_id,
- "message size (%ld) exceeds maximum (%ld)",
- e->e_msgsize, MaxMessageSize);
- }
-
- /* check for illegal 8-bit data */
- if (HasEightBits)
- {
- e->e_flags |= EF_HAS8BIT;
- if (!bitset(MM_PASS8BIT|MM_MIME8BIT, MimeMode) &&
- !bitset(EF_IS_MIME, e->e_flags))
- {
- e->e_status = "5.6.1";
- usrerr("554 Eight bit data not allowed");
- }
- }
- else
- {
- /* if it claimed to be 8 bits, well, it lied.... */
- if (e->e_bodytype != NULL &&
- strcasecmp(e->e_bodytype, "8BITMIME") == 0)
- e->e_bodytype = "7BIT";
- }
-
- if ((e->e_dfp = fopen(dfname, "r")) == NULL)
- {
- /* we haven't acked receipt yet, so just chuck this */
- syserr("Cannot reopen %s", dfname);
- finis();
- }
-}
-
-
-static void
-collecttimeout(timeout)
- time_t timeout;
-{
- /* if no progress was made, die now */
- if (!CollectProgress)
- longjmp(CtxCollectTimeout, 1);
-
- /* otherwise reset the timeout */
- CollectTimeout = setevent(timeout, collecttimeout, timeout);
- CollectProgress = FALSE;
-}
- /*
-** TFERROR -- signal error on writing the temporary file.
-**
-** Parameters:
-** tf -- the file pointer for the temporary file.
-** e -- the current envelope.
-**
-** Returns:
-** none.
-**
-** Side Effects:
-** Gives an error message.
-** Arranges for following output to go elsewhere.
-*/
-
-void
-tferror(tf, e)
- FILE *tf;
- register ENVELOPE *e;
-{
- setstat(EX_IOERR);
- if (errno == ENOSPC)
- {
- struct stat st;
- long avail;
- long bsize;
- extern long freediskspace __P((char *, long *));
-
- e->e_flags |= EF_NO_BODY_RETN;
- if (fstat(fileno(tf), &st) < 0)
- st.st_size = 0;
- (void) freopen(queuename(e, 'd'), "w", tf);
- if (st.st_size <= 0)
- fprintf(tf, "\n*** Mail could not be accepted");
- else if (sizeof st.st_size > sizeof (long))
- fprintf(tf, "\n*** Mail of at least %qd bytes could not be accepted\n",
- st.st_size);
- else
- fprintf(tf, "\n*** Mail of at least %ld bytes could not be accepted\n",
- (long) st.st_size);
- fprintf(tf, "*** at %s due to lack of disk space for temp file.\n",
- MyHostName);
- avail = freediskspace(QueueDir, &bsize);
- if (avail > 0)
- {
- if (bsize > 1024)
- avail *= bsize / 1024;
- else if (bsize < 1024)
- avail /= 1024 / bsize;
- fprintf(tf, "*** Currently, %ld kilobytes are available for mail temp files.\n",
- avail);
- }
- e->e_status = "4.3.1";
- usrerr("452 Out of disk space for temp file");
- }
- else
- syserr("collect: Cannot write tf%s", e->e_id);
- (void) freopen("/dev/null", "w", tf);
-}
- /*
-** EATFROM -- chew up a UNIX style from line and process
-**
-** This does indeed make some assumptions about the format
-** of UNIX messages.
-**
-** Parameters:
-** fm -- the from line.
-**
-** Returns:
-** none.
-**
-** Side Effects:
-** extracts what information it can from the header,
-** such as the date.
-*/
-
-# ifndef NOTUNIX
-
-char *DowList[] =
-{
- "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", NULL
-};
-
-char *MonthList[] =
-{
- "Jan", "Feb", "Mar", "Apr", "May", "Jun",
- "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
- NULL
-};
-
-void
-eatfrom(fm, e)
- char *fm;
- register ENVELOPE *e;
-{
- register char *p;
- register char **dt;
-
- if (tTd(30, 2))
- printf("eatfrom(%s)\n", fm);
-
- /* find the date part */
- p = fm;
- while (*p != '\0')
- {
- /* skip a word */
- while (*p != '\0' && *p != ' ')
- p++;
- while (*p == ' ')
- p++;
- if (!(isascii(*p) && isupper(*p)) ||
- p[3] != ' ' || p[13] != ':' || p[16] != ':')
- continue;
-
- /* we have a possible date */
- for (dt = DowList; *dt != NULL; dt++)
- if (strncmp(*dt, p, 3) == 0)
- break;
- if (*dt == NULL)
- continue;
-
- for (dt = MonthList; *dt != NULL; dt++)
- if (strncmp(*dt, &p[4], 3) == 0)
- break;
- if (*dt != NULL)
- break;
- }
-
- if (*p != '\0')
- {
- char *q;
-
- /* we have found a date */
- q = xalloc(25);
- (void) strncpy(q, p, 25);
- q[24] = '\0';
- q = arpadate(q);
- define('a', newstr(q), e);
- }
-}
-
-# endif /* NOTUNIX */
diff --git a/src/conf.c b/src/conf.c
index 25c369d..3cfa73b 100644
--- a/src/conf.c
+++ b/src/conf.c
@@ -418,9 +418,6 @@ setupmaps()
MAPDEF("bestmx", NULL, MCF_OPTFILE,
map_parseargs, null_map_open, null_map_close,
bestmx_map_lookup, null_map_store);
- MAPDEF("ismx", NULL, MCF_OPTFILE,
- map_parseargs, null_map_open, null_map_close,
- ismx_map_lookup, null_map_store);
#endif
MAPDEF("host", NULL, 0,
diff --git a/src/conf.h b/src/conf.h
index 50d91a7..6097c27 100644
--- a/src/conf.h
+++ b/src/conf.h
@@ -1284,7 +1284,7 @@ extern void *malloc();
# define ERRLIST_PREDEFINED /* don't declare sys_errlist */
# define GIDSET_T gid_t /* from <linux/types.h> */
# define HASGETUSERSHELL 0 /* getusershell(3) broken in Slackware 2.0 */
-# define IP_SRCROUTE 0
+# define IP_SRCROUTE 0 /* linux <= 1.2.8 doesn't support IP_OPTIONS */
# define USE_SIGLONGJMP 1 /* sigsetjmp needed for signal handling */
# ifndef HASFLOCK
# include <linux/version.h>
diff --git a/src/domain.c b/src/domain.c
index b7bed93..ec79be8 100644
--- a/src/domain.c
+++ b/src/domain.c
@@ -492,52 +492,6 @@ bestmx_map_lookup(map, name, av, statp)
return map_rewrite(map, buf, len, av);
}
/*
-** ISMX -- find if we are the MX for a certain host.
-**
-** This is really a hack, but I don't see any obvious way
-** to generalize it at the moment.
-*/
-
-char *
-ismx_map_lookup(map, name, av, statp)
- MAP *map;
- char *name;
- char **av;
- int *statp;
-{
- int nmx, i, len;
- auto int rcode;
- int saveopts = _res.options;
- char *mxhosts[MAXMXHOSTS + 1];
- char *mymx = NULL;
-
- _res.options &= ~(RES_DNSRCH|RES_DEFNAMES);
- nmx = getmxrr(name, mxhosts, FALSE, &rcode);
- _res.options = saveopts;
- if (rcode != EX_TEMPFAIL) {
- if (nmx <= 0)
- return NULL;
- for(i = 0; i < nmx; i++) {
- len = strlen(mxhosts[i]);
- if (len && mxhosts[i][len - 1] == '.')
- mxhosts[i][len - 1] = 0;
- if (wordinclass(mxhosts[i], 'w')) {
- mymx = mxhosts[i];
- break;
- }
- }
- if (mymx == NULL)
- return NULL;
- } else
- mymx = "TEMPFAIL";
-
- if (bitset(MF_MATCHONLY, map->map_mflags))
- return map_rewrite(map, name, strlen(name), NULL);
- else
- return map_rewrite(map, mymx, strlen(mymx), av);
-}
-
- /*
** DNS_GETCANONNAME -- get the canonical name for named host using DNS
**
** This algorithm tries to be smart about wildcard MX records.
diff --git a/src/main.c b/src/main.c
index cea9d15..d1c7186 100644
--- a/src/main.c
+++ b/src/main.c
@@ -984,6 +984,18 @@ main(argc, argv, envp)
usrerr("Permission denied");
finis(FALSE, EX_USAGE);
}
+ if (OpMode == MD_INITALIAS &&
+ RealUid != 0 &&
+ RealUid != TrustedUid &&
+ !wordinclass(RealUserName, 't'))
+ {
+ if (LogLevel > 1)
+ sm_syslog(LOG_ALERT, NOQID,
+ "user %d attempted to rebuild the alias map",
+ RealUid);
+ usrerr("Permission denied");
+ finis(FALSE, EX_USAGE);
+ }
if (MeToo)
BlankEnvelope.e_flags |= EF_METOO;
diff --git a/src/readcf.c b/src/readcf.c
index 89c980e..df40097 100644
--- a/src/readcf.c
+++ b/src/readcf.c
@@ -1427,9 +1427,6 @@ struct optioninfo
{ "FallbackMXhost", 'V', FALSE },
{ "Verbose", 'v', TRUE },
{ "TryNullMXList", 'w', FALSE },
-#ifdef TCPWRAPPERS
- { "TcpWrappers", 'W', FALSE },
-#endif
{ "QueueLA", 'x', FALSE },
{ "RefuseLA", 'X', FALSE },
{ "RecipientFactor", 'y', FALSE },
@@ -2112,11 +2109,6 @@ setoption(opt, val, safe, sticky, e)
break;
/* 'W' available -- was wizard password */
-#ifdef TCPWRAPPERS
- case 'W':
- TcpWrappers = atobool(val);
- break;
-#endif
case 'x': /* load avg at which to auto-queue msgs */
QueueLA = atoi(val);
diff --git a/src/sendmail.8 b/src/sendmail.8
index 89c0f55..093b6e6 100644
--- a/src/sendmail.8
+++ b/src/sendmail.8
@@ -409,15 +409,6 @@ aliases are local to a particular host.
This may not be available if your sendmail does not have the
.Dv USERDB
option compiled in.
-.It Li TcpWrappers
-Use the
-.Dv sendmail
-entry in
-.Pa /etc/hosts.allow
-to decide if the remote host has access to the SMTP port.
-This may not be available if your sendmail does not have the
-.Dv TCPWRAPPERS
-option compiled in.
.It Li ForkEachJob
Fork each job during queue runs.
May be convenient on memory-poor machines.
diff --git a/src/sendmail.h b/src/sendmail.h
index e6f216c..ff2697e 100644
--- a/src/sendmail.h
+++ b/src/sendmail.h
@@ -1262,9 +1262,6 @@ EXTERN int MaxHeadersLength; /* max length of headers */
#if _FFR_DSN_RRT_OPTION
EXTERN bool RrtImpliesDsn; /* turn Return-Receipt-To: into DSN */
#endif
-#ifdef TCPWRAPPERS
-EXTERN bool TcpWrappers; /* Use tcp wrappers for access control. */
-#endif
EXTERN char *DeadLetterDrop; /* path to dead letter office */
EXTERN bool DontProbeInterfaces; /* don't probe interfaces for names */
EXTERN bool ChownAlwaysSafe; /* treat chown(2) as safe */