From 572498be565ab8312e2b2b721f252cc5b38c470e Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Wed, 18 Aug 2021 13:23:06 +0200 Subject: [PATCH] move pkg/ioutils.HashData() to libnetwork/resolvconf It's the only location it's used, so we might as well move it there. Signed-off-by: Sebastiaan van Stijn --- libnetwork/resolvconf/resolvconf.go | 9 ++++----- libnetwork/resolvconf/resolvconf_linux_test.go | 4 +--- libnetwork/resolvconf/utils.go | 16 ++++++++++++++++ libnetwork/resolvconf/utils_test.go | 18 ++++++++++++++++++ pkg/ioutils/readers.go | 11 ----------- pkg/ioutils/readers_test.go | 12 ------------ 6 files changed, 39 insertions(+), 31 deletions(-) create mode 100644 libnetwork/resolvconf/utils.go create mode 100644 libnetwork/resolvconf/utils_test.go diff --git a/libnetwork/resolvconf/resolvconf.go b/libnetwork/resolvconf/resolvconf.go index 090247c94b..d658c4157a 100644 --- a/libnetwork/resolvconf/resolvconf.go +++ b/libnetwork/resolvconf/resolvconf.go @@ -8,7 +8,6 @@ import ( "strings" "sync" - "github.com/docker/docker/pkg/ioutils" "github.com/sirupsen/logrus" ) @@ -109,7 +108,7 @@ func GetSpecific(path string) (*File, error) { if err != nil { return nil, err } - hash, err := ioutils.HashData(bytes.NewReader(resolv)) + hash, err := hashData(bytes.NewReader(resolv)) if err != nil { return nil, err } @@ -127,7 +126,7 @@ func GetIfChanged() (*File, error) { if err != nil { return nil, err } - newHash, err := ioutils.HashData(bytes.NewReader(resolv)) + newHash, err := hashData(bytes.NewReader(resolv)) if err != nil { return nil, err } @@ -173,7 +172,7 @@ func FilterResolvDNS(resolvConf []byte, ipv6Enabled bool) (*File, error) { } cleanedResolvConf = append(cleanedResolvConf, []byte("\n"+strings.Join(dns, "\n"))...) } - hash, err := ioutils.HashData(bytes.NewReader(cleanedResolvConf)) + hash, err := hashData(bytes.NewReader(cleanedResolvConf)) if err != nil { return nil, err } @@ -287,7 +286,7 @@ func Build(path string, dns, dnsSearch, dnsOptions []string) (*File, error) { } } - hash, err := ioutils.HashData(bytes.NewReader(content.Bytes())) + hash, err := hashData(bytes.NewReader(content.Bytes())) if err != nil { return nil, err } diff --git a/libnetwork/resolvconf/resolvconf_linux_test.go b/libnetwork/resolvconf/resolvconf_linux_test.go index d5f304d999..ac115a60b1 100644 --- a/libnetwork/resolvconf/resolvconf_linux_test.go +++ b/libnetwork/resolvconf/resolvconf_linux_test.go @@ -5,8 +5,6 @@ import ( "io/ioutil" "os" "testing" - - "github.com/docker/docker/pkg/ioutils" ) func TestGet(t *testing.T) { @@ -21,7 +19,7 @@ func TestGet(t *testing.T) { if string(resolvConfUtils.Content) != string(resolvConfSystem) { t.Fatalf("/etc/resolv.conf and GetResolvConf have different content.") } - hashSystem, err := ioutils.HashData(bytes.NewReader(resolvConfSystem)) + hashSystem, err := hashData(bytes.NewReader(resolvConfSystem)) if err != nil { t.Fatal(err) } diff --git a/libnetwork/resolvconf/utils.go b/libnetwork/resolvconf/utils.go new file mode 100644 index 0000000000..7d4d095793 --- /dev/null +++ b/libnetwork/resolvconf/utils.go @@ -0,0 +1,16 @@ +package resolvconf + +import ( + "crypto/sha256" + "encoding/hex" + "io" +) + +// hashData returns the sha256 sum of src. +func hashData(src io.Reader) (string, error) { + h := sha256.New() + if _, err := io.Copy(h, src); err != nil { + return "", err + } + return "sha256:" + hex.EncodeToString(h.Sum(nil)), nil +} diff --git a/libnetwork/resolvconf/utils_test.go b/libnetwork/resolvconf/utils_test.go new file mode 100644 index 0000000000..fa57a1d33d --- /dev/null +++ b/libnetwork/resolvconf/utils_test.go @@ -0,0 +1,18 @@ +package resolvconf + +import ( + "strings" + "testing" +) + +func TestHashData(t *testing.T) { + reader := strings.NewReader("hash-me") + actual, err := hashData(reader) + if err != nil { + t.Fatal(err) + } + expected := "sha256:4d11186aed035cc624d553e10db358492c84a7cd6b9670d92123c144930450aa" + if actual != expected { + t.Fatalf("Expecting %s, got %s", expected, actual) + } +} diff --git a/pkg/ioutils/readers.go b/pkg/ioutils/readers.go index 1f657bd3dc..49d6936b14 100644 --- a/pkg/ioutils/readers.go +++ b/pkg/ioutils/readers.go @@ -2,8 +2,6 @@ package ioutils // import "github.com/docker/docker/pkg/ioutils" import ( "context" - "crypto/sha256" - "encoding/hex" "io" ) @@ -49,15 +47,6 @@ func NewReaderErrWrapper(r io.Reader, closer func()) io.Reader { } } -// HashData returns the sha256 sum of src. -func HashData(src io.Reader) (string, error) { - h := sha256.New() - if _, err := io.Copy(h, src); err != nil { - return "", err - } - return "sha256:" + hex.EncodeToString(h.Sum(nil)), nil -} - // OnEOFReader wraps an io.ReadCloser and a function // the function will run at the end of file or close the file. type OnEOFReader struct { diff --git a/pkg/ioutils/readers_test.go b/pkg/ioutils/readers_test.go index 949e28739f..15f858aceb 100644 --- a/pkg/ioutils/readers_test.go +++ b/pkg/ioutils/readers_test.go @@ -58,18 +58,6 @@ func TestReaderErrWrapperRead(t *testing.T) { } } -func TestHashData(t *testing.T) { - reader := strings.NewReader("hash-me") - actual, err := HashData(reader) - if err != nil { - t.Fatal(err) - } - expected := "sha256:4d11186aed035cc624d553e10db358492c84a7cd6b9670d92123c144930450aa" - if actual != expected { - t.Fatalf("Expecting %s, got %s", expected, actual) - } -} - type perpetualReader struct{} func (p *perpetualReader) Read(buf []byte) (n int, err error) {