X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=apt_dht%2FHTTPServer.py;h=20f94cdfa5e3088193591455b269a1fbd6963b15;hb=f510a1c7954bf43a8817b92c31e05bdb3a891dd5;hp=38c7c0912d7da63815e40638ca1cc0ca61e468a9;hpb=d1a2027b26e3791e7e05f1247f00c279ce46ce99;p=quix0rs-apt-p2p.git diff --git a/apt_dht/HTTPServer.py b/apt_dht/HTTPServer.py index 38c7c09..20f94cd 100644 --- a/apt_dht/HTTPServer.py +++ b/apt_dht/HTTPServer.py @@ -1,6 +1,10 @@ +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 @@ -40,10 +44,10 @@ class FileDownloader(static.File): class TopLevel(resource.Resource): addSlash = True - def __init__(self, directory, manager): + def __init__(self, directory, db, manager): self.directory = directory + self.db = db self.manager = manager - self.subdirs = {} self.factory = None def getHTTPFactory(self): @@ -51,16 +55,19 @@ class TopLevel(resource.Resource): 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 setDirectories(self, dirs): - self.subdirs = {} - for k in dirs: - # Don't allow empty subdirectory - if k: - self.subdirs[k] = dirs[k] - log.msg('new subdirectories initialized') - def render(self, ctx): return http.Response( 200, @@ -70,10 +77,19 @@ class TopLevel(resource.Resource):
TODO: eventually some stats will be shown here.