@@ -341,15 +341,16 @@ func (dht *IpfsDHT) handleGetProviders(ctx context.Context, p peer.ID, pmes *pb.
341
341
func (dht * IpfsDHT ) handleAddProvider (ctx context.Context , p peer.ID , pmes * pb.Message ) (_ * pb.Message , _err error ) {
342
342
key := pmes .GetKey ()
343
343
if len (key ) > 80 {
344
- return nil , fmt . Errorf ("handleAddProvider key size too large" )
344
+ return nil , errors . New ("handleAddProvider key size too large" )
345
345
} else if len (key ) == 0 {
346
- return nil , fmt . Errorf ("handleAddProvider key is empty" )
346
+ return nil , errors . New ("handleAddProvider key is empty" )
347
347
}
348
348
349
349
logger .Debugw ("adding provider" , "from" , p , "key" , internal .LoggableProviderRecordBytes (key ))
350
350
351
351
// add provider should use the address given in the message
352
352
pinfos := pb .PBPeersToPeerInfos (pmes .GetProviderPeers ())
353
+ success := false
353
354
for _ , pi := range pinfos {
354
355
if pi .ID != p {
355
356
// we should ignore this provider record! not from originator.
@@ -368,6 +369,10 @@ func (dht *IpfsDHT) handleAddProvider(ctx context.Context, p peer.ID, pmes *pb.M
368
369
// announcement go through.
369
370
addrs := dht .filterAddrs (pi .Addrs )
370
371
dht .providerStore .AddProvider (ctx , key , peer.AddrInfo {ID : pi .ID , Addrs : addrs })
372
+ success = true
373
+ }
374
+ if ! success {
375
+ return nil , errors .New ("handleAddProvider no valid provider" )
371
376
}
372
377
373
378
return nil , nil
0 commit comments