Skip to content
Snippets Groups Projects
Commit 16bfe5d4 authored by Stuart Gathman's avatar Stuart Gathman
Browse files

Exceptions on unsupported result code for callback decorators.

parent 70d19001
Branches
Tags
No related merge requests found
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
# Copyright 2001,2009 Business Management Systems, Inc. # Copyright 2001,2009 Business Management Systems, Inc.
# This code is under the GNU General Public License. See COPYING for details. # This code is under the GNU General Public License. See COPYING for details.
__version__ = '0.9.5' __version__ = '0.9.7'
import os import os
import milter import milter
...@@ -137,7 +137,12 @@ def nocallback(func): ...@@ -137,7 +137,12 @@ def nocallback(func):
except KeyError: except KeyError:
raise ValueError( raise ValueError(
'@nocallback applied to non-optional method: '+func.__name__) '@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. ## Function decorator to disable callback reply.
# If the MTA supports it, tells the MTA not to wait for a reply from # If the MTA supports it, tells the MTA not to wait for a reply from
...@@ -154,7 +159,11 @@ def noreply(func): ...@@ -154,7 +159,11 @@ def noreply(func):
'@noreply applied to non-optional method: '+func.__name__) '@noreply applied to non-optional method: '+func.__name__)
def wrapper(self,*args): def wrapper(self,*args):
rc = func(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 return rc
wrapper.milter_protocol = nr_mask wrapper.milter_protocol = nr_mask
return wrapper return wrapper
......
...@@ -75,6 +75,10 @@ chmod a+x $RPM_BUILD_ROOT%{libdir}/start.sh ...@@ -75,6 +75,10 @@ chmod a+x $RPM_BUILD_ROOT%{libdir}/start.sh
rm -rf $RPM_BUILD_ROOT rm -rf $RPM_BUILD_ROOT
%changelog %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 * Sat Feb 25 2012 Stuart Gathman <stuart@bmsi.com> 0.9.6-1
- Raise ValueError on unescaped '%' passed to setreply - Raise ValueError on unescaped '%' passed to setreply
- Grace time at end of Greylist window - Grace time at end of Greylist window
......
...@@ -13,7 +13,7 @@ libs = ["milter"] ...@@ -13,7 +13,7 @@ libs = ["milter"]
libdirs = ["/usr/lib/libmilter"] # needed for Debian libdirs = ["/usr/lib/libmilter"] # needed for Debian
# NOTE: importing Milter to obtain version fails when milter.so not built # 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", description="Python interface to sendmail milter API",
long_description="""\ long_description="""\
This is a python extension module to enable python scripts to This is a python extension module to enable python scripts to
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment