dovecot-2.2-pigeonhole: lib-smtp: util: program client: Fixed ha...
pigeonhole at rename-it.nl
pigeonhole at rename-it.nl
Tue May 5 08:41:53 UTC 2015
details: http://hg.rename-it.nl/dovecot-2.2-pigeonhole/rev/d71cfa2a1141
changeset: 2042:d71cfa2a1141
user: Stephan Bosch <stephan at rename-it.nl>
date: Tue May 05 10:41:45 2015 +0200
description:
lib-smtp: util: program client: Fixed handing of situation when no input is provided to external program used as a command.
Previous fixes still omitted a few important aspects:
Connect return result wasn't actually passed up to program_client_run().
Default exit code was wrong.
diffstat:
src/lib-sieve/util/program-client-remote.c | 2 +-
src/lib-sieve/util/program-client.c | 8 +++++---
tests/plugins/extprograms/execute/execute.svtest | 14 ++++++++++++++
3 files changed, 20 insertions(+), 4 deletions(-)
diffs (70 lines):
diff -r 1eb0362461f0 -r d71cfa2a1141 src/lib-sieve/util/program-client-remote.c
--- a/src/lib-sieve/util/program-client-remote.c Mon May 04 00:26:58 2015 +0200
+++ b/src/lib-sieve/util/program-client-remote.c Tue May 05 10:41:45 2015 +0200
@@ -208,7 +208,7 @@
program_client_fail(pclient, PROGRAM_CLIENT_ERROR_IO);
return;
}
-
+
(void)program_client_connected(pclient);
}
diff -r 1eb0362461f0 -r d71cfa2a1141 src/lib-sieve/util/program-client.c
--- a/src/lib-sieve/util/program-client.c Mon May 04 00:26:58 2015 +0200
+++ b/src/lib-sieve/util/program-client.c Tue May 05 10:41:45 2015 +0200
@@ -29,17 +29,19 @@
static int program_client_connect(struct program_client *pclient)
{
+ int ret;
+
if (pclient->set.client_connect_timeout_msecs != 0) {
pclient->to = timeout_add
(pclient->set.client_connect_timeout_msecs,
program_client_connect_timeout, pclient);
}
- if ( pclient->connect(pclient) < 0 ) {
+ if ( (ret=pclient->connect(pclient)) < 0 ) {
program_client_fail(pclient, PROGRAM_CLIENT_ERROR_IO);
return -1;
}
- return 1;
+ return ret;
}
static int program_client_close_output(struct program_client *pclient)
@@ -487,7 +489,7 @@
/* reset */
pclient->disconnected = FALSE;
- pclient->exit_code = 0;
+ pclient->exit_code = 1;
pclient->error = PROGRAM_CLIENT_ERROR_NONE;
pclient->ioloop = io_loop_create();
diff -r 1eb0362461f0 -r d71cfa2a1141 tests/plugins/extprograms/execute/execute.svtest
--- a/tests/plugins/extprograms/execute/execute.svtest Mon May 04 00:26:58 2015 +0200
+++ b/tests/plugins/extprograms/execute/execute.svtest Tue May 05 10:41:45 2015 +0200
@@ -23,6 +23,20 @@
}
test_result_reset;
+test "Execute - i/-" {
+ execute :input "FROP" "frame";
+}
+
+test_result_reset;
+test "Execute - -/o" {
+ execute :output "out" "frame";
+
+ if not string "${out}" "FRAMED { }" {
+ test_fail "wrong string returned: ${out}";
+ }
+}
+
+test_result_reset;
test "Execute - i/o" {
execute :input "FROP" :output "out" "frame";
More information about the dovecot-cvs
mailing list