1
0
Fork 0

Made dialer configurable

logger
Ox Cart 2016-02-04 13:25:27 -06:00
parent b7e3cc6811
commit 0126026885
2 changed files with 9 additions and 2 deletions

View File

@ -153,8 +153,12 @@ func (s *Server) handleConnect(conn conn, req *Request) error {
} }
// Attempt to connect // Attempt to connect
addr := net.TCPAddr{IP: req.realDestAddr.IP, Port: req.realDestAddr.Port} addr := fmt.Sprintf("%v:%d", req.realDestAddr.IP, req.realDestAddr.Port)
target, err := net.DialTCP("tcp", nil, &addr) dial := s.config.Dial
if dial == nil {
dial = net.Dial
}
target, err := dial("tcp", addr)
if err != nil { if err != nil {
msg := err.Error() msg := err.Error()
resp := hostUnreachable resp := hostUnreachable

View File

@ -43,6 +43,9 @@ type Config struct {
// Logger can be used to provide a custom log target. // Logger can be used to provide a custom log target.
// Defaults to stdout. // Defaults to stdout.
Logger *log.Logger Logger *log.Logger
// Optional function for dialing out
Dial func(network, addr string) (net.Conn, error)
} }
// Server is reponsible for accepting connections and handling // Server is reponsible for accepting connections and handling