dht: update on every received message
i made a separate function because we may want to update our routing table based on "closer peers". maybe not-- these could all be lies.
Juan Batiz-Benet committed
Dec 23, 2014 at 19:20 UTC
cdb461d2a9f25f4390fb5c0c59c642b7ea72730a
1 file changed
+10
-1
routing/dht/dht_net.go
+10
-1
@@ -34,8 +34,9 @@ func (dht *IpfsDHT) handleNewMessage(s inet.Stream) {
34
log.Error("Error unmarshaling data")
35
return
36
}
37
+
38
// update the peer (on valid msgs only)
38
- dht.Update(ctx, mPeer)
39
+ dht.updateFromMessage(ctx, mPeer, pmes)
40
41
log.Event(ctx, "foo", dht.self, mPeer, pmes)
42
@@ -103,6 +104,9 @@ func (dht *IpfsDHT) sendRequest(ctx context.Context, p peer.ID, pmes *pb.Message
104
return nil, errors.New("no response to request")
105
}
106
107
+ // update the peer (on valid msgs only)
108
+ dht.updateFromMessage(ctx, p, rpmes)
109
+
110
dht.peerstore.RecordLatency(p, time.Since(start))
111
log.Event(ctx, "dhtReceivedMessage", dht.self, p, rpmes)
112
return rpmes, nil
@@ -129,3 +133,8 @@ func (dht *IpfsDHT) sendMessage(ctx context.Context, p peer.ID, pmes *pb.Message
133
log.Debugf("%s done", dht.self)
134
return nil
135
}
136
+
137
+func (dht *IpfsDHT) updateFromMessage(ctx context.Context, p peer.ID, mes *pb.Message) error {
138
+ dht.Update(ctx, p)
139
+ return nil
140
+}