mirror of
https://github.com/xjasonlyu/tun2socks.git
synced 2025-10-10 03:00:15 +08:00
add go-tun2socks code
This commit is contained in:
31
core/handler.go
Normal file
31
core/handler.go
Normal file
@@ -0,0 +1,31 @@
|
||||
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
|
||||
}
|
Reference in New Issue
Block a user