You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

230 lines
8.3 KiB

# --- SDE-COPYRIGHT-NOTE-BEGIN ---
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
#
# Filename: package/.../dovecot-pigeonhole/dovecot-2.2-pigeonhole-0.4.0-0100-upstream-fixes.patch
# Copyright (C) 2013 The OpenSDE Project
#
# More information can be found in the files COPYING and README.
#
# This patch file is dual-licensed. It is available under the license the
# patched project is licensed under, as long as it is an OpenSource license
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
# of the GNU General Public License as published by the Free Software
# Foundation; either version 2 of the License, or (at your option) any later
# version.
# --- SDE-COPYRIGHT-NOTE-END ---
From 72a02fd7203a5d3422e7eaa3ff3a517b619402ae Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan@rename-it.nl>
Date: Thu, 9 May 2013 16:39:41 +0200
Subject: [PATCH] Forgot to update Dovecot version in README and man pages.
diff --git a/README b/README
index 19263a1..d4e68b4 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-Pigeonhole for Dovecot v2.1
+Pigeonhole for Dovecot v2.2
Introduction
============
@@ -100,8 +100,7 @@ following list outlines the implementation status of each supported extension:
copy (RFC 3894): fully supported.
body (RFC 5173): almost fully supported, but the text body-transform
- implementation is simple and some issues make it still not completely
- RFC compliant.
+ implementation is simple.
environment (RFC 5183): fully supported (v0.4.0+).
variables (RFC 5229): fully supported.
vacation (RFC 5230): fully supported.
diff --git a/doc/man/pigeonhole.7.in b/doc/man/pigeonhole.7.in
index f86d5e6..75db9ca 100644
--- a/doc/man/pigeonhole.7.in
+++ b/doc/man/pigeonhole.7.in
@@ -1,5 +1,5 @@
-.\" Copyright (c) 2010-2012 Pigeonhole authors, see the included COPYING file
-.TH "PIGEONHOLE" 7 "2012-01-07" "Pigeonhole for Dovecot v2.1" "Pigeonhole"
+.\" Copyright (c) 2010-2013 Pigeonhole authors, see the included COPYING file
+.TH "PIGEONHOLE" 7 "2013-05-09" "Pigeonhole for Dovecot v2.2" "Pigeonhole"
.\"------------------------------------------------------------------------
.SH NAME
pigeonhole \- Overview of the Pigeonhole project\(aqs Sieve support for the
diff --git a/doc/man/sieve-dump.1.in b/doc/man/sieve-dump.1.in
index faf886f..3ea65f7 100644
--- a/doc/man/sieve-dump.1.in
+++ b/doc/man/sieve-dump.1.in
@@ -1,5 +1,5 @@
-.\" Copyright (c) 2010-2012 Pigeonhole authors, see the included COPYING file
-.TH "SIEVE\-DUMP" 1 "2012-01-07" "Pigeonhole for Dovecot v2.1" "Pigeonhole"
+.\" Copyright (c) 2010-2013 Pigeonhole authors, see the included COPYING file
+.TH "SIEVE\-DUMP" 1 "2013-05-09" "Pigeonhole for Dovecot v2.2" "Pigeonhole"
.\"------------------------------------------------------------------------
.SH NAME
sieve\-dump \- Pigeonhole\(aqs Sieve script binary dump tool
diff --git a/doc/man/sieve-filter.1.in b/doc/man/sieve-filter.1.in
index 1566dfa..df3fc36 100644
--- a/doc/man/sieve-filter.1.in
+++ b/doc/man/sieve-filter.1.in
@@ -1,5 +1,5 @@
-.\" Copyright (c) 2010-2012 Pigeonhole authors, see the included COPYING file
-.TH "SIEVE\-FILTER" 1 "2012-01-07" "Pigeonhole for Dovecot v2.1" "Pigeonhole"
+.\" Copyright (c) 2010-2013 Pigeonhole authors, see the included COPYING file
+.TH "SIEVE\-FILTER" 1 "2013-05-09" "Pigeonhole for Dovecot v2.2" "Pigeonhole"
.SH NAME
sieve\-filter \- Pigeonhole\(aqs Sieve mailbox filter tool
diff --git a/doc/man/sieve-test.1.in b/doc/man/sieve-test.1.in
index 946c5b7..4331250 100644
--- a/doc/man/sieve-test.1.in
+++ b/doc/man/sieve-test.1.in
@@ -1,5 +1,5 @@
-.\" Copyright (c) 2010-2012 Pigeonhole authors, see the included COPYING file
-.TH "SIEVE\-TEST" 1 "2012-01-07" "Pigeonhole for Dovecot v2.1" "Pigeonhole"
+.\" Copyright (c) 2010-2013 Pigeonhole authors, see the included COPYING file
+.TH "SIEVE\-TEST" 1 "2013-05-09" "Pigeonhole for Dovecot v2.2" "Pigeonhole"
.SH NAME
sieve\-test \- Pigeonhole\(aqs Sieve script tester
.\"------------------------------------------------------------------------
diff --git a/doc/man/sievec.1.in b/doc/man/sievec.1.in
index 28ef9e3..9307800 100644
--- a/doc/man/sievec.1.in
+++ b/doc/man/sievec.1.in
@@ -1,5 +1,5 @@
-.\" Copyright (c) 2010-2012 Pigeonhole authors, see the included COPYING file
-.TH "SIEVEC" 1 "2012-01-07" "Pigeonhole for Dovecot v2.1" "Pigeonhole"
+.\" Copyright (c) 2010-2013 Pigeonhole authors, see the included COPYING file
+.TH "SIEVEC" 1 "2013-05-09" "Pigeonhole for Dovecot v2.2" "Pigeonhole"
.\"------------------------------------------------------------------------
.SH NAME
sievec \- Pigeonhole\(aqs Sieve script compiler
--
1.7.10.2
From 32ee54152c032b9e6f90bce9a6787de29a42ac4b Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan@rename-it.nl>
Date: Wed, 15 May 2013 21:59:32 +0200
Subject: [PATCH] lib-sieve: Fixed datastack problem in message header
composition.
diff --git a/src/lib-sieve/rfc2822.c b/src/lib-sieve/rfc2822.c
index fc2bb36..27f94d4 100644
--- a/src/lib-sieve/rfc2822.c
+++ b/src/lib-sieve/rfc2822.c
@@ -211,32 +211,26 @@ unsigned int rfc2822_header_append
void rfc2822_header_printf
(string_t *header, const char *name, const char *fmt, ...)
{
+ const char *body;
va_list args;
- T_BEGIN {
- const char *body;
+ va_start(args, fmt);
+ body = t_strdup_vprintf(fmt, args);
+ va_end(args);
- va_start(args, fmt);
- body = t_strdup_vprintf(fmt, args);
- va_end(args);
-
- rfc2822_header_write(header, name, body);
- } T_END;
+ rfc2822_header_write(header, name, body);
}
void rfc2822_header_utf8_printf
(string_t *header, const char *name, const char *fmt, ...)
{
+ string_t *body = t_str_new(256);
va_list args;
- T_BEGIN {
- string_t *body = t_str_new(256);
-
- va_start(args, fmt);
- message_header_encode(t_strdup_vprintf(fmt, args), body);
- va_end(args);
+ va_start(args, fmt);
+ message_header_encode(t_strdup_vprintf(fmt, args), body);
+ va_end(args);
- rfc2822_header_write(header, name, str_c(body));
- } T_END;
+ rfc2822_header_write(header, name, str_c(body));
}
--
1.7.10.2
From 5989f3dbb6dc5ad54d4d6e8fa5367e34b6cded34 Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan@rename-it.nl>
Date: Mon, 20 May 2013 21:20:04 +0200
Subject: [PATCH] Sieve extprograms plugin: Fixed interaction between pipe
command and remote script service. The output from the
script service was never read, causing a broken pipe error
at the script service. Apparently, this was broken since
the I/O handling for extprograms was last revised.
diff --git a/src/plugins/sieve-extprograms/script-client-remote.c b/src/plugins/sieve-extprograms/script-client-remote.c
index 54b8356..f437e04 100644
--- a/src/plugins/sieve-extprograms/script-client-remote.c
+++ b/src/plugins/sieve-extprograms/script-client-remote.c
@@ -183,7 +183,7 @@ static void script_client_remote_connected(struct script_client *sclient)
io_remove(&sclient->io);
script_client_init_streams(sclient);
- if ( sclient->output != NULL && !slclient->noreply ) {
+ if ( !slclient->noreply ) {
sclient->script_input = script_client_istream_create
(sclient, sclient->script_input);
}
diff --git a/src/plugins/sieve-extprograms/script-client.c b/src/plugins/sieve-extprograms/script-client.c
index 52832e8..06a5d5d 100644
--- a/src/plugins/sieve-extprograms/script-client.c
+++ b/src/plugins/sieve-extprograms/script-client.c
@@ -145,7 +145,7 @@ static int script_client_script_output(struct script_client *sclient)
if ( input == NULL ) {
o_stream_unref(&sclient->script_output);
- if ( sclient->output == NULL ) {
+ if ( sclient->script_input == NULL ) {
script_client_disconnect(sclient, FALSE);
} else {
sclient->close_output(sclient);
@@ -164,17 +164,19 @@ static void script_client_script_input(struct script_client *sclient)
size_t size;
int ret = 0;
- if ( input != NULL && output != NULL ) {
-
+ if ( input != NULL ) {
while ( (ret=i_stream_read_data(input, &data, &size, 0)) > 0 ) {
- ssize_t sent;
+ if ( output != NULL ) {
+ ssize_t sent;
- if ( (sent=o_stream_send(output, data, size)) < 0 ) {
- script_client_fail(sclient, SCRIPT_CLIENT_ERROR_IO);
- return;
+ if ( (sent=o_stream_send(output, data, size)) < 0 ) {
+ script_client_fail(sclient, SCRIPT_CLIENT_ERROR_IO);
+ return;
+ }
+ size = (size_t)sent;
}
- i_stream_skip(input, sent);
+ i_stream_skip(input, size);
}
if ( ret < 0 ) {
--
1.7.10.2