cURL / Mailing Lists / curl-library / Single Mail



From: Boutin Maël <>
Date: Mon, 29 Feb 2016 17:31:19 +0100

Dear all,

I'm trying to use libcurl using unix domain sockets but i'm facing an
issue. When i call curl_easy_perform i get this output:

* About to connect() to localhost port 80 (#0)
* Trying * Connection refused
* couldn't connect to host
* Closing connection #0
* Couldn't connect to server
Duration: 0, Nb Bytes sent: 0

So i tested it using the curl binary :

curl -vS --unix-socket "/home/boutinm/test" http://localhost
* Rebuilt URL to: http://localhost/
* Trying /home/boutinm/test...
* Connected to localhost (/home/boutinm/test) port 80 (#0)
> GET / HTTP/1.1
> Host: localhost
> User-Agent: curl/7.47.1
> Accept: */*

It works this way (my server receives the request). The verbose output is
clearly not the same as the one i obtained with libcurl. It seems like the
CURLOPT_UNIX_SOCKET_PATH option is not taken into account.

Here is how i initialize my curl handle:

  //Initialize curl handle
  m_pCurlHandle = curl_easy_init();
  curl_easy_setopt(m_pCurlHandle, CURLOPT_POST, 1L);
  curl_easy_setopt(m_pCurlHandle, CURLOPT_READFUNCTION, pushBuffer);
  curl_easy_setopt(m_pCurlHandle, CURLOPT_VERBOSE, 1L);
  curl_easy_setopt(m_pCurlHandle, CURLOPT_UNIX_SOCKET_PATH,
  //Curl headers
  m_pstCurlHeaders = curl_slist_append(m_pstCurlHeaders,
"Transfer-Encoding: chunked");
  m_pstCurlHeaders = curl_slist_append(m_pstCurlHeaders, "Expect:");
  curl_easy_setopt(m_pCurlHandle, CURLOPT_HTTPHEADER, m_pstCurlHeaders);
  curl_easy_setopt(m_pCurlHandle, CURLOPT_URL, "http://localhost/");
  curl_easy_setopt(m_pCurlHandle, CURLOPT_READDATA, m_pstDataBuffer);
  res = curl_easy_perform(m_pCurlHandle);

Am i missing something ?

FYI the code works when i use network sockets, but i'd like to use unix
domain sockets for performance (i believe it'll be better than using ip

Kind regards,


List admin:
Received on 2016-02-29