ph10 2007/03/13 10:05:17 GMT
Modified files:
exim-doc/doc-txt ChangeLog
exim-src/src sieve.c
Log:
Applied a patch from the Sieve maintainer to fix a bug in "notify".
Revision Changes Path
1.490 +2 -0 exim/exim-doc/doc-txt/ChangeLog
1.25 +12 -3 exim/exim-src/src/sieve.c
Index: ChangeLog
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
retrieving revision 1.489
retrieving revision 1.490
diff -u -r1.489 -r1.490
--- ChangeLog 13 Mar 2007 09:59:07 -0000 1.489
+++ ChangeLog 13 Mar 2007 10:05:16 -0000 1.490
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.489 2007/03/13 09:59:07 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.490 2007/03/13 10:05:16 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -151,6 +151,8 @@
PH/34 Change HDA_SIZE in oracle.c from 256 to 512. This is needed for 64-bit
cpus.
+
+PH/35 Applied a patch from the Sieve maintainer which fixes a bug in "notify".
Exim version 4.66
Index: sieve.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/sieve.c,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- sieve.c 7 Feb 2007 14:41:13 -0000 1.24
+++ sieve.c 13 Mar 2007 10:05:17 -0000 1.25
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/sieve.c,v 1.24 2007/02/07 14:41:13 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/sieve.c,v 1.25 2007/03/13 10:05:17 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -2717,7 +2717,7 @@
debug_printf("Notification to `%s'.\n",method.character);
}
#ifndef COMPILE_SYNTAX_CHECKER
- if (exec)
+ if (exec && filter_test == FTEST_NONE)
{
string_item *p;
header_line *h;
@@ -2726,6 +2726,8 @@
if ((pid = child_open_exim2(&fd,envelope_to,envelope_to))>=1)
{
FILE *f;
+ uschar *buffer;
+ int buffer_capacity;
f = fdopen(fd, "wb");
for (h = header_list; h != NULL; h = h->next)
@@ -2733,8 +2735,15 @@
fprintf(f,"From: %s\n",from.length==-1 ? envelope_to : from.character);
for (p=recipient; p; p=p->next) fprintf(f,"To: %s\n",p->text);
if (header.length>0) fprintf(f,"%s",header.character);
- fprintf(f,"Subject: %s\n",message.length==-1 ? CUS "notification" : message.character);
- fprintf(f,"\n");
+ if (message.length==-1)
+ {
+ message.character=US"Notification";
+ message.length=Ustrlen(message.character);
+ }
+ /* Allocation is larger than neccessary, but enough even for split MIME words */
+ buffer_capacity=32+4*message.length;
+ buffer=store_get(buffer_capacity);
+ fprintf(f,"Subject: %s\n\n",parse_quote_2047(message.character, message.length, US"utf-8", buffer, buffer_capacity, TRUE));
if (body.length>0) fprintf(f,"%s\n",body.character);
fflush(f);
(void)fclose(f);