11 func newTransport(conn *Conn, config *Config) *http.Transport {
12 httpTimeOut := conn.config.HTTPTimeout
13 httpMaxConns := conn.config.HTTPMaxConns
15 transport := &http.Transport{
16 Dial: func(netw, addr string) (net.Conn, error) {
18 Timeout: httpTimeOut.ConnectTimeout,
19 KeepAlive: 30 * time.Second,
21 if config.LocalAddr != nil {
22 d.LocalAddr = config.LocalAddr
24 conn, err := d.Dial(netw, addr)
28 return newTimeoutConn(conn, httpTimeOut.ReadWriteTimeout, httpTimeOut.LongTimeout), nil
30 MaxIdleConnsPerHost: httpMaxConns.MaxIdleConnsPerHost,
31 ResponseHeaderTimeout: httpTimeOut.HeaderTimeout,