Trunk -------------- Updated the program which patches the Exim Makefile to link in the Python interpreter shared library instead of statically linking it in. It makes for a smaller Exim binary, and I imagine it'll allow you to take advantage of minor Python upgrades without having to rebuild Exim. Version 4.63.0 -------------- Fix a minor C error found while building for Python 2.5 and Exim 4.63. No changes in functionality - should still work with older/newer Exim/Python combinations. Updated the README.FreeBSD to use more modern version numbers in the examples. Version 4.41.0 -------------- Workaround problem preventing compiling on Cygwin using GCC. No changes to the functionality at all. Added a README.Cygwin to mention what to do if the correct library to link to isn't found on Cygwin. Updated the README file to give a few more examples, and remove the paragraph about being able to access header objects as sequences (which actually stopped working in the last version). Updated the example that catches and logs exceptions to have it write to the Exim paniclog instead of the mainlog. Updated the README.FreeBSD to use more modern version numbers in the examples. Version 4.20.2 -------------- Found a serious bug with my new custom header objects, they were lacking the required C deallocation function, so when they were being destroyed, Python would die with a signall 11 error. Fortunately Exim could handle that situation and report a temporary error back to the client. It was kind of a subtle problem in that you didn't see it happen with single messages, but if a SMTP client attempted to send more than one, it'd die on the second message as the old headers were being replaced in the exim dictionary by the new ones. Dropped the backwards-compatibility stuff that allowed those header objects to be accessessed as sequences. Added some protection so that if you managed to hang onto old header references after a message was done being processed, and the underlying Exim structures were no longer present, trying to read their values didn't cause another signal 11 or Python MemoryError. Instead a less lethal AttributeError is raised. Version 4.20.1 ------------ Several settings that were previously fixed at compile-time may now be set at run-time though the Exim 'configure' file. Notably: expy_path_add allows you to add a directory to the Python path, so you don't have to have your local_scan module in the site-packages directory necessarily. Version 4.20 ------------ Change the way header_lines are represented in exim.headers Instead of being two-element tuples (text, type), they're now a custom object with .text, and .type attributes. The .type attribute is settable, so you can set it to '*' to mark header lines that exim should consider as being deleted. The .text attribute is read-only Access to the text and type attributes through sequence_methods is still possible for backwards compatibility (h[0] instead of h.text), but deprecated. This'll probably be yanked in future versions, so update your scripts! Version 4.14 ------------ Will now use the same version number as the Exim it's supposed to correspond with. Added support for new local_scan features such as: debug_print method - accesses Exim's debug_printf() function Constants: LOG_PANIC LOCAL_SCAN_ACCEPT_FREEZE LOCAL_SCAN_ACCEPT_QUEUE LOCAL_SCAN_REJECT_NOLOGHDR LOCAL_SCAN_TEMPREJECT_NOLOGHDR MESSAGE_ID_LENGTH SPOOL_DATA_START_OFFSET Variables: debug_selector host_checking message_id Calls to expand_string() that fail now return Exim's expand_string_message in the exception that's raised. The patch_exim_makefile.py script actually works the way the README and README.FreeBSD files describe. Version 1.0 ------------ First version