dovecot-2.2-pigeonhole: lib-sieve: util: program client: Fixed h...
pigeonhole at rename-it.nl
pigeonhole at rename-it.nl
Sun May 3 22:23:53 UTC 2015
details: http://hg.rename-it.nl/dovecot-2.2-pigeonhole/rev/05f8ce7b5c2e
changeset: 2040:05f8ce7b5c2e
user: Stephan Bosch <stephan at rename-it.nl>
date: Mon May 04 00:22:09 2015 +0200
description:
lib-sieve: util: program client: Fixed handling of connecting asynchronously.
diffstat:
src/lib-sieve/util/program-client-remote.c | 2 +-
src/lib-sieve/util/program-client.c | 7 +++----
2 files changed, 4 insertions(+), 5 deletions(-)
diffs (40 lines):
diff -r dd430dfa2ddb -r 05f8ce7b5c2e src/lib-sieve/util/program-client-remote.c
--- a/src/lib-sieve/util/program-client-remote.c Thu Apr 23 02:04:38 2015 +0200
+++ b/src/lib-sieve/util/program-client-remote.c Mon May 04 00:22:09 2015 +0200
@@ -239,7 +239,7 @@
!pclient->output_seekable ? -1 : fd );
pclient->fd_out = fd;
pclient->io = io_add(fd, IO_WRITE, program_client_remote_connected, pclient);
- return 1;
+ return 0;
}
static int program_client_remote_close_output(struct program_client *pclient)
diff -r dd430dfa2ddb -r 05f8ce7b5c2e src/lib-sieve/util/program-client.c
--- a/src/lib-sieve/util/program-client.c Thu Apr 23 02:04:38 2015 +0200
+++ b/src/lib-sieve/util/program-client.c Mon May 04 00:22:09 2015 +0200
@@ -490,13 +490,11 @@
pclient->exit_code = 0;
pclient->error = PROGRAM_CLIENT_ERROR_NONE;
-
pclient->ioloop = io_loop_create();
if ( program_client_connect(pclient) >= 0 ) {
/* run output */
- ret = 1;
- if ( pclient->program_output != NULL &&
+ if ( ret > 0 && pclient->program_output != NULL &&
(ret=o_stream_flush(pclient->program_output)) == 0 ) {
o_stream_set_flush_callback
(pclient->program_output, program_client_program_output, pclient);
@@ -505,7 +503,8 @@
/* run i/o event loop */
if ( ret < 0 ) {
pclient->error = PROGRAM_CLIENT_ERROR_IO;
- } else if ( ret == 0 || program_client_input_pending(pclient) ) {
+ } else if ( !pclient->disconnected &&
+ (ret == 0 || program_client_input_pending(pclient)) ) {
io_loop_run(pclient->ioloop);
}
More information about the dovecot-cvs
mailing list