github.com/aliyun/credentials-go@v1.4.7/credentials/utils/runtime.go (about)

     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  }