Projects
Kolab:3.4
cyrus-imapd
Log In
Username
Password
We truncated the diff of some files because they were too big. If you want to see the full diff for every file,
click here
.
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 75
View file
cyrus-imapd.spec
Changed
@@ -68,6 +68,7 @@ Patch0001: cyrus-imapd-2.5-default-twoskip.patch Patch0002: cyrus-imapd-2.5-ctl_mboxlist-mbtype.patch +Patch0003: cyrus-imapd-2.5-sieve-date-extension.patch BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) @@ -253,6 +254,7 @@ #%patch0001 -p1 %patch0002 -p1 +%patch0003 -p1 # only to update config.* files aclocal -I cmulocal
View file
cyrus-imapd-2.5-sieve-date-extension.patch
Added
@@ -0,0 +1,1323 @@ +From d54c1fb7cd90610d60a5263b6372b8d0cb1bbdb8 Mon Sep 17 00:00:00 2001 +From: "Guillermo A. Amaral" <gamaral@kdab.com> +Date: Thu, 31 Jul 2014 18:17:34 -0700 +Subject: [PATCH] Sieve Date Extension + +--- + cunit/sieve.testc | 317 ++++++++++++++++++++- + lib/imapoptions | 2 +- + sieve/bc_emit.c | 70 +++++ + sieve/bc_eval.c | 189 ++++++++++++ + sieve/bc_generate.c | 111 ++++++++ + sieve/bytecode.h | 34 ++- + sieve/script.c | 4 + + sieve/script.h | 1 + + sieve/sieve-lex.l | 4 + + sieve/sieve.y | 212 ++++++++++++++ + sieve/sieved.c | 59 ++++ + .../tests/testExtension/uberExtensionTestScript.s | 26 +- + sieve/tree.c | 7 + + sieve/tree.h | 10 + + 14 files changed, 1040 insertions(+), 6 deletions(-) + +diff --git a/cunit/sieve.testc b/cunit/sieve.testc +index 47b6070..e5390b1 100644 +--- a/cunit/sieve.testc ++++ b/cunit/sieve.testc +@@ -502,7 +502,7 @@ static int set_up(void) + "partition-"PARTITION": "DBDIR"/data\n" + "sievenotifier: mailto\n" + "sieve_extensions: fileinto reject vacation imapflags notify" \ +- " envelope body relational regex subaddress copy\n" ++ " envelope body relational regex subaddress copy date\n" + ); + libcyrus_init(); + return 0; +@@ -946,6 +946,321 @@ static void test_address_localpart(void) + context_cleanup(&ctx); + } + ++static void test_date_year(void) ++{ ++ static const char SCRIPT[] = ++ "if date :is \"received\" \"year\" [ \"1983\", \"1993\", \"2003\", \"2013\" ]\n" ++ "{redirect \"me@blah.com\";}\n" ++ ; ++ static const char MSG_TRUE[] = ++ "Date: Sat, 16 Nov 2013 12:46:49 +1100\r\n" ++ "Received: from localhost (localhost [127.0.0.1])\r\n" ++ " by mail.com (Cyrus v2.3.16) with LMTPA;\r\n" ++ " Tue, 16 Nov 2013 12:50:12 +1100\r\n" ++ "From: zme@true.com\r\n" ++ "To: you\r\n" ++ "Subject: simple address test\r\n" ++ "\r\n" ++ "blah\n" ++ ; ++ static const char MSG_FALSE[] = ++ "Date: Tue, 16 Nov 2010 12:46:49 +1100\r\n" ++ "Received: from localhost (localhost [127.0.0.1])\r\n" ++ " by mail.com (Cyrus v2.3.16) with LMTPA;\r\n" ++ " Tue, 16 Nov 2010 12:50:12 +1100\r\n" ++ "From: yme@false.com\r\n" ++ "To: you\r\n" ++ "Subject: simple address test\r\n" ++ "\r\n" ++ "blah\n" ++ ; ++ sieve_test_context_t ctx; ++ ++ context_setup(&ctx, SCRIPT); ++ CU_ASSERT_EQUAL(ctx.stats.errors, 0); ++ ++ run_message(&ctx, MSG_TRUE); ++ CU_ASSERT_EQUAL(ctx.stats.errors, 0); ++ CU_ASSERT_EQUAL(ctx.stats.actions, 1); ++ CU_ASSERT_EQUAL(ctx.stats.redirects, 1); ++ CU_ASSERT_EQUAL(ctx.stats.keeps, 0); ++ CU_ASSERT_STRING_EQUAL(ctx.redirected_to, "me@blah.com"); ++ ++ run_message(&ctx, MSG_FALSE); ++ CU_ASSERT_EQUAL(ctx.stats.errors, 0); ++ CU_ASSERT_EQUAL(ctx.stats.actions, 2); ++ CU_ASSERT_EQUAL(ctx.stats.redirects, 1); ++ CU_ASSERT_EQUAL(ctx.stats.keeps, 1); ++ CU_ASSERT_STRING_EQUAL(ctx.redirected_to, "me@blah.com"); ++ ++ context_cleanup(&ctx); ++} ++ ++static void test_date_zone_month(void) ++{ ++ static const char SCRIPT[] = ++ "if date :is :zone \"-0800\" \"date\" \"month\" \"11\"\n" ++ "{redirect \"me@blah.com\";}\n" ++ ; ++ static const char MSG_TRUE[] = ++ "Date: Fri, 1 Nov 2013 19:46:49 +1100\r\n" ++ "From: zme@true.com\r\n" ++ "To: you\r\n" ++ "Subject: simple address test\r\n" ++ "\r\n" ++ "blah\n" ++ ; ++ static const char MSG_FALSE[] = ++ "Date: Fri, 1 Nov 2013 11:46:49 +1100\r\n" ++ "From: yme@false.com\r\n" ++ "To: you\r\n" ++ "Subject: simple address test\r\n" ++ "\r\n" ++ "blah\n" ++ ; ++ sieve_test_context_t ctx; ++ ++ context_setup(&ctx, SCRIPT); ++ CU_ASSERT_EQUAL(ctx.stats.errors, 0); ++ ++ run_message(&ctx, MSG_TRUE); ++ CU_ASSERT_EQUAL(ctx.stats.errors, 0); ++ CU_ASSERT_EQUAL(ctx.stats.actions, 1); ++ CU_ASSERT_EQUAL(ctx.stats.redirects, 1); ++ CU_ASSERT_EQUAL(ctx.stats.keeps, 0); ++ CU_ASSERT_STRING_EQUAL(ctx.redirected_to, "me@blah.com"); ++ ++ run_message(&ctx, MSG_FALSE); ++ CU_ASSERT_EQUAL(ctx.stats.errors, 0); ++ CU_ASSERT_EQUAL(ctx.stats.actions, 2); ++ CU_ASSERT_EQUAL(ctx.stats.redirects, 1); ++ CU_ASSERT_EQUAL(ctx.stats.keeps, 1); ++ CU_ASSERT_STRING_EQUAL(ctx.redirected_to, "me@blah.com"); ++ ++ context_cleanup(&ctx); ++} ++ ++static void test_date_date(void) ++{ ++ static const char SCRIPT[] = ++ "if date :is :originalzone \"date\" \"date\" \"2013-11-02\"\n" ++ "{redirect \"me@blah.com\";}\n" ++ ; ++ static const char MSG_TRUE[] = ++ "Date: Sat, 2 Nov 2013 19:46:49 +1100\r\n" ++ "From: zme@true.com\r\n" ++ "To: you\r\n" ++ "Subject: simple address test\r\n" ++ "\r\n" ++ "blah\n" ++ ; ++ static const char MSG_FALSE[] = ++ "Date: Fri, 1 Nov 2013 19:45:49 +1100\r\n" ++ "From: yme@false.com\r\n" ++ "To: you\r\n" ++ "Subject: simple address test\r\n" ++ "\r\n" ++ "blah\n" ++ ; ++ sieve_test_context_t ctx; ++ ++ context_setup(&ctx, SCRIPT); ++ CU_ASSERT_EQUAL(ctx.stats.errors, 0); ++ ++ run_message(&ctx, MSG_TRUE); ++ CU_ASSERT_EQUAL(ctx.stats.errors, 0); ++ CU_ASSERT_EQUAL(ctx.stats.actions, 1); ++ CU_ASSERT_EQUAL(ctx.stats.redirects, 1); ++ CU_ASSERT_EQUAL(ctx.stats.keeps, 0); ++ CU_ASSERT_STRING_EQUAL(ctx.redirected_to, "me@blah.com"); ++ ++ run_message(&ctx, MSG_FALSE); ++ CU_ASSERT_EQUAL(ctx.stats.errors, 0); ++ CU_ASSERT_EQUAL(ctx.stats.actions, 2); ++ CU_ASSERT_EQUAL(ctx.stats.redirects, 1); ++ CU_ASSERT_EQUAL(ctx.stats.keeps, 1); ++ CU_ASSERT_STRING_EQUAL(ctx.redirected_to, "me@blah.com"); ++ ++ context_cleanup(&ctx); ++} ++ ++static void test_date_time(void) ++{ ++ static const char SCRIPT[] = ++ "if date :is :originalzone \"date\" \"time\" \"19:46:49\"\n" ++ "{redirect \"me@blah.com\";}\n" ++ ; ++ static const char MSG_TRUE[] = ++ "Date: Sat, 2 Nov 2013 19:46:49 +1100\r\n" ++ "From: zme@true.com\r\n" ++ "To: you\r\n" ++ "Subject: simple address test\r\n" ++ "\r\n" ++ "blah\n" ++ ; ++ static const char MSG_FALSE[] = ++ "Date: Sat, 2 Nov 2013 19:45:49 +1100\r\n" ++ "From: yme@false.com\r\n" ++ "To: you\r\n" ++ "Subject: simple address test\r\n" ++ "\r\n" ++ "blah\n" ++ ;
View file
debian.series
Changed
@@ -1,1 +1,2 @@ cyrus-imapd-2.5-ctl_mboxlist-mbtype.patch -p1 +cyrus-imapd-2.5-sieve-date-extension.patch -p1
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.