Hello,

I have a client I need to handle post requests for that uses
Content-Encoding: xml and Transfer-Encoding: chunked.

Now the Content-Encoding is no problem I plan on using sax to parse the
content.  The chunked transfer encoding is where I have run into issues.

I tracked it down to the part of the mod-python code that handles
reading the request body from apache.

In two places it uses:
rc = ap_setup_client_block(self->request_rec, REQUEST_CHUNKED_ERROR);

As a test, I modified the code to use REQUEST_CHUNKED_DECHUNK and it
worked great for me.  Now I imagine that this may cause some problems
for scripts using mod-python to handle requests but I couldn't think of
any that wouldn't already be quite serious with a request of MAX_INT
length.  What if anything am I missing and if I am not, could this
change be incorporated into the main tree?

Clark

Index: src/requestobject.c
===================================================================
--- src/requestobject.c (revision 510030)
+++ src/requestobject.c (working copy)
@@ -864,7 +864,7 @@
     if (! self->request_rec->read_length) {
 
         /* then do some initial setting up */
-        rc = ap_setup_client_block(self->request_rec, REQUEST_CHUNKED_ERROR);
+        rc = ap_setup_client_block(self->request_rec, REQUEST_CHUNKED_DECHUNK);
         if(rc != OK) {
             PyObject *val = PyInt_FromLong(rc);
             if (val == NULL)
@@ -964,7 +964,7 @@
     if (! self->request_rec->read_length) {
 
         /* then do some initial setting up */
-        rc = ap_setup_client_block(self->request_rec, REQUEST_CHUNKED_ERROR);
+        rc = ap_setup_client_block(self->request_rec, REQUEST_CHUNKED_DECHUNK);
 
         if (rc != OK) {
             PyObject *val = PyInt_FromLong(rc);

Reply via email to