[apt-proxy-devel] r645 - trunk/apt_proxy

Chris Halls halls at alioth.debian.org
Tue Apr 17 21:50:41 UTC 2007


Author: halls
Date: Tue Apr 17 21:50:41 2007
New Revision: 645

Modified:
   trunk/apt_proxy/clients.py
Log:
compress client: Fix exception when result is sent without streaming data (e.g. file not found)


Modified: trunk/apt_proxy/clients.py
==============================================================================
--- trunk/apt_proxy/clients.py	(original)
+++ trunk/apt_proxy/clients.py	Tue Apr 17 21:50:41 2007
@@ -53,6 +53,7 @@
         """
         Each new request begins processing here
         """
+        log.debug("Processing request for: %s" % (self.uri), 'HttpRequestClient')
         self.uri = self.clean_path(self.uri)
 
         match = re.search('[^][a-zA-Z0-9~,.+%:;@#?{}()$/_-]', self.uri)
@@ -159,12 +160,12 @@
     def finish(self):
         "Finish request after streaming"
         log.debug("finish. fileno:%s uri:%s" % (self.getFileno(), self.uri) , 'HttpRequestClient')
-        #import traceback
-        #traceback.print_stack()
         try:
             http.Request.finish(self)
         except Exception, e:
             log.debug("Unexpected error finishing http request: %s" % (e), 'HttpRequestClient')
+            import traceback
+            traceback.print_stack()
 
         if self.cacheEntry:
             reactor.callLater(0, self.cacheEntry.remove_request, self)
@@ -215,6 +216,7 @@
         log.debug("New UncompressClient for %s" % (compressedCacheEntry),self.logname);
         self.source = compressedCacheEntry
         self.source.add_request(self)
+	self.dest = None
     
     def get_dest_filename(self, path):
         extlen = len(self.ext)
@@ -232,14 +234,16 @@
 
     def finishCode(self, responseCode, message=None):
         "Request aborted"
-        self.dest.download_failure(responseCode, message)
+	if self.dest:
+            self.dest.download_failure(responseCode, message)
         self.remove_from_cache_entry()
 
     def finish(self):
         self.disconnect()
         
     def disconnect(self):
-        self.dest.download_data_end()
+	if self.dest:
+            self.dest.download_data_end()
         self.remove_from_cache_entry()
         
     def remove_from_cache_entry(self):



More information about the apt-proxy-devel mailing list