@@ -132,16 +132,14 @@ func (i *gatewayHandler) optionsHandler(w http.ResponseWriter, r *http.Request)
132
132
}
133
133
134
134
func (i * gatewayHandler ) getOrHeadHandler (ctx context.Context , w http.ResponseWriter , r * http.Request ) {
135
-
136
135
urlPath := r .URL .Path
137
136
escapedURLPath := r .URL .EscapedPath ()
138
137
139
138
// If the gateway is behind a reverse proxy and mounted at a sub-path,
140
139
// the prefix header can be set to signal this sub-path.
141
140
// It will be prepended to links in directory listings and the index.html redirect.
142
141
prefix := ""
143
- if prefixHdr := r .Header ["X-Ipfs-Gateway-Prefix" ]; len (prefixHdr ) > 0 {
144
- prfx := prefixHdr [0 ]
142
+ if prfx := r .Header .Get ("X-Ipfs-Gateway-Prefix" ); len (prfx ) > 0 {
145
143
for _ , p := range i .config .PathPrefixes {
146
144
if prfx == p || strings .HasPrefix (prfx , p + "/" ) {
147
145
prefix = prfx
@@ -157,8 +155,8 @@ func (i *gatewayHandler) getOrHeadHandler(ctx context.Context, w http.ResponseWr
157
155
// the redirects and links would end up as http://example.net/ipns/example.net
158
156
originalUrlPath := prefix + urlPath
159
157
ipnsHostname := false
160
- if hdr := r .Header [ "X-Ipns-Original-Path" ] ; len (hdr ) > 0 {
161
- originalUrlPath = prefix + hdr [ 0 ]
158
+ if hdr := r .Header . Get ( "X-Ipns-Original-Path" ) ; len (hdr ) > 0 {
159
+ originalUrlPath = prefix + hdr
162
160
ipnsHostname = true
163
161
}
164
162
@@ -170,15 +168,10 @@ func (i *gatewayHandler) getOrHeadHandler(ctx context.Context, w http.ResponseWr
170
168
171
169
// Resolve path to the final DAG node for the ETag
172
170
resolvedPath , err := i .api .ResolvePath (ctx , parsedPath )
173
- switch err {
174
- case nil :
175
- case coreiface .ErrOffline :
176
- if ! i .node .OnlineMode () {
177
- webError (w , "ipfs resolve -r " + escapedURLPath , err , http .StatusServiceUnavailable )
178
- return
179
- }
180
- fallthrough
181
- default :
171
+ if err == coreiface .ErrOffline && ! i .node .OnlineMode () {
172
+ webError (w , "ipfs resolve -r " + escapedURLPath , err , http .StatusServiceUnavailable )
173
+ return
174
+ } else if err != nil {
182
175
webError (w , "ipfs resolve -r " + escapedURLPath , err , http .StatusNotFound )
183
176
return
184
177
}
0 commit comments