mirror of
https://github.com/luscis/openlan.git
synced 2025-09-26 20:41:29 +08:00
25 lines
560 B
Go
Executable File
25 lines
560 B
Go
Executable File
package ss
|
|
|
|
import (
|
|
"net"
|
|
|
|
"github.com/shadowsocks/go-shadowsocks2/pfutil"
|
|
"github.com/shadowsocks/go-shadowsocks2/socks"
|
|
)
|
|
|
|
func redirLocal(addr, server string, shadow func(net.Conn) net.Conn) {
|
|
tcpLocal(addr, server, shadow, natLookup)
|
|
}
|
|
|
|
func redir6Local(addr, server string, shadow func(net.Conn) net.Conn) {
|
|
panic("TCP6 redirect not supported")
|
|
}
|
|
|
|
func natLookup(c net.Conn) (socks.Addr, error) {
|
|
if tc, ok := c.(*net.TCPConn); ok {
|
|
addr, err := pfutil.NatLookup(tc)
|
|
return socks.ParseAddr(addr.String()), err
|
|
}
|
|
panic("not TCP connection")
|
|
}
|