go.etcd.io/etcd@v3.3.27+incompatible/pkg/httputil/httputil.go (about)

     1  // Copyright 2015 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // borrowed from golang/net/context/ctxhttp/cancelreq.go
     6  
     7  // Package httputil provides HTTP utility functions.
     8  package httputil
     9  
    10  import (
    11  	"io"
    12  	"io/ioutil"
    13  	"net/http"
    14  )
    15  
    16  // GracefulClose drains http.Response.Body until it hits EOF
    17  // and closes it. This prevents TCP/TLS connections from closing,
    18  // therefore available for reuse.
    19  func GracefulClose(resp *http.Response) {
    20  	io.Copy(ioutil.Discard, resp.Body)
    21  	resp.Body.Close()
    22  }