X-Git-Url: https://git.mxchange.org/?p=quix0rs-apt-p2p.git;a=blobdiff_plain;f=TODO;h=08125f3be934c556485f572b939eeb6a5086577d;hp=dd9524a40f3ce417eba51814d8430bb5d34372b1;hb=e82e704e27d7bf1b6441d5b251bab96604420185;hpb=136c82d6c138402e93bdefb499aed967ba059385 diff --git a/TODO b/TODO index dd9524a..08125f3 100644 --- a/TODO +++ b/TODO @@ -1,9 +1,16 @@ -Add all cache files to the database. +Some last few things to do before release. -All files in the cache should be added to the database, so that they can -be checked to make sure nothing has happened to them. The database would -then need a flag to indicate files that are hashed and available, but -that shouldn't be added to the DHT. +- Handle/investigate the HTTP client pipeline errors +- remove files from the peer's download cache +- update the modtime of files downloaded from peers + - also set the Last-Modified header for the return to Apt + +Consider what happens when multiple requests for a file are received. + +When another request comes in for a file already being downloaded, +the new request should wait for the old one to finish. This should +also be done for multiple requests for peer downloads of files with +the same hash. Packages.diff files need to be considered. @@ -15,6 +22,29 @@ distributions. They need to be dealt with properly by adding them to the tracking done by the AptPackages module. +Improve the downloaded and uploaded data measurements. + +There are 2 places that this data is measured: for statistics, and for +limiting the upload bandwidth. They both have deficiencies as they +sometimes miss the headers or the requests sent out. The upload +bandwidth calculation only considers the stream in the upload and not +the headers sent, and it also doesn't consider the upload bandwidth +from requesting downloads from peers (though that may be a good thing). +The statistics calculations for downloads include the headers of +downloaded files, but not the requests received from peers for upload +files. The statistics for uploaded data only includes the files sent +and not the headers, and also misses the requests for downloads sent to +other peers. + + +Rehash changed files instead of removing them. + +When the modification time of a file changes but the size does not, +the file could be rehased to verify it is the same instead of +automatically removing it. The DB would have to be modified to return +deferred's for a lot of its functions. + + Consider storing deltas of packages. Instead of downloading full package files when a previous version of