[nginx] svn commit: r4916 - trunk/src/http
mdounin at mdounin.ru
mdounin at mdounin.ru
Fri Nov 16 18:29:19 UTC 2012
Author: mdounin
Date: 2012-11-16 18:29:19 +0000 (Fri, 16 Nov 2012)
New Revision: 4916
URL: http://trac.nginx.org/nginx/changeset/4916/nginx
Log:
Upstream: better detection of connect() failures with kqueue.
Pending EOF might be reported on both read and write events, whichever
comes first, so check both of them.
Patch by Yichun Zhang (agentzh), slightly modified.
Modified:
trunk/src/http/ngx_http_upstream.c
Modified: trunk/src/http/ngx_http_upstream.c
===================================================================
--- trunk/src/http/ngx_http_upstream.c 2012-11-16 12:18:05 UTC (rev 4915)
+++ trunk/src/http/ngx_http_upstream.c 2012-11-16 18:29:19 UTC (rev 4916)
@@ -1809,9 +1809,16 @@
#if (NGX_HAVE_KQUEUE)
if (ngx_event_flags & NGX_USE_KQUEUE_EVENT) {
- if (c->write->pending_eof) {
+ if (c->write->pending_eof || c->read->pending_eof) {
+ if (c->write->pending_eof) {
+ err = c->write->kq_errno;
+
+ } else {
+ err = c->read->kq_errno;
+ }
+
c->log->action = "connecting to upstream";
- (void) ngx_connection_error(c, c->write->kq_errno,
+ (void) ngx_connection_error(c, err,
"kevent() reported that connect() failed");
return NGX_ERROR;
}
More information about the nginx-devel
mailing list