From 48adfc88db93a0eb6e3827d4fb86d90b179c047f Mon Sep 17 00:00:00 2001 From: imterah Date: Fri, 10 Jan 2025 16:37:38 -0500 Subject: [PATCH] fix: Fixes performance regression introduced in 4cb648cd66 / v2.1.0. (closes #7) --- backend/sshbackend/main.go | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/backend/sshbackend/main.go b/backend/sshbackend/main.go index f63b8c3..baf1994 100644 --- a/backend/sshbackend/main.go +++ b/backend/sshbackend/main.go @@ -221,13 +221,19 @@ func (backend *SSHBackend) StartProxy(command *commonbackend.AddProxy) (bool, er for { len, err := forwardedConn.Read(forwardedBuffer) - if err != nil && err.Error() != "EOF" && !errors.Is(err, net.ErrClosed) { - log.Errorf("failed to read from forwarded connection: %s", err.Error()) + if err != nil { + if err.Error() != "EOF" && !errors.Is(err, net.ErrClosed) { + log.Errorf("failed to read from forwarded connection: %s", err.Error()) + } + return } - if _, err = sourceConn.Write(forwardedBuffer[:len]); err != nil && err.Error() != "EOF" && !errors.Is(err, net.ErrClosed) { - log.Errorf("failed to write to source connection: %s", err.Error()) + if _, err = sourceConn.Write(forwardedBuffer[:len]); err != nil { + if err.Error() != "EOF" && !errors.Is(err, net.ErrClosed) { + log.Errorf("failed to write to source connection: %s", err.Error()) + } + return } } @@ -239,13 +245,19 @@ func (backend *SSHBackend) StartProxy(command *commonbackend.AddProxy) (bool, er for { len, err := sourceConn.Read(sourceBuffer) - if err != nil && err.Error() != "EOF" && !errors.Is(err, net.ErrClosed) { - log.Errorf("failed to read from source connection: %s", err.Error()) + if err != nil { + if err.Error() != "EOF" && !errors.Is(err, net.ErrClosed) { + log.Errorf("failed to read from source connection: %s", err.Error()) + } + return } - if _, err = forwardedConn.Write(sourceBuffer[:len]); err != nil && err.Error() != "EOF" && !errors.Is(err, net.ErrClosed) { - log.Errorf("failed to write to forwarded connection: %s", err.Error()) + if _, err = forwardedConn.Write(sourceBuffer[:len]); err != nil { + if err.Error() != "EOF" && !errors.Is(err, net.ErrClosed) { + log.Errorf("failed to write to forwarded connection: %s", err.Error()) + } + return } }