From 9897d28bb57f2aa84f91b1a8594c7ecd30be8446 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 9 Jul 2013 00:14:56 +0000 Subject: http: include IP:PORT in "client died" message This should hopefully make failures easier to track down. --- http.c | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/http.c b/http.c index 3ba33bb..d147eb1 100644 --- a/http.c +++ b/http.c @@ -205,6 +205,28 @@ static enum mog_next http_run(struct mog_fd *mfd, struct mog_rbuf *rbuf, return MOG_NEXT_ACTIVE; } +static MOG_NOINLINE enum mog_next +http_client_died(struct mog_fd *mfd, size_t buf_len, int save_err) +{ + struct mog_ni ni; + + /* TODO: support nameinfo */ + TRACE(CMOGSTORED_HTTP_RDERR(buf_len, save_err)); + + switch (save_err) { + case ECONNRESET: + case ENOTCONN: + return MOG_NEXT_CLOSE; + /* these errors are too common to log, normally */ + } + + mog_nameinfo(&mfd->as.http.mpa, &ni); + errno = save_err; + syslog(LOG_NOTICE, "http client died: %m (%s%s)", + ni.ni_host, ni.ni_serv); + return MOG_NEXT_CLOSE; +} + static enum mog_next __http_queue_step(struct mog_fd *mfd) { struct mog_http *http = &mfd->as.http; @@ -281,15 +303,8 @@ parse: } return MOG_NEXT_WAIT_RD; case EINTR: goto reread; - case ECONNRESET: - case ENOTCONN: - /* these errors are too common to log, normally */ - TRACE(CMOGSTORED_HTTP_RDERR(buf_len, errno)); - return MOG_NEXT_CLOSE; default: - TRACE(CMOGSTORED_HTTP_RDERR(buf_len, errno)); - syslog(LOG_NOTICE, "http client died: %m"); - return MOG_NEXT_CLOSE; + return http_client_died(mfd, buf_len, errno); } } -- cgit v1.2.3-24-ge0c7