From cdb461d2a9f25f4390fb5c0c59c642b7ea72730a Mon Sep 17 00:00:00 2001 From: Juan Batiz-Benet Date: Tue, 23 Dec 2014 19:20:42 -0800 Subject: [PATCH] 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. --- routing/dht/dht_net.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/routing/dht/dht_net.go b/routing/dht/dht_net.go index cfbc812a3..caf0518c2 100644 --- a/routing/dht/dht_net.go +++ b/routing/dht/dht_net.go @@ -34,8 +34,9 @@ func (dht *IpfsDHT) handleNewMessage(s inet.Stream) { log.Error("Error unmarshaling data") return } + // update the peer (on valid msgs only) - dht.Update(ctx, mPeer) + dht.updateFromMessage(ctx, mPeer, pmes) log.Event(ctx, "foo", dht.self, mPeer, pmes) @@ -103,6 +104,9 @@ func (dht *IpfsDHT) sendRequest(ctx context.Context, p peer.ID, pmes *pb.Message return nil, errors.New("no response to request") } + // update the peer (on valid msgs only) + dht.updateFromMessage(ctx, p, rpmes) + dht.peerstore.RecordLatency(p, time.Since(start)) log.Event(ctx, "dhtReceivedMessage", dht.self, p, rpmes) return rpmes, nil @@ -129,3 +133,8 @@ func (dht *IpfsDHT) sendMessage(ctx context.Context, p peer.ID, pmes *pb.Message log.Debugf("%s done", dht.self) return nil } + +func (dht *IpfsDHT) updateFromMessage(ctx context.Context, p peer.ID, mes *pb.Message) error { + dht.Update(ctx, p) + return nil +}