Rework the handling of message-bodies in requests to be closer to
RFC2616 and catch things we don't deal with better.
Move code to receive body from request into separate function,
FetchReqBody() so it can be invoked when center::STP_HIT.
Check read errors and make FetchReqBody() return an error code for
client/server side so we don't penalize backends for client trouble.
Make it a client error, for now, to send chunked encoding.
This also isolates the big stack buffer from the subsequent function
calls in Fetch() and will be saner if we ever add chunked-encoding
handling.
Only send the body to the backend on pass, otherwise discard it.
This is controlled via the sp->sendbody flag which is reset in at
STP_RECV and set it at STP_PASS.
In STP_HIT, on deliver, call FetchReqBody() to dispose of any body
the request might contain.
Filter Content-Length: headers out (c->b) on fetches, but not for pass.
Rewrite default vcl_recv{} to be take advantage of our new capabilities.
This should make PUT, DELETE, OPTIONS, and TRACE work as well as POST.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2353
d4fa192b-c00b-0410-8231-
f00ffab90ce4