Hmm...
Patch already applied. Reverse? [n]
This is what's in my working directory right now! :-P
You're fine with your changes for right now, but it'll be slightly
different when I commit because I've made other changes, too.
Aaron
On Fri, 2006-02-03 at 14:24 +0300, Oleg Lapshin wrote:
> Hello
>
> I need "filento" sieve functionality.
> But current dbmail-svn rev 1970 don't wont to do this.
>
> I create small patch and now my small and simple sieve script can work!
>
> Correct me, if I did smth wrong, please.
>
> Sieve script:
>
> require "fileinto";
> if header :is "X-Spam-Flag" "YES" {
> fileinto "SPAM";}
> else {
> fileinto "INBOX";}
>
> Patch:
>
> --- sortsieve.c.orig 2006-01-30 09:07:35.000000000 +0300
> +++ sortsieve.c 2006-02-03 13:39:23.000000000 +0300
> @@ -180,7 +180,7 @@
>
> m->mailbox = mailbox;
>
> - m->cancelkeep = 0;
> + m->cancelkeep = 1;
> return SIEVE2_OK;
> }
>
> @@ -262,6 +262,7 @@
> return SIEVE2_ERROR_FAIL;
> }
> sieve2_setvalue_string(s, "script", m->s_buf);
> +
> } else {
> return SIEVE2_ERROR_BADARGS;
> }
> @@ -269,6 +270,16 @@
> return SIEVE2_OK;
> }
>
> +int my_getheaders(sieve2_context_t *s, void *my)
> +{
> + struct my_context *m = (struct my_context *)my;
> + char *allh;
> + allh=dbmail_message_hdrs_to_string(m->message);
> + sieve2_setvalue_string(s, "allheaders", allh);
> + return SIEVE2_OK;
> +}
> +
> +
> int my_getheader(sieve2_context_t *s, void *my)
> {
> struct my_context *m = (struct my_context *)my;
> @@ -276,7 +287,7 @@
>
> header = sieve2_getvalue_string(s, "header");
>
> - // FIXME: Use GMIME to get a header.
> +//value = dbmail_message_get_header(m->message,header);
>
> sieve2_setvalue_string(s, "value", value);
>
> @@ -323,7 +334,12 @@
> { SIEVE2_ACTION_KEEP, my_keep },
>
> { SIEVE2_SCRIPT_GETSCRIPT, my_getscript },
> +
> + { SIEVE2_MESSAGE_GETHEADER, NULL },
> + { SIEVE2_MESSAGE_GETALLHEADERS, my_getheaders },
> +/*
> { SIEVE2_MESSAGE_GETHEADER, my_getheader },
> +*/
> { SIEVE2_MESSAGE_GETENVELOPE, my_getenvelope },
> { SIEVE2_MESSAGE_GETBODY, my_getbody },
> { SIEVE2_MESSAGE_GETSIZE, my_getsize },
> @@ -452,7 +468,10 @@
> my_context->user_idnr = user_idnr;
>
> res = db_get_sievescript_active(user_idnr, &my_context->script);
> +/*
> if (res != 0) {
> +*/
> + if (res == 0) {
> trace(TRACE_ERROR, "Error %d when calling
> db_getactive_sievescript\n", res);
> exitcode = 1;
> goto freesieve;
>
>
>
>