diff --git a/libnetwork/sandbox_externalkey_unix.go b/libnetwork/sandbox_externalkey_unix.go index 86ade93b76..bb64e23889 100644 --- a/libnetwork/sandbox_externalkey_unix.go +++ b/libnetwork/sandbox_externalkey_unix.go @@ -70,11 +70,6 @@ func setKey() error { // SetExternalKey provides a convenient way to set an External key to a sandbox func SetExternalKey(shortCtlrID string, containerID string, key string, execRoot string) error { - keyData := setKeyData{ - ContainerID: containerID, - Key: key, - } - uds := filepath.Join(execRoot, execSubdir, shortCtlrID+".sock") c, err := net.Dial("unix", uds) if err != nil { @@ -82,29 +77,16 @@ func SetExternalKey(shortCtlrID string, containerID string, key string, execRoot } defer c.Close() - if err = sendKey(c, keyData); err != nil { + err = json.NewEncoder(c).Encode(setKeyData{ + ContainerID: containerID, + Key: key, + }) + if err != nil { return fmt.Errorf("sendKey failed with : %v", err) } return processReturn(c) } -func sendKey(c net.Conn, data setKeyData) error { - var err error - defer func() { - if err != nil { - c.Close() - } - }() - - var b []byte - if b, err = json.Marshal(data); err != nil { - return err - } - - _, err = c.Write(b) - return err -} - func processReturn(r io.Reader) error { buf := make([]byte, 1024) n, err := r.Read(buf[:])