
[Jul 14  2005]
Changes from v1.54 -> v1.55 (major fixes and portability fixes)

 *   README.txt: fix blacklist typo. noted by Henk Bokhoven.
 *        .init: added policyd.freebsd.sh startup script by Eric Toll.
 *     Makefile: remove duplication of Solaris/Linux compile
                 options, include freebsd/netbsd mysql library
		 and header paths. patch by ???? (please mail me)
 *    Changelog: add dates to all the build releases
 *  blacklist.c: cosmetic fix.
 *  whitelist.c: cosmetic fix.
 *   throttle.c: SASL throttling bug fixed. problem reported by Micha Holzmann.
 *    sockets.c: display more information if accept() fails.



 
[Jul 06  2005]
Changes from v1.53 -> v1.54 (speed increases and new feature)

 *    policyd.c: 25% speed up by passing less data between functions.
 *   greylist.c: opt in/out fallback is now configurable. all previous
                 releases had opt-out as default. requested by K. C. Li.
 *     Makefile: added netbsd compile options. requested by mouss.
 *     Makefile: default for 'make' is linux. requested by mouss.
 *     Makefile: removed tab-only lines (emacs moans). requested by mouss.




[Jun 23  2005]
Changes from v1.52 -> v1.53 (major fixes and new features)

 *   throttle.c: add in missing `,` sign. patch by JL Penman-Smithson.
 *   throttle.c: you can now perform throttling based on ip/hosts.
 *   README.txt: seperated all mysql queries into 'DATABASE.mysql'.
 * policyd.conf: SENDER_SIZE_REJECTION typo noted by Christiano Anderson.
 *    policyd.h: increased max descriptors. can handle double the connections.
 *    policyd.c: fixed silent exit that was caused by hitting MAXFDS.




[Apr 22  2005]
Changes from v1.51 -> v1.52 (minor fixes and new features)

 *     syslog.c: include local[0-7] facilities. patch by JL Penman-Smithson
 *      mysql.c: define MYSQL pointer as volatile. patch by Leandro Santi
 *    sockets.c: define fd for read/write as volatile. patch by Leandro Santi
 *      mysql.c: database connections can now be kept alive.
 *   greylist.c: rewrote how opt-in and opt-out works. READ the README.txt!!
 *     Makefile: cosmetic update to the make process.
 *      mysql.c: if 3 or more queries to the database times out, policyd
                 will force itself to switch into pass-through mode in order
		 to keep high concurrency and low latency.
 
   (NB!!) if you are upgrading from <= v1.51 then please add to policyd.conf:

     DATABASE_KEEPALIVE=0

   And in MySQL:

     ALTER TABLE policy ADD _priority smallint(4) unsigned NOT NULL default '0';




[Apr 16  2005]
Changes from v1.50 -> v1.51 (minor fixes and new features)

 *     Makefile: add in missing character for building on Solaris.
                 reported by Thomas H. Jones II.
 *  blacklist.c: fix blacklist bug when whitelist null sender is enabled. 
 *    sockets.c: fix w_close() bug when unable to close file descriptor.
 *    sockets.c: added read() timeout.
 *    sockets.c: added write() timeout.
 *    policyd.c: you can now see the connecting ip and assigned file descriptor.
 



[Apr 13  2005]
Changes from v1.49 -> v1.50 (minor fixes and new features)

 *  blacklist.c: save an sql lookup if there is no HELO information.
 *    policyd.c: allow greylisting and sender throttling to run together.
                 requested by Robin Lynn Frank.
 *      mysql.c: connection & query timeouts implemented by dan. thanks! ;)
 *    generic.c: you can now configure the syslog facility and priority.
                 requested by Jamie L. Penman-Smithson. implemented by dan.




