diff --git a/tsnet/tsnet.go b/tsnet/tsnet.go index d2810c0b2..9efad32b3 100644 --- a/tsnet/tsnet.go +++ b/tsnet/tsnet.go @@ -1468,8 +1468,8 @@ func (a addr) String() string { return a.ln.addr } // cleanupListener wraps a net.Listener with a function to be run on Close. type cleanupListener struct { net.Listener - cleanup func() error cleanupOnce sync.Once + cleanup func() error // nil if unused } func (cl *cleanupListener) Close() error { @@ -1479,15 +1479,5 @@ func (cl *cleanupListener) Close() error { cleanupErr = cl.cleanup() } }) - closeErr := cl.Listener.Close() - switch { - case closeErr != nil && cleanupErr != nil: - return fmt.Errorf("%w; also: %w", closeErr, cleanupErr) - case closeErr != nil: - return closeErr - case cleanupErr != nil: - return cleanupErr - default: - return nil - } + return errors.Join(cl.Listener.Close(), cleanupErr) }