[Debtorrent-commits] r37 - in /debtorrent/trunk: DebTorrent/BT1/Rerequester.py DebTorrent/BT1/track.py TODO

camrdale-guest at users.alioth.debian.org camrdale-guest at users.alioth.debian.org
Sat May 5 23:02:36 UTC 2007


Author: camrdale-guest
Date: Sat May  5 23:02:36 2007
New Revision: 37

URL: http://svn.debian.org/wsvn/debtorrent/?sc=1&rev=37
Log:
Reenable compact peer lists, remove updates to make --ip work with dns names

Modified:
    debtorrent/trunk/DebTorrent/BT1/Rerequester.py
    debtorrent/trunk/DebTorrent/BT1/track.py
    debtorrent/trunk/TODO

Modified: debtorrent/trunk/DebTorrent/BT1/Rerequester.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/BT1/Rerequester.py?rev=37&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/BT1/Rerequester.py (original)
+++ debtorrent/trunk/DebTorrent/BT1/Rerequester.py Sat May  5 23:02:36 2007
@@ -26,8 +26,6 @@
     True = 1
     False = 0
 
-DEBUG = True
-
 mapbase64 = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.-'
 keys = {}
 basekeydata = str(getpid()) + repr(time()) + 'tracker'
@@ -168,7 +166,7 @@
             if self.howmany() >= self.maxpeers:
                 s += '&numwant=0'
             else:
-                s += '&no_peer_id=1'
+                s += '&no_peer_id=1&compact=1'
             self.last_failed = True         # force true, so will display an error
             self.special = specialurl
             self.rerequest(s, callback)
@@ -185,7 +183,7 @@
         if self.howmany() >= self.maxpeers:
             s += '&numwant=0'
         else:
-            s += '&no_peer_id=1'
+            s += '&no_peer_id=1&compact=1'
         if event != 3:
             s += '&event=' + ['started', 'completed', 'stopped'][event]
         if event == 2:
@@ -215,12 +213,11 @@
             def fail (self = self, callback = callback):
                 self._fail(callback)
             if self.ip:
-                s += '&ip=' + self.ip
-#                try:
-#                    s += '&ip=' + gethostbyname(self.ip)
-#                except:
-#                    self.errorcodes['troublecode'] = 'unable to resolve: '+self.ip
-#                    self.externalsched(fail)
+                try:
+                    s += '&ip=' + gethostbyname(self.ip)
+                except:
+                    self.errorcodes['troublecode'] = 'unable to resolve: '+self.ip
+                    self.externalsched(fail)
             self.errorcodes = {}
             if self.special is None:
                 for t in range(len(self.trackerlist)):
@@ -373,22 +370,16 @@
             cflags = [None for i in xrange(lenpeers)]
         else:
             cflags = [ord(x) for x in cflags]
-        if DEBUG:
-            print 'got peer list of type '+str(type(p))
         if type(p) == type(''):
             for x in xrange(0, len(p), 6):
                 ip = '.'.join([str(ord(i)) for i in p[x:x+4]])
                 port = (ord(p[x+4]) << 8) | ord(p[x+5])
                 peers.append(((ip, port), 0, cflags[int(x/6)]))
-                if DEBUG:
-                    print "got ip "+ip+" port "+str(port)
         else:
             for i in xrange(len(p)):
                 x = p[i]
                 peers.append(((x['ip'].strip(), x['port']),
                               x.get('peer id',0), cflags[i]))
-                if DEBUG:
-                    print "got ip "+x['ip'].strip()+" port "+str(x['port'])
         ps = len(peers) + self.howmany()
         if ps < self.maxpeers:
             if self.doneflag.isSet():

Modified: debtorrent/trunk/DebTorrent/BT1/track.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/BT1/track.py?rev=37&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/BT1/track.py (original)
+++ debtorrent/trunk/DebTorrent/BT1/track.py Sat May  5 23:02:36 2007
@@ -38,8 +38,6 @@
     True = 1
     False = 0
     bool = lambda x: not not x
-
-DEBUG = True
 
 defaults = [
     ('port', 80, "Port to listen on."),
@@ -95,7 +93,7 @@
     ('keep_dead', 0, 'keep dead torrents after they expire (so they still show up on your /scrape and web page)'),
     ('scrape_allowed', 'full', 'scrape access allowed (can be none, specific or full)'),
     ('dedicated_seed_id', '', 'allows tracker to monitor dedicated seed(s) and flag torrents as seeded'),
-    ('compact_reqd', 0, "only allow peers that accept a compact response"),
+    ('compact_reqd', 1, "only allow peers that accept a compact response"),
   ]
 
 def statefiletemplate(x):
@@ -639,7 +637,7 @@
             auth = peer.get('key',-1) == mykey or peer.get('ip') == ip
 
         gip = params('ip')
-        if islocal or not self.only_local_override_ip:
+        if is_valid_ip(gip) and (islocal or not self.only_local_override_ip):
             ip1 = gip
         else:
             ip1 = ip
@@ -689,17 +687,15 @@
                 self.seedcount[infohash] += 1
                 if not peer.get('nat', -1):
                     for bc in self.becache[infohash]:
-                        if bc[0].has_key(myid):
-                            bc[1][myid] = bc[0][myid]
-                            del bc[0][myid]
+                        bc[1][myid] = bc[0][myid]
+                        del bc[0][myid]
             elif left and not peer['left']:
                 self.completed[infohash] -= 1
                 self.seedcount[infohash] -= 1
                 if not peer.get('nat', -1):
                     for bc in self.becache[infohash]:
-                        if bc[0].has_key(myid):
-                            bc[0][myid] = bc[1][myid]
-                            del bc[1][myid]
+                        bc[0][myid] = bc[1][myid]
+                        del bc[1][myid]
             peer['left'] = left
 
             if port:
@@ -777,9 +773,7 @@
             data['peers'] = []
             return data
         l_get_size = int(float(rsize)*(len_l)/(len_l+len_s))
-        if DEBUG:
-            print 'return type '+str(return_type)
-        cache = self.cached.setdefault(infohash,[None,None,None,None,None])[return_type]
+        cache = self.cached.setdefault(infohash,[None,None,None])[return_type]
         if cache and ( not cache[1]
                        or (is_seed and len(cache[1]) < rsize)
                        or len(cache[1]) < l_get_size

Modified: debtorrent/trunk/TODO
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/TODO?rev=37&op=diff
==============================================================================
--- debtorrent/trunk/TODO (original)
+++ debtorrent/trunk/TODO Sat May  5 23:02:36 2007
@@ -95,12 +95,3 @@
 Packages files every week/day/hour. Might need to parse the 
 /var/cache/apt/archive directory when run the first time to hardlink in files 
 that have already been downloaded.
-
-
-Re-enable compact peer lists
-
-Compact peer lists have been disbaled, both in the tracker and client, to 
-enable DNS names to work. This is currently needed because the host that the 
-tracker and seed are being tested on is behind a Firewall/NAT, and so the DNS 
-names are needed. This will not be aproble when a more permanent home for the 
-tracker is found.




More information about the Debtorrent-commits mailing list