Skip to content

Commit

Permalink
fix(gateway): do not act on template errors
Browse files Browse the repository at this point in the history
  • Loading branch information
hacdias committed Nov 21, 2023
1 parent fe55533 commit 3cdffaa
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 17 deletions.
6 changes: 1 addition & 5 deletions gateway/assets/test/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -157,11 +157,7 @@ func runTemplate(w http.ResponseWriter, filename string, data interface{}) {
http.Error(w, fmt.Sprintf("failed to parse template file: %s", err), http.StatusInternalServerError)
return
}
err = tpl.Execute(w, data)
if err != nil {
http.Error(w, fmt.Sprintf("failed to execute template: %s", err), http.StatusInternalServerError)
return
}
_ = tpl.Execute(w, data)
}

func main() {
Expand Down
6 changes: 2 additions & 4 deletions gateway/handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -912,13 +912,11 @@ func (i *handler) handleSuperfluousNamespace(w http.ResponseWriter, r *http.Requ
// - redirects to intendedURL after a short delay

w.WriteHeader(http.StatusBadRequest)
if err := redirectTemplate.Execute(w, redirectTemplateData{
_ = redirectTemplate.Execute(w, redirectTemplateData{
RedirectURL: intendedURL,
SuggestedPath: intendedPath.String(),
ErrorMsg: fmt.Sprintf("invalid path: %q should be %q", r.URL.Path, intendedPath.String()),
}); err != nil {
i.webError(w, r, fmt.Errorf("failed to redirect when fixing superfluous namespace: %w", err), http.StatusBadRequest)
}
})

return true
}
Expand Down
10 changes: 3 additions & 7 deletions gateway/handler_codec.go
Original file line number Diff line number Diff line change
Expand Up @@ -195,20 +195,16 @@ func (i *handler) serveCodecHTML(ctx context.Context, w http.ResponseWriter, r *
w.Header().Del("Cache-Control")

cidCodec := mc.Code(resolvedPath.RootCid().Prefix().Codec)
if err := assets.DagTemplate.Execute(w, assets.DagTemplateData{
err = assets.DagTemplate.Execute(w, assets.DagTemplateData{
GlobalData: i.getTemplateGlobalData(r, contentPath),
Path: contentPath.String(),
CID: resolvedPath.RootCid().String(),
CodecName: cidCodec.String(),
CodecHex: fmt.Sprintf("0x%x", uint64(cidCodec)),
Node: parseNode(blockCid, blockData),
}); err != nil {
err = fmt.Errorf("failed to generate HTML listing for this DAG: try fetching raw block with ?format=raw: %w", err)
i.webError(w, r, err, http.StatusInternalServerError)
return false
}
})

return true
return err == nil
}

// parseNode does a best effort attempt to parse this request's block such that
Expand Down
1 change: 0 additions & 1 deletion gateway/handler_unixfs_dir.go
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,6 @@ func (i *handler) serveDirectory(ctx context.Context, w http.ResponseWriter, r *
rq.logger.Debugw("request processed", "tplDataDNSLink", globalData.DNSLink, "tplDataSize", size, "tplDataBackLink", backLink, "tplDataHash", hash)

if err := assets.DirectoryTemplate.Execute(w, tplData); err != nil {
i.webError(w, r, err, http.StatusInternalServerError)
return false
}

Expand Down

0 comments on commit 3cdffaa

Please sign in to comment.