mirror of
https://github.com/containers/podman.git
synced 2025-06-22 09:58:10 +08:00
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 <jakecorrenti+github@proton.me>
This commit is contained in:
@ -669,24 +669,14 @@ func (m *MacMachine) Start(name string, opts machine.StartOptions) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
logrus.Debug("waiting for ready notification")
|
logrus.Debug("waiting for ready notification")
|
||||||
var conn net.Conn
|
|
||||||
readyChan := make(chan error)
|
readyChan := make(chan error)
|
||||||
connChan := make(chan net.Conn)
|
go machine.ListenAndWaitOnSocket(readyChan, readyListen)
|
||||||
go machine.ListenAndWaitOnSocket(readyChan, connChan, readyListen)
|
|
||||||
|
|
||||||
if err := cmd.Start(); err != nil {
|
if err := cmd.Start(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = <-readyChan
|
err = <-readyChan
|
||||||
conn = <-connChan
|
|
||||||
if conn != nil {
|
|
||||||
defer func() {
|
|
||||||
if closeErr := conn.Close(); closeErr != nil {
|
|
||||||
logrus.Error(closeErr)
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
}
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -274,16 +274,7 @@ func (hv *HVSockRegistryEntry) Listen() error {
|
|||||||
}()
|
}()
|
||||||
|
|
||||||
errChan := make(chan error)
|
errChan := make(chan error)
|
||||||
connChan := make(chan net.Conn)
|
go machine.ListenAndWaitOnSocket(errChan, listener)
|
||||||
go machine.ListenAndWaitOnSocket(errChan, connChan, listener)
|
|
||||||
conn := <-connChan
|
|
||||||
|
|
||||||
if conn != nil {
|
|
||||||
defer func() {
|
|
||||||
if err := conn.Close(); err != nil {
|
|
||||||
logrus.Error(err)
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
}
|
|
||||||
return <-errChan
|
return <-errChan
|
||||||
}
|
}
|
||||||
|
@ -30,16 +30,20 @@ func ReadySocketPath(runtimeDir, machineName string) string {
|
|||||||
// ListenAndWaitOnSocket waits for a new connection to the listener and sends
|
// ListenAndWaitOnSocket waits for a new connection to the listener and sends
|
||||||
// any error back through the channel. ListenAndWaitOnSocket is intended to be
|
// any error back through the channel. ListenAndWaitOnSocket is intended to be
|
||||||
// used as a goroutine
|
// 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()
|
conn, err := listener.Accept()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
errChan <- err
|
errChan <- err
|
||||||
connChan <- nil
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
_, err = bufio.NewReader(conn).ReadString('\n')
|
_, err = bufio.NewReader(conn).ReadString('\n')
|
||||||
|
|
||||||
|
if closeErr := conn.Close(); closeErr != nil {
|
||||||
|
errChan <- closeErr
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
errChan <- err
|
errChan <- err
|
||||||
connChan <- conn
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// DialSocketWithBackoffs attempts to connect to the socket in maxBackoffs attempts
|
// DialSocketWithBackoffs attempts to connect to the socket in maxBackoffs attempts
|
||||||
|
Reference in New Issue
Block a user