2009-07-11  Alban Deniz  <adeniz@skidmark.localdomain>

	* Makefile.am (EXTRA_DIST): Added postfix-multi-message.patch.

	* INSTALL: Updated with workaround for the postfix multi-message
	bug ("unexpected filter response" when quarantining messages and
	when there is more than one message sent over one SMTP
	connection).

2009-06-30  Alban Deniz  <adeniz@skidmark.localdomain>

	* Scripts/snf-milter.openbsd: Removed "$" characters from
	debug/production_mode file.

2009-06-18  Alban Deniz  <adeniz@skidmark.localdomain>

	* INSTALL (Ubuntu): Added specific directions for setting up to
	start SNFServer automatically during OS boot.

	* Scripts/snf-milter.ubuntu: Added strace to debug output.

2009-06-15  Alban Deniz  <adeniz@skidmark.localdomain>

	* Scripts/snf-milter.freebsd: Implement production mode and debug
	mode.

	* config_files/Makefile.am (EXTRA_DIST): Removed
	snf-milter.conf.sample.in.

	* Scripts/snf-milter.redhat: Implement production mode and debug
	mode.

	* Scripts/snf-milter.suse: Implement production mode and debug
	mode.

2009-06-14  Alban Deniz  <adeniz@skidmark.localdomain>

	* Scripts/snf-milter.ubuntu: Added "production-mode" and
	"debug-mode" to the usage message.  Corrected production-mode
	message.

2009-06-11  Alban Deniz  <adeniz@skidmark.localdomain>

	* Scripts/snf-milter.ubuntu: Implement debug mode and production
	mode.
	
	* INSTALL: Added instructions to create /var/log/snf-mitler.
	Updated section on debugging (snf-milter debug-mode, etc).

	* config_files/Makefile.am (CONFDATA): Remove
	snf-milter.conf.sample.in from the distribution.

2009-06-09  Alban Deniz  <adeniz@skidmark.localdomain>

	* Scripts/snf-milter.openbsd: Same modifications as
	snf-milter.ubuntu.

	* Scripts/snf-milter.freebsd: Same modifications as
	snf-milter.ubuntu.

	* Scripts/snf-milter.suse: Same modifications as
	snf-milter.ubuntu.

2009-06-08  Alban Deniz  <adeniz@skidmark.localdomain>

	* Scripts/snf-milter.redhat: Same modifications as
	snf-milter.ubuntu.

	* Scripts/snf-milter.ubuntu: Read startup options from
	snf-milter.conf (default: /etc/snf-milter/snf-milter.conf).  For
	debug mode, cd to share/snf-milter, enable core dumps, and
	redirect output as specified in snf-milter.conf.

	* config_files/Makefile.am: Added snf-milter.conf.sample file
	(the config file for snf-milter statup script) to be installed in same
	directory as SNFMilter.xml.sample.

	* Scripts/Makefile.am (snf-milter): Translate SYSCONFDIR (to, for
	example, "/etc") and PACKAGE_NAME when generating snf-milter
	startup script.

2009-06-06  Alban Deniz  <adeniz@skidmark.localdomain>

	* INSTALL: Added info about SNFDebugMilter.

	* DEVELOPER_NOTES: Removed info about signals.

2009-05-24  Alban Deniz  <adeniz@skidmark.localdomain>

	* configure.ac: Updated for passing command-line parameters to the
	compiler (e.g. make OTHER_CXXFLAGS='-Wall').

	* DEVELOPER_NOTES (building): Updated for passing command-line
	parameters to the compiler (e.g. make OTHER_CXXFLAGS='-Wall').

	* Tests/TestMailHeaders.cpp (ErrorExit): Included cstdlib, and
	added std namespace spec to exit().

2009-02-06  Alban Deniz  <adeniz@skidmark.localdomain>

	* SNFMulti/SNFMulti.cpp: Replaced with file from Pete, Jan 29,
	2009.

	* DEVELOPER_NOTES: Update list of required software (curl replaces
	gzip and wget).

2009-02-02  Alban Deniz  <adeniz@skidmark.localdomain>

	* cleanForDist: Created file to clean distribution for makeing a
	developer tarball.

	* Packages/Ubuntu/debian/control: Modified to require curl instead
	of wget and gzip.

	* Packages/OpenBSD/snf-milter/Makefile: Modified to require curl
	instead of wget.

	* Packages/FreeBSD/snf-milter/Makefile: Modified to require curl
	instead of wget.

	* snf-milter.spec.in: Modified to require curl instead of wget and
	gzip.

	* configure.ac: Modified to require curl instead of wget and gzip.

	* Scripts/getRulebase.in: Modified to use curl instead of wget and
	gzip.

