From 9a555e6710af61d9cce0c0b84561a35ba23cf7d2 Mon Sep 17 00:00:00 2001
From: Brian Warner <warner@lothar.com>
Date: Sun, 3 Dec 2006 00:53:07 -0700
Subject: [PATCH] client: closures confuse me, late binding bites me yet again

---
 allmydata/client.py | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/allmydata/client.py b/allmydata/client.py
index bc004789..a8608722 100644
--- a/allmydata/client.py
+++ b/allmydata/client.py
@@ -82,11 +82,13 @@ class Client(node.Node, Referenceable):
             self.all_peers.add(nodeid)
             if nodeid not in self.connections:
                 d = self.tub.getReference(pburl)
-                def _got_reference(ref):
-                    self.log("connected to %s" % idlib.b2a(nodeid))
-                    if nodeid in self.all_peers:
-                        self.connections[nodeid] = ref
-                d.addCallback(_got_reference)
+                def _got_reference(ref, which_nodeid):
+                    self.log("connected to %s" % idlib.b2a(which_nodeid))
+                    if which_nodeid in self.all_peers:
+                        self.connections[which_nodeid] = ref
+                    else:
+                        log.msg(" ignoring it because we no longer want to talk to them")
+                d.addCallback(_got_reference, nodeid)
 
     def remote_lost_peers(self, lost_peers):
         for nodeid in lost_peers:
-- 
2.45.2