Work in python2 and python3
This commit is contained in:
+5
-1
@@ -14,6 +14,7 @@ __version__ = '1.0.4'
|
|||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import milter
|
import milter
|
||||||
|
import sys
|
||||||
try:
|
try:
|
||||||
import thread
|
import thread
|
||||||
except:
|
except:
|
||||||
@@ -773,7 +774,10 @@ def runmilter(name,socketname,timeout = 0,rmsock=True):
|
|||||||
# dictfromlist to make parsing the ESMTP args convenient.
|
# dictfromlist to make parsing the ESMTP args convenient.
|
||||||
milter.set_envfrom_callback(lambda ctx,*str: ctx.getpriv().envfrom(*str))
|
milter.set_envfrom_callback(lambda ctx,*str: ctx.getpriv().envfrom(*str))
|
||||||
milter.set_envrcpt_callback(lambda ctx,*str: ctx.getpriv().envrcpt(*str))
|
milter.set_envrcpt_callback(lambda ctx,*str: ctx.getpriv().envrcpt(*str))
|
||||||
milter.set_header_callback(lambda ctx,fld,val: ctx.getpriv().header(fld,val))
|
if sys.version < '3.0.0':
|
||||||
|
milter.set_header_callback(lambda ctx,f,v: ctx.getpriv().header(f,v))
|
||||||
|
else:
|
||||||
|
milter.set_header_callback(header_callback)
|
||||||
milter.set_eoh_callback(lambda ctx: ctx.getpriv().eoh())
|
milter.set_eoh_callback(lambda ctx: ctx.getpriv().eoh())
|
||||||
milter.set_body_callback(lambda ctx,chunk: ctx.getpriv().body(chunk))
|
milter.set_body_callback(lambda ctx,chunk: ctx.getpriv().body(chunk))
|
||||||
milter.set_eom_callback(lambda ctx: ctx.getpriv().eom())
|
milter.set_eom_callback(lambda ctx: ctx.getpriv().eom())
|
||||||
|
|||||||
+3
-2
@@ -6,6 +6,7 @@
|
|||||||
|
|
||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
from socket import AF_INET,AF_INET6
|
from socket import AF_INET,AF_INET6
|
||||||
|
from sys import version as VERSION
|
||||||
import time
|
import time
|
||||||
import mime
|
import mime
|
||||||
try:
|
try:
|
||||||
@@ -14,8 +15,6 @@ except:
|
|||||||
from StringIO import StringIO as BytesIO
|
from StringIO import StringIO as BytesIO
|
||||||
import Milter
|
import Milter
|
||||||
from Milter import utils
|
from Milter import utils
|
||||||
import mime
|
|
||||||
import email
|
|
||||||
|
|
||||||
## Milter context for unit testing %milter applications.
|
## Milter context for unit testing %milter applications.
|
||||||
# A substitute for milter.milterContext that can be passed to
|
# A substitute for milter.milterContext that can be passed to
|
||||||
@@ -220,6 +219,8 @@ class TestCtx(object):
|
|||||||
return rc
|
return rc
|
||||||
|
|
||||||
def _header(self,fld,val):
|
def _header(self,fld,val):
|
||||||
|
if VERSION < '3.0.0':
|
||||||
|
return self._priv.header(fld,val)
|
||||||
# email.message_from_binary_file uses surrogateescape to
|
# email.message_from_binary_file uses surrogateescape to
|
||||||
# preserve original bytes in unicode string for decoding errors.
|
# preserve original bytes in unicode string for decoding errors.
|
||||||
# convert str or Header back to original bytes
|
# convert str or Header back to original bytes
|
||||||
|
|||||||
+5
-1
@@ -674,7 +674,11 @@ milter_wrap_header(SMFICTX *ctx, char *headerf, char *headerv) {
|
|||||||
if (header_callback == NULL) return SMFIS_CONTINUE;
|
if (header_callback == NULL) return SMFIS_CONTINUE;
|
||||||
c = _get_context(ctx);
|
c = _get_context(ctx);
|
||||||
if (!c) return SMFIS_TEMPFAIL;
|
if (!c) return SMFIS_TEMPFAIL;
|
||||||
arglist = Py_BuildValue("(Oyy)", c, headerf, headerv);
|
#if PY_MAJOR_VERSION >= 3
|
||||||
|
arglist = Py_BuildValue("(Osy)", c, headerf, headerv);
|
||||||
|
#else
|
||||||
|
arglist = Py_BuildValue("(Oss)", c, headerf, headerv);
|
||||||
|
#endif
|
||||||
return _generic_wrapper(c, header_callback, arglist);
|
return _generic_wrapper(c, header_callback, arglist);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user