[Apr 10  2005]
Changes from v1.48 -> v1.49 (documentation cleanup and major bugfixes)

 *   README.txt: restructured documentation and included more examples.
 *   README.txt: document throttle module behaviour.
 *    cleanup.c: cleanup now works with gettime().
 *    policyd.c: ripped everything apart and made it more modular.
 *    policyd.c: clear_var(): scrub all fd variables before use.
 *    policyd.c: parse_buf(): sort all Postfix requests into arrays.
 *    policyd.c: module_info_check(): check needed data for enabled modules.
 *    generic.c: db_failure(): return -20 regardless of failure type.
 *    generic.c: policy_reply(): centralize all policyd server replies.
 *    generic.c: extract_seconds(): now supports M=month and Y=year.
 *  whitelist.c: whitelist_check(): whitelisting is now its module.
 *  blacklist.c: blacklist_check(): blacklisting is now its module.
 *          *.c: all functions are now documented.
 *     Makefile: compiling with debugging symbols is now the default.
 *   greylist.c: fix autowhitelisting segfault. reported by Robin Lynn Frank.
 *   throttle.c: fix throttle segfault.
 *    policyd.c: if all modules are disabled, accept & work in passthrough mode.
 *    generic.c: big speed increase. keep connections to postfix open.




[Apr 08  2005]
Changes from v1.47 -> v1.48 (new functionality)

 *      mysql.c: counter is incremented for every query (display in DEBUG mode)
 *    policyd.c: counter is incremented for every query from postfix.
 *          *.c: all modules display rcpt=<number>, at start of log line.
 *    generic.c: extract_seconds() now allows timeunits of 0 (infinity)
 *    generic.c: BLACKLIST_HELO_AUTO_EXPIRE now uses extract_seconds().

   (NB!!) if you are upgrading from <= v1.47 then please note:
   this release BREAKS/restructures the old logging format.


 

[Apr 06  2005]
Changes from v1.46 -> v1.47 (minor fixes and new blacklisting module)

 *    policyd.h: variables that dont need to be global were removed.
 *    policyd.c: variables are now all unique to the current file descriptor.
 *   README.txt: updated the sender throttling docs to be more clear.
 *  blacklist.c: you now have the ability blacklist hosts that identify
                 their HELO's with your servers ip addresses.
		 Feature requested by Mark J. Nernberg.

   (NB!!) if you are upgrading from <= v1.46 then at the mysql prompt:
   CREATE TABLE blacklist_helo (
     _helo char(60) NOT NULL default '',
     UNIQUE KEY _helo (_helo)
   ) TYPE=MyISAM;
   
   and in your policyd.conf, add:
   BLACKLIST_HELO=0
   BLACKLIST_HELO_AUTO_EXPIRE=0
   



[Mar 31  2005]
Changes from v1.45 -> v1.46 (speed increase and bugfixes)

 *          *.c: dont pass mysql pointer between functions (already static)
 *          *.c: dont pass mysql queries between functions (already static)
 *          *.c: database failsafe now works across all modules/queries.
 *         init: added suse started script by Corey Huinker.
 *    generic.c: add an extra byte for malloc so strings are null terminated.
                 spotted by dan
 *    generic.c: fix strncpy() segfault on old compilers (debian stable+rh6.2)
                 (reported by Christiano Anderson)
 *    policyd.c: generate policyd pidfile as required by fbsd's ports system.
                 (requested by Rong-En Fan)
 *    cleanup.c: cosmetic fix. displayed seconds instead of days.
                 Patch by Trever Miller.

   (NB!!) if you are upgrading from <= v1.45 then add to your policyd.conf:
   PIDFILE=/var/run/policyd.pid
		 

 
[Mar 23  2005]
Changes from v1.44 -> v1.45 (major bugfixes)

 *    generic.c: daemonize() after configs are read. Patch by Trever Miller.
 *    generic.c: new function gettime() to replace gettimeofday() duplication.
 *    generic.c: extract_seconds() has been rewritten by dan.
 *    policyd.c: fix bug if host and/or is found more than once in the
                 whitelist or blacklist. bug found by Andriy Yanko



[Mar 16  2005]
Changes from v1.43 -> v1.44 (speed increase, new features and bugfixes)

 *    generic.c: move daemonize() into sockets.c
 *    sockets.c: add w_fork() function to do backgrounding
 * policyd.conf: fix up the 'defaults' so they match the default
 *          *.c: prevent mysql INSERTS from escaping integers
 *    policyd.c: display policyd version when starting
 *   greylist.c: apply patch to fix autowhitelist bug from +
 *   spamtrap.c: apply patch to fix spamtrap autoblacklisting by
                 "Andriy T. Yanko"  <wireless@wireless.org.ua>



