2
0

Better error messages

This commit is contained in:
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
+3 -8
View File
@@ -13,7 +13,6 @@ package nbconn
import ( import (
"crypto/tls" "crypto/tls"
"errors" "errors"
"fmt"
"net" "net"
"os" "os"
"sync" "sync"
@@ -162,11 +161,7 @@ func (c *NetConn) Read(b []byte) (n int, err error) {
var readN int var readN int
if readNonblocking { if readNonblocking {
if setSockModeErr := c.SetBlockingMode(false); setSockModeErr != nil { if setSockModeErr := c.SetBlockingMode(false); setSockModeErr != nil {
err = fmt.Errorf("cannot set socket to non-blocking mode: %w", setSockModeErr) return n, setSockModeErr
}
if err != nil {
return n, err
} }
defer func() { defer func() {
@@ -298,7 +293,7 @@ func (c *NetConn) flush() error {
var errChan chan error var errChan chan error
if err := c.SetBlockingMode(false); err != nil { if err := c.SetBlockingMode(false); err != nil {
return fmt.Errorf("cannot set socket to non-blocking mode: %w", err) return err
} }
defer func() { defer func() {
@@ -349,7 +344,7 @@ func (c *NetConn) flush() error {
func (c *NetConn) BufferReadUntilBlock() error { func (c *NetConn) BufferReadUntilBlock() error {
if err := c.SetBlockingMode(false); err != nil { if err := c.SetBlockingMode(false); err != nil {
return fmt.Errorf("cannot set socket to non-blocking mode: %w", err) return err
} }
defer func() { defer func() {
@@ -4,6 +4,7 @@ package nbconn
import ( import (
"errors" "errors"
"fmt"
"golang.org/x/sys/windows" "golang.org/x/sys/windows"
"io" "io"
"syscall" "syscall"
@@ -154,19 +155,20 @@ func (c *NetConn) SetBlockingMode(blocking bool) error {
}) })
if ctrlErr != nil || err != nil { if ctrlErr != nil || err != nil {
retErr := ctrlErr
if retErr == nil {
retErr = err
}
// Revert counters inc/dec in case of error // Revert counters inc/dec in case of error
if blocking { if blocking {
c.nbOperCnt.Add(1) c.nbOperCnt.Add(1)
return fmt.Errorf("cannot set socket to blocking mode: %w", retErr)
} else { } else {
c.nbOperCnt.Add(-1) c.nbOperCnt.Add(-1)
}
if ctrlErr != nil { return fmt.Errorf("cannot set socket to non-blocking mode: %w", retErr)
return ctrlErr
}
if err != nil {
return err
} }
} }