From b2c5869fe24eff81a92bc233bfef374bdb7afc31 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Fri, 2 Aug 2013 09:22:31 +0200 Subject: Skip optional :all modified in address/envelope rule --- plugins/managesieve/lib/Roundcube/rcube_sieve_script.php | 3 ++- plugins/managesieve/tests/src/parser.out | 2 +- plugins/managesieve/tests/src/parser_enotify_b | 4 ++-- plugins/managesieve/tests/src/parser_index | 2 +- plugins/managesieve/tests/src/parser_notify_b | 4 ++-- 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/plugins/managesieve/lib/Roundcube/rcube_sieve_script.php b/plugins/managesieve/lib/Roundcube/rcube_sieve_script.php index a614c3b15..371b45d84 100644 --- a/plugins/managesieve/lib/Roundcube/rcube_sieve_script.php +++ b/plugins/managesieve/lib/Roundcube/rcube_sieve_script.php @@ -260,7 +260,8 @@ class rcube_sieve_script $this->add_index($test, $tests[$i], $exts); } - if (!empty($test['part'])) { + // :all address-part is optional, skip it + if (!empty($test['part']) && $test['part'] != 'all') { $tests[$i] .= ' :' . $test['part']; if ($test['part'] == 'user' || $test['part'] == 'detail') { array_push($exts, 'subaddress'); diff --git a/plugins/managesieve/tests/src/parser.out b/plugins/managesieve/tests/src/parser.out index 366515b06..cb0bad5e7 100644 --- a/plugins/managesieve/tests/src/parser.out +++ b/plugins/managesieve/tests/src/parser.out @@ -39,7 +39,7 @@ if true } fileinto "Test"; # rule:[address test] -if address :all :is "From" "nagios@domain.tld" +if address :is "From" "nagios@domain.tld" { fileinto "domain.tld"; stop; diff --git a/plugins/managesieve/tests/src/parser_enotify_b b/plugins/managesieve/tests/src/parser_enotify_b index 9a17eaf0c..a3011bac2 100644 --- a/plugins/managesieve/tests/src/parser_enotify_b +++ b/plugins/managesieve/tests/src/parser_enotify_b @@ -1,6 +1,6 @@ require ["enotify","envelope","variables"]; # rule:[from] -if envelope :all :matches "from" "*" +if envelope :matches "from" "*" { set "env_from" " [really: ${1}]"; } @@ -10,7 +10,7 @@ if header :matches "Subject" "*" set "subject" "${1}"; } # rule:[from notify] -if address :all :matches "from" "*" +if address :matches "from" "*" { set "from_addr" "${1}"; notify :message "${from_addr}${env_from}: ${subject}" "mailto:alm@example.com"; diff --git a/plugins/managesieve/tests/src/parser_index b/plugins/managesieve/tests/src/parser_index index 78aba9a55..ca9f86d56 100644 --- a/plugins/managesieve/tests/src/parser_index +++ b/plugins/managesieve/tests/src/parser_index @@ -12,7 +12,7 @@ if header :index 2 :contains ["From","To"] "test@domain.tld" stop; } # rule:[index-address] -if address :index 1 :all :is "From" "nagios@domain.tld" +if address :index 1 :is "From" "nagios@domain.tld" { fileinto "domain.tld"; stop; diff --git a/plugins/managesieve/tests/src/parser_notify_b b/plugins/managesieve/tests/src/parser_notify_b index 9a3ca803c..ab90ed48c 100644 --- a/plugins/managesieve/tests/src/parser_notify_b +++ b/plugins/managesieve/tests/src/parser_notify_b @@ -1,6 +1,6 @@ require ["envelope","notify","variables"]; # rule:[from] -if envelope :all :matches "from" "*" +if envelope :matches "from" "*" { set "env_from" " [really: ${1}]"; } @@ -10,7 +10,7 @@ if header :matches "Subject" "*" set "subject" "${1}"; } # rule:[from notify] -if address :all :matches "from" "*" +if address :matches "from" "*" { set "from_addr" "${1}"; notify :message "${from_addr}${env_from}: ${subject}" :method "sms:1234567890"; -- cgit v1.2.3