Hello, some time ago I implemented RFC 6131 <http://tools.ietf.org/html/rfc6131>, which adds a variante of the VACATION extension supporting seconds instead of days. The original patch was for version 2.2.x and implemented a draft version.
I introduced a new OP-code, which uses seconds instead of days, which reduces the maximum span for vacation messages from 2^31 to 68 years, but I think even that should be enough. The old OP-code for VACATION :days is still understood, but no longer emitted. [v2] Rename old B_VACATION to _ORIG and implement new B_VACATION. Use DAY2SEC for converting days to seconds. Add extenstion to lib/imapoptions and sieve_listextensions(). Make min/max vacation response interval configurable. [v3] Handle old and new compiled sieve scripts in bc_eval.c. Add RFC 6131 to doc/specs.html. Also show vacation when vacation-seconds is enabled. Open issues: There currently is no explicit check for 0 <= seconds <= 2**31 as required by RFC6131, but negative numbers are not recognized by the parser and the maximum is 7 days, so the limit is implicitly applied. Philipp Hahn (4): config2header: Replace invalid characters Change vacation day to seconds Add VACATION :seconds support Make min/max VACACTION response configurable doc/specs.html | 2 + imap/lmtp_sieve.c | 6 ++-- lib/imapoptions | 10 +++++- lib/times.h | 3 ++ sieve/README | 3 ++ sieve/bc_dump.c | 4 ++- sieve/bc_emit.c | 4 +- sieve/bc_eval.c | 14 +++++++-- sieve/bc_generate.c | 4 +- sieve/bytecode.h | 9 ++++-- sieve/interp.c | 12 +++++-- sieve/message.c | 4 +- sieve/message.h | 2 +- sieve/script.c | 12 +++++++ sieve/script.h | 1 + sieve/sieve-lex.l | 1 + sieve/sieve.y | 32 ++++++++++++------- sieve/sieve_interface.h | 6 ++-- sieve/sieved.c | 9 ++++-- sieve/test.c | 6 +++- .../actionExtensions/uberExtensionActionScript.key | 10 ++++++ .../actionExtensions/uberExtensionActionScript.s | 13 +++++++- sieve/tree.h | 2 +- tools/config2header | 7 ++++- 24 files changed, 133 insertions(+), 43 deletions(-)