[Mar 13  2005]
Changes from v1.42 -> v1.43 (portability cleanups, new features and bugfixes)

 *    generic.c: replace daemon() with daemonize() implementation
                 so that code can compile/run on Solaris.
 *     Makefile: policyd now works on solaris
                 Many thanks to Trever Miller <trever@cyberdex.ca> for Solaris
                 socket compile options and testing.
 *   greylist.c: autowhitelisting is now implemented (idea from Wietse Venema)
 *   greylist.c: backport greylist patch from v1.40
 * policyd.conf: enable debugging by default
 


[Mar 11  2005]
Changes from v1.41 -> v1.42 (major bugfixes and portability cleanups)

 *     Makefile: compile cleanly on freebsd.
 *   throttle.c: fix (sasl) segfault.
                 reported by Michael Nguyen (michaeln@twentyten.org)
 *   throttle.c: add counter to keep a history of sent mail
 *      mysql.c: changing DEBUG to 2 (or higher) shows mysql queries+results
 *    sockets.c: changing DEBUG to 3 (or higher) now shows more network debugging
 *    policyd.c: policyd now works with MySQL v3.xx and MySQL v4.xx
                 (idea blantently stolen from Victor Duchovni's MySQL patch)
 
   (NB!!) if you are upgrading from <= v1.41 then:
   ALTER TABLE throttle ADD _count_tot mediumint(8) unsigned NOT NULL default '0';



[Feb 26  2005]
Changes from v1.40 -> v1.41 (major speed increase and new functionality)

   * greylist.c: _count is inserted to 0 (cosmetic database fix)
   *  cleanup.c: DELETE no long requires a tablescan, use _count INDEX. fast!
   * throttle.c: fix SASL bug found by Michael Nguyen (michaeln@twentyten.org)
   *  generic.c: you now have the ability to specify time units for settings,
                 EG: 1s = 1 second, 5m = 5 minutes, 2d = 2 days, 4h = 4 hours
                 requested by Michael Nguyen (michaeln@twentyten.org)
   * throttle.c: you can now throttle incoming mail based on IP address.
 
   (NB!!) if you are upgrading from <= v1.40 then:
   ALTER TABLE triplet DROP INDEX _datenew;
   ALTER TABLE triplet MODIFY _count smallint(5) unsigned NOT NULL default '0';
   UPDATE triplet SET _count=0 WHERE _count=1;
   ALTER TABLE triplet ADD KEY (_datenew,_count);



[Feb 24  2005]
Changes from v1.39 -> v1.40 (new features and speed increase)

 *   throttle.c: you can use SASL_USERNAME instead of envelope sender address
 *     Makefile: added 'install-strip' option to strip binaries
 *    generic.c: cleanup no longer goes into the background
 *   greylist.c: INSERTS are now extremely fast
 *      mysql.c: database cleanups now show the correct deleted integer

   (NB!!) if you are upgrading from <= v1.39 then:
   ALTER TABLE triplet ADD KEY (_datenew,_count);



[Feb 20  2005]
Changes from v1.38 -> v1.39 (speed increase, major bugfixes and new features)


 *    policyd.c: avoid blacklisting lookup if host is found in whitelist
 *    sockets.c: functions now give proper error message when fatal actions occur
 *        DEBUG: now generates a lot of logs (dont use in production!)
 *      mysql.c: starting policyd when MySQL is down now works
 *    sockets.c: read() errors no longer kill the daemon, connection will be closed.
 *    policyd.c: if MAXFDS is reached, do not accept anymore connections
 *    cleanup.c: no longer expires permanent blacklisted ranges
 *    generic.c: malloc() return errors are checked everywhere now
 *   throttle.c: DATABASE queries are now done before log notifications.
 * policyd.conf: completely rewritten with descriptions
 *    cleanup.c: you can now configure when to expire (un)authenticated triplets.
 *    policyd.c: fix greylist header bug found by Peter Santiago
 *   greylist.c: provide msg count & mail size in xheader information
 *    cleanup.c: prepare for auto-whitelisting/auto-blacklisting



[Dec 11  2004]
Changes from v1.37 -> v1.38 (cosmetic changes)

 *   spamtrap.c: table to allow automatic host blacklisting (check README)
 *    policyd.c: all rejections can now be customized

 (NB!!) if you are upgrading from <= v1.37 then:
  CREATE TABLE spamtrap (
    _rcpt char(60) NOT NULL default '',
    UNIQUE KEY _rcpt (_rcpt)
  ) TYPE=MyISAM;



[Dec  6  2004]
Changes from v1.36 -> v1.37 (memory improvements, bugfixes)

 *    generic.c: extract() now copies data into static arrays
 *    generic.c: changed from fopen() to freopen() to handle hup signal properly
 *    policyd.h: memory size is now very static, it does not grow
 *   greylist.c: logging now includes mail size for stats analysis
 *   greylist.c: added ability to add mail:
                 with "X-Greylist: Passed count=%d size=%d"


[Dec  6  2004]
Changes from v1.34 -> v1.36 (speed enhancements)

 *     DATABASE: structure change, major speedups (code will work with old database)
 *       README: fixed up documentation, and corrected cleanup method
 *   greylist.c: training mode now works properly
 *    policyd.c: whitelisting no longer matches random hosts (LIKE to REGEXP)
 *    policyd.c: whitelisting format has changed, please read the README
 *    policyd.c: all records are now lowercased
 


[Dec  2  2004]
Changes from v1.33 -> v1.34 (new features+bugfixes)

 *    policyd.c: pass-through mode is now clearly visible
 *   greylist.c: fixes for training mode
 *    policyd.c: fixed logic bug
 *    generic.c: null terminate all extracted strings
 *    generic.c: add _ character to be extracted (requested by Patrick <nawtyness@gmail.com>)
 *    policyd.c: ripped out isgraph()
 *    policyd.c: ripped out sizeof()
 *    policyd.c: add checks to make sure we got all sender throttle required data
 *    policyd.c: compile fixes for gcc 3.3.4
 *    generic.c: moved duplicated functions (for policyd/cleanup) to generic file

 (NB!!) if you are upgrading from <= v1.33 then:
 ALTER TABLE whitelist ADD _expire int NOT NULL default '0';
 ALTER TABLE whitelist ADD KEY (_expire);
 ALTER TABLE blacklist ADD _expire int NOT NULL default '0';
 ALTER TABLE blacklist ADD KEY (_expire);  


 
[Nov  8  2004]
Changes from v1.32 -> v1.33 (new features+bugfixes)

 *    policyd.c: added chroot()
 *    policyd.c: added priv dropping to whatever you uid/gid you want
 *    policyd.c: fixed up setuid()/setgid()/chroot() ordering
 *     Makefile: trailing garbage in files removed
 *   greylist.c: fix duplicate update by found by Piotr Gnyp
 *    policyd.c: fix array parsing bug found by Piotr Gnyp
 *    genetic.c: optimized extract()
 *    policyd.h: optimized memory usage (1/4th used now)
 *    policyd.h: standardise on 64 char arrays (for speed+sanity)
 *    policyd.c: rip out strlen() and use isgraph() for sanity checks (speed up)
 *   greylist.c: added index in triplet table for _datelast to speed up cleanups
 *    policyd.c: whitelisting now works properly
 *    policyd.c: added blacklisting functionality
 *       README: documented whitelisting and blacklisting
 *       README: documented opt-in / opt-out
 *     Makefile: removed whitelist.txt from Makefile
 *     Makefile: added copying policyd.conf to Makefile
 *    policyd.c: fixed logging so greylisting and throttling are different
 *       README: documented logging format
 *   throttle.c: added per-sender maximum mail size restriction
 *       README: cleaned up docs a bit
 *          *.c: cleaned up unused variables in all files
 *    policyd.c: fixed up some return values
 *      mysql.c: mysql query fix ups
 *    policyd.c: fixed up compile warnings
 *   throttle.c: mail size update fix
 
   (NB!!) if you are upgrading from <= v1.31 then:   
   ALTER TABLE triplet ADD KEY (_datelast);
   ALTER TABLE throttle ADD _mail_size int NOT NULL default '0';  


#######
# EOF #
#######
