runtime.go raw
1 package utils
2
3 import (
4 "context"
5 "net"
6 "time"
7 )
8
9 // Runtime is for setting timeout, proxy and host
10 // Deprecated: it was used for internal
11 type Runtime struct {
12 ReadTimeout int
13 ConnectTimeout int
14 Proxy string
15 Host string
16 STSEndpoint string
17 }
18
19 // NewRuntime returns a Runtime
20 // Deprecated: it was used for internal
21 func NewRuntime(readTimeout, connectTimeout int, proxy string, host string) *Runtime {
22 return &Runtime{
23 ReadTimeout: readTimeout,
24 ConnectTimeout: connectTimeout,
25 Proxy: proxy,
26 Host: host,
27 }
28 }
29
30 // Timeout is for connect Timeout
31 // Deprecated: it was used for internal
32 func Timeout(connectTimeout time.Duration) func(cxt context.Context, net, addr string) (c net.Conn, err error) {
33 return func(ctx context.Context, network, address string) (net.Conn, error) {
34 return (&net.Dialer{
35 Timeout: connectTimeout,
36 DualStack: true,
37 }).DialContext(ctx, network, address)
38 }
39 }
40