runtime.go 958 B

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