diff --git a/src/managesieve/managesieve-client.c b/src/managesieve/managesieve-client.c index 3608f91336396bba89deafb06a33599edf932a1f..af689e7bff075b7b5b63fa904e58db7ac0b9fbca 100644 --- a/src/managesieve/managesieve-client.c +++ b/src/managesieve/managesieve-client.c @@ -200,8 +200,12 @@ static const char *client_get_disconnect_reason(struct client *client) errno = client->input->stream_errno != 0 ? client->input->stream_errno : client->output->stream_errno; - return errno == 0 || errno == EPIPE ? "Connection closed" : - t_strdup_printf("Connection closed: %m"); + if (errno == 0 || errno == EPIPE) + return "Connection closed"; + return t_strdup_printf("Connection closed: %s", + client->input->stream_errno != 0 ? + i_stream_get_error(client->input) : + o_stream_get_error(client->output)); } void client_destroy(struct client *client, const char *reason)