From 38d883bbcefa25cc60ddd5fe936c95dcd205ad3b Mon Sep 17 00:00:00 2001 From: bwarsaw Date: Tue, 28 Mar 2000 17:25:33 +0000 Subject: pipeline_delivery(): factoring out common delivery code. DeliverToList(), DeliverToUser(): Use pipeline_delivery RedeliverMessage(): New delivery top-level function which is used by qrunner to attempt re-delivery. --- Mailman/Handlers/HandlerAPI.py | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) (limited to 'Mailman/Handlers/HandlerAPI.py') diff --git a/Mailman/Handlers/HandlerAPI.py b/Mailman/Handlers/HandlerAPI.py index 917b8ac61..f098929fd 100644 --- a/Mailman/Handlers/HandlerAPI.py +++ b/Mailman/Handlers/HandlerAPI.py @@ -20,15 +20,25 @@ from Mailman import mm_cfg from Mailman import Errors class HandlerError(Errors.MailmanError): - """Base class for all handler errors""" + """Base class for all handler errors.""" pass - class MessageHeld(HandlerError): - """Base class for all message-being-held short circuits""" + """Base class for all message-being-held short circuits.""" pass + +def pipeline_delivery(mlist, msg, pipeline): + for modname in pipeline: + mod = __import__('Mailman.Handlers.'+modname) + func = getattr(getattr(getattr(mod, 'Handlers'), modname), 'process') + try: + func(mlist, msg) + except MessageHeld: + break + + # for messages that arrive from the outside, to be delivered to all mailing # list subscribers @@ -48,13 +58,15 @@ def DeliverToList(mlist, msg): 'Acknowledge', 'AfterDelivery', ] - for modname in pipeline: - mod = __import__('Mailman.Handlers.'+modname) - func = getattr(getattr(getattr(mod, 'Handlers'), modname), 'process') - try: - func(mlist, msg) - except MessageHeld: - break + pipeline_delivery(mlist, msg, pipeline) + + + +# for messages that qrunner tries to re-deliver +def RedeliverMessage(mlist, msg): + pipeline = [mm_cfg.DELIVERY_MODULE, + ] + pipeline_delivery(mlist, msg, pipeline) @@ -67,8 +79,4 @@ def DeliverToUser(mlist, msg): mm_cfg.DELIVERY_MODULE, ] msg.fasttrack = 1 - for modname in pipeline: - mod = __import__('Mailman.Handlers.'+modname) - func = getattr(getattr(getattr(mod, 'Handlers'), modname), 'process') - # None of these modules should ever generate a MessageHeld exception - func(mlist, msg) + pipeline_delivery(mlist, msg, pipeline) -- cgit v1.2.3-70-g09d2