[PATCH 0/4] Add VACATION :seconds support

Philipp Hahn hahn at univention.de
Tue May 8 05:54:42 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.

There are some issues I would like to get a feedback for:

autobuild.sh fails for me on my local system, because my directory layout
doesn't seem to match your build environment. I took the liberty to fix some
issues to make it usable for me. The first patch is actually independent from
the rest.

The change is relatively easy iff the value used in compiled SIEVE scripts is
changed from days to seconds. As far as I understood the logic, this requires a
version bump in the sieve byte code, which I did in the second patch. Since
duplicate_mark() already uses seconds since the UNIX epoch, no change is
required there.
This reduces the maximum span for vacation messages from 2^31 to 68 years, but
I think even that should be enough.

":seconds 0" is explicitly allowed, which would send a vacation mail for every
message. (Actually this was the motivation for implementing this extension) In
other contexts this might be undesired, but I found no easy way to make
min_response and max_response configurable. Because of that lowering
min_response is done in the last patch.

There currently is no explicit check for 0 <= seconds <= 2**31.

For converting days to seconds and the inverse I always explicitly wrote 24 *
60 * 60. Is there a good location for defining this as a macro?

Philipp Hahn (4):
  autobuild: Fix directory handling
  Change vacation day to seconds
  Add VACATION :seconds support
  Support VACACTION :seconds 0

 autobuild.sh                                       |   18 ++++++-----
 imap/lmtp_sieve.c                                  |    6 ++--
 sieve/README                                       |    3 ++
 sieve/bc_dump.c                                    |    2 +-
 sieve/bc_emit.c                                    |    4 +-
 sieve/bc_generate.c                                |    4 +-
 sieve/bytecode.h                                   |    3 +-
 sieve/interp.c                                     |    8 +++--
 sieve/message.c                                    |    4 +-
 sieve/message.h                                    |    2 +-
 sieve/script.c                                     |   11 +++++++
 sieve/script.h                                     |    1 +
 sieve/sieve-lex.l                                  |    1 +
 sieve/sieve.y                                      |   31 ++++++++++++-------
 sieve/sieve_interface.h                            |    6 ++--
 sieve/sieved.c                                     |    2 +-
 sieve/test.c                                       |    5 ++-
 .../actionExtensions/uberExtensionActionScript.key |   10 ++++++
 .../actionExtensions/uberExtensionActionScript.s   |   13 +++++++-
 sieve/tree.h                                       |    2 +-
 20 files changed, 94 insertions(+), 42 deletions(-)



More information about the Cyrus-devel mailing list