BlackMail Proxy
Change Log - dates are in yy/mm/dd format

Contributors at the end of this document.
98/10/05 Version 0.29
	o Added FAQ patch from Ken and some documentation tidying (JSM)
	o Released code as 0.29
98/10/01 (pre17)
	o Tiny patch increases size of mail_from and helo_from buffers to
	  reduce line too long causing segfault (KV)
98/07/21 (pre16)
	o SR noticed a couple of silly mistakes in to.c and from.c
	  I fixed them in a slightly different way.
98/06/05 (pre15)
	o SMTP timeout was not working correctly because the config file
	  was not being read early enough. This is believed to have caused
	  blackmail to hang and hog cpu. The misprinting of LOCHOST in
	   give_greeting is also fixed now the config is read earlier.
98/05/26
	o Optimised a couple of strlen() calls out of 'for' loops in util.c
	  speeding up has() and isInvalid() by about 50%.
	o removed the 'let jsm know' log message.
98/04/23 (pre14)
	o Changed size of recv_from[] in process() in data.c as it could
	  cause segfaults when it overflowed on very long wrapped lines.
	o Commented the *[< ][0-9]*@aol.com* in the sample blackmail.conf
	  as it can reject other valid addresses.
98/04/16 (pre13)
	o In the relevant filters we now checkAddressRejected before
	  we checkAddress to save DNS checking addresses we have already
	  decided should be rejected.
	o pre12 mod to mail.c broke MAIL FROM:<>. Now fixed I hope.
98/04/08 (pre12)
	o #includes were screwed for Solaris and SunOs (at least) so I
	  moved them all into blackmail.h for ease of maintenance and
	  hopefully got them in the right order.
	o Mods to mail.c and rcpt.c to pass on the address exactly as
	  supplied rather than forcing it into angle brackets.
98/03/19 (pre11)
	o 'Line too long' behaviour corrected for DEBUG2/PASSIVE (JSM)
	o Re-introduced patches for NeXT that got lost along the way (HD)
	o Actually implemented the PASSIVE_RELAY option (JSM)
	o tiny NeXT tweak in main.c (JSM)
98/02/26 (pre10)
	o email@[a.b.c.d] now accepted, although my smail still bounces it!
	o Removed the no longer used uidl.c
	o Tidied checkAddress and rcpt.c some more.
	o Re-used 'extracted' address rather than extracting it twice.
	o Implemented standard buffer sizes throughout code.
	o Added -o option to report compiled in options.
98/02/10 (pre9)
	o Implemented new email address extraction routine to more
	  accurately identify it.
	o Some streamlining of checkAddress().
	o VRFY command can be allowed by config option. (RFC1123 requirement)
	o Made an initial stab at README.performance
98/02/01 (pre8)
	o Fixed a mistake in data.c that wouldn't compile with FULL_HEADERS
	  set. (JSM)
	o Fixed a bug in from.c in the TO_FROM code that would reject
	  local to:=from: mail (JSM)
	o Re-wrote a section of data.c to handle wrapped header lines (JSM)
	o Don't RBL localhost addresses (JSM)
98/01/29  (pre7)
	o Ken Hollis retires from active support of Blackmail - thanks
	  for all of your work Ken.
	o Added PASSIVE_RELAY option, minor tweaks to documents and
	  some notes on SVR4 support (JSM)
98/01/23  (pre6)
	o Added experimental RBL checking option (JSM)
	o Added DNS check on HELO (JSM)
	o tweaks to PASSIVE mode (JSM)
98/01/20  (pre5)
	o Commented out X-UIDL checking as true SMTP mail should never see
	  it. It's now one of the HEADERS in the sample blackmail.conf (JSM) 
	o Added PASSIVE compile option. (JSM)
	o Changed dns NO_ADDRESS to NO_DATA (JSM)
98/01/18  (pre4)
	o Fixed a bug that was reported in checkAddress() that could reject
	  valid email address lines as 'invalid TLD' (JSM)
98/01/16  (pre4)
	o Changed tofrom code to allow mail from a 'ALLOWED_MAIL' rather
	  than a 'LOCALHOST' (JSM)
	o Fixed up some DEBUG2 stuff that was missing (JSM)
	o Ripped out SPAM_EXIT option. It needs rewriting and I don't
	  have time to get it right now. The behaviour is to always exit
	  in normal mode. Never exit in DEBUG2 mode. (JSM)
	o Fixed a potential segfault bug in strip_crap2 (JSM)
98/01/12  (pre4)
	o Fixed log message on invalid Message-ID, orig_data was missing (JSM)
98/01/04  (pre4)
	o Modified Timeout behaviour. Timer is reset after each line
	  of data in DATA phase. (JSM)
	o Added IGNORE_OUTBOUND option in conf file (JSM)
98/01/02  (pre4)
	o Config file now all lowercase within sections and all comparisons
	  are now case insensitive, no more [Jj][Ss] etc. (JSM)
	o X-advertisement and X-PMFLAGS didn't really need special filter
	  code, so they have been removed (JSM)
	o IDENT checking can now be disabled (JSM)
	o Moved MAILFILE, SMTP_TIMEOUT, LOCHOST from blackmail.h into
	  blackmail.conf, you can change them without a recompile. (JSM)
	o Added Apparently-To: filter (JSM)
