From fd9d0bd433f8de94bb20e6d9303e36e5c3ef4482 Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan@rename-it.nl>
Date: Sun, 19 Oct 2014 22:50:23 +0200
Subject: [PATCH] managesieve: If client gets disconnected due to iostream
 error, log the full error.

---
 src/managesieve/managesieve-client.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/managesieve/managesieve-client.c b/src/managesieve/managesieve-client.c
index 3608f9133..af689e7bf 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)
-- 
GitLab