code: func (d proxyDial) DialTimeout(network, address string, timeout time.Duration) (net.Conn, error) {
  	// Build a proxy connection first.
  	ctx := context.Background()
  	if timeout > 0 {
  		timeoutCtx, cancel := context.WithTimeout(ctx, timeout)
  		defer cancel()
  		ctx = timeoutCtx
  	}
  	return dialProxy(ctx, d.proxyHost, address)
  }
docs: // DialTimeout acts like Dial but takes a timeout.