Vsevolod Stakhov [Fri, 27 Feb 2009 09:44:18 +0000 (12:44 +0300)]
* Fix dependencies on perlxs target (do not rebuild it constantly)
* Fix rspamc to understand lmtp and delivery sections in config
* Fix parser's states when reading module options
* Add sample config for surbl module with comments
Vsevolod Stakhov [Mon, 16 Feb 2009 16:50:18 +0000 (19:50 +0300)]
* Prepare to migrate to cmake (still need to write install target and working with XS implicitly)
* Move all system includes to one file where we detect availability of all that includes
* Fix license misprint
* Fix some issues with perl initializing
Vsevolod Stakhov [Fri, 13 Feb 2009 14:03:43 +0000 (17:03 +0300)]
* Init perl and do all perl specific operations from the single place in code
* Push objects correctly to stack (by blessing them and making hash reference)
Vsevolod Stakhov [Thu, 29 Jan 2009 14:46:26 +0000 (17:46 +0300)]
* Do another rework of filters/metrics and statfiles processing
* Add 'probability' normalizing to winnow algorithm and calculate not pure weight but normalized probability
Vsevolod Stakhov [Wed, 28 Jan 2009 16:19:20 +0000 (19:19 +0300)]
* Fix bug with calling consolidation function after stop_point
* Use shared memory for storing pool allocator statistics
* Fix bug with processing statfiles results
Vsevolod Stakhov [Wed, 21 Jan 2009 14:25:06 +0000 (17:25 +0300)]
* Rewrite message parser
* Change mime parts storage
* Add html tags striping (ported from php code)
* Rework learning to process only text and striped html parts
Vsevolod Stakhov [Sun, 26 Oct 2008 04:14:48 +0000 (07:14 +0300)]
* Add determining page size function to mem_pool library
* Add simple statistic structure that is placed in shared memory and used for gathering server's stats
Vsevolod Stakhov [Fri, 24 Oct 2008 15:32:39 +0000 (19:32 +0400)]
* Stylify and fix util functions that was gathered from libutil code (memory allocation)
* Fix protocol and network functions
* Fix some memory allocation issues
Vsevolod Stakhov [Thu, 16 Oct 2008 15:41:45 +0000 (19:41 +0400)]
* Add support of shared memory chunks to memory pool allocator. Also add locking support (spin mutexes)
* Add simple test case for shared memory allocation
* Configure modules when worker starts for simplifying reconfig procedure
* Add two behaviour types of memory allocator: greedy and ungreedy
* Adopt surbl module for new configure style
* Implement destructors stack in memory pool, so there is now
convinient way to free objects in pool that was allocated by other
memory allocation mechanics (e.g. GObject).
Destructors must be added in pool manually by calling memory_pool_add_destructor
function.
* Implement expression parser (convertor to inverse polish record)
* Improve configure system by implementing dependencies
* Add .depend files for subdirs that requre it
* Write simple test for expressions parser
* Rework config file memory allocation to separate memory pool for easy reloading
without calling of ~1000 free syscalls
* Add memory_pool_alloc0 for initializing newly allocated space in pool with zeroes
* Small updates to memory pool library
- fix cases when new chunk is allocated
- add memory pool allocator statistics
- let it work in multi-threaded environment
- add strdup function for convinience
* Use memory pool allocator more widely to avoid memory leaks in future and optimize performance
* Task pool chunk size is now pre-defined constant (16 Kb currently)
* Place all protocol logic in separate file
- simplify protocol parsing logic
- add compatibility with sa-spamd
- TODO: add protocol output for all commands
* Add memory pool support.
- memory pools would be used in modules for allocating task specific data without freeing it separately
- memory pools growth is implemented as multiplying by 2 its length (for avoiding multiply reallocs)
- when memory pool is freed all data that was allocated from this pool is freed too
Vsevolod Stakhov [Thu, 21 Aug 2008 13:58:30 +0000 (17:58 +0400)]
* Add filters logic
* Perl should use separate memcached context for its operations (just do memcpy with the same socket)
TODO: add block mechanics here to avoid memcached connection closing before perl operation is finished
* Change logic of perl chain filter
Vsevolod Stakhov [Wed, 20 Aug 2008 13:09:13 +0000 (17:09 +0400)]
* Rewrite perl module for new XS, now perl filters got only object of rspamd module that provides access to every part of message
* Add memcached access api for perl
* Reorganize Makefile, add .PHONY targets
* Fix memcached module as now we cannot write or read several keys in async mode