From 2097b9d2e532624ab96cb548ac81d370bceea9fe Mon Sep 17 00:00:00 2001 From: Ryan Date: Fri, 4 Sep 2009 11:46:56 +0200 Subject: [PATCH] Upgrade evcom - disable EPIPE error output. --- deps/evcom/evcom.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/deps/evcom/evcom.c b/deps/evcom/evcom.c index 40e80de..4267d35 100644 --- a/deps/evcom/evcom.c +++ b/deps/evcom/evcom.c @@ -605,16 +605,20 @@ stream_send__data (evcom_stream *stream) } if (sent <= 0) { - if (errno == EAGAIN || errno == EINTR) { - assert(stream->send_action == stream_send__data); - return AGAIN; - } - - stream->errorno = errno; - evcom_perror("send()", errno); + switch (errno) { + case EAGAIN: + case EINTR: + assert(stream->send_action == stream_send__data); + return AGAIN; - stream->send_action = stream_send__close; - return OKAY; + default: + stream->errorno = errno; + evcom_perror("send()", errno); + /* pass through */ + case EPIPE: + stream->send_action = stream_send__close; + return OKAY; + } } ev_timer_again(D_LOOP_(stream) &stream->timeout_watcher); @@ -1151,6 +1155,9 @@ evcom_stream_write (evcom_stream *stream, const char *str, size_t len) if (sent < 0) { switch (errno) { + case EPIPE: + goto close; + case EINTR: case EAGAIN: sent = 0; -- 2.7.4