diff options
Diffstat (limited to 'vendor/github.com/denisenkom/go-mssqldb/net.go')
-rw-r--r-- | vendor/github.com/denisenkom/go-mssqldb/net.go | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/vendor/github.com/denisenkom/go-mssqldb/net.go b/vendor/github.com/denisenkom/go-mssqldb/net.go index 8c3c8ef8b1..e3864d1a22 100644 --- a/vendor/github.com/denisenkom/go-mssqldb/net.go +++ b/vendor/github.com/denisenkom/go-mssqldb/net.go @@ -14,7 +14,7 @@ type timeoutConn struct { continueRead bool } -func NewTimeoutConn(conn net.Conn, timeout time.Duration) *timeoutConn { +func newTimeoutConn(conn net.Conn, timeout time.Duration) *timeoutConn { return &timeoutConn{ c: conn, timeout: timeout, @@ -48,9 +48,11 @@ func (c *timeoutConn) Read(b []byte) (n int, err error) { n, err = c.buf.Read(b) return } - err = c.c.SetDeadline(time.Now().Add(c.timeout)) - if err != nil { - return + if c.timeout > 0 { + err = c.c.SetDeadline(time.Now().Add(c.timeout)) + if err != nil { + return + } } return c.c.Read(b) } @@ -58,7 +60,7 @@ func (c *timeoutConn) Read(b []byte) (n int, err error) { func (c *timeoutConn) Write(b []byte) (n int, err error) { if c.buf != nil { if !c.packetPending { - c.buf.BeginPacket(packPrelogin) + c.buf.BeginPacket(packPrelogin, false) c.packetPending = true } n, err = c.buf.Write(b) @@ -67,9 +69,11 @@ func (c *timeoutConn) Write(b []byte) (n int, err error) { } return } - err = c.c.SetDeadline(time.Now().Add(c.timeout)) - if err != nil { - return + if c.timeout > 0 { + err = c.c.SetDeadline(time.Now().Add(c.timeout)) + if err != nil { + return + } } return c.c.Write(b) } |