Mercurial > dovecot > core-2.2
changeset 20254:5e50b5711dd9
doveadm-server: Handle istream send error.
author | Aki Tuomi <aki.tuomi@dovecot.fi> |
---|---|
date | Tue, 26 Apr 2016 19:26:34 +0300 |
parents | 3d700b8ae925 |
children | 8ccdc8b81cd5 |
files | src/doveadm/client-connection-http.c |
diffstat | 1 files changed, 7 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/doveadm/client-connection-http.c Fri Apr 29 21:36:31 2016 +0300 +++ b/src/doveadm/client-connection-http.c Tue Apr 26 19:26:34 2016 +0300 @@ -189,7 +189,13 @@ string_t *escaped; escaped = str_new(conn->client.pool, 10); o_stream_nsend_str(conn->client.output,"[\"doveadmResponse\","); - o_stream_send_istream(conn->client.output, result); + if (o_stream_send_istream(conn->client.output, result) < 0) { + if (conn->client.output->stream_errno != 0) { + i_fatal("write(%s) failed: %s", o_stream_get_name(conn->client.output), o_stream_get_error(conn->client.output)); + } else if (result->stream_errno != 0) { + i_fatal("read(%s) failed: %s", i_stream_get_name(result), i_stream_get_error(result)); + } else i_unreached(); /* either it's output or input error */ + } o_stream_nsend_str(conn->client.output,",\""); if (conn->method_id != NULL) { json_append_escaped(escaped, conn->method_id);