Hi, I found this while digging inside mongrel to provide IO streaming for mongrel (and thus for Rack and Ramaze):
* In socket_error a local variable done is set, which has no effect. * done=() always sets to true, where it (for completeness sake) should honor the passed value. --- a/http_response.rb 2008-03-11 16:59:24.000000000 +0100 +++ b/http_response.rb 2008-03-11 17:02:20.000000000 +0100 @@ -129,7 +129,7 @@ def socket_error(details) # ignore these since it means the client closed off early @socket.close rescue nil - done = true + self.done = true raise details end @@ -150,9 +150,9 @@ # Used during error conditions to mark the response as "done" so there isn't any more processing # sent to the client. def done=(val) - @status_sent = true - @header_sent = true - @body_sent = true + @status_sent = val + @header_sent = val + @body_sent = val end def done * If done=() is never reverted, it might be more beneficial to replace done=(val) just by a done!() and call that in socket_error() instead. Regards, Jo -- Using Opera's revolutionary e-mail client: http://www.opera.com/mail/ _______________________________________________ Mongrel-users mailing list Mongrel-users@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-users