X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/151df8c3b177e4971bfbdf68c87d89599dbe0812..72900c01e197d602e79fda8d306b17fd1e32a3ea:/services/keep-web/handler.go diff --git a/services/keep-web/handler.go b/services/keep-web/handler.go index a79973b975..5e3e4afdb4 100644 --- a/services/keep-web/handler.go +++ b/services/keep-web/handler.go @@ -157,17 +157,19 @@ func (h *handler) ServeHTTP(wOrig http.ResponseWriter, r *http.Request) { } else if len(pathParts) >= 3 && pathParts[0] == "collections" { if len(pathParts) >= 5 && pathParts[1] == "download" { // /collections/download/ID/TOKEN/PATH... - targetID = pathParts[2] + targetID = parseCollectionIDFromURL(pathParts[2]) tokens = []string{pathParts[3]} targetPath = pathParts[4:] pathToken = true } else { // /collections/ID/PATH... - targetID = pathParts[1] + targetID = parseCollectionIDFromURL(pathParts[1]) tokens = h.Config.AnonymousTokens targetPath = pathParts[2:] } - } else { + } + + if targetID == "" { statusCode = http.StatusNotFound return } @@ -333,9 +335,9 @@ func (h *handler) ServeHTTP(wOrig http.ResponseWriter, r *http.Request) { statusCode, statusText = http.StatusInternalServerError, err.Error() return } - if kc.Client != nil && kc.Client.Transport != nil { + if client, ok := kc.Client.(*http.Client); ok && client.Transport != nil { // Workaround for https://dev.arvados.org/issues/9005 - if t, ok := kc.Client.Transport.(*http.Transport); ok { + if t, ok := client.Transport.(*http.Transport); ok { defer t.CloseIdleConnections() } }