Skip to content

Commit 641d9f6

Browse files
authored
Merge pull request #6539 from ipfs/fix/writable-gateway
fix and improve the writable gateway
2 parents 1fdff60 + 50a1113 commit 641d9f6

File tree

11 files changed

+176
-181
lines changed

11 files changed

+176
-181
lines changed

Diff for: core/commands/dht.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,7 @@ func provideKeysRec(ctx context.Context, r routing.Routing, dserv ipld.DAGServic
326326
for _, c := range cids {
327327
kset := cid.NewSet()
328328

329-
err := dag.WalkParallel(ctx, dag.GetLinksDirect(dserv), c, kset.Visit)
329+
err := dag.Walk(ctx, dag.GetLinksDirect(dserv), c, kset.Visit)
330330
if err != nil {
331331
return err
332332
}

Diff for: core/commands/pin.go

+2-6
Original file line numberDiff line numberDiff line change
@@ -503,11 +503,7 @@ func pinLsAll(req *cmds.Request, typeStr string, n *core.IpfsNode, emit func(val
503503
if typeStr == "indirect" || typeStr == "all" {
504504
for _, k := range n.Pinning.RecursiveKeys() {
505505
var visitErr error
506-
err := dag.WalkParallelDepth(req.Context, dag.GetLinksWithDAG(n.DAG), k, 0, func(c cid.Cid, depth int) bool {
507-
if depth == 0 {
508-
// skip it without visiting it.
509-
return true
510-
}
506+
err := dag.Walk(req.Context, dag.GetLinksWithDAG(n.DAG), k, func(c cid.Cid) bool {
511507
r := keys.Visit(c)
512508
if r {
513509
err := emit(&PinLsOutputWrapper{
@@ -521,7 +517,7 @@ func pinLsAll(req *cmds.Request, typeStr string, n *core.IpfsNode, emit func(val
521517
}
522518
}
523519
return r
524-
})
520+
}, dag.SkipRoot(), dag.Concurrent())
525521

526522
if visitErr != nil {
527523
return visitErr

Diff for: core/coreapi/dht.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ func provideKeysRec(ctx context.Context, r routing.Routing, bs blockstore.Blocks
114114
go func() {
115115
dserv := dag.NewDAGService(blockservice.New(bs, offline.Exchange(bs)))
116116
for _, c := range cids {
117-
err := dag.WalkParallel(ctx, dag.GetLinksDirect(dserv), c, provided.Visitor(ctx))
117+
err := dag.Walk(ctx, dag.GetLinksDirect(dserv), c, provided.Visitor(ctx))
118118
if err != nil {
119119
errCh <- err
120120
}

Diff for: core/coreapi/pin.go

+4-6
Original file line numberDiff line numberDiff line change
@@ -209,12 +209,10 @@ func (api *PinAPI) pinLsAll(typeStr string, ctx context.Context) ([]coreiface.Pi
209209
if typeStr == "indirect" || typeStr == "all" {
210210
set := cid.NewSet()
211211
for _, k := range api.pinning.RecursiveKeys() {
212-
err := merkledag.WalkParallelDepth(
213-
ctx, merkledag.GetLinksWithDAG(api.dag), k, 0,
214-
func(c cid.Cid, depth int) bool {
215-
// don't visit the root node, that doesn't count.
216-
return depth == 0 || set.Visit(c)
217-
},
212+
err := merkledag.Walk(
213+
ctx, merkledag.GetLinksWithDAG(api.dag), k,
214+
set.Visit,
215+
merkledag.SkipRoot(), merkledag.Concurrent(),
218216
)
219217
if err != nil {
220218
return nil, err

Diff for: core/corehttp/gateway.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ func GatewayOption(writable bool, paths ...string) ServeOption {
8787
"X-Stream-Output",
8888
}, headers[ACEHeadersName]...))
8989

90-
gateway := newGatewayHandler(n, GatewayConfig{
90+
gateway := newGatewayHandler(GatewayConfig{
9191
Headers: headers,
9292
Writable: writable,
9393
PathPrefixes: cfg.Gateway.PathPrefixes,

0 commit comments

Comments
 (0)