mirror of
https://github.com/ipfs/kubo.git
synced 2025-06-24 14:08:13 +08:00
feat(exchange) pass ctx to exchange.HasBlock(...)
This commit is contained in:
@ -43,7 +43,8 @@ func (s *BlockService) AddBlock(b *blocks.Block) (u.Key, error) {
|
|||||||
return k, err
|
return k, err
|
||||||
}
|
}
|
||||||
if s.Remote != nil {
|
if s.Remote != nil {
|
||||||
err = s.Remote.HasBlock(*b)
|
ctx := context.TODO()
|
||||||
|
err = s.Remote.HasBlock(ctx, *b)
|
||||||
}
|
}
|
||||||
return k, err
|
return k, err
|
||||||
}
|
}
|
||||||
|
@ -128,8 +128,7 @@ func (bs *bitswap) sendToPeersThatWant(ctx context.Context, block blocks.Block)
|
|||||||
|
|
||||||
// HasBlock announces the existance of a block to bitswap, potentially sending
|
// HasBlock announces the existance of a block to bitswap, potentially sending
|
||||||
// it to peers (Partners) whose WantLists include it.
|
// it to peers (Partners) whose WantLists include it.
|
||||||
func (bs *bitswap) HasBlock(blk blocks.Block) error {
|
func (bs *bitswap) HasBlock(ctx context.Context, blk blocks.Block) error {
|
||||||
ctx := context.TODO()
|
|
||||||
go bs.sendToPeersThatWant(ctx, blk)
|
go bs.sendToPeersThatWant(ctx, blk)
|
||||||
return bs.routing.Provide(blk.Key())
|
return bs.routing.Provide(blk.Key())
|
||||||
}
|
}
|
||||||
|
@ -27,6 +27,6 @@ func (_ *offlineExchange) Block(context.Context, u.Key) (*blocks.Block, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// HasBlock always returns nil.
|
// HasBlock always returns nil.
|
||||||
func (_ *offlineExchange) HasBlock(blocks.Block) error {
|
func (_ *offlineExchange) HasBlock(context.Context, blocks.Block) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@ import (
|
|||||||
|
|
||||||
func TestBlockReturnsErr(t *testing.T) {
|
func TestBlockReturnsErr(t *testing.T) {
|
||||||
off := NewOfflineExchange()
|
off := NewOfflineExchange()
|
||||||
_, err := off.Block(context.TODO(), u.Key("foo"))
|
_, err := off.Block(context.Background(), u.Key("foo"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return // as desired
|
return // as desired
|
||||||
}
|
}
|
||||||
@ -21,7 +21,7 @@ func TestBlockReturnsErr(t *testing.T) {
|
|||||||
func TestHasBlockReturnsNil(t *testing.T) {
|
func TestHasBlockReturnsNil(t *testing.T) {
|
||||||
off := NewOfflineExchange()
|
off := NewOfflineExchange()
|
||||||
block := testutil.NewBlockOrFail(t, "data")
|
block := testutil.NewBlockOrFail(t, "data")
|
||||||
err := off.HasBlock(block)
|
err := off.HasBlock(context.Background(), block)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal("")
|
t.Fatal("")
|
||||||
}
|
}
|
||||||
|
@ -12,13 +12,9 @@ import (
|
|||||||
type Interface interface {
|
type Interface interface {
|
||||||
|
|
||||||
// Block returns the block associated with a given key.
|
// Block returns the block associated with a given key.
|
||||||
// TODO(brian): pass a context instead of a timeout
|
|
||||||
Block(context.Context, u.Key) (*blocks.Block, error)
|
Block(context.Context, u.Key) (*blocks.Block, error)
|
||||||
|
|
||||||
// HasBlock asserts the existence of this block
|
// TODO Should callers be concerned with whether the block was made
|
||||||
// TODO(brian): rename -> HasBlock
|
// available on the network?
|
||||||
// TODO(brian): accept a value, not a pointer
|
HasBlock(context.Context, blocks.Block) error
|
||||||
// TODO(brian): remove error return value. Should callers be concerned with
|
|
||||||
// whether the block was made available on the network?
|
|
||||||
HasBlock(blocks.Block) error
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user