Hi Christophe,
 If you are still looking for the solution, try the following patch in
icap_reqmod.c file. With this patch the icapReqModPassHttpBody function
called if the  icap->reqmod.http_entity.buf.size is zero, and at this
phase can handle correctly, the case that the
icap->flags.reqmod_http_entity_eof==1.

@@ -877,7 +876,7 @@
            icapParseChunkedBody(icap,
            icapReqModMemBufAppend, &icap->reqmod.http_entity.buf);
     }
-    if (icap->reqmod.http_entity.bytes_read >=
icap->request->content_length)
+    if (icap->chunk_size < 0 )
        icap->flags.reqmod_http_entity_eof = 1;

     if (!icap->flags.reqmod_http_entity_eof)
@@ -889,7 +888,7 @@
        icap->reqmod.http_entity.callback);
     debug(81, 3) ("%s:%d http_entity.buf.size=%d\n", __FILE__, __LINE__,
        icap->reqmod.http_entity.buf.size);
-    if (icap->reqmod.http_entity.callback &&
icap->reqmod.http_entity.buf.size) {
+    if (icap->reqmod.http_entity.callback /*&&
icap->reqmod.http_entity.buf.size*/) {
        icapReqModPassHttpBody(icap,
            icap->reqmod.http_entity.callback_buf,
            icap->reqmod.http_entity.callback_bufsize,




Christophe Boyanique wrote:
> 
> Hello,
> 
> Thanks for you support.
> 
> I tried the patch from Tsantilas:
>..................................................
> But there is a new problem.
> 
> After the conditionnal call to commSetSelect there is a conditionnal
> call to icapReqModPassHttpBody and this where is the problem:
> 
>     if (icap->reqmod.http_entity.callback &&
> icap->reqmod.http_entity.buf.size) {

At this point try to change the if to:
 if (icap->reqmod.http_entity.callback /*&&
icap->reqmod.http_entity.buf.size*/)

to remove the icap->reqmod.http_entity.buf.size from if.

Please, if you try it, tell me if still there is any problem here.
All test I done, worked for me, but I want a second opinion before
commit it to cvs .....

>         icapReqModPassHttpBody(icap,
>             icap->reqmod.http_entity.callback_buf,
>             icap->reqmod.http_entity.callback_bufsize,
>             icap->reqmod.http_entity.callback,
>             icap->reqmod.http_entity.callback_data);
>         icap->reqmod.http_entity.callback = NULL;
>         cbdataUnlock(icap->reqmod.http_entity.callback_data);
> 
>     }
>



Reply via email to