diff src/http/modules/proxy/ngx_http_proxy_handler.c @ 317:1308b98496a2

nginx-0.0.3-2004-04-15-19:34:36 import
author Igor Sysoev <igor@sysoev.ru>
date Thu, 15 Apr 2004 15:34:36 +0000
parents 39b6f2df45c0
children 159dd60d257a
line wrap: on
line diff
--- a/src/http/modules/proxy/ngx_http_proxy_handler.c
+++ b/src/http/modules/proxy/ngx_http_proxy_handler.c
@@ -428,18 +428,22 @@ void ngx_http_proxy_check_broken_connect
 
     err = ngx_socket_errno;
 
+    /*
+     * we do not need to disable the write event because
+     * that event has NGX_USE_CLEAR_EVENT type
+     */
+
     if (ev->write && (n >= 0 || err == NGX_EAGAIN)) {
         return;
     }
 
+    if ((ngx_event_flags & NGX_USE_LEVEL_EVENT) && ev->active) {
+        if (ngx_del_event(ev, NGX_READ_EVENT, 0) == NGX_ERROR) {
+            ngx_http_proxy_finalize_request(p, NGX_HTTP_INTERNAL_SERVER_ERROR);
+        }
+    }
+
     if (n > 0) {
-        if ((ngx_event_flags & NGX_USE_LEVEL_EVENT) && ev->active) {
-            if (ngx_del_event(ev, NGX_READ_EVENT, 0) == NGX_ERROR) {
-                ngx_http_proxy_finalize_request(p,
-                                                NGX_HTTP_INTERNAL_SERVER_ERROR);
-            }
-        }
-
         return;
     }