Looks like you are doing good progress in the right direction. Good work!
----- Ursprungsmeddelande -----
> Dechunk incoming requests as needed and pipeline them to the server side.
> 
> The server side will eventually either chunk the request or fail. That 
> code is not ready yet and is not a part of this patch. This patch iis 
> not enough because the dechunked requests end up being sent without 
> chunking and without Content-Length. However, these client-side changes 
> are ready and seem to be working. It may be easier to review them now, 
> without the server-side code.
> 
> Details are below.
> 
> 
> Removed clientIsRequestBodyValid() as unused. It was called with a 
> content-length>0 precondition that made the function always return true.
> 
> Removed old dechunking hack that was trying to buffering the entire 
> request body, pretending that we are still reading the headers. Adjusted 
> related code. More work may be needed to identify client-side code that 
> assumes the request size is always known.
> 
> Removed ConnStateData::bodySizeLeft() because we do not always know how 
> much body is left to read -- chunked requests do not have known sizes 
> until we read the last-chunk. Moreover, it was possibly used wrong 
> because sometimes we want to know whether we want to comm_read more body 
> bytes and sometimes we want to know whether we want to "produce" more 
> body bytes (i.e., copy already read bytes into the BodyPipe buffer, 
> which can get full).
> 
> Added ConnStateData::mayNeedToReadMoreBody() to replace 
> conn->bodySizeLeft() with something more usable and precise.
> 
> Removed my wrong XXX related to closing after initiateClose.
> 
> Removed my(?) XXX related to endless chunked requests. There is nothing 
> special about them, I guess, as a non-chunked request can be virtually 
> endless as well if it has a huge Content-Length value.
> 
> Use commIsHalfClosed() instead of fd_table[fd].flags.socket_eof for 
> consistency with other client-side code and to improve readability. I 
> think these should return the same value in our context but I am not
> sure.
> 
> Correctly handle identity encoding. TODO: double check that it is still 
> in the HTTP standard.
> 
> Fixed HttpStateData::doneSendingRequestBody to call its parent. I am not 
> sure it helps with correctly processing transactions, but the parent 
> method was designed to be called, and calling it make the transaction 
> state more clear.
> 
> 
> Thank you,
> 
> Alex.
> 
<Bilaga>   dechunk-requests-t0.patch
Received on Sat Sep 04 2010 - 22:33:07 MDT
This archive was generated by hypermail 2.2.0 : Sun Sep 05 2010 - 12:00:04 MDT