iris/core/netutil/client.go
kataras 4da5cd47f1 Update to 8.2.2 | Google reCAPTCHA. Read HISTORY.md
Former-commit-id: dc8ee74fa33b2fbc41659c9097955afb152d5a6f
2017-08-10 15:21:42 +03:00

34 lines
662 B
Go

package netutil
import (
"net"
"net/http"
"time"
"github.com/kataras/golog"
)
// Client returns a new http.Client using
// the "timeout" for open connection and read-write operations.
func Client(timeout time.Duration) *http.Client {
transport := http.Transport{
Dial: func(network string, addr string) (net.Conn, error) {
conn, err := net.DialTimeout(network, addr, timeout)
if err != nil {
golog.Debugf("%v", err)
return nil, err
}
if err = conn.SetDeadline(time.Now().Add(timeout)); err != nil {
golog.Debugf("%v", err)
}
return conn, err
},
}
client := &http.Client{
Transport: &transport,
}
return client
}