blob: 9f3c3f848c5ea4c189275b4c603274737bab174b [file] [log] [blame]
Bertrand SIMONNETe6cd7382015-07-01 15:39:44 -07001.\" **************************************************************************
2.\" * _ _ ____ _
3.\" * Project ___| | | | _ \| |
4.\" * / __| | | | |_) | |
5.\" * | (__| |_| | _ <| |___
6.\" * \___|\___/|_| \_\_____|
7.\" *
Elliott Hughes82be86d2017-09-20 17:00:17 -07008.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
Bertrand SIMONNETe6cd7382015-07-01 15:39:44 -07009.\" *
10.\" * This software is licensed as described in the file COPYING, which
11.\" * you should have received as part of this distribution. The terms
Alex Deymo8f1a2142016-06-28 14:49:26 -070012.\" * are also available at https://curl.haxx.se/docs/copyright.html.
Bertrand SIMONNETe6cd7382015-07-01 15:39:44 -070013.\" *
14.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
15.\" * copies of the Software, and permit persons to whom the Software is
16.\" * furnished to do so, under the terms of the COPYING file.
17.\" *
18.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
19.\" * KIND, either express or implied.
20.\" *
21.\" **************************************************************************
22.\"
Elliott Hughes1ef06ba2018-05-30 15:43:58 -070023.TH CURLOPT_SOCKOPTDATA 3 "May 15, 2017" "libcurl 7.60.0" "curl_easy_setopt options"
Elliott Hughes82be86d2017-09-20 17:00:17 -070024
Bertrand SIMONNETe6cd7382015-07-01 15:39:44 -070025.SH NAME
26CURLOPT_SOCKOPTDATA \- custom pointer to pass to sockopt callback
27.SH SYNOPSIS
28#include <curl/curl.h>
29
30CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SOCKOPTDATA, void *pointer);
31.SH DESCRIPTION
32Pass a \fIpointer\fP that will be untouched by libcurl and passed as the first
33argument in the sockopt callback set with \fICURLOPT_SOCKOPTFUNCTION(3)\fP.
34.SH DEFAULT
35The default value of this parameter is NULL.
36.SH PROTOCOLS
37All
38.SH EXAMPLE
Elliott Hughes82be86d2017-09-20 17:00:17 -070039.nf
40static int sockopt_callback(void *clientp, curl_socket_t curlfd,
41 curlsocktype purpose)
42{
43 int val = *(int *)clientp;
44 setsockopt(curldfd, SOL_SOCKET, SO_RCVBUF, (const char *)&val, sizeof(val));
45 return CURL_SOCKOPT_OK;
46}
47
48curl = curl_easy_init();
49if(curl) {
50 int recvbuffersize = 256 * 1024;
51
52 curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/");
53
54 /* call this function to set options for the socket */
55 curl_easy_setopt(curl, CURLOPT_SOCKOPTFUNCTION, sockopt_callback);
56 curl_easy_setopt(curl, CURLOPT_SOCKOPTDATA, &recvbuffersize);
57
58 res = curl_easy_perform(curl);
59
60 curl_easy_cleanup(curl);
61}
62.fi
Bertrand SIMONNETe6cd7382015-07-01 15:39:44 -070063.SH AVAILABILITY
64Added in 7.16.0
65.SH RETURN VALUE
66Returns \fICURLE_OK\fP if the option is supported, and \fICURLE_UNKNOWN_OPTION\fP if not.
67.SH "SEE ALSO"
68.BR CURLOPT_SOCKOPTFUNCTION "(3), " CURLOPT_OPENSOCKETFUNCTION "(3), "