Lots of log messages and blocked non-local access to server.
[quix0rs-apt-p2p.git] / apt_dht / apt_dht.py
index 448d44f9e915355ba74d56b0d02ae97f58150d20..83c48b84bc37272fce3b4b987f9b793f0b8c1fdd 100644 (file)
@@ -21,38 +21,50 @@ class AptDHT:
         return self.http_site
     
     def check_freshness(self, path, modtime, resp):
+        log.msg('Checking if %s is still fresh: %r' % (path, modtime))
         d = self.peers.get([path], "HEAD", modtime)
         d.addCallback(self.check_freshness_done, path, resp)
         return d
     
     def check_freshness_done(self, resp, path, orig_resp):
         if resp.code == "304":
+            log.msg('Still fresh: %s' % path)
             return orig_resp
         else:
+            log.msg('Stale, need to redownload: %s' % path)
             return self.get_resp(path)
     
     def get_resp(self, path):
         d = defer.Deferred()
         
+        log.msg('Trying to find hash for %s' % path)
         findDefer = self.mirrors.findHash(path)
         
-        findDefer.addcallback(self.findHash_done, path, d)
+        findDefer.addCallback(self.findHash_done, path, d)
+        findDefer.addErrback(self.findHash_error, path, d)
         return d
+    
+    def findHash_error(self, failure, path, d):
+        self.findHash_done((None, None), path, d)
         
     def findHash_done(self, (hash, size), path, d):
         if hash is None:
+            log.msg('Hash for %s was not found' % path)
             getDefer = self.peers.get([path])
             getDefer.addCallback(d.callback)
         else:
+            log.msg('Found hash %s for %s' % (hash, path))
             # Lookup hash from DHT
             lookupDefer = self.dht.getValue(hash)
             lookupDefer.addCallback(self.lookupHash_done, hash, size, path, d)
             
     def lookupHash_done(self, locations, hash, size, path, d):
         if not locations:
+            log.msg('Peers for %s were not found' % path)
             getDefer = self.peers.get([path])
             getDefer.addCallback(d.callback)
         else:
+            log.msg('Found peers for $s: %r' % (path, locations))
             # Download from the found peers
             getDefer = self.peers.get(locations)
             getDefer.addCallback(d.callback)