Skip to content

Commit

Permalink
fix(requestmanager): pass through linksystem
Browse files Browse the repository at this point in the history
pass through linksystem so node reifier is present
  • Loading branch information
hannahhoward committed Apr 22, 2021
1 parent 3d4728c commit eab6642
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 6 deletions.
2 changes: 1 addition & 1 deletion impl/graphsync.go
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ func New(parent context.Context, network gsnet.GraphSyncNetwork,
}
peerManager := peermanager.NewMessageManager(ctx, createMessageQueue)
asyncLoader := asyncloader.New(ctx, linkSystem)
requestManager := requestmanager.New(ctx, asyncLoader, outgoingRequestHooks, incomingResponseHooks, incomingBlockHooks, networkErrorListeners)
requestManager := requestmanager.New(ctx, asyncLoader, linkSystem, outgoingRequestHooks, incomingResponseHooks, incomingBlockHooks, networkErrorListeners)
responseAssembler := responseassembler.New(ctx, peerManager)
peerTaskQueue := peertaskqueue.New()
responseManager := responsemanager.New(ctx, linkSystem, responseAssembler, peerTaskQueue, incomingRequestHooks, outgoingBlockHooks, requestUpdatedHooks, completedResponseListeners, requestorCancelledListeners, blockSentListeners, networkErrorListeners, gsConfig.maxInProgressRequests)
Expand Down
10 changes: 6 additions & 4 deletions requestmanager/executor/executor.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ type ExecutionEnv struct {
TerminateRequest func(graphsync.RequestID)
WaitForMessages func(ctx context.Context, resumeMessages chan graphsync.ExtensionData) ([]graphsync.ExtensionData, error)
Loader AsyncLoadFn
LinkSystem ipld.LinkSystem
}

// RequestExecution are parameters for a single request execution
Expand Down Expand Up @@ -99,10 +100,11 @@ func (re *requestExecutor) visitor(tp traversal.Progress, node ipld.Node, tr tra

func (re *requestExecutor) traverse() error {
traverser := ipldutil.TraversalBuilder{
Root: cidlink.Link{Cid: re.request.Root()},
Selector: re.request.Selector(),
Visitor: re.visitor,
Chooser: re.nodeStyleChooser,
Root: cidlink.Link{Cid: re.request.Root()},
Selector: re.request.Selector(),
Visitor: re.visitor,
Chooser: re.nodeStyleChooser,
LinkSystem: re.env.LinkSystem,
}.Start(re.ctx)
defer traverser.Shutdown(context.Background())
for {
Expand Down
4 changes: 4 additions & 0 deletions requestmanager/requestmanager.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ type RequestManager struct {
peerHandler PeerHandler
rc *responseCollector
asyncLoader AsyncLoader
linkSystem ipld.LinkSystem
// dont touch out side of run loop
nextRequestID graphsync.RequestID
inProgressRequestStatuses map[graphsync.RequestID]*inProgressRequestStatus
Expand Down Expand Up @@ -101,6 +102,7 @@ type BlockHooks interface {
// New generates a new request manager from a context, network, and selectorQuerier
func New(ctx context.Context,
asyncLoader AsyncLoader,
linkSystem ipld.LinkSystem,
requestHooks RequestHooks,
responseHooks ResponseHooks,
blockHooks BlockHooks,
Expand All @@ -111,6 +113,7 @@ func New(ctx context.Context,
ctx: ctx,
cancel: cancel,
asyncLoader: asyncLoader,
linkSystem: linkSystem,
rc: newResponseCollector(ctx),
messages: make(chan requestManagerMessage, 16),
inProgressRequestStatuses: make(map[graphsync.RequestID]*inProgressRequestStatus),
Expand Down Expand Up @@ -343,6 +346,7 @@ func (nrm *newRequestMessage) setupRequest(requestID graphsync.RequestID, rm *Re
TerminateRequest: rm.terminateRequest,
RunBlockHooks: rm.processBlockHooks,
Loader: rm.asyncLoader.AsyncLoad,
LinkSystem: rm.linkSystem,
}.Start(
executor.RequestExecution{
Ctx: ctx,
Expand Down
2 changes: 1 addition & 1 deletion requestmanager/requestmanager_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -893,7 +893,7 @@ func newTestData(ctx context.Context, t *testing.T) *testData {
td.responseHooks = hooks.NewResponseHooks()
td.blockHooks = hooks.NewBlockHooks()
td.networkErrorListeners = listeners.NewNetworkErrorListeners()
td.requestManager = New(ctx, td.fal, td.requestHooks, td.responseHooks, td.blockHooks, td.networkErrorListeners)
td.requestManager = New(ctx, td.fal, cidlink.DefaultLinkSystem(), td.requestHooks, td.responseHooks, td.blockHooks, td.networkErrorListeners)
td.requestManager.SetDelegate(td.fph)
td.requestManager.Startup()
td.blockStore = make(map[ipld.Link][]byte)
Expand Down

0 comments on commit eab6642

Please sign in to comment.