Files
tun2socks/proxy/socks/utils.go
2019-08-11 21:11:08 +08:00

32 lines
461 B
Go

package socks
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)
}
}