10
10
* Finished implementation of spamtest, spamtestplus and virustest extensions.
11
11
These are not enabled by default and need to be activated with the
12
sieve_extensions setting. Documentation available in
12
sieve_extensions setting. Documentation available in
13
13
doc/spamtest-virustest.txt
14
+ Vacation extension: the from address of the generated reply is now by
14
+ Vacation extension: the from address of the generated reply is now by
15
15
default equal to whatever known recipient alias matched the headers of the
16
16
message. If it is one of the aliases specified with :addresses, it is used
17
in stead of the envelope recipient address that was used before.
18
+ Restructured and optimized the lexical scanner.
19
+ Added --with-docs configure option to allow disabling installation of
17
in stead of the envelope recipient address that was used before.
18
+ Restructured and optimized the lexical scanner.
19
+ Added --with-docs configure option to allow disabling installation of
21
21
- Accidentally omitted 'extern' in two declarations of global variables in
22
22
header files, causing compile failures on certain systems.
23
23
- Deprecated imapflags extension: fixed implicit assignment of flags. Turns out
24
24
this never really worked, but the effect of this bug was obscured by the
25
25
removeflag bug fixed in the previous release.
26
- Fixed various memset argument mixups in enotify extension. This caused
26
- Fixed various memset argument mixups in enotify extension. This caused
27
27
warnings on certain systems, but luckily no adverse effects at runtime.
29
29
v0.1.15 25-01-2010 Stephan Bosch <stephan@rename-it.nl>
32
32
- Adjusted notify method API for addition of new notification methods.
33
33
- Set default importance level to 'normal' (was 'high').
34
34
* Include extension: updated implementation towards most recent specification
68
68
v0.1.14 19-12-2009 Stephan Bosch <stephan@rename-it.nl>
70
* Made the imposed limits on the number of redirects and the number of
71
actions configurable. The settings are called sieve_max_actions and
70
* Made the imposed limits on the number of redirects and the number of
71
actions configurable. The settings are called sieve_max_actions and
72
72
sieve_max_redirects.
73
73
* Did a major rework of extension handling, making sure that no global state
74
74
is maintained. This change was triggered by problems that global state info
75
75
would cause for Dovecot v2.0, but it is also important for v1.2 as it
76
significantly cleans up the library implementation.
76
significantly cleans up the library implementation.
77
77
+ Made LDA Sieve plugin recognize the deliver_log_format setting.
78
78
+ Message headers produced from user-supplied data are now RFC2047-encoded if
79
79
necessary for outgoing messages. This is for example important for the
80
:subject argument of the vacation action.
81
+ Added support for the $text$ substitution in the deprecated notify
80
:subject argument of the vacation action.
81
+ Added support for the $text$ substitution in the deprecated notify
83
+ The subaddress extension now also accepts recipient_delimiter setting as an
84
alias for sieve_subaddress_sep setting. This anticipates the
85
recipient_delimiter setting in v2.0.
86
- Fixed logging of mailbox names. It logged the converted mUTF7 version in
83
+ The subaddress extension now also accepts recipient_delimiter setting as an
84
alias for sieve_subaddress_sep setting. This anticipates the
85
recipient_delimiter setting in v2.0.
86
- Fixed logging of mailbox names. It logged the converted mUTF7 version in
87
87
stead of the original UTF8 version supplied by the user.
88
88
- Fixed a minor memory leak in the multiscript support.
89
- Fixed a bug in the recompilation of Sieve scripts. Made sure that scripts
90
are only recompiled when the script file - or the symlink pointing to it -
89
- Fixed a bug in the recompilation of Sieve scripts. Made sure that scripts
90
are only recompiled when the script file - or the symlink pointing to it -
93
93
v0.1.13 18-10-2009 Stephan Bosch <stephan@rename-it.nl>
95
+ Body extension: implemented proper handling of the :raw transform and added
95
+ Body extension: implemented proper handling of the :raw transform and added
96
96
various new tests to the test suite. However, :content "multipart" and
97
:content "message/rfc822" are still not working.
98
+ Fixed race condition occuring when multiple instances are saving the same
97
:content "message/rfc822" are still not working.
98
+ Fixed race condition occuring when multiple instances are saving the same
99
99
binary (patch by Timo Sirainen).
100
100
+ Test suite: added support for testing multiscript execution.
101
- Made compiler more lenient towars missing CRLF at the end of the script in a
101
- Made compiler more lenient towars missing CRLF at the end of the script in a
103
- Body extension: don't give SKIP_BODY_BLOCK flag to message parser, we want
103
- Body extension: don't give SKIP_BODY_BLOCK flag to message parser, we want
104
104
the body! (patch by Timo Sirainen).
105
105
- Fixed handling of implicit side effects for multiscript execution.
106
- Fixed bugs in multiscript support; subsequent keep actions were not always
106
- Fixed bugs in multiscript support; subsequent keep actions were not always
107
107
merged correctly and implicit side effects were not always handled
109
109
- Fixed a segfault bug in the sieve-test tool occuring when compile fails.
110
- Fixed segfault bug in action procesing. It was triggered while merging side
110
- Fixed segfault bug in action procesing. It was triggered while merging side
111
111
effects in duplicate actions.
112
- Fixed bug in the Sieve plugin that caused it to try to stat() a NULL path,
113
yielding a 'Bad address' error.
112
- Fixed bug in the Sieve plugin that caused it to try to stat() a NULL path,
113
yielding a 'Bad address' error.
115
115
v0.1.12 21-08-2009 Stephan Bosch <stephan@rename-it.nl>
117
117
+ Testsuite: added support for testing binaries stored on disk.
118
+ Implemented the new date extension. This allows matching against date values
118
+ Implemented the new date extension. This allows matching against date values
119
119
in header fields and the current date at the time of script evaluation.
121
121
v0.1.11 08-08-2009 Stephan Bosch <stephan@rename-it.nl>
123
123
+ Built skeleton implementation for the date extension (RFC 5260). It
124
compiles, but it does not do anything useful yet. Therefore, it is not part
125
of the default compilation.
124
compiles, but it does not do anything useful yet. Therefore, it is not part
125
of the default compilation.
126
126
- Fixed ARM portability issues caused by char type not being signed on that
127
platform. Reading optional operands from a binary would fail for action side
128
effects. Also, an accidental mixup of an int return type with bool caused
129
the interpreter to continue on ARM even though an error occured.
127
platform. Reading optional operands from a binary would fail for action side
128
effects. Also, an accidental mixup of an int return type with bool caused
129
the interpreter to continue on ARM even though an error occured.
130
130
- Removed direct stdint.h includes to prevent portability issues.
131
131
- Fixed segfault bug in the handling of script open failures.
132
132
- Include: improved user error messages and system log messages.
133
133
- Fixed copy-paste mixup between sieve_after and sieve_before settings in the
134
LDA Sieve plugin. If only a sieve_after script was active, nothing would
134
LDA Sieve plugin. If only a sieve_after script was active, nothing would
135
135
have been executed. Patch by Mike Abbott.
136
- Include: fixed a bug in HOME substitution in the sieve_dir path. Surfaced in
136
- Include: fixed a bug in HOME substitution in the sieve_dir path. Surfaced in
139
139
v0.1.10 03-08-2009 Stephan Bosch <stephan@rename-it.nl>
141
* Changed action execution of fileinto and keep. These changes depend on API
141
* Changed action execution of fileinto and keep. These changes depend on API
142
142
additions in Dovecot, making this release depend on Dovecot v1.2.2 or newer.
143
143
* Further developed the sieve-filter command line tool. This required a few
144
changes to the action execution of the Sieve engine. The tool was
145
successfully tested on folders with a few 100k spam messages. However, the
146
commandline options are still incomplete, a man page is missing and it needs
147
much more testing before I can recommend anyone to use this tool.
148
+ Added support for the mailbox extension. This allows checking whether a
149
mailbox exists using the mailboxexists command and it adds the :create
150
argument to the fileinto command to create the mailbox when it is missing.
151
The :create feature is useless unless the Deliver LDA is run with the -n
144
changes to the action execution of the Sieve engine. The tool was
145
successfully tested on folders with a few 100k spam messages. However, the
146
commandline options are still incomplete, a man page is missing and it needs
147
much more testing before I can recommend anyone to use this tool.
148
+ Added support for the mailbox extension. This allows checking whether a
149
mailbox exists using the mailboxexists command and it adds the :create
150
argument to the fileinto command to create the mailbox when it is missing.
151
The :create feature is useless unless the Deliver LDA is run with the -n
153
153
+ Improved the testsuite with tests for message delivery. Messages stored
154
using keep and fileinto can be fed back into the Sieve engine for
154
using keep and fileinto can be fed back into the Sieve engine for
155
155
verification. This includes testing of applied IMAP flags.
156
+ Updated the man pages with the new method of specifying the supported
156
+ Updated the man pages with the new method of specifying the supported
157
157
extensions using + and - (for the -x parameter of the sieve tools)
158
158
+ Further developed the deprecated notify extension. A dummy for the denotify
159
command exists, meaning that its use does not cause an error anymore.
160
- Fixed a bug in the derivation of the binary path from the script path. A
159
command exists, meaning that its use does not cause an error anymore.
160
- Fixed a bug in the derivation of the binary path from the script path. A
161
161
bare filename would yield a path relative to root.
162
162
- Fixed a bug in the value matching code. The context data now uses a proper
163
163
pool in stead of the data stack. Bug reported by Jan Sechser.
164
- Fixed assertion fail in the include extension caused by missing
164
- Fixed assertion fail in the include extension caused by missing
165
165
initialization upon binary load. This bug surfaces only for stored
166
166
binaries. Bug reported by Tom Hendrikx.
167
- Fixed include error message for failed :global include. It mentioned the
167
- Fixed include error message for failed :global include. It mentioned the
168
168
wrong config parameter.
169
169
- Fixed broken wiki reference in an error message of the plugin about the
174
174
v0.1.9 22-07-2009 Stephan Bosch <stephan@rename-it.nl>
176
* Removed the unfinished sieve-filter tool from the default build. It is now
177
only built when the --with-unfinished-features switch is supplied during
176
* Removed the unfinished sieve-filter tool from the default build. It is now
177
only built when the --with-unfinished-features switch is supplied during
179
+ Started building support for the ereject version of the reject action,
180
which has a preference to use an SMTP/LMTP protocol error in stead of a
179
+ Started building support for the ereject version of the reject action,
180
which has a preference to use an SMTP/LMTP protocol error in stead of a
181
181
bounce message. This is to be used to make the Sieve plugin honour Deliver's
182
-e parameter. This is not yet finished and not built by default.
182
-e parameter. This is not yet finished and not built by default.
183
183
+ Improved 'Permission denied' error messages just like Dovecot does,
184
184
precisely specifying what permission is missing to access or create a file.
185
+ Added additional headers to the list of allowed headers for the address
186
test. The restrictive nature of the address test is not always appropriate.
185
+ Added additional headers to the list of allowed headers for the address
186
test. The restrictive nature of the address test is not always appropriate.
187
187
Still thinking of a better, less restrictive implementation.
188
188
+ Made the deprecated notify extension compatible with the old CMUSieve
189
189
plugin. However, the denotify command and the $text$ substitution are not
191
+ Made the discard action log a message to avoid confusion about disappearing
191
+ Made the discard action log a message to avoid confusion about disappearing
193
193
- Fixed behavior of fileinto when delivering into a namespace prefix. It now
194
194
uses silent delivery into INBOX as fallback.
195
- Fixed logging of folder namespace prefix upon delivery into a prefixed
195
- Fixed logging of folder namespace prefix upon delivery into a prefixed
196
196
namespace. Formerly it only logged the bare folder name.
197
197
- Fixed a potential segfault in the argument validation. It didn't surface
198
198
because no command could have a :tag followed by an associated parameter as
200
- Fixed segfault bug occuring in envelope test when performed on null (<>)
201
envelope path. The fix involves a rather large restructuring of the code to
200
- Fixed segfault bug occuring in envelope test when performed on null (<>)
201
envelope path. The fix involves a rather large restructuring of the code to
202
202
make sure envelope addresses are properly handled everywhere (bug reported
203
203
by Nikita Koshikov)
204
- Envelope: fixed bug in application of address parts; failure to obtain
204
- Envelope: fixed bug in application of address parts; failure to obtain
205
205
the part would cause inappropriate match success (bug reported by Ron Lee)
206
206
- Fixed extension conflict checks during validation. It could sometimes
207
produce useless errormessages. This is currently only used by the
207
produce useless errormessages. This is currently only used by the
208
208
deprecated extensions.
209
- Forgot to remove old explicit storage library dependency (patch by
209
- Forgot to remove old explicit storage library dependency (patch by
210
210
Arkadiusz Miskiewicz).
211
- Fixed compiler warnings on certain platforms regarding the use fwrite for
211
- Fixed compiler warnings on certain platforms regarding the use fwrite for
212
212
outgoing message construction
214
214
v0.1.8 12-07-2009 Stephan Bosch <stephan@rename-it.nl>
216
216
- Fixed AIX compile problem. For portability, the typeof operator is
218
218
+ Added partial support for the deprecated notify extension. However, it
219
219
turns out that the implementation provided by cmusieve is even older (2001),
220
220
meaning that this is currently not backwards compatible with cmusieve.
227
227
parameters in internal tool help output.
228
228
+ Enhanced extensions configuration, allowing to specify the enabled
229
229
extensions relatively to the default (patch by Steffen Kaiser).
230
- Forgot to initialize script execution status in Sieve plugin, causing
230
- Forgot to initialize script execution status in Sieve plugin, causing
231
231
segfaults on compile errors in specific conditions.
232
- Fixed logging in Sieve plugin for execution of default main script (went
232
- Fixed logging in Sieve plugin for execution of default main script (went
235
235
v0.1.6 18-06-2009 Stephan Bosch <stephan@rename-it.nl>
237
237
* Adjusted to changes in Dovecot to make it compile against v1.2.rc5
238
238
* Made default of sieve_dir setting match the ManageSieve implementation.
239
239
- Fixed a few problems in de body extension that caused assert failures in
242
242
v0.1.5 18-04-2009 Stephan Bosch <stephan@rename-it.nl>
244
* Ported the implementation of the Sieve include extension to the latest
245
draft. This means that the import and export commands are replaced by a new
244
* Ported the implementation of the Sieve include extension to the latest
245
draft. This means that the import and export commands are replaced by a new
246
246
command called global. The import and export commands are now DEPRICATED and
247
247
are mere aliases for the global command. The new specification also adds the
248
:once modifier to the include command. The also newly specified global.*
248
:once modifier to the include command. The also newly specified global.*
249
249
variable namespace is not implemented yet as support for variable namespaces
250
250
is currently missing.
251
251
* Did a major rework of the multiscript support for better error handling and
252
252
made sure that persistent global scripts (sieve_before/sieve_after) are
253
always executed, even when the user does not have a script of his own and
254
a global default is missing.
253
always executed, even when the user does not have a script of his own and
254
a global default is missing.
255
255
+ Provided basic support for the environment extension. Currenly, the name,
256
256
version and host items are useful. Others are pending.
257
257
+ Improved error message that is presented when an unknown Sieve extension is
258
258
provided as argument to the require command. It now notifies the user that
259
259
Sieve core commands do not need to be specified in require.
260
260
- Fixed bug in includes at levels deeper than one.
261
- Fixed bug in address matching that was caused by the failure to handle group
262
specifications. In dovecot, these are marked by address items with NULL
261
- Fixed bug in address matching that was caused by the failure to handle group
262
specifications. In dovecot, these are marked by address items with NULL
263
263
elements, which causes a segfault if not considered. The group 'undisclosed-
264
264
recipients:;' in particular triggered this bug. Bug reported by Bernhard
267
267
v0.1.4 21-03-2009 Stephan Bosch <stephan@rename-it.nl>
269
* Started work on the sieve-filter tool. With this command line tool it will
269
* Started work on the sieve-filter tool. With this command line tool it will
270
270
be possible to (re-)apply Sieve filters on a mail folder. It is currently
271
271
undocumented and far from functional.
272
+ Added a custom debug extension that provides the possibility to print debug
272
+ Added a custom debug extension that provides the possibility to print debug
273
273
messages from scripts executed by the Sieve tools.
274
274
- Fixed issue with opening relative paths as a mail file. Bug reported by Ian
296
296
separator other than '+'.
297
297
+ Compiler now warns about invalid header field names used for the header and
299
+ Vacation extension now properly generates a References header for the
299
+ Vacation extension now properly generates a References header for the
300
300
response message.
301
+ Added testing of basic result execution to the test suite. Also added
302
supportfor testing the outgoing messages produced by the Sieve interpreter.
301
+ Added testing of basic result execution to the test suite. Also added
302
supportfor testing the outgoing messages produced by the Sieve interpreter.
303
303
+ Included execution of the actual result in the sieve-test command line tool.
304
The undocumented sieve-exec tool that existed for this is now removed as
304
The undocumented sieve-exec tool that existed for this is now removed as
306
306
+ Added support for the now obsolete 'imapflags' extension for backwards
307
307
compatibility with CMUSieve. This also implements the mark/unmark commands.
308
- Fixed bugs in the regex extension: 1) if an optional match value did not in
308
- Fixed bugs in the regex extension: 1) if an optional match value did not in
309
309
fact match, subsequent match values would get unexpected indexes. 2) fixed
310
310
segfault bug occuring when regex is freed.
311
311
- Fixed bug in the use of the :from agrument for the vacation command. If this
312
312
address included a phrase part, the response would not be a valid RFC822
314
- Plugged a theoretical security hole occuring when a directory is opened as a
314
- Plugged a theoretical security hole occuring when a directory is opened as a
316
316
- Cleaned up and fixed various log messages.
317
- Fixed bug in the outgoing address verification. Addresses ending in ',' were
317
- Fixed bug in the outgoing address verification. Addresses ending in ',' were
318
318
erroneously accepted.
320
320
v0.1.2 26-11-2008 Stephan Bosch <stephan@rename-it.nl>
322
322
- Fixed important bug in the redirect action (and probably other actions like
323
323
reject and vacation that only send messages). This was a bug in the handling
324
of context information during the execution of actions. It caused the sieve
325
interpreter to crash with a segfault when redirect was executed.
324
of context information during the execution of actions. It caused the sieve
325
interpreter to crash with a segfault when redirect was executed.
327
327
v0.1.1 24-11-2008 Stephan Bosch <stephan@rename-it.nl>
329
* Re-enabled support for compiling against dovecot headers. Much like
330
cmusieve, command line tools like sievec and sieved are not compiled in this
329
* Re-enabled support for compiling against dovecot headers. Much like
330
cmusieve, command line tools like sievec and sieved are not compiled in this
332
332
* Started implementation of enotify extension. Not anywhere near finished
334
334
* Adapted to changes in Dovecot on various occasions, making this release
335
335
dependent on Dovecot >= v1.2.alpa4.
337
337
+ Improved logging of errors at specific occasions and added debug messages to
338
find script execution problems quicker.
339
+ Removed code duplication between command line tools and the test suite.
338
find script execution problems quicker.
339
+ Removed code duplication between command line tools and the test suite.
340
340
Also restructured the sources of the tools.
341
341
+ Added UTF-8 to UTF-7 folder name conversion for compatibility with IMAP.
342
+ Created man pages for the command line tools. These are automatically
342
+ Created man pages for the command line tools. These are automatically
343
343
installed upon 'make install'
344
344
+ Incorporated Valgrind support into the testsuite and fixed a few memory
345
345
leaks in the process.
346
- Fixed compile error surfacing for gcc3.4. Forgot mask argument for the
347
open() system call when the O_CREAT flag is specified. Bug found by
346
- Fixed compile error surfacing for gcc3.4. Forgot mask argument for the
347
open() system call when the O_CREAT flag is specified. Bug found by
349
349
- Fixed bug in the sievec tool. -d output was always written to stdout.
350
- Fixed important bug in the imap4flags extension. When no :flags argument is
350
- Fixed important bug in the imap4flags extension. When no :flags argument is
351
351
specified, the previous version would always use the final value of the
352
internal variable to set the flags. This means that modifications to the
353
internal variable also affected the bare fileinto/keep actions executed
354
earlier. This does not comply to the RFC.
352
internal variable to set the flags. This means that modifications to the
353
internal variable also affected the bare fileinto/keep actions executed
354
earlier. This does not comply to the RFC.
355
355
- Fixed bug in the include extension's import/export commands. Duplicate
356
356
import/exports caused problems.
357
- Fixed bug in the handling of non-existent scripts. Errors were sometimes
357
- Fixed bug in the handling of non-existent scripts. Errors were sometimes
359
359
- Dovecot omitted unfolding multi-line headers. This was added to the cmusieve
360
360
plugin after the code was incorporated into the new implementation. This is
361
now mplicitly fixed by concurrent change in Dovecot.
361
now mplicitly fixed by concurrent change in Dovecot.
363
363
v0.1.0 23-10-2008 Stephan Bosch <stephan@rename-it.nl>