mirror of
https://github.com/ipfs/kubo.git
synced 2025-09-10 22:49:13 +08:00
selected changes from CR
This commit is contained in:
@ -7,7 +7,8 @@ import (
|
|||||||
|
|
||||||
blocks "github.com/jbenet/go-ipfs/blocks/blockstore"
|
blocks "github.com/jbenet/go-ipfs/blocks/blockstore"
|
||||||
routing "github.com/jbenet/go-ipfs/routing"
|
routing "github.com/jbenet/go-ipfs/routing"
|
||||||
"github.com/jbenet/go-ipfs/util/eventlog"
|
debugerror "github.com/jbenet/go-ipfs/util/debugerror"
|
||||||
|
eventlog "github.com/jbenet/go-ipfs/util/eventlog"
|
||||||
)
|
)
|
||||||
|
|
||||||
var log = eventlog.Logger("reprovider")
|
var log = eventlog.Logger("reprovider")
|
||||||
@ -34,22 +35,25 @@ func (rp *Reprovider) ProvideEvery(ctx context.Context, tick time.Duration) {
|
|||||||
case <-ctx.Done():
|
case <-ctx.Done():
|
||||||
return
|
return
|
||||||
case <-after:
|
case <-after:
|
||||||
rp.Reprovide(ctx)
|
err := rp.Reprovide(ctx)
|
||||||
|
if err != nil {
|
||||||
|
log.Error(err)
|
||||||
|
}
|
||||||
after = time.After(tick)
|
after = time.After(tick)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (rp *Reprovider) Reprovide(ctx context.Context) {
|
func (rp *Reprovider) Reprovide(ctx context.Context) error {
|
||||||
keychan, err := rp.bstore.AllKeysChan(ctx, 0, 1<<16)
|
keychan, err := rp.bstore.AllKeysChan(ctx, 0, 1<<16)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("Failed to get key chan from blockstore: %s", err)
|
return debugerror.Errorf("Failed to get key chan from blockstore: %s", err)
|
||||||
return
|
|
||||||
}
|
}
|
||||||
for k := range keychan {
|
for k := range keychan {
|
||||||
err := rp.rsys.Provide(ctx, k)
|
err := rp.rsys.Provide(ctx, k)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("Failed to provide key: %s, %s", k, err)
|
return debugerror.Errorf("Failed to provide key: %s, %s", k, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -33,7 +33,10 @@ func TestReprovide(t *testing.T) {
|
|||||||
bstore.Put(blk)
|
bstore.Put(blk)
|
||||||
|
|
||||||
reprov := NewReprovider(clA, bstore)
|
reprov := NewReprovider(clA, bstore)
|
||||||
reprov.Reprovide(ctx)
|
err := reprov.Reprovide(ctx)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
provs, err := clB.FindProviders(ctx, blk.Key())
|
provs, err := clB.FindProviders(ctx, blk.Key())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Reference in New Issue
Block a user