From b99af2f813b897e1fd49c87a7cf44241cad3a017 Mon Sep 17 00:00:00 2001 From: Guus Sliepen Date: Sun, 7 Oct 2012 11:45:54 +0200 Subject: [PATCH] Useful error messages when writing to a meta connection fails. --- src/net_socket.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/net_socket.c b/src/net_socket.c index 9bac38aa..986a7668 100644 --- a/src/net_socket.c +++ b/src/net_socket.c @@ -473,7 +473,15 @@ static void handle_meta_write(int sock, short events, void *data) { ssize_t outlen = send(c->socket, c->outbuf.data + c->outbuf.offset, c->outbuf.len - c->outbuf.offset, 0); if(outlen <= 0) { - logger(DEBUG_ALWAYS, LOG_ERR, "Onoes, outlen = %d (%s)", (int)outlen, strerror(errno)); + if(!errno || errno == EPIPE) { + logger(DEBUG_CONNECTIONS, LOG_NOTICE, "Connection closed by %s (%s)", c->name, c->hostname); + } else if(sockwouldblock(sockerrno)) { + logger(DEBUG_CONNECTIONS, LOG_DEBUG, "Sending %d bytes to %s (%s) would block", c->outbuf.len - c->outbuf.offset, c->name, c->hostname); + return; + } else { + logger(DEBUG_CONNECTIONS, LOG_ERR, "Could not send %d bytes of data to %s (%s): %s", c->outbuf.len - c->outbuf.offset, c->name, c->hostname, strerror(errno)); + } + terminate_connection(c, c->status.active); return; } -- 2.20.1