Skip to content

Commit

Permalink
Merge pull request #5492 from filecoin-project/fix/ipfsbstore-has-hang
Browse files Browse the repository at this point in the history
ipfsbstore: Fix has for non-existing blocks
  • Loading branch information
magik6k authored Feb 1, 2021
2 parents 4937fb9 + b2eb014 commit b7555fd
Showing 1 changed file with 23 additions and 7 deletions.
30 changes: 23 additions & 7 deletions lib/ipfsbstore/ipfsbstore.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ import (
)

type IpfsBstore struct {
ctx context.Context
api iface.CoreAPI
ctx context.Context
api, offlineAPI iface.CoreAPI
}

func NewIpfsBstore(ctx context.Context, onlineMode bool) (*IpfsBstore, error) {
Expand All @@ -34,10 +34,18 @@ func NewIpfsBstore(ctx context.Context, onlineMode bool) (*IpfsBstore, error) {
if err != nil {
return nil, xerrors.Errorf("setting offline mode: %s", err)
}
offlineAPI := api
if onlineMode {
offlineAPI, err = localApi.WithOptions(options.Api.Offline(true))
if err != nil {
return nil, xerrors.Errorf("applying offline mode: %s", err)
}
}

return &IpfsBstore{
ctx: ctx,
api: api,
ctx: ctx,
api: api,
offlineAPI: offlineAPI,
}, nil
}

Expand All @@ -50,10 +58,18 @@ func NewRemoteIpfsBstore(ctx context.Context, maddr multiaddr.Multiaddr, onlineM
if err != nil {
return nil, xerrors.Errorf("applying offline mode: %s", err)
}
offlineAPI := api
if onlineMode {
offlineAPI, err = httpApi.WithOptions(options.Api.Offline(true))
if err != nil {
return nil, xerrors.Errorf("applying offline mode: %s", err)
}
}

return &IpfsBstore{
ctx: ctx,
api: api,
ctx: ctx,
api: api,
offlineAPI: offlineAPI,
}, nil
}

Expand All @@ -62,7 +78,7 @@ func (i *IpfsBstore) DeleteBlock(cid cid.Cid) error {
}

func (i *IpfsBstore) Has(cid cid.Cid) (bool, error) {
_, err := i.api.Block().Stat(i.ctx, path.IpldPath(cid))
_, err := i.offlineAPI.Block().Stat(i.ctx, path.IpldPath(cid))
if err != nil {
// The underlying client is running in Offline mode.
// Stat() will fail with an err if the block isn't in the
Expand Down

0 comments on commit b7555fd

Please sign in to comment.