]> jfr.im git - irc/quakenet/qwebirc.git/blobdiff - qwebirc/root.py
tidy up autobahn support -- now requires 0.17.2
[irc/quakenet/qwebirc.git] / qwebirc / root.py
index 36d58f8bd249fd385824b2f62add822304a1f64f..847648fb181c6f09b7e0e10d1584a886e6ba5eb3 100644 (file)
@@ -1,3 +1,4 @@
+from twisted.protocols.policies import TimeoutMixin
 from twisted.web import resource, server, static, http
 from twisted.internet import error, reactor
 import engines
@@ -34,16 +35,21 @@ class ProxyRequest(server.Request):
       return real_ip
       
     return fake_ip
-    
+
+class HTTPChannel(http.HTTPChannel):
+  def timeoutConnection(self):
+    self.transport.abortConnection()
+
 class RootSite(server.Site):
-  protocol = http.HTTPChannel
+  protocol = HTTPChannel
 
   if hasattr(config, "FORWARDED_FOR_HEADER"):
     requestFactory = ProxyRequest
 
-  def __init__(self, path):
+  def __init__(self, path, *args, **kwargs):
     root = RootResource()
-    server.Site.__init__(self, root, timeout=5)
+    kwargs["timeout"] = config.HTTP_REQUEST_TIMEOUT
+    server.Site.__init__(self, root, *args, **kwargs)
     services = {}
     services["StaticEngine"] = root.primaryChild = engines.StaticEngine(path)