[PATCHv2 0/4] Add VACATION :seconds support

Philipp Hahn hahn at univention.de
Wed May 9 05:36:44 EDT 2012


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(-)



More information about the Cyrus-devel mailing list