2009-01-31  Alban Deniz  <adeniz@skidmark.localdomain>

	* SNFMilter/main.cpp (main): Replaced PACKAGE with SNFMilter.
	Added PACKAGE_VERSION to SNF_MILTER_VERSION.

2009-01-24  Alban Deniz  <adeniz@skidmark.localdomain>

	* Scripts/snf-milter.ubuntu (DESC): Changed to "SNFMilter email
	filter".

	* config_files/SNFMilter.xml.sample.in: Replace SNFMilter
	directory name with PACKAGE_NAME.  The Makefile replaces
	PACKAGE_NAME with the actual name of the package.

	* config_files/Makefile.am (SNFMilter.xml.sample): Replace
	PACKAGE_NAME in SNFMilter.xml with package name.

	* configure.ac: Changed package name to snf-milter to be
	compatible with the majority of Linux packages.

	* Scripts/snf-milter.freebsd: Renamed from
	snfMilterControl.freebsd, and changed snfMilter to snfmilter.
	Motivation: Use all lower case in file name and service name to be
	consistent with Fedora RPM packaging requirements.  Those require
	the script name be all lower case.  Also renamed and modified the
	scripts for the other OSes.

2009-01-23  Alban Deniz  <adeniz@skidmark.localdomain>

	* Makefile.am (EXTRA_DIST): Addec SNFMilter.spec.in.

	* SNFMilter.spec.in: Created file.

2009-01-17  Alban Deniz  <adeniz@skidmark.localdomain>

	* INSTALL: Updated for installation in all OSes, integration with
	postfix for all OSes, and integration with sendmail for all OSes.

	* SNFClient/main.cpp: Cast c string constants to (char *) to avoid
	warnings about deprecated conversions.

	* SNFMilter/SNFMilter.cpp: Cast c string constants to (char *) to
	avoid warnings about deprecated conversions.

2009-01-16  Alban Deniz  <adeniz@skidmark.localdomain>

	* Scripts/snfMilterControl.openbsd: Added $dir and corrected
	$configFile.

	* Scripts/snfMilterControl.freebsd: Converted from script for
	SNFServer.

2009-01-15  Alban Deniz  <adeniz@skidmark.localdomain>

	* DEVELOPER_NOTES: Renamed from RELEASE_NOTES.BRL.

	* SNFMilter/SNFMilter.cpp (SNFMilterEngine::readConfiguration):
	Read <nonzero> element.
	(SNFMilterEngine::scanMessage): Update to return NonZeroAction as
	appropriate.

	* SNFMilter/SNFMilter.hpp (class SNFMilterEngine): Added
	SNFMilterEngine::NonZeroAction.

