changeset 6309:f8c9b1a93521 HEAD

If read/write to client failed with some error, log it.
author Timo Sirainen <tss@iki.fi>
date Fri, 24 Aug 2007 19:26:22 +0300
parents b44b090d7c07
children 15e10065a472
files src/imap/client.c
diffstat 1 files changed, 10 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/imap/client.c	Wed Aug 22 16:24:30 2007 +0300
+++ b/src/imap/client.c	Fri Aug 24 19:26:22 2007 +0300
@@ -91,6 +91,15 @@
 	return str_c(str);
 }
 
+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 ? "Disconnected" :
+		t_strdup_printf("Disconnected: %m");
+}
+
 void client_destroy(struct client *client, const char *reason)
 {
 	i_assert(!client->destroyed);
@@ -99,7 +108,7 @@
 	if (!client->disconnected) {
 		client->disconnected = TRUE;
 		if (reason == NULL)
-			reason = "Disconnected";
+			reason = client_get_disconnect_reason(client);
 		i_info("%s %s", reason, client_stats(client));
 	}