X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/6ab526bb7fef3d7d42ff728fa30444e75de7be38..d0414ca727006b821b10b25d3920dc0f66400356:/sdk/go/keepclient/keepclient.go diff --git a/sdk/go/keepclient/keepclient.go b/sdk/go/keepclient/keepclient.go index 029c6ee7f3..cbfad8177d 100644 --- a/sdk/go/keepclient/keepclient.go +++ b/sdk/go/keepclient/keepclient.go @@ -1,3 +1,7 @@ +// Copyright (C) The Arvados Authors. All rights reserved. +// +// SPDX-License-Identifier: Apache-2.0 + /* Provides low-level Get/Put primitives for accessing Arvados Keep blocks. */ package keepclient @@ -242,6 +246,10 @@ func (kc *KeepClient) getOrHead(method string, locator string) (io.ReadCloser, i } else if resp.StatusCode == 404 { count404++ } + } else if resp.ContentLength < 0 { + // Missing Content-Length + resp.Body.Close() + return nil, 0, "", fmt.Errorf("Missing Content-Length of block") } else { // Success. if method == "GET" { @@ -430,6 +438,10 @@ func (kc *KeepClient) cache() *BlockCache { } } +func (kc *KeepClient) ClearBlockCache() { + kc.cache().Clear() +} + var ( // There are four global http.Client objects for the four // possible permutations of TLS behavior (verify/skip-verify)