fixed DeferredResource using an attribute on twisted.web.http.Request not present...
[p2pool.git] / p2pool / util / deferred_resource.py
index dbc844e..a5537b8 100644 (file)
@@ -2,23 +2,24 @@ from __future__ import division
 
 from twisted.internet import defer
 from twisted.web import resource, server
+from twisted.python import log
 
 class DeferredResource(resource.Resource):
     def render(self, request):
         def finish(x):
-            if request._disconnected:
+            if request.channel is None: # disconnected
                 return
             if x is not None:
                 request.write(x)
             request.finish()
         
         def finish_error(fail):
-            if request._disconnected:
+            if request.channel is None: # disconnected
                 return
             request.setResponseCode(500) # won't do anything if already written to
             request.write('---ERROR---')
             request.finish()
-            fail.printTraceback()
+            log.err(fail, "Error in DeferredResource handler:")
         
         defer.maybeDeferred(resource.Resource.render, self, request).addCallbacks(finish, finish_error)
         return server.NOT_DONE_YET