From 39d647a2f6b05dc1afe54894ea0a7fbe877d58a2 Mon Sep 17 00:00:00 2001 From: Jake Correnti Date: Thu, 9 Nov 2023 10:41:50 -0500 Subject: [PATCH] Fix socket mapping socket mapping nits Fixes nits that were suggested in #20420. The caller of `ListenAndWaitOnSocket` did not use the value returned by the conn channel, therefore it was better to just close the conn in the `ListenAndWaitOnSocket` function instead. [NO NEW TESTS NEEDED] Signed-off-by: Jake Correnti --- pkg/machine/applehv/machine.go | 12 +----------- pkg/machine/hyperv/vsock.go | 11 +---------- pkg/machine/sockets.go | 10 +++++++--- 3 files changed, 9 insertions(+), 24 deletions(-) diff --git a/pkg/machine/applehv/machine.go b/pkg/machine/applehv/machine.go index 8da6f3f74c..aecee75c51 100644 --- a/pkg/machine/applehv/machine.go +++ b/pkg/machine/applehv/machine.go @@ -669,24 +669,14 @@ func (m *MacMachine) Start(name string, opts machine.StartOptions) error { } logrus.Debug("waiting for ready notification") - var conn net.Conn readyChan := make(chan error) - connChan := make(chan net.Conn) - go machine.ListenAndWaitOnSocket(readyChan, connChan, readyListen) + go machine.ListenAndWaitOnSocket(readyChan, readyListen) if err := cmd.Start(); err != nil { return err } err = <-readyChan - conn = <-connChan - if conn != nil { - defer func() { - if closeErr := conn.Close(); closeErr != nil { - logrus.Error(closeErr) - } - }() - } if err != nil { return err } diff --git a/pkg/machine/hyperv/vsock.go b/pkg/machine/hyperv/vsock.go index 1be0c48f35..178694002f 100644 --- a/pkg/machine/hyperv/vsock.go +++ b/pkg/machine/hyperv/vsock.go @@ -274,16 +274,7 @@ func (hv *HVSockRegistryEntry) Listen() error { }() errChan := make(chan error) - connChan := make(chan net.Conn) - go machine.ListenAndWaitOnSocket(errChan, connChan, listener) - conn := <-connChan + go machine.ListenAndWaitOnSocket(errChan, listener) - if conn != nil { - defer func() { - if err := conn.Close(); err != nil { - logrus.Error(err) - } - }() - } return <-errChan } diff --git a/pkg/machine/sockets.go b/pkg/machine/sockets.go index 131127094d..a7d51061cb 100644 --- a/pkg/machine/sockets.go +++ b/pkg/machine/sockets.go @@ -30,16 +30,20 @@ func ReadySocketPath(runtimeDir, machineName string) string { // ListenAndWaitOnSocket waits for a new connection to the listener and sends // any error back through the channel. ListenAndWaitOnSocket is intended to be // used as a goroutine -func ListenAndWaitOnSocket(errChan chan<- error, connChan chan<- net.Conn, listener net.Listener) { +func ListenAndWaitOnSocket(errChan chan<- error, listener net.Listener) { conn, err := listener.Accept() if err != nil { errChan <- err - connChan <- nil return } _, err = bufio.NewReader(conn).ReadString('\n') + + if closeErr := conn.Close(); closeErr != nil { + errChan <- closeErr + return + } + errChan <- err - connChan <- conn } // DialSocketWithBackoffs attempts to connect to the socket in maxBackoffs attempts