* 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
Vsevolod Stakhov [Thu, 19 Jun 2008 14:55:56 +0000 (18:55 +0400)]
* Rewrite memcached library to work with events (async model)
* Add simple test for new memcached library
* Use glib variants of malloc and free functions in rspamd