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