+from urllib import unquote_plus
+
from twisted.python import log
from twisted.internet import defer
+#from twisted.protocols import htb
+#from twisted.protocols.policies import ThrottlingFactory
from twisted.web2 import server, http, resource, channel
from twisted.web2 import static, http_headers, responsecode
self.factory = channel.HTTPFactory(server.Site(self),
**{'maxPipeline': 10,
'betweenRequestsTimeOut': 60})
+# serverFilter = htb.HierarchicalBucketFilter()
+# serverBucket = htb.Bucket()
+#
+# # Cap total server traffic at 20 kB/s
+# serverBucket.maxburst = 20000
+# serverBucket.rate = 20000
+#
+# serverFilter.buckets[None] = serverBucket
+#
+# self.factory.protocol = htb.ShapedProtocolFactory(self.factory.protocol, serverFilter)
+# self.factory = ThrottlingFactory(self.factory, writeLimit = 300*1024)
return self.factory
def render(self, ctx):
<p>TODO: eventually some stats will be shown here.</body></html>""")
def locateChild(self, request, segments):
+ log.msg('Got HTTP request for %s from %s' % (request.uri, request.remoteAddr))
name = segments[0]
if name == '~':
if len(segments) != 2:
log.msg('Got a malformed request from %s' % request.remoteAddr)
return None, ()
- hash = segments[1]
+ hash = unquote_plus(segments[1])
files = self.db.lookupHash(hash)
if files:
log.msg('Sharing %s with %s' % (files[0]['path'].path, request.remoteAddr))