提交 29178e3c 作者: Juan Batiz-Benet 提交者: Brian Tiger Chow

fix(bitswap/network/ipfs) ignore self as provider

上级 69333e47
...@@ -110,6 +110,9 @@ func (bsnet *impl) FindProvidersAsync(ctx context.Context, k util.Key, max int) ...@@ -110,6 +110,9 @@ func (bsnet *impl) FindProvidersAsync(ctx context.Context, k util.Key, max int)
connectedPeers := bsnet.host.Network().Peers() connectedPeers := bsnet.host.Network().Peers()
out := make(chan peer.ID, len(connectedPeers)) // just enough buffer for these connectedPeers out := make(chan peer.ID, len(connectedPeers)) // just enough buffer for these connectedPeers
for _, id := range connectedPeers { for _, id := range connectedPeers {
if id == bsnet.host.ID() {
continue // ignore self as provider
}
out <- id out <- id
} }
...@@ -117,9 +120,10 @@ func (bsnet *impl) FindProvidersAsync(ctx context.Context, k util.Key, max int) ...@@ -117,9 +120,10 @@ func (bsnet *impl) FindProvidersAsync(ctx context.Context, k util.Key, max int)
defer close(out) defer close(out)
providers := bsnet.routing.FindProvidersAsync(ctx, k, max) providers := bsnet.routing.FindProvidersAsync(ctx, k, max)
for info := range providers { for info := range providers {
if info.ID != bsnet.host.ID() { // dont add addrs for ourselves. if info.ID == bsnet.host.ID() {
bsnet.host.Peerstore().AddAddresses(info.ID, info.Addrs) continue // ignore self as provider
} }
bsnet.host.Peerstore().AddAddresses(info.ID, info.Addrs)
select { select {
case <-ctx.Done(): case <-ctx.Done():
return return
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论