On Fri, 29 May 1998, Nigel Metheringham wrote:
> I have just noticed an odd behaviour.....
>
> I have a system filter which attempts to detect spam, logs something and
> freezes the message.
>
> Some messages which have been on the queue for a while, were originally
> caught by this trap, released from it (manually), and have been sitting
> waiting for everyone to deliver since. However there are *loads* of log
> messages from the filter for these messages - as though the filter is
> being run on every queue run, but the message is not getting frozen again
> (and the filter has
> log ...
> freeze
> finish
>
> everywhere where log appears...
You have found an infelicity, but I don't know what to do about it. The
system filter is indeed being run on every queue run - the spec of the
system filter is that it is run at the start of every delivery attempt.
Thus it goes through the motions and writes the log and says "freeze
this message". However, the main delivery code knows that the message
was manually thawed, so it ignores the "freeze" request from the filter.
I suppose I could create a condition called "manually thawed" so that you
could write
if !manually_thawed
logwrite ...
freeze
finish
endif
or something. Does this seem reasonable?
--
Philip Hazel University Computing Service,
P.Hazel@??? New Museums Site, Cambridge CB2 3QG,
ph10@??? (sic) England. Phone: +44 1223 334714
--
*** Exim information can be found at
http://www.exim.org/ ***