2002-07-17  David F. Skoll  <dfs@roaringpenguin.com>

	* Version 2.16 RELEASED

2002-07-17  David F. Skoll  <dfs@roaringpenguin.com>

	* configure.in: Take out tests for libsm.a and libsmutil.a -- they
	are internal Sendmail libraries which should not be required.
	INCOMPATIBILITY:  YOU MUST NOW USE SENDMAIL 8.12.X

2002-07-16  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in (rebuild_entity): Fixed incorrect setting of
	$ext for parts with no filename (thanks to Javier Kohan)
	(action_discard): Set $Actions{'discard'}

2002-07-12  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.c: Made X-Scanned-By: header a bit less verbose.

2002-07-11  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in (entity_contains_virus_rav): Filter output of
	RAV to make it less verbose.
	(message_contains_virus_sophos): Filter output of Sophos to make
	it less verbose.

2002-07-10  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in: Filter the output of H+BEDV, NAI, TREND and AVP
	to make	output less verbose.

	* mimedefang.pl.in: message_contains_virus_trend: Fixed typo.

2002-07-08  David F. Skoll  <dfs@roaringpenguin.com>

	* utils.c (MXRecipientOK): Pass additional first_recipient argument
	to filter_recipient.

	* Added support for "Clam AntiVirus" (http://clamav.elektrapro.com/)
	courtesy of Dejan Muhamedagic

2002-07-05  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in (run_virus_scanner): Added "$match" argument
	to pick out interesting lines from virus-scanner messages.

2002-07-05  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in: Integrated Norman Virus Control (nvcc)
	(http://www.norman.no/)

2002-07-04  David F. Skoll  <dfs@roaringpenguin.com>

	* utils.c: Allow filter_sender, filter_recipient and
	filter_relay to explicitly indicate a tempfail.

2002-06-24  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in: Better support for kav anti-virus
	(pointed out by Vadim Smelyansky)

	* redhat/mimedefang-spec.in: Minor fixes

	* mimedefang-multiplexor.c: Fix for compilation problems
	on BSD.

2002-06-14  David F. Skoll  <dfs@roaringpenguin.com>

	* Version 2.15 RELEASED

2002-06-14  David F. Skoll  <dfs@roaringpenguin.com>

	* Added README.SECURITY

	* examples/suggested-minimum-filter-for-windows-clients: Added
	calls to virus-scanner in sample filter.

	* Split mimedefang.c into mimedefang.c (milter-specific stuff)
	and utils.c (utilities for talking to multiplexor)

2002-06-13  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in (message_contains_virus_rav): Fixed
	incorrect return code in message_contains_virus_rav

	* mimedefang-multiplexor: Added "-R" and "-M" options to
	limit memory usage of slaves.  Strongly recommended to
	help mitigate DoS attacks.

	* mimedefang-multiplexor.c (limit_mem_usage): Added ability
	to limit memory usage of slaves to mitigate DoS attacks which
	use complicated MIME messages to consume lots of memory.  All
	such messages will be tempfailed forever, so keep an eye on
	your logs.  You'll see lines like this:

	Slave 0 stderr: Out of memory!
	Slave died prematurely -- check your filter rules


2002-06-11  David F. Skoll  <dfs@roaringpenguin.com>

	* Added filter_recipient function; added ip and hostname arguments
	to filter_sender.  Improved mechanism for communicating with
	filter_sender, filter_relay and filter_recipient functions.

	* INCOMPATIBILITY:  filter_sender is now passed 3 arguments
	(sender, relay_ip, relay_hostname) instead of 1 (sender).  You
	may have to adjust your filter rules.

2002-06-07  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.c, mimedefang.pl.in: Pass a number of sendmail macros
	down to the filter.

	* mimedefang.c: MAJOR internal change to communication mechanism
	between C and Perl.  Instead of lots of little files, the outbound
	(C to Perl) direction uses three files:

	INPUTMSG -- input message
	HEADERS  -- headers
	COMMANDS -- commands

	The inbound (Perl to C) uses (mostly) a single RESULTS file
	to pass results back.  If message is changed, we use a NEWBODY file.

2002-06-06  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in (action_replace_with_warning): Try to keep
	warnings inline.

2002-06-03  David F. Skoll  <dfs@roaringpenguin.com>

	* Version 2.14 RELEASED

2002-06-03  David F. Skoll  <dfs@roaringpenguin.com>

	* configure.in: Added support for --sysconfdir autoconf variable
	(which defaults to /etc, not PREFIX/etc].  Thanks to
	Andrey V. Pevnev.

	* configure.in: Added --with-confsubdir option (default mail)

	* configure.in: Added --with-milterinc and --with-milterlib
	arguments. (Thanks to Martin Matuska)

	* Added support for Sophie virus-scanning daemon, courtesy
	of Jason Englander.

	* Minor documentation cleanups.

	* Man pages are now generated by autoconf so they have correct
	path names.

2002-05-31  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in (stream_by_recipient): Added
	stream_by_recipient function.

	* Version 2.13 RELEASED

2002-05-31  David F. Skoll  <dfs@roaringpenguin.com>

	* examples/suggested-minimum-filter-for-windows-clients:
	Do not set Stupidity{"Flatten"}.

	* mimedefang.pl.in: Proper handling of action_add_part for
	messages of type multipart/alternative.

2002-05-29  David F. Skoll  <dfs@roaringpenguin.com>

	* examples/init-script.in: Generic init script which should work
	on most UNIXes.

	* mimedefang.c (main): Drop privileges as soon as possible in
	mimedefang and mimedefang-multiplexor.  That means you have to
	keep the pid files and sockets in /var/spool/MIMEDefang instead
	of /var/run.  YOU MAY HAVE TO ADJUST YOUR SENDMAIL CONFIGURATION!

2002-05-24  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in: Added support for F-Risk F-Prot,
	courtesy of Javier Kohan.

2002-05-23  David F. Skoll  <dfs@roaringpenguin.com>

	* Version 2.12 RELEASED

2002-05-23  David F. Skoll  <dfs@roaringpenguin.com>

	* suggested-minimum-filter-for-windows-clients: Moved SpamAssassin
	check to filter_end -- cleans up the code a bit.  Also reject
	filenames with curly brackets in them to prevent CLSID attacks.

	* mimedefang, mimedefang-multiplexor: Refuse to run suid or sgid.

	* mimedefang.pl.in: Do not convert "multipart/alternative" to
	"multipart/mixed."

2002-05-22  David F. Skoll  <dfs@roaringpenguin.com>

	* We now have a Sparc/Solaris machine for development!  Thanks
	to Ben Kadish.

	* Fixed problem with not locating "libsm.a" on Solaris (and
	possibly other systems.)

2002-05-21  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in: Added support for Trend Micro "vscan"
	virus scanner, courtesy of Stephane Lentz.  Stephane considers
	the code alpha-quality...

	* mimedefang.pl.in: Use MIME::Word's "decode_mimewords" function
	instead of MIME::WordDecoder's "unmime".  The latter would sometimes
	refuse to accept certain character sets.  decode_mimewords is
	potentially lossy, but should be safer than unmime.

2002-05-18  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.c: Did away with need for getpwnam_r; we do one
	password lookup and save results instead of doing a lookup in each
	thread.

2002-05-17  David F. Skoll  <dfs@roaringpenguin.com>

	* drop_privs.c: Add thread-safe workaround for systems which
	lack the getpwnam_r function.

2002-05-17  David F. Skoll  <dfs@roaringpenguin.com>

	* drop_privs.c: Use reentrant getpwnam_r routine instead of
	non-thread-safe getpwnam.

	* mimedefang.pl.in: Added $AddWarningsInline variable to add
	warnings right in the e-mail message text itself instead of
	adding an additional MIME part.

	* mimedefang-filter.5: Fixed typo (changed append_add_part to
	action_add_part).

	* configure.in: Added --disable-check-perl-modules option to
	skip Perl module checks.  Do not use this option unless you
	know exactly what you're doing!!!

2002-05-15  David F. Skoll  <dfs@roaringpenguin.com>

	* Move default stats location to /var/log/mimedefang/stats to
	more easily accomodate -U option.

	* mimedefang.c: Added -U option to run as non-root user.

	* mimedefang-multiplexor.c: Added -U option to run as
	non-root user.

2002-05-14  Michael McLagan <Michael.McLagan@linux.org>

	* mimedefang.pl.in: Fixed RAV return code handling for non array
	requesting calls.

2002-05-14  David F. Skoll  <dfs@roaringpenguin.com>

	* examples/suggested-minimum-filter-for-windows-clients: Added
	to list of banned extensions (thanks to Mickey Hill.)

 2002-05-14  Michael McLagan <Michael.McLagan@linux.org>

	* mimedefang.pl.in: Added spam_assassin_object and spam_assassin_mail

	* mimedefang-filter.5: Added spam_assassin _object and _mail
	descriptions and cleaned up language.

	* configure.in: Require SpamAssassin version >= 1.6.  Removed the
	SAVER check as it's not used anywhere.

2002-05-13  Michael McLagan <Michael.McLagan@linux.org>

	* mimedefang.pl.in: Added Reliable AntiVirus

	* mimedefang-filter.5: Added Reliable AntiVirus

	* configure.in: Added Reliable AntiVirus

2002-05-13  David F. Skoll  <dfs@roaringpenguin.com>

	* Version 2.11 RELEASED

2002-05-13  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in (spam_assassin_status): Keep a single
	SpamAssassin object persistent rather than creating a new
	one for each spam check.

	* Fixed stupid typos in mimedefang.pl.in and configure.in

2002-05-10  David F. Skoll  <dfs@roaringpenguin.com>

	* Version 2.10 RELEASED

2002-05-10  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang-multiplexor.c (activateSlave): Added "-W" option
	to strictly limit rate of slave activation.

2002-05-09  Michael McLagan <Michael.McLagan@linux.org>

	* mimedefang.pl.in: Added action_add_part

	* mimedefang-filter.5: Added description for action_add_part

	* examples/suggested-minimum-filter-for-windows-clients:
	Modified to use new function action_add_part

	* contrib/README: Added in linuxorg directory entry

	* contrib/linuxorg/README: A description of the files and how to
	install them.

	* contrib/linuxorg/filter: Included the filter file written for
	Linux Online & Linux Headquarters

	* contrib/linuxorg/spam-trusted-hosts: This lists hosts that we
	trust to insert proper SpamAssassin headers per the filter above.
	This file is a sample and it's empty.  NOTE from dfs:  Because
	this relies on message headers, it is possible to spoof, although
	real-world spammers would not likely do so.

	* contrib/linuxorg/spam-deliver: A collection of regex expressions
	which indicate email addresses to which SPAM mail is to be delivered
	to always, regardless of SpamAssassin's estimation of whether or not
	it is SPAM.  The sample file excludes abuse@ and postmaster@ from
	having their SPAM discarded

	* Makefile.in:	Modified install-redhat to create /etc/mail/mimedefang
	directory

	* Makefile.in: Modified to create mimedefang.spec from a .in file
	which will allow building BETA releases in addition to production ones.

	* redhat/mimedefang-spec.in: Created this file to use with above
	makefile change.  It's a copy of the old mimedefang.spec file which
	was in this directory.

	* mimedefang.pl.in: Added $config_file optional
	parameter to spam_assassin_* calls.

	* mimedefang-filter.5: Added optional $config_file to
	spam_assassin_* calls.  Added $OpenAVHost to list of global variables.

	* configure.in: dropped search for wvHtml since it's not used anymore

2002-05-09  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in: Added append_text_boilerplate and
	append_html_boilerplate functions.  These actually add boilerplate
	text in a semi-sensible way that should work even with HTML
	mail.

2002-05-08  David F. Skoll  <dfs@roaringpenguin.com>

	* Added "-F" option to mimedefang and mimedefang-multiplexor
	to specify filter rules files.

2002-05-07  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in (serverloop): Do not add a level of nesting
	when we rebuild messages.

	* mimedefang.c (eom): Set MIME-Version if we're mucking with MIME
	headers.

	* examples/suggested-minimum-filter-for-windows-clients:
	Add SpamAssassin report as a separate text/plain type rather
	than appending boilerplate text to message.

	* mimedefang.pl.in: Added global variables $AdminName, $AdminAddress,
	$NotifySenderSubject, $NotifyAdministratorSubject, $QuarantineSubject,
	$NotifyNoPreamble, $SALocalTestsOnly as suggested by Michael McLagan.

	* mimedefang.pl.in: Added new %Features keys
	Virus:FileScan, Virus:OpenAV, Virus:NAI, Virus:HBEDV, Virus:SOPHOS,
	Virus:AVP and Virus:FSAV as suggested by Michael McLagan.

	* mimedefang.pl.in: Added prototypes to almost all Perl routines as
	suggested by Michael McLagan.

	* Added support for F-Secure "fsav" anti-virus as suggested by
	David Green.

2002-05-06  David F. Skoll  <dfs@roaringpenguin.com>

	* redhat/mimdefang-sysconfig: Added MX_SLAVE_RATE variable.

	* mimedefang.pl.in: Fixed action_change_header to accept
	multiline headers.

	* mimedefang-multiplexor.c: Added "-w" option.  The multiplexor
	now waits a small period of time between slave activations rather
	than activating them all at once.  This should reduce the load
	on the server if you run many slaves.

	* examples/suggested-minimum-filter-for-windows-clients: Do
	not call SpamAssassin for messages larger than 256kB.

	* event_tcp.c: Fixed syntax error if socklen_t not defined.

	* configure.in: Better detection of socklen_t typedef.

	* mimedefang-filter.5: Documented $DaemonName, $DaemonAddress
	and defang_warning.

	* examples/suggested-minimum-filter-for-windows-clients (filter):
	Call anomy_clean_html if Anomy::HTMLCleaner is installed.

	* mimedefang.pl.in (action_quarantine_entire_message): Added optional
	$msg argument which gets added to warning list and saved in
	quarantine dir.

	* mimedefang-filter.5: Documented $SuspiciousCharsInBody

	* mimedefang.pl.in: Fixed warnings about using uninitialized
	variables in sender_ok and relay_ok

	* mimedefang.pl.in: Renamed internal "sendmail" routine to
	"send_mail".

2002-05-03  David F. Skoll  <dfs@roaringpenguin.com>

	* Version 2.9 RELEASED

2002-05-03  David F. Skoll  <dfs@roaringpenguin.com>

	* Filters can check for presence of SpamAssassin at run-time
	using the %Features hash; therefore, the suggested filter
	has been merged with the SpamAssassin-enabled filter and
	we distribute only one filter.

	* mimedefang.c: Made default value for "-n" option 10.

	* Merged patches from Michael McLagan for packaging.

2002-05-02  David F. Skoll  <dfs@roaringpenguin.com>

	* Improved scripts for Red Hat.  The "mimedefang" init script
	is separated out from "sendmail", and settings are stored in
	/etc/sysconfig/mimedefang.

	* Added redhat/ directory for building RPMs.

	* Moved word-to-html to contrib/ dir; do not install it by
	default.

	* mimedefang.pl.in (message_contains_virus_filescan): Minor cleanups.

	* Updated documentation.

	* mimedefang.c (main): Added '-P' option to write mimedefang's
	process-ID to a file.

	* mimedefang.pl.in: SpamAssassin, Anomy::HTMLCleaner and File::Scan
	are detected at run-time, so if you install or remove those Perl
	modules, you do not need to rerun ./configure and install a new
	version of mimedefang.pl.

2002-05-01  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in: Use the first found of:
	      /etc/mail/spamassassin/sa-mimedefang.cf
	      /etc/mail/spamassassin/local.cf
	      /etc/mail/spamassassin.cf
	as the SpamAssassin preferences file.

	* Install our SpamAssassin preferences file as:
	      /etc/mail/spamassassin/sa-mimedefang.cf

	* Updated examples/filter-using-spam-assassin.

	* Makefile.in: Added MANDIR and LIBDIR macros; added RPM_INSTALL_ROOT
	in front of install: targets to ease building of RPM's.  Thanks
	to Michael McLagan for suggesting this.

2002-04-29  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang-multiplexor.c (handleSlaveReceivedAnswer): Distinguish
	between a timeout and the premature death of a slave.

	* Makefile.in (MANIFEST): Added contrib/ directory.

	* mimedefang.c (cleanup): Do not remove spool directories if
	"-k" command-line option given and the filter fails.

	* configure.in: Check for socklen_t at configure time.

	* mimedefang-multiplexor.c (handlePipe): Removed possibility
	of an extremely unlikely race condition.

2002-04-26  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in (rebuild_entity): Added support for
	filter_multipart to examine the headers of parts with
	sub-parts.

	(interpret_avp_code): Updated intepretation of AVP return
	codes.

2002-04-26  David F. Skoll  <dfs@roaringpenguin.com>

	* Version 2.8 RELEASED

2002-04-26  David F. Skoll  <dfs@roaringpenguin.com>

	* configure.in: Added detection of unpatched MIME-Tools;
	moved virus-scanner status display to the end.

	* mimedefang.pl.in (message_rejected): Made message_rejected
	return true for action_bounce, action_tempfail AND action_discard.

	* examples/suggested-minimum-filter-for-windows-clients:
	Use re_match instead of re_match_ext to mitigate problems with
	malformed MIME.

2002-04-18  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang-filter.5: Added warning about unintended consequences
	of using action_bounce().

	* Added "-p" option to mimedefang-multiplexor to write process-ID
	to a file.

	* If you send mimedefang-multiplexor a SIGINT signal, it
	terminates idle slaves and forces busy slaves to terminate as
	soon as they become idle.  This is useful for forcing a reread
	of the filter rule file without stopping and restarting
	Sendmail.

2002-04-12  David F. Skoll  <dfs@roaringpenguin.com>

	* Version 2.7 RELEASED

2002-04-12  David F. Skoll  <dfs@roaringpenguin.com>

	* README: Updated documentation.

	* mimedefang-filter.5: Clarified documentation on action_rebuild().

	* mimedefang.pl.in: Added support for File::Scan, thanks to
	Nels Lindquist.

2002-04-09  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.c (MXSenderOK): Added calls to filter_sender to
	reject messages from blacklisted senders early.

	* INCOMPATIBILITY: You must now supply the "-r" flag to mimedefang
	if you want filter_relay to be called!  Most sites do not use
	filter_relay, so it's a waste of resources to call it unnecessarily.

2002-04-02  David F. Skoll  <dfs@roaringpenguin.com>

	* configure.in: Added "--with-quarantinedir" configure option.
	This lets you keep quarantined files in a separate directory
	from the spool directory.  You can then keep the main spool
	directory on a RAM disk for better performance.

2002-03-25  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in (message_rejected): Added message_rejected function
	to test if something earlier on has bounced or tempfailed message.

2002-03-15  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in (action_notify_sender): Do nothing if
	$Sender is "<>".  Thanks to Jason Englander.

2002-03-03  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in (signal_complete): Do not notify sender if
	sender is '<>'

	* Correct typo in action array to make logging of actions accurate.
	Thanks to Martin Bene.

	* Redirect Sendmail's stdout to /dev/null when sending mail.

2002-02-26  David F. Skoll  <dfs@roaringpenguin.com>

	* Version 2.6 RELEASED

2002-02-26  David F. Skoll  <dfs@roaringpenguin.com>

	* examples/suggested-minimum-filter-for-windows-clients: Commented
	out anomy_clean_html so filter works out-of-the-box on all
	systems.

2002-02-25  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in (rebuild_entity): Work around bug in MIME::Tools
	which fails to rebuild message of type "message/rfc822"

	* Added support for filter_relay function which lets you
	reject connections early on in the SMTP transaction in multiplex
	mode.  Still works in non-multiplex mode, but not early on in the
	SMTP dialog.

2002-02-22  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in (action_tempfail): Added $msg parameter
	which lets you customize the tempfail message.

2002-02-21  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.c: Relax test for "suspicious" characters to
	worry only about embedded <CR> and <NUL> characters.

	* Increased SMALLBUF from 256 to 2048 to handle long headers
	better.

2002-02-20  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.c (body): Added checks for suspicious characters
	in e-mail body.

	* mimedefang.pl.in: Added $SuspiciousCharsInBody variable.

	* mimedefang.pl.in (spam_assassin_status()): Fixed all the
	spam_assassin functions to work with SpamAssasssin 2.x as well
	as 1.5.

	(time_str): Made generated quarantine directory names use
	dots instead of colons in time -- this makes them more
	Samba-friendly.

	* Deprecated action_rebuild.  It causes problems.

2002-02-19  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in (rebuild_entity): Reworked logic to avoid
	undefined ->bodyhandle calls.

	* More examples and a README in the examples/ directory.

	* mimedefang.pl.in (spam_assassin_check()): Made it work
	with SpamAssassin 2.0.1.  Thanks to Mark Roedel.

	* (action_add_header): Correctly wrap headers whose values
	contain embedded newlines.

2002-02-18  David F. Skoll  <dfs@roaringpenguin.com>

	* Version 2.5 RELEASED

	* mimedefang-multiplexor.c (statsLog): Added "-T" option
	to log statistics using syslog.

2002-02-17  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.c (safeWriteHeader): Set a flag if suspicious
	characters are found in header; communicate that to mimedefang.pl

	* mimedefang.pl.in: Added action_rebuild and $SuspiciousCharsInHeaders

	* Remove examples/high-risk-filter and examples/low-risk-filter

2002-02-15  David F. Skoll  <dfs@roaringpenguin.com>

	Version 2.4 RELEASED

2002-02-15  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.c (safeWriteHeader): Added workaround for MIME-parsing
	bug in Microsoft Outlook.

2002-01-29  David F. Skoll  <dfs@roaringpenguin.com>

	* Reworked the internals of event.c and event_tcp.c to handle
	timeouts more efficiently.

2002-01-26  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang-multiplexor.8: Updated synopsis

2002-01-25  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang-multiplexor.c: Add "-t" and "-u" options to log
	statistical information.

	* mimedefang.pl.in (action_bounce): Add newline to end of
	message.

2002-01-18  David F. Skoll  <dfs@roaringpenguin.com>

	* Version 2.3 RELEASED

2002-01-18  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in: Copy any headers added with action_add_header
	to NEWHEADERS in the quarantine directory if message is quarantined.

2002-01-17  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang-multiplexor.c (handleSlaveStderr): Log Perl stderr
	directly to syslog, so we catch error messages even in idle slaves.
	Anything you print to STDERR in Perl gets sent to syslog.

	* Much more aggressive logging of errors.

2002-01-16  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.c (envfrom): Apparently, mkdir(2) on Solaris can
	fail with EBADF, so we retry in that case.  Thanks to
	Nathan Schimke for discovering this.

2002-01-15  David F. Skoll  <dfs@roaringpenguin.com>

	* Added action_tempfail to force an SMTP "try again" code.

	* Got rid of generic message_contains_virus() and
	entity_contains_virus() functions.  You have to use scanner-specific
	functions now.

	* The virus-scanner functions attempt to interpret scanner exit
	codes and suggest courses of action (tempfail, virus, etc.)

	* Added action_quarantine_entire_message()

2002-01-09  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang-multiplexor.c: Better error-condition handling.

2002-01-08  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in (spam_assassin_is_spam()): Added call
	to finish() method on Spam Assassin status.

	* Added spam_assassin_check and spam_assassin_status, courtesy
	of Jeff Heinen.

	* mimedefang.pl.in (anomy_clean_html): Added support for the Anomy
	HTML Cleaner (see http://mailtools.anomy.net/)

2002-01-07  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang-multiplexor.c (handleSlaveStderr): Fixed bug
	in which errors would be directed to /STDERR instead of
	/var/spool/MIMEDefang/mdefang-xxxx/STDERR.  DOH!

2002-01-03  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in (action_external_filter): Made sure to set
	$Changed if external filter produces output.

2001-12-21  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in: added message_contains_virus_openantivirus
	and entity_contains_virus_openantivirus

	* Integrated MIMEDefang with SpamAssassin.  See
	http://spamassassin.taint.org/ for details on SpamAssassin.

2001-12-19  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in: Added $MsgID and $QueueID variables.

	* mimedefang.c (envfrom): Put sendmail queue identifier in
	./QUEUEID

2001-12-05  David F. Skoll  <dfs@roaringpenguin.com>

	* Version 2.2 RELEASED

2001-12-05  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in: Added action_notify_administrator.

	* mimedefang-multiplexor.8: Clarified effect of "-f" flag.

2001-12-04  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.c (eom): If filter fails for any reason, TEMPFAIL
	the mail rather than adding X-MIMEDefang-Warning: header.

2001-12-03  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.c, mimedefang-multiplexor.c: Error messages from
	Perl process are now logged to syslog at DEBUG level.

2001-11-30  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang-multiplexor.c (putOnFreeList): Made logging somewhat
	less verbose.

	* mimedefang.pl.in: Added add_recipient and del_recipient functions.

	* mimedefang.c: Added code to add/delete envelope recipients.

2001-11-29  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in: Added stream_by_domain.

	* mimedefang.pl.in: Added resend_message subroutine.

	* examples/stream-by-domain-filter: Made an example showing how
	to "stream" messages by domain.  This lets you have (for example)
	different rules for "foo@abc.com" than "foo@def.com" if you host
	virtual domains.

	* mimedefang.pl.in (action_quarantine): Made name of quarantine
	directory look like this: qdir-YYYY-MM-DD-HH:mm:ss-count.  For
	example: qdir-2001-11-29-09:14:36-001

2001-11-28  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in: added action_replace_with_url

	* mimedefang.pl.in: more comments

	* mimedefang.c: Do not add X-Scanned-By: header if an identical
	header to what would be added exists already.

	* mimedefang.c: Working directory based on time() instead of
	pthread_self().

2001-10-26  David F. Skoll  <dfs@roaringpenguin.com>

	* Version 2.1 RELEASED

2001-10-26  David F. Skoll  <dfs@roaringpenguin.com>

	* Makefile.in: Install suggested-minimum-filter-for-windows-clients
	as mimedefang-filter.example

	* mimedefang-multiplexor.c: Handle SIGTERM and kill slaves before
	exiting.

	* mimedefang-multiplexor.c: Change default busy timeout to 30 from 300

	* examples/redhat-sendmail-init-script-with-multiplexor: Fix
	minor problems.

	* examples/redhat-sendmail-init-script: Fix minor problems.

2001-10-24  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang-multiplexor.c: More debug logging; put slave on
	free list if a busy slave dies (for whatever reason).

	* mimedefang-multiplexor.c: Scrupulous error checking of
	return codes from system calls.

2001-10-22  David F. Skoll  <dfs@roaringpenguin.com>

	* Version 2.0 RELEASED

2001-10-22  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.c: Added usage() function.

	* Added support for "-f" option to specify an alternate filter
	program.

	* Updated man pages.

2001-10-18  David F. Skoll  <dfs@roaringpenguin.com>

	* Version 2.0 Beta 2:
	Support for Sendmail 8.12
	Support for multiplexor to re-use long-lived Perl processes.

2001-07-19  David F. Skoll  <dfs@roaringpenguin.com>

	* Version 1.3 RELEASED

2001-07-19  David F. Skoll  <dfs@roaringpenguin.com>

	* configure.in: Added checks for libsm and libldap, courtesy
	of Nels Lindquist

2001-07-05  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.c: Added "-d" flag to mimedefang which causes it
	not to delete spool files.  DO NOT USE THIS FLAG ON A PRODUCTION
	MAIL SERVER.

2001-07-02  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in: Added append_boilerplate function to append
	text to first text/plain or text/html part encountered.

	* Use mime_type method instead of mime_attr("Content-Type")

2001-06-30  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.c (header): Removed embedded newlines and carriage
	returns so all headers in the HEADERS file are guaranteed to
	exist on a single line.  (Makes parsing headers from Perl easier.)
	(header): Earlier closing of file descriptors to conserve them.

2001-06-19  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in: Added the "-f filter" option and "-test"
	feature.

	* mimedefang.c: Complete restructuring to avoid memory allocation
	problems first noticed on Solaris.

2001-06-04  David F. Skoll  <dfs@roaringpenguin.com>

	* Version 1.2 RELEASED.

2001-06-04  David F. Skoll  <dfs@roaringpenguin.com>

	* configure.in: Added --disable-uvscan, --disable-sweep,
	--disable-AvpLinux and --disable-antivir to disable use
	of virus scanners.  By default, MIMEDefang uses every
	virus scanner it can find on your system.

	* mimedefang.pl.in: Changed arguments to virus-scanners to make
	them less verbose (Thanks to Nels Lindquist)

2001-05-24  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in: Added generic "message_contains_virus" and
	"entity_contains_virus" functions which use any supported virus
	scanner.

	* configure.in: Added checks for Sophos, NAI, Kaspersky and
	H+BEDV anti-virus scanners.

	* mimedefang.c: Close descriptors after fork() to reduce
	unnecessary file descriptor usage.

2001-05-07  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.c, Makefile.in, configure.in:  Detect -pthread
	option to GCC; fix a whole bunch of compilation warnings.
	Eliminate dependency on GNU "make".

2001-05-03  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in: Added relay_is_blacklisted function.

	* mimedefang.c, mimedefang.pl.in: Added mechanism for adding
	headers from the Perl filter.

	* More error checking and syslogging of failures.

	* Notification e-mails are sent using a safer way to execute
	sendmail -- no shell is involved in the exec call.

2001-03-14  David F. Skoll  <dfs@roaringpenguin.com>

	* Version 1.0 released.

2001-03-12  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.c: Added "-n" option to limit number of concurrent
	Perl processes.  Also added calls to syslog.

2001-03-08  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.c: Made mfconnect tolerate NULL hostname and sa.

	* mimedefang.pl.in: Made quarantine notification messages include
	relay hostname and address, message headers and quarantined part
	headers.

2001-03-05  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in: Incorporated patch from Nels Lindquist which
	adds support for NAI anti-virus and checks for sfio when linking
	against libmilter.

	* mimdefang.c: Re-worked code so that relay machine name and
	address are available.

2001-01-22  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in (re_match_ext): Fixed re_match_ext so it doesn't
	complain about file names with no extensions.

2001-01-08  David F. Skoll  <dfs@roaringpenguin.com>
	* mimedefang.pl.in: Now requires MIME::Tools version 5.410

	* mimedefang.pl.in: Added $DaemonName to set the "full name" of
	mail from the daemon.

	* mimedefang.pl.in: Warning messages are appended to quarantine
	reports.

	* mimedefang.pl.in: Fixed bug in message_contains_virus_hbedv
	subroutine.

2001-01-02  David F. Skoll  <dfs@roaringpenguin.com>
	* mimedefang.pl.in (main): Explicitly set output_to_core to 0
	so we don't rely on MIME::tools defaults.

2000-12-18  David F. Skoll  <dfs@roaringpenguin.com> (0.7 RELEASE)
	* all:  Added test suite and test filter.

	* configure.in: Made spool directory for processing mail
	configurable (./configure --with-spooldir=DIR).  In particular,
	we NO LONGER use /tmp by default; it's /var/spool/MIMEDefang.

	* mimedefang.pl.in: Added action_discard() action.

	* mimedefang.c (eom): Added check for DISCARD file to support
	action_discard in filter.

2000-12-11  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in: Re-worked the way we handle
	Stupidity{"NoMultipleInlines"} for Microsoft Outlook.  Thanks
	to Robert A. Levene for all of his testing and his patience.

2000-12-07  David F. Skoll  <dfs@roaringpenguin.com>
	* mimedefang.c: Remove potentially troublesome MIME headers when
	converting a single-part message to a multi-part message.
	* Makefile.in: Added distro-beta target.

2000-12-06  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in (re_match): Made the re_match functions
	case-insensitive.

2000-11-28  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.c: Added ability to change headers so that
	single-part messages are correctly handled rather than
	being mangled.

2000-11-20  David F. Skoll  <dfs@roaringpenguin.com>

	* configure.in: Added checks for -lnsl, -lresolv, -lsocket

2000-11-11  David F. Skoll  <dfs@roaringpenguin.com>

	* configure.in: Added check for getopt.h; added config.h.in
	* mimedefang.pl.in: Added calls to filter_begin and filter_end;
	added support for H+BEDV AntiVir virus scanner.

2000-10-29  David F. Skoll  <dfs@roaringpenguin.com>

	* configure.in: Added /usr/lib/libmilter to search path for
	libmilter.a (thanks to Jrgen Hgg).

2000-10-27  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in: Made Perl script send mail using "sendmail"
	instead of "mail" so we can set the originating address to
	whatever we like.

	* mimedefang.pl.in: Added action_notify_sender to alert sender
	to the fact that their e-mail message has been modified.

2000-10-25  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in: Changed "bounce" action to continue processing
	remaining parts of the message and only bounce at the end.

2000-07-10  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang-filter.5: Documented re_match and re_match_ext
	functions.

	* mimedefang.pl.in: Added re_match and re_match_ext functions
	to make filters more foolproof.

	* mimedefang.pl.in: Added "takeStabAtFilename" to make filter
	more reliable.

2000-07-03  David F. Skoll  <dfs@roaringpenguin.com>

	* README: Added note about increasing milter timeout.

2000-06-19  David F. Skoll  <dfs@roaringpenguin.com>

	* Renamed "MIMESweeper" to "MIMEDefanger" so as to avoid
	conflict with a trademark.

2000-06-20  David F. Skoll  <dfs@roaringpenguin.com>

	* mimedefang.pl.in: Made "quarantine" action send only one
	notification per message, rather than one notification per
	quarantined part.

	Made "quarantine" action save more information to quarantine
	directory.  Each quarantined message is in its own subdirectory,
	and the subdirectory contains message headers, sender, recipients
	and header and body of each quarantined part.
