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 127.0.0.1... * 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, "/home/boutinm/test"); //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 stack) Kind regards, -- Maël BOUTIN
------------------------------------------------------------------- List admin: https://cool.haxx.se/list/listinfo/curl-library Etiquette: https://curl.haxx.se/mail/etiquette.html
