From ef6b78f7db890a79b40484fd892ff486017ff2e9 Mon Sep 17 00:00:00 2001 From: Erik Hollensbe Date: Wed, 30 Jul 2014 09:28:42 -0700 Subject: [PATCH] Remove CheckSum from utils; replace with a TeeReader Docker-DCO-1.1-Signed-off-by: Erik Hollensbe (github: erikh) --- registry/registry.go | 5 +++-- utils/checksum.go | 24 ------------------------ 2 files changed, 3 insertions(+), 26 deletions(-) delete mode 100644 utils/checksum.go diff --git a/registry/registry.go b/registry/registry.go index 0d4f2b3cc7..9035ce90e3 100644 --- a/registry/registry.go +++ b/registry/registry.go @@ -6,6 +6,7 @@ import ( _ "crypto/sha512" "crypto/tls" "crypto/x509" + "encoding/hex" "encoding/json" "errors" "fmt" @@ -642,7 +643,7 @@ func (r *Registry) PushImageLayerRegistry(imgID string, layer io.Reader, registr h := sha256.New() h.Write(jsonRaw) h.Write([]byte{'\n'}) - checksumLayer := &utils.CheckSum{Reader: tarsumLayer, Hash: h} + checksumLayer := io.TeeReader(tarsumLayer, h) req, err := r.reqFactory.NewRequest("PUT", registry+"images/"+imgID+"/layer", checksumLayer) if err != nil { @@ -671,7 +672,7 @@ func (r *Registry) PushImageLayerRegistry(imgID string, layer io.Reader, registr return "", "", utils.NewHTTPRequestError(fmt.Sprintf("Received HTTP code %d while uploading layer: %s", res.StatusCode, errBody), res) } - checksumPayload = "sha256:" + checksumLayer.Sum() + checksumPayload = "sha256:" + hex.EncodeToString(h.Sum(nil)) return tarsumLayer.Sum(jsonRaw), checksumPayload, nil } diff --git a/utils/checksum.go b/utils/checksum.go deleted file mode 100644 index 1c85aa63a3..0000000000 --- a/utils/checksum.go +++ /dev/null @@ -1,24 +0,0 @@ -package utils - -import ( - "encoding/hex" - "hash" - "io" -) - -type CheckSum struct { - io.Reader - Hash hash.Hash -} - -func (cs *CheckSum) Read(buf []byte) (int, error) { - n, err := cs.Reader.Read(buf) - if err == nil { - cs.Hash.Write(buf[:n]) - } - return n, err -} - -func (cs *CheckSum) Sum() string { - return hex.EncodeToString(cs.Hash.Sum(nil)) -}