diff --git a/Milter/__init__.py b/Milter/__init__.py index 9e59f09b798a22dd780c0ad20545d42381d62b3d..8fed7ad8e2af3d68b34a4a8ddbb3341d86d0e827 100755 --- a/Milter/__init__.py +++ b/Milter/__init__.py @@ -8,7 +8,7 @@ # Copyright 2001,2009 Business Management Systems, Inc. # This code is under the GNU General Public License. See COPYING for details. -__version__ = '0.9.5' +__version__ = '0.9.7' import os import milter @@ -137,7 +137,12 @@ def nocallback(func): except KeyError: raise ValueError( '@nocallback applied to non-optional method: '+func.__name__) - return func + def wrapper(self,*args): + if func(self,*args) != CONTINUE: + raise RuntimeError('%s return code must be CONTINUE with @nocallback' + % func.__name__) + return CONTINUE + return wrapper ## Function decorator to disable callback reply. # If the MTA supports it, tells the MTA not to wait for a reply from @@ -154,7 +159,11 @@ def noreply(func): '@noreply applied to non-optional method: '+func.__name__) def wrapper(self,*args): rc = func(self,*args) - if self._protocol & nr_mask: return NOREPLY + if self._protocol & nr_mask: + if rc != CONTINUE: + raise RuntimeError('%s return code must be CONTINUE with @noreply' + % func.__name__) + return NOREPLY return rc wrapper.milter_protocol = nr_mask return wrapper diff --git a/pymilter.spec b/pymilter.spec index 4e912111671ec3c09659fbd06d744df65bb1dc96..5c104781dd6a355819035b12f2436b1104e6c0d5 100644 --- a/pymilter.spec +++ b/pymilter.spec @@ -75,6 +75,10 @@ chmod a+x $RPM_BUILD_ROOT%{libdir}/start.sh rm -rf $RPM_BUILD_ROOT %changelog +* Sat Feb 25 2012 Stuart Gathman <stuart@bmsi.com> 0.9.7-1 +- Raise RuntimeError when result != CONTINUE for @noreply and @nocallback +- Remove redundant table in miltermodule + * Sat Feb 25 2012 Stuart Gathman <stuart@bmsi.com> 0.9.6-1 - Raise ValueError on unescaped '%' passed to setreply - Grace time at end of Greylist window diff --git a/setup.py b/setup.py index 3800c9059ede21eafc891d640a0bd6e8b94628c4..046bae9b0e97972296c65f1cfa9eb76d05d43186 100644 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ libs = ["milter"] libdirs = ["/usr/lib/libmilter"] # needed for Debian # NOTE: importing Milter to obtain version fails when milter.so not built -setup(name = "pymilter", version = '0.9.6', +setup(name = "pymilter", version = '0.9.7', description="Python interface to sendmail milter API", long_description="""\ This is a python extension module to enable python scripts to