Mercurial > dovecot > core-2.2
changeset 20265:2e9253743a09
lmtp: Fixed error logging when writing to temp file
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Mon, 16 May 2016 19:16:55 +0300 |
parents | 0fd0fb05e2b3 |
children | bd22ff741f5d |
files | src/lmtp/commands.c |
diffstat | 1 files changed, 8 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lmtp/commands.c Mon May 16 15:49:08 2016 +0300 +++ b/src/lmtp/commands.c Mon May 16 19:16:55 2016 +0300 @@ -1171,7 +1171,6 @@ { struct client_state *state = &client->state; string_t *path; - ssize_t ret; int fd; if (state->mail_data_output != NULL) { @@ -1200,15 +1199,17 @@ state->mail_data_fd = fd; state->mail_data_output = o_stream_create_fd_file(fd, 0, FALSE); + o_stream_set_name(state->mail_data_output, str_c(path)); o_stream_cork(state->mail_data_output); - ret = o_stream_send(state->mail_data_output, - state->mail_data->data, state->mail_data->used); - if (ret != (ssize_t)state->mail_data->used) + o_stream_nsend(state->mail_data_output, + state->mail_data->data, state->mail_data->used); + o_stream_nsend(client->state.mail_data_output, data, size); + if (o_stream_nfinish(client->state.mail_data_output) < 0) { + i_error("write(%s) failed: %s", str_c(path), + o_stream_get_error(client->state.mail_data_output)); return -1; - if (o_stream_send(client->state.mail_data_output, - data, size) != (ssize_t)size) - return -1; + } return 0; }