diff --git a/protocol.go b/protocol.go index 8e473c7..7ac81af 100644 --- a/protocol.go +++ b/protocol.go @@ -125,9 +125,12 @@ func (s *secureSession) runHandshake(ctx context.Context) error { var err error select { case <-ctx.Done(): + err = ctx.Err() + // State unknown. We *have* to close this. s.insecure.Close() - err = ctx.Err() + // Wait for the handshake to return. + <-result case err = <-result: } return err