Files
tun2socks/proxy/utils.go
2019-08-13 14:06:23 +08:00

32 lines
461 B
Go

package proxy
import (
"net"
"time"
)
type duplexConn interface {
net.Conn
CloseRead() error
CloseWrite() error
}
func TCPCloseRead(conn net.Conn) {
if c, ok := conn.(duplexConn); ok {
c.CloseRead()
}
}
func TCPCloseWrite(conn net.Conn) {
if c, ok := conn.(duplexConn); ok {
c.CloseWrite()
}
}
func TCPKeepAlive(conn net.Conn) {
if tcp, ok := conn.(*net.TCPConn); ok {
tcp.SetKeepAlive(true)
tcp.SetKeepAlivePeriod(30 * time.Second)
}
}