[ 
https://issues.apache.org/jira/browse/MODPYTHON-222?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12507696
 ] 

M Willson commented on MODPYTHON-222:
-------------------------------------

This would be useful, particularly for handling large PUT requests.

> Support for chunked transfer encoding on request content.
> ---------------------------------------------------------
>
>                 Key: MODPYTHON-222
>                 URL: https://issues.apache.org/jira/browse/MODPYTHON-222
>             Project: mod_python
>          Issue Type: New Feature
>          Components: core
>    Affects Versions: 3.3.1
>            Reporter: Graham Dumpleton
>
> It is currently not possible to use chunked transfer encoding on request 
> content delivered to a mod_python request handler.
> The use of chunked transfer encoding is explicitly blocked in C code by:
>         rc = ap_setup_client_block(self->request_rec, REQUEST_CHUNKED_ERROR);
> To allow chunked transfer encoding instead of REQUEST_CHUNKED_ERROR it would 
> be necessary to supply REQUEST_CHUNKED_DECHUNK.
> Problem is that it isn't that simple.
> First off, the problems associated with MODPYTHON-212 have to be fixed with 
> code being able to cope with there being no content length.
> The next issue is that req.read() method is currently documented as behaving 
> as:
>   If the len argument is negative or omitted, reads all data given by the 
> client.
> This means that can't have req.read() with no arguments mean give me 
> everything that is currently available in input buffers as everyone currently 
> expects it to return everything sent by client. Thus, to be able to process 
> streaming data one would have to supply an amount of data that one wants to 
> read. The code for that though will always try to ensure that that exact 
> amount of data is read and will block if not enough and not end of input. A 
> handler though may not want it to block and be happy with just getting what 
> is read and only expect it to block if nothing currently available.
> In other words, the current specification for how req.read() behaves is 
> incompatible with what would be required to support chunked transfer encoding 
> on request content.
> Not sure how this conflict can be resolved.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to