From e05abb83ec1f4bc5272ba520cfc7487503626853 Mon Sep 17 00:00:00 2001 From: Dmitry K Date: Sun, 19 Mar 2023 15:19:55 +0300 Subject: [PATCH] Better error messages --- internal/nbconn/nbconn.go | 11 +++-------- internal/nbconn/nbconn_real_non_block_windows.go | 16 +++++++++------- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/internal/nbconn/nbconn.go b/internal/nbconn/nbconn.go index 5c1bc400..dfcf4c94 100644 --- a/internal/nbconn/nbconn.go +++ b/internal/nbconn/nbconn.go @@ -13,7 +13,6 @@ package nbconn import ( "crypto/tls" "errors" - "fmt" "net" "os" "sync" @@ -162,11 +161,7 @@ func (c *NetConn) Read(b []byte) (n int, err error) { var readN int if readNonblocking { if setSockModeErr := c.SetBlockingMode(false); setSockModeErr != nil { - err = fmt.Errorf("cannot set socket to non-blocking mode: %w", setSockModeErr) - } - - if err != nil { - return n, err + return n, setSockModeErr } defer func() { @@ -298,7 +293,7 @@ func (c *NetConn) flush() error { var errChan chan error if err := c.SetBlockingMode(false); err != nil { - return fmt.Errorf("cannot set socket to non-blocking mode: %w", err) + return err } defer func() { @@ -349,7 +344,7 @@ func (c *NetConn) flush() error { func (c *NetConn) BufferReadUntilBlock() error { if err := c.SetBlockingMode(false); err != nil { - return fmt.Errorf("cannot set socket to non-blocking mode: %w", err) + return err } defer func() { diff --git a/internal/nbconn/nbconn_real_non_block_windows.go b/internal/nbconn/nbconn_real_non_block_windows.go index d7446706..aefc1d4a 100644 --- a/internal/nbconn/nbconn_real_non_block_windows.go +++ b/internal/nbconn/nbconn_real_non_block_windows.go @@ -4,6 +4,7 @@ package nbconn import ( "errors" + "fmt" "golang.org/x/sys/windows" "io" "syscall" @@ -154,19 +155,20 @@ func (c *NetConn) SetBlockingMode(blocking bool) error { }) if ctrlErr != nil || err != nil { + retErr := ctrlErr + if retErr == nil { + retErr = err + } + // Revert counters inc/dec in case of error if blocking { c.nbOperCnt.Add(1) + + return fmt.Errorf("cannot set socket to blocking mode: %w", retErr) } else { c.nbOperCnt.Add(-1) - } - if ctrlErr != nil { - return ctrlErr - } - - if err != nil { - return err + return fmt.Errorf("cannot set socket to non-blocking mode: %w", retErr) } }