def write(self, data):
if self.throttle:
ThrottlingProtocol.write(self, data)
- if stats:
- stats.sentBytes(len(data))
+ if self.stats:
+ self.stats.sentBytes(len(data))
else:
ProtocolWrapper.write(self, data)
def writeSequence(self, seq):
if self.throttle:
ThrottlingProtocol.writeSequence(self, seq)
- if stats:
- stats.sentBytes(reduce(operator.add, map(len, seq)))
+ if self.stats:
+ self.stats.sentBytes(reduce(operator.add, map(len, seq)))
else:
ProtocolWrapper.writeSequence(self, seq)
'betweenRequestsTimeOut': 60})
self.factory = ThrottlingFactory(self.factory, writeLimit = self.uploadLimit)
self.factory.protocol = UploadThrottlingProtocol
- self.factory.protocol.stats = self.manager.stats
+ if self.manager:
+ self.factory.protocol.stats = self.manager.stats
return self.factory
def render(self, ctx):
else:
log.msg('Hash could not be found in database: %r' % hash)
- # Only local requests (apt) get past this point
- if request.remoteAddr.host != "127.0.0.1":
- log.msg('Blocked illegal access to %s from %s' % (request.uri, request.remoteAddr))
- return None, ()
-
- # Block access to index .diff files (for now)
- if 'Packages.diff' in segments or 'Sources.diff' in segments:
- return None, ()
-
if len(name) > 1:
# It's a request from apt
+
+ # Only local requests (apt) get past this point
+ if request.remoteAddr.host != "127.0.0.1":
+ log.msg('Blocked illegal access to %s from %s' % (request.uri, request.remoteAddr))
+ return None, ()
+
+ # Block access to index .diff files (for now)
+ if 'Packages.diff' in segments or 'Sources.diff' in segments or name == 'favicon.ico':
+ return None, ()
+
return FileDownloader(self.directory.path, self.manager), segments[0:]
else:
# Will render the statistics page
+
+ # Only local requests for stats are allowed
+ if not config.getboolean('DEFAULT', 'REMOTE_STATS') and request.remoteAddr.host != "127.0.0.1":
+ log.msg('Blocked illegal access to %s from %s' % (request.uri, request.remoteAddr))
+ return None, ()
+
return self, ()
log.msg('Got a malformed request for "%s" from %s' % (request.uri, request.remoteAddr))
return [{'pieces': 'abcdefghij0123456789\xca\xec\xb8\x0c\x00\xe7\x07\xf8~])\x8f\x9d\xe5_B\xff\x1a\xc4!'}]
return [{'path': FilePath(os.path.expanduser('~/school/optout'))}]
- t = TopLevel(FilePath(os.path.expanduser('~')), DB(), None, 0)
+ t = TopLevel(FilePath(os.path.expanduser('~')), DB(), None)
factory = t.getHTTPFactory()
# Standard twisted application Boilerplate