Skip to content

Commit 8b5f5e0

Browse files
committed
fix: add missing traversal
1 parent a5c2e13 commit 8b5f5e0

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

core/corehttp/gateway_handler_codec.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"github.com/ipfs/kubo/tracing"
1515
"github.com/ipld/go-ipld-prime"
1616
"github.com/ipld/go-ipld-prime/multicodec"
17+
"github.com/ipld/go-ipld-prime/traversal"
1718
mc "github.com/multiformats/go-multicodec"
1819
"go.opentelemetry.io/otel/attribute"
1920
"go.opentelemetry.io/otel/trace"
@@ -95,6 +96,16 @@ func (i *gatewayHandler) serveCodec(ctx context.Context, w http.ResponseWriter,
9596
}
9697
finalNode := universal.(ipld.Node)
9798

99+
if len(resolvedPath.Remainder()) > 0 {
100+
remainderPath := ipld.ParsePath(resolvedPath.Remainder())
101+
102+
finalNode, err = traversal.Get(finalNode, remainderPath)
103+
if err != nil {
104+
webError(w, err.Error(), err, http.StatusInternalServerError)
105+
return
106+
}
107+
}
108+
98109
// Otherwise convert it using the last codec of the list.
99110
encoder, err := multicodec.LookupEncoder(codecs[len(codecs)-1])
100111
if err != nil {

0 commit comments

Comments
 (0)