code: func (c *Client) DialSocket(socket string, transport *http.Transport) {
  	dialSock := func(ctx context.Context, proto, addr string) (conn net.Conn, err error) {
  		return defaultDialer.DialContext(ctx, "unix", socket)
  	}
  	if transport == nil {
  		ht := http.DefaultTransport.(*http.Transport)
  		transport = &http.Transport{
  			Proxy:                 ht.Proxy,
  			MaxIdleConns:          ht.MaxIdleConns,
  			IdleConnTimeout:       ht.IdleConnTimeout,
  			TLSHandshakeTimeout:   ht.TLSHandshakeTimeout,
  			ExpectContinueTimeout: ht.ExpectContinueTimeout,
  			DialContext:           dialSock,
  		}
  	}
  	if c.Client == nil {
  		// need to copy this so we don't modify the default client
  		c.Client = &http.Client{
  			Timeout: defaultHttpClient.Timeout,
  		}
  	}
  	switch tp := c.Client.Transport.(type) {
  	case nil, *Transport:
  		c.Client.Transport = &Transport{
  			RoundTripper: transport,
  			Debug:        DefaultTransport.Debug,
  			Output:       DefaultTransport.Output,
  		}
  	case *http.Transport:
  		tp = transport
  	default:
  		panic(fmt.Sprintf("could not set DialSocket on unknown transport: %#v", tp))
  	}
  }
docs: // DialSocket configures c to use the provided socket and http.Transport to
  // dial a Unix socket instead of a TCP port.
  //
  // If transport is nil, the settings from DefaultTransport are used.