This is a replacement to my previous patch which actaully includes the buffer length handling.
# HG changeset patch # User Jim Radford <radf...@galvanix.com> # Date 1369952377 25200 # Node ID 52d7b6082129c90275579fa3667cce3f537cbd09 # Parent 00dbfac67e48a8fe20802287b6fca50950178b8b SPDY: Allow returning the full status line diff -r 00dbfac67e48 -r 52d7b6082129 src/http/ngx_http_spdy_filter_module.c --- a/src/http/ngx_http_spdy_filter_module.c Thu May 30 18:23:05 2013 +0400 +++ b/src/http/ngx_http_spdy_filter_module.c Thu May 30 15:19:37 2013 -0700 @@ -162,7 +162,9 @@ + ngx_http_spdy_nv_nsize("version") + ngx_http_spdy_nv_vsize("HTTP/1.1") + ngx_http_spdy_nv_nsize("status") - + ngx_http_spdy_nv_vsize("418"); + + (r->headers_out.status_line.len + ? NGX_SPDY_NV_VLEN_SIZE + r->headers_out.status_line.len + : ngx_http_spdy_nv_vsize("418")); clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module); @@ -304,8 +306,14 @@ last = ngx_http_spdy_nv_write_val(last, "HTTP/1.1"); last = ngx_http_spdy_nv_write_name(last, "status"); - last = ngx_spdy_frame_write_uint16(last, 3); - last = ngx_sprintf(last, "%03ui", r->headers_out.status); + if (r->headers_out.status_line.len) { + last = ngx_http_spdy_nv_write_vlen(last, r->headers_out.status_line.len); + last = ngx_cpymem(last, r->headers_out.status_line.data, + r->headers_out.status_line.len); + } else { + last = ngx_spdy_frame_write_uint16(last, 3); + last = ngx_sprintf(last, "%03ui", r->headers_out.status); + } count = 2; _______________________________________________ nginx-devel mailing list nginx-devel@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-devel