Accept any combination of lists and space separated strings.
This commit is contained in:
+15
-7
@@ -441,18 +441,26 @@ class Base(object):
|
|||||||
# This information can reduce the size of messages received from sendmail,
|
# This information can reduce the size of messages received from sendmail,
|
||||||
# and hence could reduce bandwidth between sendmail and your milter where
|
# and hence could reduce bandwidth between sendmail and your milter where
|
||||||
# that is a factor. The <code>Milter.SETSYMLIST</code> action flag must be
|
# that is a factor. The <code>Milter.SETSYMLIST</code> action flag must be
|
||||||
# set.
|
# set. The protocol stages are M_CONNECT, M_HELO, M_ENVFROM, M_ENVRCPT,
|
||||||
|
# M_DATA, M_EOM, M_EOH.
|
||||||
#
|
#
|
||||||
# May only be called from negotiate callback.
|
# May only be called from negotiate callback.
|
||||||
# @since 0.9.2, M_* constants since 0.9.8
|
# @since 0.9.8, previous version was misspelled!
|
||||||
# @param stage the protocol stage to set to macro list for,
|
# @param stage the protocol stage to set to macro list for,
|
||||||
# one of the M_* constants defined in Milter
|
# one of the M_* constants defined in Milter
|
||||||
# @param macros a string with a space delimited list of macros
|
# @param macros space separated and/or lists of strings
|
||||||
def setsymlist(self,stage,macros):
|
def setsymlist(self,stage,*macros):
|
||||||
if not self._actions & SETSYMLIST: raise DisabledAction("SETSYMLIST")
|
if not self._actions & SETSYMLIST: raise DisabledAction("SETSYMLIST")
|
||||||
if type(macros) != str:
|
a = []
|
||||||
macros = ' '.join(macros)
|
for m in macros:
|
||||||
return self._ctx.setsmlist(stage,macros)
|
try:
|
||||||
|
m = m.encode('utf8')
|
||||||
|
except: pass
|
||||||
|
try:
|
||||||
|
m = m.split(' ')
|
||||||
|
except: pass
|
||||||
|
a += m
|
||||||
|
return self._ctx.setsmlist(stage,' '.join(a))
|
||||||
|
|
||||||
# Milter methods which can only be called from eom callback.
|
# Milter methods which can only be called from eom callback.
|
||||||
|
|
||||||
|
|||||||
+11
-3
@@ -89,9 +89,17 @@ class TestBase(object):
|
|||||||
|
|
||||||
def setsymlist(self,stage,macros):
|
def setsymlist(self,stage,macros):
|
||||||
if not self._actions & SETSYMLIST: raise DisabledAction("SETSYMLIST")
|
if not self._actions & SETSYMLIST: raise DisabledAction("SETSYMLIST")
|
||||||
if type(macros) != str:
|
# not used yet, but just for grins we save the data
|
||||||
macros = ' '.join(macros)
|
a = []
|
||||||
self._symlist[stage] = macros
|
for m in macros:
|
||||||
|
try:
|
||||||
|
m = m.encode('utf8')
|
||||||
|
except: pass
|
||||||
|
try:
|
||||||
|
m = m.split(' ')
|
||||||
|
except: pass
|
||||||
|
a += m
|
||||||
|
self._symlist[stage] = set(a)
|
||||||
|
|
||||||
## Feed a file like object to the milter. Calls envfrom, envrcpt for
|
## Feed a file like object to the milter. Calls envfrom, envrcpt for
|
||||||
# each recipient, header for each header field, body for each body
|
# each recipient, header for each header field, body for each body
|
||||||
|
|||||||
Reference in New Issue
Block a user