Mercurial > hg > nginx
changeset 5078:10c74d3b15d1
Connection upgrade support in uwsgi and scgi modules.
Prodded by Roberto De Ioris.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Wed, 20 Feb 2013 16:41:05 +0000 |
parents | 9ea42922a395 |
children | 1c472e3b8c10 |
files | src/http/modules/ngx_http_scgi_module.c src/http/modules/ngx_http_uwsgi_module.c |
diffstat | 2 files changed, 18 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/http/modules/ngx_http_scgi_module.c Tue Feb 19 17:48:45 2013 +0000 +++ b/src/http/modules/ngx_http_scgi_module.c Wed Feb 20 16:41:05 2013 +0000 @@ -984,7 +984,7 @@ u = r->upstream; if (u->headers_in.status_n) { - return NGX_OK; + goto done; } if (u->headers_in.status) { @@ -1015,6 +1015,14 @@ u->state->status = u->headers_in.status_n; } + done: + + if (u->headers_in.status_n == NGX_HTTP_SWITCHING_PROTOCOLS + && r->headers_in.upgrade) + { + u->upgrade = 1; + } + return NGX_OK; }
--- a/src/http/modules/ngx_http_uwsgi_module.c Tue Feb 19 17:48:45 2013 +0000 +++ b/src/http/modules/ngx_http_uwsgi_module.c Wed Feb 20 16:41:05 2013 +0000 @@ -1018,7 +1018,7 @@ u = r->upstream; if (u->headers_in.status_n) { - return NGX_OK; + goto done; } if (u->headers_in.status) { @@ -1049,6 +1049,14 @@ u->state->status = u->headers_in.status_n; } + done: + + if (u->headers_in.status_n == NGX_HTTP_SWITCHING_PROTOCOLS + && r->headers_in.upgrade) + { + u->upgrade = 1; + } + return NGX_OK; }