From e1e1a52e060b98fb23bed4f2bf3c4d3abec3b05c Mon Sep 17 00:00:00 2001 From: sawka Date: Wed, 28 Dec 2022 16:59:54 -0800 Subject: [PATCH] autoconnect remotes --- pkg/cmdrunner/resolver.go | 7 ++++++- pkg/remote/remote.go | 7 +++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/pkg/cmdrunner/resolver.go b/pkg/cmdrunner/resolver.go index e70135b2..264d5be8 100644 --- a/pkg/cmdrunner/resolver.go +++ b/pkg/cmdrunner/resolver.go @@ -272,8 +272,13 @@ func resolveUiIds(ctx context.Context, pk *scpacket.FeCommandPacketType, rtype i if !rtn.Remote.RState.IsConnected() { err = rtn.Remote.MShell.TryAutoConnect() if err != nil { - return rtn, fmt.Errorf("error trying to auto-connect remote %q", rtn.Remote.DisplayName) + return rtn, fmt.Errorf("error trying to auto-connect remote %q: %w", rtn.Remote.DisplayName, err) } + rrNew, err := resolveRemoteFromPtr(ctx, rptr, rtn.SessionId, rtn.WindowId) + if err != nil { + return rtn, err + } + rtn.Remote = rrNew } if !rtn.Remote.RState.IsConnected() { return rtn, fmt.Errorf("remote %q is not connected", rtn.Remote.DisplayName) diff --git a/pkg/remote/remote.go b/pkg/remote/remote.go index 8b30aea7..f2331622 100644 --- a/pkg/remote/remote.go +++ b/pkg/remote/remote.go @@ -1828,13 +1828,13 @@ func (msh *MShellProc) TryAutoConnect() error { return nil } rcopy := msh.GetRemoteCopy() - if !rcopy.AutoInstall { + if rcopy.ConnectMode == sstore.ConnectModeManual { return nil } var err error msh.WithLock(func() { if msh.NumTryConnect > 5 { - err = fmt.Errorf("cannot auto-connect remote %q (too many unsuccessful tries)", msh.Remote.GetName()) + err = fmt.Errorf("too many unsuccessful tries") return } msh.NumTryConnect++ @@ -1843,5 +1843,8 @@ func (msh *MShellProc) TryAutoConnect() error { return err } msh.Launch() + if !msh.IsConnected() { + return fmt.Errorf("error connecting") + } return nil }