[Prev][Next][Index][Thread]

Re: HTTP Server Problem



Kim Liu wrote:
> 
> I think I have at least identify one problem in the code. In HTMIMERq.c, at
> the end of the function HTMIMERequest_put_block(), the code looks like this:
> 
>     /* Check if we have written it all */
>     if (b) {
>         HTParentAnchor * entity = HTRequest_entityAnchor(me->request);
>         long cl = HTAnchor_length(entity);
>         if (STREAM_TRACE)
>         return (cl>=0 && HTNet_bytesWritten(net) >= cl) ?
>             HT_LOADED : PUTBLOCK(b, l);
>     }
>     return HT_OK;
> 
> I think the "if (STREAM_TRACE)" is a cut&paste mistake. It shouldn't be there.
> It makes the PUTBLOCK that actually pushes the data down the stream not being
> executed. Before I took this out, the server is only sending the header but
> not the entity body. Now the server is sending the entity body but somehow the
> client is still waiting for something even though it has received the whole
> entity body. The client just hangs on there and then timeouts.

	Bingo!  That explains why it worked fine when I had trace turned on!  
Thanks ...

	Z

-- 
Bill Rizzi	rizzi@softserv.com			Software Services
    Z		http://www.softserv.com/~rizzi		Santa Barbara, CA


References: