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. 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. Please have a look at man/imapd.conf.5, if 3,90 * DAY2SEC is acceptable. Philipp Hahn (4): config2header: Replace invalid characters Change vacation day to seconds Add VACATION :seconds support Make min/max VACACTION response configurable 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_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 | 8 ++++- 22 files changed, 121 insertions(+), 40 deletions(-)