Hi,

When using the :try tag on the pipe command in the sieve_extprograms plugin 
Sieve’s implicit keep is cancelled if the executed command fails. The 
specification on 
https://raw.githubusercontent.com/dovecot/pigeonhole/master/doc/rfc/spec-bosch-sieve-extprograms.txt
 states:

“When the ":try" tag is specified, the "pipe" instruction will attempt 
execution of the external program, but failure will not cause the whole Sieve 
script execution to fail with an error. Instead, the Sieve processing continues 
as if the "pipe" action was never triggered."

However, using the :try tag marks the pip command as successful even if it 
fails and because pipe is a disposition-type action the implicit keep is 
cancelled, resulting in the piped message being discarded. If this is the 
intended behaviour then I would suggest amending the text of the specification 
to:

“When the ":try" tag is specified, the "pipe" instruction will attempt 
execution of the external program, but failure will not cause the whole Sieve 
script execution to fail with an error. Instead, the Sieve processing continues 
as if the "pipe" action was executed successfully and cancel implicit keep.”

If this is not the intended behaviour then please consider this a bug report, 
with my apologies for not adding a patch (it seems to be a bit more complex 
than just changing the return value of act_pipe_commit).

Kind regards,

-- 
Sebastiaan Hoogeveen

NederHost
https://www.nederhost.nl/
KvK: 34099781



_______________________________________________
dovecot mailing list -- dovecot@dovecot.org
To unsubscribe send an email to dovecot-le...@dovecot.org

Reply via email to