[nginx] SPDY: fixed error handling in ngx_http_spdy_send_output_...

Valentin Bartenev vbart at nginx.com
Thu Mar 26 23:10:38 UTC 2015


details:   http://hg.nginx.org/nginx/rev/7ba52c995325
branches:  
changeset: 6058:7ba52c995325
user:      Valentin Bartenev <vbart at nginx.com>
date:      Mon Mar 23 20:47:46 2015 +0300
description:
SPDY: fixed error handling in ngx_http_spdy_send_output_queue().

diffstat:

 src/http/ngx_http_spdy.c |  20 ++++++++++++--------
 1 files changed, 12 insertions(+), 8 deletions(-)

diffs (43 lines):

diff -r 5c1b480ddcab -r 7ba52c995325 src/http/ngx_http_spdy.c
--- a/src/http/ngx_http_spdy.c	Thu Mar 26 17:36:39 2015 +0300
+++ b/src/http/ngx_http_spdy.c	Mon Mar 23 20:47:46 2015 +0300
@@ -700,20 +700,14 @@ ngx_http_spdy_send_output_queue(ngx_http
     cl = c->send_chain(c, cl, 0);
 
     if (cl == NGX_CHAIN_ERROR) {
-        c->error = 1;
-
-        if (!sc->blocked) {
-            ngx_post_event(wev, &ngx_posted_events);
-        }
-
-        return NGX_ERROR;
+        goto error;
     }
 
     clcf = ngx_http_get_module_loc_conf(sc->http_connection->conf_ctx,
                                         ngx_http_core_module);
 
     if (ngx_handle_write_event(wev, clcf->send_lowat) != NGX_OK) {
-        return NGX_ERROR; /* FIXME */
+        goto error;
     }
 
     if (cl) {
@@ -751,6 +745,16 @@ ngx_http_spdy_send_output_queue(ngx_http
     sc->last_out = frame;
 
     return NGX_OK;
+
+error:
+
+    c->error = 1;
+
+    if (!sc->blocked) {
+        ngx_post_event(wev, &ngx_posted_events);
+    }
+
+    return NGX_ERROR;
 }
 
 



More information about the nginx-devel mailing list