I am working an a python handler for mongrel2 and have run into a problem. It 
seems that Mongrel2 is not closing connections when sent an empty message.  
From what I can tell, handler_process_request used to call Request_disconnect. 
This was apparently moved so that the connection wasn't closed while there 
still was data in the queue.  Unfortunately, the dequeue side doesn't seem to 
catch the sentinel of a NULL string and in fact raises a spurious error.  


I admit I do not have much experience with this code, but I think this can be 
corrected by replacing the following in handler_process_request in src/handler.c

Connection_deliver_raw(conn, NULL);

with:

Connection_deliver_enqueue(conn, NULL, NULL)

Also, it would be nice if the fix for this can be incorporated into the 1.8 
release as a hotfix since this severely affects my handler, and other handlers 
as well.


Matt Hawn

Reply via email to