Browse Source

Remove CheckSum from utils; replace with a TeeReader

Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
Erik Hollensbe 11 years ago
parent
commit
ef6b78f7db
2 changed files with 3 additions and 26 deletions
  1. 3 2
      registry/registry.go
  2. 0 24
      utils/checksum.go

+ 3 - 2
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
 }
 

+ 0 - 24
utils/checksum.go

@@ -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))
-}