33 lines
573 B
Go
33 lines
573 B
Go
package api
|
|
|
|
import (
|
|
"bufio"
|
|
"crypto/tls"
|
|
"net"
|
|
)
|
|
|
|
type bufferedConn struct {
|
|
net.Conn
|
|
reader *bufio.Reader
|
|
}
|
|
|
|
func (c *bufferedConn) Read(p []byte) (int, error) {
|
|
if c == nil {
|
|
return 0, net.ErrClosed
|
|
}
|
|
if c.reader == nil {
|
|
return c.Conn.Read(p)
|
|
}
|
|
return c.reader.Read(p)
|
|
}
|
|
|
|
func (c *bufferedConn) ConnectionState() tls.ConnectionState {
|
|
if c == nil || c.Conn == nil {
|
|
return tls.ConnectionState{}
|
|
}
|
|
if stater, ok := c.Conn.(interface{ ConnectionState() tls.ConnectionState }); ok {
|
|
return stater.ConnectionState()
|
|
}
|
|
return tls.ConnectionState{}
|
|
}
|