...

Source file src/github.com/aliyun/credentials-go/credentials/utils/runtime.go

Documentation: github.com/aliyun/credentials-go/credentials/utils

     1  package utils
     2  
     3  import (
     4  	"context"
     5  	"net"
     6  	"time"
     7  )
     8  
     9  // Runtime is for setting timeout, proxy and host
    10  type Runtime struct {
    11  	ReadTimeout    int
    12  	ConnectTimeout int
    13  	Proxy          string
    14  	Host           string
    15  	STSEndpoint    string
    16  }
    17  
    18  // NewRuntime returns a Runtime
    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  // Timeout is for connect Timeout
    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