Better error messages

pull/1557/head
Dmitry K 2023-03-19 15:19:55 +03:00 committed by Jack Christensen
parent 89475c4c91
commit e05abb83ec
2 changed files with 12 additions and 15 deletions

View File

@ -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() {

View File

@ -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)
}
}