Made dialer configurable
parent
b7e3cc6811
commit
0126026885
|
@ -153,8 +153,12 @@ func (s *Server) handleConnect(conn conn, req *Request) error {
|
|||
}
|
||||
|
||||
// Attempt to connect
|
||||
addr := net.TCPAddr{IP: req.realDestAddr.IP, Port: req.realDestAddr.Port}
|
||||
target, err := net.DialTCP("tcp", nil, &addr)
|
||||
addr := fmt.Sprintf("%v:%d", req.realDestAddr.IP, req.realDestAddr.Port)
|
||||
dial := s.config.Dial
|
||||
if dial == nil {
|
||||
dial = net.Dial
|
||||
}
|
||||
target, err := dial("tcp", addr)
|
||||
if err != nil {
|
||||
msg := err.Error()
|
||||
resp := hostUnreachable
|
||||
|
|
|
@ -43,6 +43,9 @@ type Config struct {
|
|||
// Logger can be used to provide a custom log target.
|
||||
// Defaults to stdout.
|
||||
Logger *log.Logger
|
||||
|
||||
// Optional function for dialing out
|
||||
Dial func(network, addr string) (net.Conn, error)
|
||||
}
|
||||
|
||||
// Server is reponsible for accepting connections and handling
|
||||
|
|
Loading…
Reference in New Issue