[apt-proxy-devel] r669 - trunk/apt_proxy
Chris Halls
halls at alioth.debian.org
Fri Jul 13 12:49:45 UTC 2007
Author: halls
Date: Fri Jul 13 12:49:45 2007
New Revision: 669
Log:
Fix download continue/abort on client disconnect
Modified:
trunk/apt_proxy/cache.py
Modified: trunk/apt_proxy/cache.py
==============================================================================
--- trunk/apt_proxy/cache.py (original)
+++ trunk/apt_proxy/cache.py Fri Jul 13 12:49:45 2007
@@ -118,6 +118,11 @@
# File needs to be decompressed
self.filetype.decompressor(self)
+ self.logstr = "Req " + self.filename
+
+ def logPrefix(self):
+ return self.logstr
+
def add_request(self, request):
"""
A new request has been received for this file
@@ -165,27 +170,28 @@
log.debug("Last request removed for %s [%s]" % (self.file_path, self.stateToString()),'CacheEntry')
if self.state == self.STATE_CONNECTING:
self.backend.stop_download(self, request)
+ if self.fetcher is not None:
+ self.fetcher.cancel_download()
elif (self.state == self.STATE_DOWNLOAD and
not self.factory.config.complete_clientless_downloads ):
self.backend.stop_download(self, request)
- if self.state == self.STATE_SENT:
+ if (self.factory.config.complete_clientless_downloads == False
+ and self.fetcher is not None):
+ # Cancel download in progress
+ log.debug("cancelling download (set complete_clientless_downloads"
+ " to continue)",
+ 'cacheEntry')
+ self.fetcher.cancel_download()
+
+ if self.streamfile is not None:
+ name = self.streamfile.name
+ log.debug("Deleting temporary file (%s)" % name,'cacheEntry')
+ self.streamfile.close()
+ self.streamfile = None
+ os.remove(name)
+ elif self.state == self.STATE_SENT:
self.requests_done()
-
- # TODO - fixme
- #if (self.factory.config.complete_clientless_downloads == False
- #and self.state == self.STATE_DOWNLOAD
- #and self.fetcher is not None):
- ## Cancel download in progress
- #log.debug("cancelling download (set complete_clientless_downloads to continue)",'cacheEntry')
- #self.fetcher.cancel_download()
-
- #if self.streamfile is not None and self.state == self.STATE_DOWNLOAD:
- #name = self.streamfile.name
- #log.debug("Deleting temporary file (%s)" % name,'cacheEntry')
- #self.streamfile.close()
- #self.streamfile = None
- #os.remove(name)
def requests_done(self):
"""
More information about the apt-proxy-devel
mailing list