diff src/stream/ngx_stream_return_module.c @ 6674:38143d1abdec

Stream: the $status variable. The stream session status is one of the following: 200 - normal completion 403 - access forbidden 500 - internal server error 502 - bad gateway 503 - limit conn
author Roman Arutyunyan <arut@nginx.com>
date Thu, 11 Aug 2016 20:22:23 +0300
parents 8ed51b02f655
children 56fc55e32f23
line wrap: on
line diff
--- a/src/stream/ngx_stream_return_module.c
+++ b/src/stream/ngx_stream_return_module.c
@@ -83,7 +83,7 @@ ngx_stream_return_handler(ngx_stream_ses
     rscf = ngx_stream_get_module_srv_conf(s, ngx_stream_return_module);
 
     if (ngx_stream_complex_value(s, &rscf->text, &text) != NGX_OK) {
-        ngx_stream_close_connection(c);
+        ngx_stream_finalize_session(s, NGX_STREAM_INTERNAL_SERVER_ERROR);
         return;
     }
 
@@ -91,13 +91,13 @@ ngx_stream_return_handler(ngx_stream_ses
                    "stream return text: \"%V\"", &text);
 
     if (text.len == 0) {
-        ngx_stream_close_connection(c);
+        ngx_stream_finalize_session(s, NGX_STREAM_OK);
         return;
     }
 
     ctx = ngx_pcalloc(c->pool, sizeof(ngx_stream_return_ctx_t));
     if (ctx == NULL) {
-        ngx_stream_close_connection(c);
+        ngx_stream_finalize_session(s, NGX_STREAM_INTERNAL_SERVER_ERROR);
         return;
     }
 
@@ -126,7 +126,7 @@ ngx_stream_return_write_handler(ngx_even
 
     if (ev->timedout) {
         ngx_connection_error(c, NGX_ETIMEDOUT, "connection timed out");
-        ngx_stream_close_connection(c);
+        ngx_stream_finalize_session(s, NGX_STREAM_OK);
         return;
     }
 
@@ -137,7 +137,7 @@ ngx_stream_return_write_handler(ngx_even
 
         n = c->send(c, b->pos, b->last - b->pos);
         if (n == NGX_ERROR) {
-            ngx_stream_close_connection(c);
+            ngx_stream_finalize_session(s, NGX_STREAM_OK);
             return;
         }
 
@@ -145,14 +145,14 @@ ngx_stream_return_write_handler(ngx_even
             b->pos += n;
 
             if (b->pos == b->last) {
-                ngx_stream_close_connection(c);
+                ngx_stream_finalize_session(s, NGX_STREAM_OK);
                 return;
             }
         }
     }
 
     if (ngx_handle_write_event(ev, 0) != NGX_OK) {
-        ngx_stream_close_connection(c);
+        ngx_stream_finalize_session(s, NGX_STREAM_INTERNAL_SERVER_ERROR);
         return;
     }