File tree Expand file tree Collapse file tree 2 files changed +23
-22
lines changed Expand file tree Collapse file tree 2 files changed +23
-22
lines changed Original file line number Diff line number Diff line change @@ -19,35 +19,36 @@ import (
1919
2020var errUnexpectedRead = errors .New ("unexpected read from socket" )
2121
22- func connCheck (c net.Conn ) error {
23- var (
24- n int
25- err error
26- buff [1 ]byte
27- )
28-
29- sconn , ok := c .(syscall.Conn )
22+ func connCheck (conn net.Conn ) error {
23+ var sysErr error
24+
25+ sysConn , ok := conn .(syscall.Conn )
3026 if ! ok {
3127 return nil
3228 }
33- rc , err := sconn .SyscallConn ()
29+ rawConn , err := sysConn .SyscallConn ()
3430 if err != nil {
3531 return err
3632 }
37- rerr := rc .Read (func (fd uintptr ) bool {
38- n , err = syscall .Read (int (fd ), buff [:])
33+
34+ err = rawConn .Read (func (fd uintptr ) bool {
35+ var buf [1 ]byte
36+ n , err := syscall .Read (int (fd ), buf [:])
37+ switch {
38+ case n == 0 && err == nil :
39+ sysErr = io .EOF
40+ case n > 0 :
41+ sysErr = errUnexpectedRead
42+ case err == syscall .EAGAIN || err == syscall .EWOULDBLOCK :
43+ sysErr = nil
44+ default :
45+ sysErr = err
46+ }
3947 return true
4048 })
41- switch {
42- case rerr != nil :
43- return rerr
44- case n == 0 && err == nil :
45- return io .EOF
46- case n > 0 :
47- return errUnexpectedRead
48- case err == syscall .EAGAIN || err == syscall .EWOULDBLOCK :
49- return nil
50- default :
49+ if err != nil {
5150 return err
5251 }
52+
53+ return sysErr
5354}
Original file line number Diff line number Diff line change @@ -12,6 +12,6 @@ package mysql
1212
1313import "net"
1414
15- func connCheck (c net.Conn ) error {
15+ func connCheck (conn net.Conn ) error {
1616 return nil
1717}
You can’t perform that action at this time.
0 commit comments