2009-01-14  Alban Deniz  <adeniz@skidmark.localdomain>

	* SNFMilter/SNFMilter.cpp (SNFMilterEngine::SNFMilterEngine):
	Removed initialization of ResultCodesCount (it's initialized by
	readConfiguration().

	* SNFMilter/SNFMilter.hpp: Added NoAction and NoActionMNemonic.

	* SNFMilter/SNFMilter.cpp (SNFMilterEngine::readConfiguration):
	Added .Mnemonic() to action attribute of <result> element.  This
	reads the action values from the configuration file.

2009-01-13  Alban Deniz  <adeniz@skidmark.localdomain>

	* SNFMilter/SNFMilter.cpp: Output debug message when quarantining.
	(SNFMilterEngine::scanIP): Throw exception if myEngine is 0.
	(SNFMilterEngine::scanMessage): Throw exception if myEngine is 0.

2009-01-10  Alban Deniz  <adeniz@skidmark.localdomain>

	* SNFMilter/SNFMilter.cpp: Removed incorrect output of
	X-Headers to cout.

2009-01-08  Alban Deniz  <adeniz@skidmark.localdomain>

	* config_files/SNFMilter.xml.sample.in: Changed <truncate
	action='Discard'/> to <truncate action='Reject'/>.  This causes
	connections from an IP which fail the IP scan to be rejected.

2009-01-07  Alban Deniz  <adeniz@orkey.localdomain>

	* INSTALL: Upgraded to take into account installation of OS
	scripts in the final location.

2009-01-06  Alban Deniz  <adeniz@orkey.localdomain>

	* Tests/Makefile.am: Added junkmsg.txt and cleanmsg.txt to the
	distribution.

	* Scripts/Makefile.am: Adapted SNFServer/Scripts/Makefile.am.

	* SNFClient/main.cpp: Use PACKAGE_VERSION (defined in configur.ac)
	in VERSION_INFO.

	* configure.ac: Create config.h in top-level directory rather than
	SNFMilter.

	* SNFMilter/Makefile.am: Moved code for SNFMilter.xml,
	identity.xml, and GBUdbIgnorList to config_files/Makefile.am.

	* Makefile.am: Split SNF_Service into CodeDweller and SNFMulti.

2008-12-03  Alban Deniz  <adeniz@skidmark.localdomain>

	* RELEASE_NOTES.BRL (SNFMilter): Updated for signal handling.

2008-12-02  Alban Deniz  <adeniz@skidmark.localdomain>

	* SNFMilter/main.cpp: Added thread to catch SIGTERM.

	* SNFMilter/SNFMilter.hpp: Implemented
	SNFMilterContextPool::allUnused().

	* SNFMilter/SNFMilter.cpp (runLibMilter): On return from
	smfi_main(), wait for all contexts to become free before
	returning.
	(SNFMilterContextPool::allUnused): Implemented method.

	* Scripts/snfMilterControl.redhat (dir): Upgraded for SNFMilter.

	* SNFMilter/main.cpp (main): Add ShutdownWatcher to process XCI
	shutdown command.  Responds with message with code 1.

2008-11-24  Alban Deniz  <adeniz@skidmark.localdomain>

	* Tests/TestProcedures/TestAbort: Updated name of client.

	* SNFMilter/SNFMilter.cpp: Conditionally compile mlfi_data(),
	mlfi_negotiate(), and mlfi_unknown().  Compiled if SMFI_VERSION >
	3.  Purpose is to be able to compile with older libmilter
	libraries that did not have these functions.

2008-11-21  Alban Deniz  <adeniz@skidmark.localdomain>

	* SNFMilter/SNFMilter.cpp (SNFMilterEngine::readConfiguration):
	Save the latest configuration.
	(logError): Pass parameters by reference.

	* Scripts/Makefile.am: Generate scripts from *.in files, adding
	the prefix.

	* SNFMilter/Makefile.am (SNFMilter.xml.sample): Generate from
	SNFMilter.xml.sample.in.

2008-11-20  Alban Deniz  <adeniz@skidmark.localdomain>

	* configure.ac: Corrected AM_CONDITIONAL macros, added
	-L/usr/lib/libmilter to LIBS (workaround for non-standard location
	of libmilter in Ubuntu).

2008-11-15  Alban Deniz  <adeniz@skidmark.localdomain>

	* SNFMilter/Makefile.am: Install sample configuration files in
	/usr/local/share/examples/SNFMilter.

	* Makefile.am (doc_DATA): Install README, INSTALL, etc in
	/usr/local/share/doc/snfmilter.

	* INSTALL: Document new destination directory
	(/usr/local/etc/SNFMilter) for configurationfiles (except
	GBUdbIgnoreList.txt), and change to original names for
	getRulebase, SNFClient, and SNF2Check.

	* SNFMilter/SNFMilter.hpp: Add PrependLocalReceivedHeader boolean
	flag.

	* SNFMilter/SNFMilter.cpp: Add PrependLocalReceivedHeader boolean
	flag.

	* Scripts/getRulebase.in: Rename programs to original name
	(SNF2Check, getSNFMilterRulebase -> getRulebase).

	* SNFMilter/Makefile.am: Install configuration files in
	@sysconfdir@/@PACKAGE_NAME@ (e.g. /usr/local/etc/SNFMilter).

2008-11-14  Alban Deniz  <adeniz@skidmark.localdomain>

	* configure.ac: Changed --with-os-type to --enable-os-type.  Added
	checks for wget and gzip.

	* SNFMilter/SNFMilter.hpp: Obtain communication socket info from
	XML file.

	* SNFMilter/SNFMilter.cpp: Obtain communication socket info from
	XML file.

2008-11-08  Alban Deniz  <adeniz@skidmark.localdomain>

	* configure.ac: Added '--with-os-type' input.

	* RELEASE_NOTES.BRL: Update to describe test procedure document,
	and OpenBSD package.

	* Tests/TestMailHeaders.cpp: Added tests for invalid input.

2008-11-07  Alban Deniz  <adeniz@skidmark.localdomain>

	* SNFMilter/SNFMilter.hpp: Remove name of group for named pipe.

	* SNFMilter/SNFMilter.cpp (runLibMilter): Removed code to change
	group of named pipe.

2008-11-06  Alban Deniz  <adeniz@skidmark.localdomain>

	* SNFMilter/SNFMilter.hpp: Changed MilterConnPath to
	/tmp/SNFMilterSocket.  Changed the group of pipe fo "snfmilter".

	* Makefile.am (SUBDIRS): Added Scripts.

	* SNFMilter/Makefile.am: Added SNFMilterClient, SNFMilter2Check,
	SNFMilter.xml.sample, and identity.xml.sample.

2008-11-05  Alban Deniz  <adeniz@skidmark.localdomain>

	* SNFMilter/Makefile.am (libexec_PROGRAMS): Changed SNFMilter
	destination from bin to libexec.

2008-11-04  Alban Deniz  <adeniz@skidmark.localdomain>

	* SNFMilter/Makefile.am (SNF_Service_hdr): Added snf_match.h to
	the distribution.

2008-10-25  root  <adeniz@skidmark.localdomain>

	* SNFMilter/SNFMilter.cpp: Added InfoCode when invoking logInfo().

2008-10-20  Alban Deniz  <adeniz@skidmark.localdomain>

	* SNFMilter/SNFMilter.cpp (runLibMilter): Create named pipe, and
	set group to GroupName, and permissions to 660.

	* SNFMilter/SNFMilter.hpp: Renamed milterConnSpec to milterConnPath.
	Added Groupname.

	* SNFMilter/SNFMilter.cpp ("C"): Obtain connection context only in
	smfi_negotiate().

2008-10-17  Alban Deniz  <adeniz@skidmark.localdomain>

	* SNFMilter/SNFMilter.cpp: Added X-header processing.  Added
	getContextFromCtx().  Replace LocalReceivedHeader data member with
	getLocalReceivedHeader() method.  Prepend local received header to
	the message to be scanned in mlfi_eom.

	* README.BRL (building): Added info about unit tests.

2008-10-12  Alban Deniz  <adeniz@skidmark.localdomain>

	* SNFMilter/SNFMilter.hpp: Completed the callbacks.

	* SNFMilter/SNFMilter.cpp: Completed the callbacks.

	* SNFMilter/main.cpp (main): Added DebugMode flag.  If argv[0]
	contains "Debug" or "debug", then debug mode is enabled.

2008-10-11  Alban Deniz  <adeniz@skidmark.localdomain>

	* SNFMilter/SNFMilter.hpp (class SNFMilterContextPool): Add
	logThisError and logThisInfo to SNFMilterContextPool.

2008-10-09  Alban Deniz  <adeniz@skidmark.localdomain>

	* configure.ac: Make default installation directory
	/var/spool/snfmilter.

	* SNFMilter/main.cpp (main): Use SNFMilterContexts instead of
	SNFMilterEngines.

	* SNFMilter/SNFMilter.hpp: Refactor SNFMilterEnginePool to be
	SNFMilterContextPool.  Implement SNFMilterContext.

	* SNFMilter/SNFMilter.cpp: Added DEBUG_SNFMILTER to send debug
	messages to cerr and log to mail.debug.  Refactor
	SNFMilterEnginePool to be SNFMilterContextPool.  Implement
	mlfi_connect and mlfi_close.

2008-10-03  Alban Deniz  <adeniz@skidmark.localdomain>

	* SNFMilter/SNFMilter.hpp: Added milterPipeName.

2008-10-02  Alban Deniz  <adeniz@skidmark.localdomain>

	* SNFMilter/main.cpp: Included config.h for version number.

	* README.BRL: Initial revision.

2013-10-12  Alban Deniz  <adeniz@skidmark.localdomain>

	* Makefile.am, configure.ac.in: Modified to not compile or build
	in source directories.

Copyright (C) 2009 ARM Research Labs, LLC.

See www.armresearch.com for the copyright terms.
