| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- .\" generated by cd2nroff 0.1 from CURLOPT_UNIX_SOCKET_PATH.md
- .TH CURLOPT_UNIX_SOCKET_PATH 3 "2025-01-17" libcurl
- .SH NAME
- CURLOPT_UNIX_SOCKET_PATH \- Unix domain socket
- .SH SYNOPSIS
- .nf
- #include <curl/curl.h>
- CURLcode curl_easy_setopt(CURL *handle, CURLOPT_UNIX_SOCKET_PATH, char *path);
- .fi
- .SH DESCRIPTION
- Enables the use of Unix domain sockets as connection endpoint and sets the
- path to \fIpath\fP. If \fIpath\fP is NULL, then Unix domain sockets are
- disabled.
- When enabled, curl connects to the Unix domain socket instead of establishing
- a TCP connection to the host. Since no network connection is created, curl
- does not resolve the DNS hostname in the URL.
- The maximum path length on Cygwin, Linux and Solaris is 107. On other platforms
- it might be even less.
- Proxy and TCP options such as \fICURLOPT_TCP_NODELAY(3)\fP are not
- supported. Proxy options such as \fICURLOPT_PROXY(3)\fP have no effect either
- as these are TCP\-oriented, and asking a proxy server to connect to a certain
- Unix domain socket is not possible.
- The application does not have to keep the string around after setting this
- option.
- .SH DEFAULT
- NULL \- no Unix domain sockets are used.
- .SH PROTOCOLS
- This functionality affects all supported protocols
- .SH EXAMPLE
- .nf
- int main(void)
- {
- CURL *curl = curl_easy_init();
- if(curl) {
- curl_easy_setopt(curl, CURLOPT_UNIX_SOCKET_PATH, "/tmp/httpd.sock");
- curl_easy_setopt(curl, CURLOPT_URL, "http://localhost/");
- curl_easy_perform(curl);
- }
- }
- .fi
- If you are on Linux and somehow have a need for paths larger than 107 bytes,
- you can use the proc filesystem to bypass the limitation:
- .nf
- int dirfd = open(long_directory_path_to_socket, O_DIRECTORY | O_RDONLY);
- char path[108];
- snprintf(path, sizeof(path), "/proc/self/fd/%d/httpd.sock", dirfd);
- curl_easy_setopt(curl_handle, CURLOPT_UNIX_SOCKET_PATH, path);
- /* Be sure to keep dirfd valid until you discard the handle */
- .fi
- .SH AVAILABILITY
- Added in curl 7.40.0
- .SH RETURN VALUE
- Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
- .SH SEE ALSO
- .BR CURLOPT_ABSTRACT_UNIX_SOCKET (3),
- .BR CURLOPT_OPENSOCKETFUNCTION (3),
- .BR unix (7)
|