
varnish-bugs at varnish-cache
Aug 1, 2011, 2:07 AM
Views: 233
Permalink
|
|
#970: partial content code 206 - visible as '206' in varnishncsa and as '200' from VCL code
|
|
#970: partial content code 206 - visible as '206' in varnishncsa and as '200' from VCL code -------------------------------------------------+-------------------------- Reporter: jhalfmoon | Type: defect Status: new | Priority: normal Milestone: | Component: varnishd Version: 3.0.0 | Severity: normal Keywords: 206 partial content varnishncsa vcl | -------------------------------------------------+-------------------------- Hi there, It seems that when varnishd returns partial content to a browser, Varnishnsca properly logs the transfer with a code 206 'partial content', but logging the exact same transfer from VCL code, it returns code '200', which is incorrect. I have tried using VRT_r_obj_status, VRT_r_rest_status and VRT_r_beresp status to no avail. This is the case with both Varnish 2.1.5 and 3.0.0. Is this done on purpose by the code or can it be registered as a bug? This is how I test it (examples using Varnish 3.0.0): #=== The command to do the RANGE request (note the returncode 206 'partial content) === testproxy02 ~ # http_proxy=http://127.0.0.1:80 curl -v -r 500-1000 http://vi.nl . . Proxy-Connection: Keep-Alive < HTTP/1.1 206 Partial Content < Server: Apache . ...<output truncated>... #=== This is the output of varnishncsa (note the code '206')=== testproxy02 ~ # varnishncsa 127.0.0.1 - - [28/Jul/2011:17:17:23 +0200] "GET http://bla.nlhttp://bla.nl HTTP/1.1" 206 501 "-" "curl/7.15.5 (x86_64 -redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5" #=== This is the output I get in syslog (note the code '200') === testproxy02 ~ # tail -f /var/log/varnish/current code:200 127.0.0.1 - - "Thu, 28 Jul 2011 15:16:56 GMT" "GET http://bla.nl" 200 58944 "-" "curl/7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5" X:616508938 B:bla_nl V:bla.nl h:1 #=== This is the bit of inline C code used to do the loggin from VCL === int mycode = VRT_r_resp_status(sp); if (mycode == NULL) { mycode = 0; } syslog(LOG_DEBUG, "code:%u ", mycode ); . ...<output truncated>... #=== EOF === -- Ticket URL: <http://varnish-cache.org/trac/ticket/970> Varnish <http://varnish-cache.org/> The Varnish HTTP Accelerator _______________________________________________ varnish-bugs mailing list varnish-bugs [at] varnish-cache https://www.varnish-cache.org/lists/mailman/listinfo/varnish-bugs
|