gfwproxyshadowsocksdocker-imagegogolanggvisornatnetworksocks4socks5tcpip-stacktortun-devicetun2sockstunneludpwireguard
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
762 B
31 lines
762 B
package core
|
|
|
|
import (
|
|
"net"
|
|
)
|
|
|
|
// TCPConnHandler handles TCP connections comming from TUN.
|
|
type TCPConnHandler interface {
|
|
// Handle handles the conn for target.
|
|
Handle(conn net.Conn, target *net.TCPAddr) error
|
|
}
|
|
|
|
// UDPConnHandler handles UDP connections comming from TUN.
|
|
type UDPConnHandler interface {
|
|
// Connect connects the proxy server. Note that target can be nil.
|
|
Connect(conn UDPConn, target *net.UDPAddr) error
|
|
|
|
// ReceiveTo will be called when data arrives from TUN.
|
|
ReceiveTo(conn UDPConn, data []byte, addr *net.UDPAddr) error
|
|
}
|
|
|
|
var tcpConnHandler TCPConnHandler
|
|
var udpConnHandler UDPConnHandler
|
|
|
|
func RegisterTCPConnHandler(h TCPConnHandler) {
|
|
tcpConnHandler = h
|
|
}
|
|
|
|
func RegisterUDPConnHandler(h UDPConnHandler) {
|
|
udpConnHandler = h
|
|
}
|
|
|