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

Re: HTTP Server Problem



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. 
 
-Kim 


Follow-Ups: