From cb84a376bd5e2a9a1e1c320631505c5f0f1650b6 Mon Sep 17 00:00:00 2001 From: Matt Bell Date: Fri, 12 Dec 2014 20:50:02 -0800 Subject: [PATCH] cmd/ipfs: Added an ipfsHandler constructor --- cmd/ipfs/daemon.go | 11 ++++++++--- cmd/ipfs/ipfsHandler.go | 22 +++++++++++++++++----- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/cmd/ipfs/daemon.go b/cmd/ipfs/daemon.go index 6674b9d2f..ee816a800 100644 --- a/cmd/ipfs/daemon.go +++ b/cmd/ipfs/daemon.go @@ -165,8 +165,10 @@ func listenAndServeAPI(node *core.IpfsNode, req cmds.Request, addr ma.Multiaddr) cmdHandler := cmdsHttp.NewHandler(*req.Context(), commands.Root, origin) mux.Handle(cmdsHttp.ApiPath+"/", cmdHandler) - ifpsHandler := &ipfsHandler{node: node} - ifpsHandler.LoadTemplate() + ifpsHandler, err := NewIpfsHandler(node) + if err != nil { + return err + } mux.Handle("/ipfs/", ifpsHandler) @@ -203,7 +205,10 @@ func listenAndServeGateway(node *core.IpfsNode, addr ma.Multiaddr) error { server := manners.NewServer() mux := http.NewServeMux() - ifpsHandler := &ipfsHandler{node} + ifpsHandler, err := NewIpfsHandler(node) + if err != nil { + return err + } mux.Handle("/ipfs/", ifpsHandler) done := make(chan struct{}, 1) diff --git a/cmd/ipfs/ipfsHandler.go b/cmd/ipfs/ipfsHandler.go index 199a65ce2..bd9ea8ef2 100644 --- a/cmd/ipfs/ipfsHandler.go +++ b/cmd/ipfs/ipfsHandler.go @@ -40,13 +40,25 @@ type ipfsHandler struct { dirList *template.Template } +func NewIpfsHandler(node *core.IpfsNode) (*ipfsHandler, error) { + i := &ipfsHandler{ + node: node, + } + err := i.loadTemplate() + if err != nil { + return nil, err + } + return i, nil +} + // Load the directroy list template -func (i *ipfsHandler) LoadTemplate() { +func (i *ipfsHandler) loadTemplate() error { t, err := template.New("dir").Parse(listingTemplate) if err != nil { - log.Error(err) + return err } i.dirList = t + return nil } func (i *ipfsHandler) ResolvePath(path string) (*dag.Node, error) { @@ -175,9 +187,9 @@ var listingTemplate = `

Index of {{ .path }}