Johan Corveleyn <jcor...@gmail.com> writes: > Can someone explain again why ra_serf / serf can't just resend > requests, with C-L, whenever it has received a 411? So (after we know > it's HTTP/1.1) send every request optimistically assuming chunked > encoding, and fallback whenever we get a 411 (and perhaps remember the > fallback, so we downgrade that entire connection / session). > > Why is that not possible? Is it because (a) it's too hard to implement > (lots of code paths all over the place), (b) we can't resend requests > because we don't have them available in the right place anymore after > sending, (c) it would potentially break some ordering things (really? > why?), (d) it would require serf 1.4 anyway, or (e) something else?
Partly a), mostly c). It is relatively easy to do when ra_serf is processing requests syncronously. It gets much more difficult when ra_serf starts using pipelined requests as there may be outstanding requests when the 411 is received. I posted a patch that keeps track of outstanding requests and retries, it works in lots of cases but won't work in all cases. -- Philip Martin | Subversion Committer WANdisco | Non-Stop Data www.wandisco.com