Fixed package loading (which let apt-p2p launch again) + used no more kept-alive connections as they caused some trouble (broken pipes). This is maybe caused by a (partly) broken HTTP implementation in Python (keep-alive seems to be broken).
Set a new peer's ranking values so they don't get an unfair advantage.
Tests for some more HTTP connection errors.
Set the HTTP connection timeout to 10s, and add a test for it.
Fixed a bug in the HTTP downloader that caused errors with some mirrors that always close the connections.
Add an optimization to the HTTP client protocol so that pieplining begins sooner. Specifically, it begins after the first requests headers are sent, instead of the whole response.
More fixes for the broken twisted HTTP client.
Fix some errors in the new twisted HTTP client's connectionLost() methods. See http://twistedmatrix.com/trac/ticket/3207 for more info.
Better handling and logging for intermittent HTTP client submission errors.
Don't add attributes to HTTP requests, store them separately.
HTTP client no longer keeps a response queue of requests. Instead the requests are added as variables to the call/errbacks. There is a new variable keeping track of how many responses are outstanding. clientGone no longer remove/errback responses, as the errbacks will be called by the client protocol instead.
Fix an HTTP download bug that caused HEAD requests to not pipeline. Also improve the testing for this.
Improve the peer ranking and fix a minor bug.
Make the downloader statistics work. The previous (untested) commit was not working at all, this one now does, though the TODO mentions some future work.
More strict use of errbacks when using deferreds. Now almost all calls to addCallback include adding an errback as well. HTTPDownloader will remove the next request on a connection error. HTTPServer will download the whole file after a rendering error. A failed check of the freshness of a file will cause the whole file to be downloaded. A resolving error in a DHT join behaves as if the bootstrap node was unreachable. Removed the errback args to khashmir's find routines as they were never used.
Use the mirror as a peer when there are few peers for a file.
Multiple peer downloading is mostly working now. Many bug fixes, too numerous to mention. Lots of new (probably temporary) logging. New test stuff for the multi-peer downloading. Still fails on large files when retrieving piece hashes from peers.
More multiple peer downloading work, finished but still untested.
Store the peer rank as an attribute and recalculate it automatically.
Make all the peer rankings exponentially decreasing.