From 96be8235f9aab492279a970c3e2bbd28922325fb Mon Sep 17 00:00:00 2001 From: Derrick Hammer Date: Wed, 24 Jan 2024 03:01:59 -0500 Subject: [PATCH] feat: add provide support to HashQuery --- protocol/hash_query.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/protocol/hash_query.go b/protocol/hash_query.go index cceda06..6a221ee 100644 --- a/protocol/hash_query.go +++ b/protocol/hash_query.go @@ -128,6 +128,27 @@ func (h *HashQuery) HandleMessage(node interfaces.Node, peer net.Peer, verifyId } } + if node.ProviderStore() != nil { + if node.ProviderStore().CanProvide(h.hash, h.kinds) { + location, err := node.ProviderStore().Provide(h.hash, h.kinds) + if err != nil { + return err + } + + message := node.Services().P2P().PrepareProvideMessage(h.hash, location) + + err = node.AddStorageLocation(h.hash, node.Services().P2P().NodeId(), location, message) + if err != nil { + return err + } + + err = peer.SendMessage(message) + if err != nil { + return err + } + } + } + var peers *hashset.Set hashString, err := h.hash.ToString() node.Logger().Debug("HashQuery", zap.Any("hashString", hashString))