...
1 package utils
2
3 import (
4 "context"
5 "net"
6 "time"
7 )
8
9
10 type Runtime struct {
11 ReadTimeout int
12 ConnectTimeout int
13 Proxy string
14 Host string
15 STSEndpoint string
16 }
17
18
19 func NewRuntime(readTimeout, connectTimeout int, proxy string, host string) *Runtime {
20 return &Runtime{
21 ReadTimeout: readTimeout,
22 ConnectTimeout: connectTimeout,
23 Proxy: proxy,
24 Host: host,
25 }
26 }
27
28
29 func Timeout(connectTimeout time.Duration) func(cxt context.Context, net, addr string) (c net.Conn, err error) {
30 return func(ctx context.Context, network, address string) (net.Conn, error) {
31 return (&net.Dialer{
32 Timeout: connectTimeout,
33 DualStack: true,
34 }).DialContext(ctx, network, address)
35 }
36 }
37
View as plain text