X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/7c7dc19ffa0a20fff6d97e51c874bfaca9596b24..ca06cfbda0e84d469f7810a280cfa4dfa8997260:/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)