diff --git a/src/lib-sieve/plugins/imapflags/ext-imapflags-common.c b/src/lib-sieve/plugins/imapflags/ext-imapflags-common.c index 6a033cc4c9a414455a1355209c52e14b9bc503e2..c0ce9237de880003a198197b9ae87ef28220196f 100644 --- a/src/lib-sieve/plugins/imapflags/ext-imapflags-common.c +++ b/src/lib-sieve/plugins/imapflags/ext-imapflags-common.c @@ -37,6 +37,8 @@ bool ext_imapflags_command_validate arg2 = sieve_ast_argument_next(arg); if ( arg2 != NULL ) { + /* First check syntax sanity */ + if ( sieve_ast_argument_type(arg) != SAAT_STRING ) { sieve_command_validate_error(validator, cmd, @@ -45,7 +47,7 @@ bool ext_imapflags_command_validate cmd->command->identifier, sieve_ast_argument_name(arg)); return FALSE; } - + if ( sieve_ast_argument_type(arg2) != SAAT_STRING && sieve_ast_argument_type(arg2) != SAAT_STRING_LIST ) { @@ -56,7 +58,19 @@ bool ext_imapflags_command_validate cmd->command->identifier, sieve_ast_argument_name(arg2)); return FALSE; } - //sieve_validator_argument_activate(validator, arg); + + /* Then check whether the second argument is permitted */ + + /* IF !VARIABLE EXTENSION LOADED */ + { + sieve_command_validate_error(validator, cmd, + "the %s command only allows for the specification of a " + "variable name when the variables extension is active", + cmd->command->identifier); + return FALSE; + } + + //sieve_validator_argument_activate(validator, arg2); } return TRUE; } diff --git a/src/lib-sieve/plugins/imapflags/imapflags.sieve b/src/lib-sieve/plugins/imapflags/imapflags.sieve index 18d3d1a6d938d7d743bfcc3206aba1d57f866cab..28fc9f645ab0f002ff23bda7bf3ea25a6f565431 100644 --- a/src/lib-sieve/plugins/imapflags/imapflags.sieve +++ b/src/lib-sieve/plugins/imapflags/imapflags.sieve @@ -2,15 +2,15 @@ require "imapflags"; require "fileinto"; if header :contains "from" "boss@frobnitzm.example.edu" { - setflag "flagvar" "\\Flagged"; -# fileinto :flags "${flagvar}" "INBOX.From Boss"; + setflag "\\Flagged"; + fileinto "INBOX.From Boss"; } if header :contains "Disposition-Notification-To" "mel@example.com" { - addflag "flagvar" "$MDNRequired"; + addflag "$MDNRequired"; } if header :contains "from" "imap@cac.washington.example.edu" { - removeflag "flagvar" "$MDNRequired"; -# fileinto :flags "${flagvar}" "INBOX.imap-list"; + removeflag "$MDNRequired"; + fileinto "INBOX.imap-list"; }