dovecot-2.2-pigeonhole: Merged changes from Pigeonhole v0.2 tree.
pigeonhole at rename-it.nl
pigeonhole at rename-it.nl
Sun May 20 13:17:10 EEST 2012
details: http://hg.rename-it.nl/dovecot-2.2-pigeonhole/rev/258d83f111b9
changeset: 1630:258d83f111b9
user: Stephan Bosch <stephan at rename-it.nl>
date: Sun May 20 12:16:43 2012 +0200
description:
Merged changes from Pigeonhole v0.2 tree.
diffstat:
INSTALL | 57 +-
Makefile.am | 2 +
README | 10 +-
configure.in | 2 +
doc/Makefile.am | 7 +-
doc/editheader.txt | 51 --
doc/example-config/conf.d/90-sieve.conf | 14 +-
doc/extensions/editheader.txt | 51 ++
doc/extensions/include.txt | 32 +
doc/extensions/spamtest-virustest.txt | 140 ++++++
doc/extensions/vacation.txt | 95 ++++
doc/extensions/vnd.dovecot.duplicate.txt | 56 ++
doc/include.txt | 32 -
doc/rfc/Makefile.am | 32 +
doc/rfc/spec-bosch-sieve-duplicate.txt | 224 ++++++++++
doc/rfc/xml/reference.KEYWORDS.xml | 44 +
doc/rfc/xml/reference.SIEVE.xml | 17 +
doc/rfc/xml/spec-bosch-sieve-duplicate.xml | 159 +++++++
doc/spamtest-virustest.txt | 136 ------
doc/vacation.txt | 95 ----
src/lib-managesieve/managesieve-parser.c | 6 +-
src/lib-sieve-tool/mail-raw.c | 4 +-
src/lib-sieve/Makefile.am | 1 +
src/lib-sieve/edit-mail.c | 30 +-
src/lib-sieve/mcht-matches.c | 1 -
src/lib-sieve/plugins/body/ext-body-common.c | 13 +-
src/lib-sieve/plugins/editheader/ext-editheader-common.c | 3 +-
src/lib-sieve/plugins/imap4flags/tag-flags.c | 3 +
src/lib-sieve/plugins/include/cmd-include.c | 3 +-
src/lib-sieve/plugins/notify/ext-notify-common.c | 10 +-
src/lib-sieve/plugins/variables/ext-variables-modifiers.c | 4 +-
src/lib-sieve/plugins/variables/ext-variables-namespaces.c | 2 +-
src/lib-sieve/plugins/vnd.dovecot/Makefile.am | 2 +-
src/lib-sieve/plugins/vnd.dovecot/duplicate/Makefile.am | 20 +
src/lib-sieve/plugins/vnd.dovecot/duplicate/ext-duplicate-common.c | 120 +++++
src/lib-sieve/plugins/vnd.dovecot/duplicate/ext-duplicate-common.h | 40 +
src/lib-sieve/plugins/vnd.dovecot/duplicate/ext-duplicate.c | 53 ++
src/lib-sieve/plugins/vnd.dovecot/duplicate/tst-duplicate.c | 151 ++++++
src/lib-sieve/sieve-address.c | 23 +-
src/lib-sieve/sieve-ast.c | 20 +-
src/lib-sieve/sieve-ast.h | 6 +-
src/lib-sieve/sieve-binary-file.c | 2 +-
src/lib-sieve/sieve-commands.h | 2 +-
src/lib-sieve/sieve-extensions.c | 3 +-
src/lib-sieve/sieve-script-file.c | 6 +-
src/lib-sieve/sieve-script.c | 6 +-
src/lib-sieve/sieve-smtp.c | 2 +-
src/lib-sieve/sieve-validator.c | 10 +-
src/lib-sieve/sieve.c | 24 +
src/lib-sievestorage/sieve-storage-quota.c | 3 +-
src/managesieve-login/client-authenticate.c | 2 +-
src/managesieve-login/managesieve-login-settings-plugin.c | 2 +-
src/managesieve/cmd-putscript.c | 2 +-
src/plugins/lda-sieve/lda-sieve-plugin.c | 74 +-
src/sieve-tools/sieve-dump.c | 2 +-
src/sieve-tools/sieve-filter.c | 3 +-
src/sieve-tools/sieve-test.c | 6 +-
src/sieve-tools/sievec.c | 2 +-
src/testsuite/cmd-test-message.c | 3 +-
src/testsuite/testsuite.c | 2 +-
tests/extensions/vnd.dovecot/duplicate/errors.svtest | 18 +
tests/extensions/vnd.dovecot/duplicate/errors/syntax.sieve | 16 +
tests/extensions/vnd.dovecot/duplicate/execute.svtest | 12 +
63 files changed, 1508 insertions(+), 465 deletions(-)
diffs (truncated from 2803 to 300 lines):
diff -r 2841e6b2f973 -r 258d83f111b9 INSTALL
--- a/INSTALL Sun May 20 12:06:25 2012 +0200
+++ b/INSTALL Sun May 20 12:16:43 2012 +0200
@@ -260,15 +260,25 @@
config file control the execution sequence:
sieve_before =
+ sieve_before2 =
+ sieve_before3 = (etc..)
Path to a script file or a directory containing script files that need to be
- executed before the user's script. If the path points to a directory, all the
- Sieve scripts contained therein (with the proper .sieve extension) are
- executed. The order of execution is determined by the file names, using a
- normal 8bit per-character comparison.
+ executed before the user's personal script. If the path points to a
+ directory, all the Sieve scripts contained therein (with the proper .sieve
+ extension) are executed. The order of execution within that directory is
+ determined by the file names, using a normal 8bit per-character comparison.
+
+ Multiple script file or directory paths can be specified by appending an
+ increasing number. The Sieve scripts found from these paths are added to the
+ script execution sequence in the specified order. Reading the numbered
+ sieve_before settings stops at the first missing setting, so no numbers may
+ be skipped.
sieve_after =
- Identical to sieve_before, only the specified scripts are executed after the
- user's script (only when keep is still in effect!).
+ sieve_after2 =
+ sieve_after3 = (etc..)
+ Identical to sieve_before, but the specified scripts are executed after the
+ user's script (only when keep is still in effect, as explained below).
The script execution ends when the currently executing script in the sequence
does not yield a "keep" result: when the script terminates, the next script is
@@ -302,17 +312,29 @@
plugin {
...
- # Scripts executed before the user's script.
+ # Global scripts executed before the user's personal script.
# E.g. handling messages marked as dangerous
sieve_before = /var/lib/dovecot/sieve/discard-virusses.sieve
- # Scripts executed after the user's script (if keep is still in effect)
+ # User-specific scripts executed before the user's personal script.
+ # E.g. a vacation script managed through a non-ManageSieve GUI.
+ sieve_before2 = /var/vmail/%d/%n/sieve-before
+
+ # User-specific scripts executed after the user's personal script.
+ # (if keep is still in effect)
+ # E.g. user-specific default mail filing rules
+ sieve_after = /var/vmail/%d/%n/sieve-after
+
+ # Global scripts executed after the user's personal script
+ # (if keep is still in effect)
# E.g. default mail filing rules.
- sieve_after = /var/lib/dovecot/sieve/after.d/
+ sieve_after2 = /var/lib/dovecot/sieve/after.d/
}
-IMPORTANT: Be sure to manually pre-compile the scripts specified by sieve_before
-and sieve_after using the sievec tool, as explained in the README file.
+IMPORTANT: The scripts specified by sieve_before and sieve_after are often
+located in global locations to which the Sieve interpreter has no write access.
+In that case be sure to manually pre-compile those scripts using the sievec
+tool, as explained in the README file.
Sieve Interpreter - Extension Configuration
-------------------------------------------
@@ -324,7 +346,8 @@
to delete and add header fields.
The editheader extension requires explicit configuration and is not enabled
- for use by default. Refer to doc/editheader.txt for configuration information.
+ for use by default. Refer to doc/extensions/editheader.txt for configuration
+ information.
- Vacation extension:
@@ -332,8 +355,8 @@
automatic replies to incoming email messages.
The vacation extension is available by default, but it has its own specific
- configuration options. Refer to doc/vacation.txt for settings specific to the
- vacation extension.
+ configuration options. Refer to doc/extensions/vacation.txt for settings
+ specific to the vacation extension.
- Include extension:
@@ -341,8 +364,8 @@
into another.
The include extension is available by default, but it has its own specific
- configuration options. Refer to doc/include.txt for settings specific to the
- include extension.
+ configuration options. Refer to doc/extensions/include.txt for settings
+ specific to the include extension.
- Spamtest and Virustest extensions:
@@ -357,7 +380,7 @@
The spamtest, spamtestplus and virustest extensions require explicit
configuration and are not enabled for use by default. Refer to
- doc/spamtest-virustest.txt for configuration information.
+ doc/extensions/spamtest-virustest.txt for configuration information.
Sieve Interpreter - Migration from CMUSieve (Dovecot v1.0/v1.1)
---------------------------------------------------------------
diff -r 2841e6b2f973 -r 258d83f111b9 Makefile.am
--- a/Makefile.am Sun May 20 12:06:25 2012 +0200
+++ b/Makefile.am Sun May 20 12:16:43 2012 +0200
@@ -133,6 +133,8 @@
tests/extensions/editheader/protected.svtest \
tests/extensions/editheader/errors.svtest \
tests/extensions/vnd.dovecot/debug/execute.svtest \
+ tests/extensions/vnd.dovecot/duplicate/errors.svtest \
+ tests/extensions/vnd.dovecot/duplicate/execute.svtest \
tests/deprecated/notify/basic.svtest \
tests/deprecated/notify/mailto.svtest \
tests/deprecated/notify/errors.svtest \
diff -r 2841e6b2f973 -r 258d83f111b9 README
--- a/README Sun May 20 12:06:25 2012 +0200
+++ b/README Sun May 20 12:16:43 2012 +0200
@@ -209,11 +209,11 @@
sievec /var/lib/dovecot/sieve/global/
-This is necessary for scripts listed in the sieve_default, sieve_before and
-sieve_after settings. For global scripts that are only included in other scripts
-using the include extension, this step is not necessary, since included scripts
-are incorporated into the binary produced for the main script located in a
-user directory.
+This is often necessary for scripts listed in the sieve_default, sieve_before
+and sieve_after settings. For global scripts that are only included in other
+scripts using the include extension, this step is not necessary, since included
+scripts are incorporated into the binary produced for the main script located in
+a user directory.
Compile and Runtime Logging
===========================
diff -r 2841e6b2f973 -r 258d83f111b9 configure.in
--- a/configure.in Sun May 20 12:06:25 2012 +0200
+++ b/configure.in Sun May 20 12:16:43 2012 +0200
@@ -97,6 +97,7 @@
doc/man/Makefile
doc/example-config/Makefile
doc/example-config/conf.d/Makefile
+doc/rfc/Makefile
src/Makefile
src/lib-sieve/Makefile
src/lib-sieve/plugins/Makefile
@@ -121,6 +122,7 @@
src/lib-sieve/plugins/editheader/Makefile
src/lib-sieve/plugins/vnd.dovecot/Makefile
src/lib-sieve/plugins/vnd.dovecot/debug/Makefile
+src/lib-sieve/plugins/vnd.dovecot/duplicate/Makefile
src/lib-sieve-tool/Makefile
src/lib-sievestorage/Makefile
src/lib-managesieve/Makefile
diff -r 2841e6b2f973 -r 258d83f111b9 doc/Makefile.am
--- a/doc/Makefile.am Sun May 20 12:06:25 2012 +0200
+++ b/doc/Makefile.am Sun May 20 12:16:43 2012 +0200
@@ -1,15 +1,14 @@
-SUBDIRS = man example-config
+SUBDIRS = man example-config rfc
docfiles = \
- vacation.txt \
- spamtest-virustest.txt
+ script-location-dict.txt
if BUILD_DOCS
sieve_doc_DATA = $(docfiles)
endif
EXTRA_DIST = \
- rfc \
devel \
+ extensions \
$(docfiles)
diff -r 2841e6b2f973 -r 258d83f111b9 doc/editheader.txt
--- a/doc/editheader.txt Sun May 20 12:06:25 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-Editheader Extension
-
-Relevant specifications
-=======================
-
- RFC5293 - doc/rfc/editheader.rfc5293.txt
-
-Description
-===========
-
-The editheader extension [RFC5293] enables sieve scripts to interact with other
-components that consume or produce header fields by allowing the script to
-delete and add header fields.
-
-Configuration
-=============
-
-The editheader is not available by default and needs to be enabled explicitly by
-adding it to the sieve_extensions setting.
-
-The following settings can be configured for the editheader extension (default
-values are indicated):
-
-sieve_editheader_max_header_size = 2048
- The maximum size in bytes of a header field value passed to the addheader
- command. The minimum value for this setting is 1024 bytes. The value is in
- bytes, unless followed by a k(ilo).
-
-sieve_editheader_protected =
- A space-separated list of headers that cannot be added to nor removed from the
- message header. The `Received:' and `Auto-Submitted:' fields are always
- protected and the `Subject:' header cannot be protected, as required by the
- RFC specification; adding one of these headers to this setting has no effect.
-
-Invalid values for the settings above will make the Sieve interpreter log
-a warning and revert to the default values.
-
-Example
-=======
-
-plugin {
- # Use editheader
- sieve_extensions = +editheader
-
- # Header fiels must not exceed one 1k
- sieve_editheader_max_header_size = 1k
-
- # Protect special header
- sieve_editheader_protected = X-Verified
-}
-
diff -r 2841e6b2f973 -r 258d83f111b9 doc/example-config/conf.d/90-sieve.conf
--- a/doc/example-config/conf.d/90-sieve.conf Sun May 20 12:06:25 2012 +0200
+++ b/doc/example-config/conf.d/90-sieve.conf Sun May 20 12:16:43 2012 +0200
@@ -28,14 +28,20 @@
# Path to a script file or a directory containing script files that need to be
# executed before the user's script. If the path points to a directory, all
# the Sieve scripts contained therein (with the proper .sieve extension) are
- # executed. The order of execution is determined by the file names, using a
- # normal 8bit per-character comparison.
+ # executed. The order of execution within a directory is determined by the
+ # file names, using a normal 8bit per-character comparison. Multiple script
+ # file or directory paths can be specified by appending an increasing number.
#sieve_before =
+ #sieve_before2 =
+ #sieve_before3 = (etc...)
# Identical to sieve_before, only the specified scripts are executed after the
- # user's script (only when keep is still in effect!).
+ # user's script (only when keep is still in effect!). Multiple script file or
+ # directory paths can be specified by appending an increasing number.
#sieve_after =
-
+ #sieve_after2 =
+ #sieve_after2 = (etc...)
+
# Which Sieve language extensions are available to users. By default, all
# supported extensions are available, except for deprecated extensions or
# those that are still under development. Some system administrators may want
diff -r 2841e6b2f973 -r 258d83f111b9 doc/extensions/editheader.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/extensions/editheader.txt Sun May 20 12:16:43 2012 +0200
@@ -0,0 +1,51 @@
+Editheader Extension
+
+Relevant specifications
+=======================
+
+ RFC5293 - doc/rfc/editheader.rfc5293.txt
+
+Description
+===========
+
+The editheader extension [RFC5293] enables sieve scripts to interact with other
+components that consume or produce header fields by allowing the script to
+delete and add header fields.
+
+Configuration
+=============
+
+The editheader is not available by default and needs to be enabled explicitly by
+adding it to the sieve_extensions setting.
+
+The following settings can be configured for the editheader extension (default
+values are indicated):
+
+sieve_editheader_max_header_size = 2048
+ The maximum size in bytes of a header field value passed to the addheader
+ command. The minimum value for this setting is 1024 bytes. The value is in
+ bytes, unless followed by a k(ilo).
+
+sieve_editheader_protected =
More information about the dovecot-cvs
mailing list