Commit e907b2e0 authored by Brian Tiger Chow's avatar Brian Tiger Chow

feat(exchange) pass ctx to exchange.HasBlock(...)

parent 1054b8d8
......@@ -43,7 +43,8 @@ func (s *BlockService) AddBlock(b *blocks.Block) (u.Key, error) {
return k, err
}
if s.Remote != nil {
err = s.Remote.HasBlock(*b)
ctx := context.TODO()
err = s.Remote.HasBlock(ctx, *b)
}
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
// it to peers (Partners) whose WantLists include it.
func (bs *bitswap) HasBlock(blk blocks.Block) error {
ctx := context.TODO()
func (bs *bitswap) HasBlock(ctx context.Context, blk blocks.Block) error {
go bs.sendToPeersThatWant(ctx, blk)
return bs.routing.Provide(blk.Key())
}
......
......@@ -27,6 +27,6 @@ func (_ *offlineExchange) Block(context.Context, u.Key) (*blocks.Block, error) {
}
// HasBlock always returns nil.
func (_ *offlineExchange) HasBlock(blocks.Block) error {
func (_ *offlineExchange) HasBlock(context.Context, blocks.Block) error {
return nil
}
......@@ -11,7 +11,7 @@ import (
func TestBlockReturnsErr(t *testing.T) {
off := NewOfflineExchange()
_, err := off.Block(context.TODO(), u.Key("foo"))
_, err := off.Block(context.Background(), u.Key("foo"))
if err != nil {
return // as desired
}
......@@ -21,7 +21,7 @@ func TestBlockReturnsErr(t *testing.T) {
func TestHasBlockReturnsNil(t *testing.T) {
off := NewOfflineExchange()
block := testutil.NewBlockOrFail(t, "data")
err := off.HasBlock(block)
err := off.HasBlock(context.Background(), block)
if err != nil {
t.Fatal("")
}
......
......@@ -12,13 +12,9 @@ import (
type Interface interface {
// 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)
// HasBlock asserts the existence of this block
// TODO(brian): rename -> HasBlock
// TODO(brian): accept a value, not a pointer
// TODO(brian): remove error return value. Should callers be concerned with
// whether the block was made available on the network?
HasBlock(blocks.Block) error
// TODO Should callers be concerned with whether the block was made
// available on the network?
HasBlock(context.Context, blocks.Block) error
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment