X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=apt_dht%2FMirrorManager.py;h=8bf197f9d40203749bb4c34ae33938d290e94c51;hb=831e4f2adebf21b0427edde718668356a8df4837;hp=7f7805a81eea6d068b51ea0869af54dfed170b39;hpb=d5b449e539511e2eef237bf5c8dbe78cc9191641;p=quix0rs-apt-p2p.git diff --git a/apt_dht/MirrorManager.py b/apt_dht/MirrorManager.py index 7f7805a..8bf197f 100644 --- a/apt_dht/MirrorManager.py +++ b/apt_dht/MirrorManager.py @@ -149,7 +149,8 @@ class ProxyFileStream(stream.SimpleStream): class MirrorManager: """Manages all requests for mirror objects.""" - def __init__(self, cache_dir): + def __init__(self, cache_dir, manager = None): + self.manager = manager self.cache_dir = cache_dir self.cache = filepath.FilePath(self.cache_dir) self.apt_caches = {} @@ -207,6 +208,10 @@ class MirrorManager: def save_file(self, response, hash, url): """Save a downloaded file to the cache and stream it.""" + if response.code != 200: + log.msg('File was not found (%r): %s' % (response, url)) + return response + log.msg('Returning file: %s' % url) parsed = urlparse(url) @@ -256,6 +261,9 @@ class MirrorManager: self.updatedFile(url, destFile.path) if ext: self.updatedFile(url[:-len(ext)], decFile.path) + + if self.manager: + self.manager.download_complete(hash, url, destFile.path) else: log.msg("Hashes don't match %s != %s: %s" % (hash.hexexpected(), hash.hexdigest(), url))