97/12/16
	o pre3 ready for release (JSM)
	o TLDs now built into code - startup should be fractionally
	  quicker.
	  To change/add TLDs either change tld.c or add
	  extra TLDs to blackmail.conf.
	o #ifdef'd some 'sprintf(argv[0]...' in blackmail.c
	  and added support for another return from gethostbyname
	  after patch for Next support. (HD)
	o slight mod to strip_crap to strip multiple characters
	o to_from checking now isolates just the email address, before it
	  could be confused by leading or trailing junk
	o better strerror() added for SunOs (AMB)
	o mods to CheckAddress to block the likes of To: @
	o DEBUG2 patch incorporated for testing purposes. (TR)
	o HEADERS section in blackmail.conf is now applied to all headers
	  so be careful what you put in there.
	o code tidying (KH)

97/11/10
	o pre2 released
	o fixed error in Makefile, some documentation tweaks
	o DNS check on addresses added as option
	o dummy strerror() added for systems which lack it e.g. SunOs

97/10/28
	o jsm now maintainer, so my 'unofficial' changes below become
	  official as blackmail-0.28.pre1 This is a developers release
	o minor changes to documentation
	o added BUGS file
	o increased default timeout to 1 hr
	
97/10/24
jsm	o fixed a bug in tofrom code that could reject valid mail

Sep-Oct 97 unofficial modifications by jsm
	o filters: To:, From: etc. now check for spam
	o Blackmail should now work if your incoming mail is always relayed
	o added filters X-Advertisement, X-PMFLAGS
	o rejects matching To: and From: (if not local) (under test)
	o reject HTML email
	o changed some response codes from 4xx to 5xx as its more permanent
	o allow MAIL FROM:<> as this IS valid

97/08/04
	o Changed "bmail" occurances to "blackmail" in main.c
	o Optimized a large number of routines, indexed some commonly used
	  code
	o Added gethostname and getdomainname routines (may cause
	  problems on other platforms ... ??)
	o Fixed LOCHOST so if it's not specified, BlackMail uses internal
	  methods to grab the hostname and domain name information.
	o Removed the "rfcs" directory - I've printed them out anyway.

97/07/30
	o Added some top-level domain checks
	o Added a couple of new character strip templates
	o Added "isInvalid" routine to util.c to speed up invalid data checks
	o Added checkAddressRejected for quick illegal data checks in filters
	o Changed error reply codes to make sure they conform to RFC821
	o Removed an invalid character check (the ampersand)

97/07/21
	o Small patch to upgrade blackmail and fix malloc problems

97/05/20
	o Added an input bug fix thanks to Martin Patzel

97/04/29
	o Added Configure script and templates
	o Added ALARM_TIMEOUT for SMTP connection timeouts
	o Added "Mass" distribution keyword filter
	o Added localhost and local mail list for allowed forwarding
	o Optimized a few routines and mail handling routines
	o Fixed some minor bugs in mail handling
	o Changed format of configuration file so it's only one file
	  (Reduces disk I/O by 75%, loads 1.5 times faster)

97/04/21
	o Added "FULL_HEADERS" and "DEBUG" compiletime options to Makefile
	o Added short headers to modules/data.c
	o Added filter check for X-UIDL entries (these are faked quite
	  often by other spammers)
	o Added filter checking to MAIL from: and RCPT to: header checks
	o Added filter check for X-Distribution: entries (some bulk
	  mailers kindly put "Bulk" or "Spam" in here.)
	o Added RFC821 (SMTP) and RFC1939 (POP) RFCs in their own dir
	o Added "-h" command to BlackMail
	o Added "EHLO" parsing for SMAIL 3.2.x
	o Added more spam prevention entries to spamheaders
	o Added "EXPN" and "VRFY" parsing to lock out these commands
	o Added "COMMANDS" file to show flowchart of command sequence
	  checks under BlackMail
	o Added interactive check of identd for users connecting to mail
	o Added a strict identd check for incoming mail to your system
	o Separated source for filter rules, and put them in their own
	  directory for housekeeping (and to let users add their own
	  filters)

-- Contributors
--
	Ken Hollis <khollis@chatlink.com>
		o Created blackmail - most of the code is Ken's

	Martin Patzel <patzel@happy.informatik.uni-ulm.de>
		o Bug fix in input routines (mailLoop())
	Frank Haynes <frank@vatmom.atlanta.com>
		o Bug fix and patches in module routines
	Karsten Jeppesen <kj@yarc.com>
		o Varous credits in the source.
	Herbert Dampel <root@donau.ul.bawue.de>
		o patch for Next support. 
	Andrew M. Bishop <amb@gedanken.demon.co.uk>
		o better strerror() for SunOs
	Tim Rightnour <root@garbled.futureone.com>
		o DEBUG2 option
	James Murray <jsm@jsm-net.demon.co.uk>
		o dns, tofrom, message-id etc. - see above.
	Saotome Ranma <ranma@TASS.org>
		o bug fix in to.c, from.c
	Kai Voelcker <kai@fantaghiro.deceiver.net>
		o increase buffers sizes.

	Many suggestions and comments from members on the 'lunchmeat'
	mailing list have also contributed to the project.

	Code now maintained by James Murray <jsm@jsm-net.demon.co.uk>
