Mercurial > hg > nginx
comparison src/http/ngx_http_spdy_filter_module.c @ 5249:725fb71ab1a6
SPDY: pass through the full status when available.
Avoid stripping the status text when proxying for compatibility with http.
author | Jim Radford <radford@galvanix.com> |
---|---|
date | Fri, 07 Jun 2013 13:16:00 -0700 |
parents | 5776804fff04 |
children | 4ef49081ef4c |
comparison
equal
deleted
inserted
replaced
5248:f5626ab8cb87 | 5249:725fb71ab1a6 |
---|---|
160 | 160 |
161 len = NGX_SPDY_NV_NUM_SIZE | 161 len = NGX_SPDY_NV_NUM_SIZE |
162 + ngx_http_spdy_nv_nsize("version") | 162 + ngx_http_spdy_nv_nsize("version") |
163 + ngx_http_spdy_nv_vsize("HTTP/1.1") | 163 + ngx_http_spdy_nv_vsize("HTTP/1.1") |
164 + ngx_http_spdy_nv_nsize("status") | 164 + ngx_http_spdy_nv_nsize("status") |
165 + ngx_http_spdy_nv_vsize("418"); | 165 + (r->headers_out.status_line.len |
166 ? NGX_SPDY_NV_VLEN_SIZE + r->headers_out.status_line.len | |
167 : ngx_http_spdy_nv_vsize("418")); | |
166 | 168 |
167 clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module); | 169 clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module); |
168 | 170 |
169 if (r->headers_out.server == NULL) { | 171 if (r->headers_out.server == NULL) { |
170 len += ngx_http_spdy_nv_nsize("server"); | 172 len += ngx_http_spdy_nv_nsize("server"); |
302 | 304 |
303 last = ngx_http_spdy_nv_write_name(last, "version"); | 305 last = ngx_http_spdy_nv_write_name(last, "version"); |
304 last = ngx_http_spdy_nv_write_val(last, "HTTP/1.1"); | 306 last = ngx_http_spdy_nv_write_val(last, "HTTP/1.1"); |
305 | 307 |
306 last = ngx_http_spdy_nv_write_name(last, "status"); | 308 last = ngx_http_spdy_nv_write_name(last, "status"); |
307 last = ngx_http_spdy_nv_write_vlen(last, 3); | 309 |
308 last = ngx_sprintf(last, "%03ui", r->headers_out.status); | 310 if (r->headers_out.status_line.len) { |
311 last = ngx_http_spdy_nv_write_vlen(last, r->headers_out.status_line.len); | |
312 last = ngx_cpymem(last, r->headers_out.status_line.data, | |
313 r->headers_out.status_line.len); | |
314 } else { | |
315 last = ngx_http_spdy_nv_write_vlen(last, 3); | |
316 last = ngx_sprintf(last, "%03ui", r->headers_out.status); | |
317 } | |
309 | 318 |
310 count = 2; | 319 count = 2; |
311 | 320 |
312 if (r->headers_out.server == NULL) { | 321 if (r->headers_out.server == NULL) { |
313 last = ngx_http_spdy_nv_write_name(last, "server"); | 322 last = ngx_http_spdy_nv_write_name(last, "server"); |