2
0

curl_easy_setopt.3 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635
  1. .\" **************************************************************************
  2. .\" * _ _ ____ _
  3. .\" * Project ___| | | | _ \| |
  4. .\" * / __| | | | |_) | |
  5. .\" * | (__| |_| | _ <| |___
  6. .\" * \___|\___/|_| \_\_____|
  7. .\" *
  8. .\" * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
  9. .\" *
  10. .\" * This software is licensed as described in the file COPYING, which
  11. .\" * you should have received as part of this distribution. The terms
  12. .\" * are also available at https://curl.haxx.se/docs/copyright.html.
  13. .\" *
  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. .\"
  23. .TH curl_easy_setopt 3 "25 Jun 2014" "libcurl 7.38.0" "libcurl Manual"
  24. .SH NAME
  25. curl_easy_setopt \- set options for a curl easy handle
  26. .SH SYNOPSIS
  27. #include <curl/curl.h>
  28. CURLcode curl_easy_setopt(CURL *handle, CURLoption option, parameter);
  29. .SH DESCRIPTION
  30. \fIcurl_easy_setopt(3)\fP is used to tell libcurl how to behave. By setting
  31. the appropriate options, the application can change libcurl's behavior. All
  32. options are set with an \fIoption\fP followed by a \fIparameter\fP. That
  33. parameter can be a \fBlong\fP, a \fBfunction pointer\fP, an \fBobject
  34. pointer\fP or a \fBcurl_off_t\fP, depending on what the specific option
  35. expects. Read this manual carefully as bad input values may cause libcurl to
  36. behave badly! You can only set one option in each function call. A typical
  37. application uses many \fIcurl_easy_setopt(3)\fP calls in the setup phase.
  38. Options set with this function call are valid for all forthcoming transfers
  39. performed using this \fIhandle\fP. The options are not in any way reset
  40. between transfers, so if you want subsequent transfers with different options,
  41. you must change them between the transfers. You can optionally reset all
  42. options back to internal default with \fIcurl_easy_reset(3)\fP.
  43. Strings passed to libcurl as 'char *' arguments, are copied by the library;
  44. thus the string storage associated to the pointer argument may be overwritten
  45. after \fIcurl_easy_setopt(3)\fP returns. The only exception to this rule is
  46. really \fICURLOPT_POSTFIELDS(3)\fP, but the alternative that copies the string
  47. \fICURLOPT_COPYPOSTFIELDS(3)\fP has some usage characteristics you need to
  48. read up on.
  49. The order in which the options are set does not matter.
  50. Before version 7.17.0, strings were not copied. Instead the user was forced
  51. keep them available until libcurl no longer needed them.
  52. The \fIhandle\fP is the return code from a \fIcurl_easy_init(3)\fP or
  53. \fIcurl_easy_duphandle(3)\fP call.
  54. .SH BEHAVIOR OPTIONS
  55. .IP CURLOPT_VERBOSE
  56. Display verbose information. See \fICURLOPT_VERBOSE(3)\fP
  57. .IP CURLOPT_HEADER
  58. Include the header in the body output. See \fICURLOPT_HEADER(3)\fP
  59. .IP CURLOPT_NOPROGRESS
  60. Shut off the progress meter. See \fICURLOPT_NOPROGRESS(3)\fP
  61. .IP CURLOPT_NOSIGNAL
  62. Do not install signal handlers. See \fICURLOPT_NOSIGNAL(3)\fP
  63. .IP CURLOPT_WILDCARDMATCH
  64. Transfer multiple files according to a file name pattern. See \fICURLOPT_WILDCARDMATCH(3)\fP
  65. .SH CALLBACK OPTIONS
  66. .IP CURLOPT_WRITEFUNCTION
  67. Callback for writing data. See \fICURLOPT_WRITEFUNCTION(3)\fP
  68. .IP CURLOPT_WRITEDATA
  69. Data pointer to pass to the write callback. See \fICURLOPT_WRITEDATA(3)\fP
  70. .IP CURLOPT_READFUNCTION
  71. Callback for reading data. See \fICURLOPT_READFUNCTION(3)\fP
  72. .IP CURLOPT_READDATA
  73. Data pointer to pass to the read callback. See \fICURLOPT_READDATA(3)\fP
  74. .IP CURLOPT_IOCTLFUNCTION
  75. Callback for I/O operations. See \fICURLOPT_IOCTLFUNCTION(3)\fP
  76. .IP CURLOPT_IOCTLDATA
  77. Data pointer to pass to the I/O callback. See \fICURLOPT_IOCTLDATA(3)\fP
  78. .IP CURLOPT_SEEKFUNCTION
  79. Callback for seek operations. See \fICURLOPT_SEEKFUNCTION(3)\fP
  80. .IP CURLOPT_SEEKDATA
  81. Data pointer to pass to the seek callback. See \fICURLOPT_SEEKDATA(3)\fP
  82. .IP CURLOPT_SOCKOPTFUNCTION
  83. Callback for sockopt operations. See \fICURLOPT_SOCKOPTFUNCTION(3)\fP
  84. .IP CURLOPT_SOCKOPTDATA
  85. Data pointer to pass to the sockopt callback. See \fICURLOPT_SOCKOPTDATA(3)\fP
  86. .IP CURLOPT_OPENSOCKETFUNCTION
  87. Callback for socket creation. See \fICURLOPT_OPENSOCKETFUNCTION(3)\fP
  88. .IP CURLOPT_OPENSOCKETDATA
  89. Data pointer to pass to the open socket callback. See \fICURLOPT_OPENSOCKETDATA(3)\fP
  90. .IP CURLOPT_CLOSESOCKETFUNCTION
  91. Callback for closing socket. See \fICURLOPT_CLOSESOCKETFUNCTION(3)\fP
  92. .IP CURLOPT_CLOSESOCKETDATA
  93. Data pointer to pass to the close socket callback. See \fICURLOPT_CLOSESOCKETDATA(3)\fP
  94. .IP CURLOPT_PROGRESSFUNCTION
  95. OBSOLETE callback for progress meter. See \fICURLOPT_PROGRESSFUNCTION(3)\fP
  96. .IP CURLOPT_PROGRESSDATA
  97. Data pointer to pass to the progress meter callback. See \fICURLOPT_PROGRESSDATA(3)\fP
  98. .IP CURLOPT_XFERINFOFUNCTION
  99. Callback for progress meter. See \fICURLOPT_XFERINFOFUNCTION(3)\fP
  100. .IP CURLOPT_XFERINFODATA
  101. Data pointer to pass to the progress meter callback. See \fICURLOPT_XFERINFODATA(3)\fP
  102. .IP CURLOPT_HEADERFUNCTION
  103. Callback for writing received headers. See \fICURLOPT_HEADERFUNCTION(3)\fP
  104. .IP CURLOPT_HEADERDATA
  105. Data pointer to pass to the header callback. See \fICURLOPT_HEADERDATA(3)\fP
  106. .IP CURLOPT_DEBUGFUNCTION
  107. Callback for debug information. See \fICURLOPT_DEBUGFUNCTION(3)\fP
  108. .IP CURLOPT_DEBUGDATA
  109. Data pointer to pass to the debug callback. See \fICURLOPT_DEBUGDATA(3)\fP
  110. .IP CURLOPT_SSL_CTX_FUNCTION
  111. Callback for SSL context logic. See \fICURLOPT_SSL_CTX_FUNCTION(3)\fP
  112. .IP CURLOPT_SSL_CTX_DATA
  113. Data pointer to pass to the SSL context callback. See \fICURLOPT_SSL_CTX_DATA(3)\fP
  114. .IP CURLOPT_CONV_TO_NETWORK_FUNCTION
  115. Callback for code base conversion. See \fICURLOPT_CONV_TO_NETWORK_FUNCTION(3)\fP
  116. .IP CURLOPT_CONV_FROM_NETWORK_FUNCTION
  117. Callback for code base conversion. See \fICURLOPT_CONV_FROM_NETWORK_FUNCTION(3)\fP
  118. .IP CURLOPT_CONV_FROM_UTF8_FUNCTION
  119. Callback for code base conversion. See \fICURLOPT_CONV_FROM_UTF8_FUNCTION(3)\fP
  120. .IP CURLOPT_INTERLEAVEFUNCTION
  121. Callback for RTSP interleaved data. See \fICURLOPT_INTERLEAVEFUNCTION(3)\fP
  122. .IP CURLOPT_INTERLEAVEDATA
  123. Data pointer to pass to the RTSP interleave callback. See \fICURLOPT_INTERLEAVEDATA(3)\fP
  124. .IP CURLOPT_CHUNK_BGN_FUNCTION
  125. Callback for wildcard download start of chunk. See \fICURLOPT_CHUNK_BGN_FUNCTION(3)\fP
  126. .IP CURLOPT_CHUNK_END_FUNCTION
  127. Callback for wildcard download end of chunk. See \fICURLOPT_CHUNK_END_FUNCTION(3)\fP
  128. .IP CURLOPT_CHUNK_DATA
  129. Data pointer to pass to the chunk callbacks. See \fICURLOPT_CHUNK_DATA(3)\fP
  130. .IP CURLOPT_FNMATCH_FUNCTION
  131. Callback for wildcard matching. See \fICURLOPT_FNMATCH_FUNCTION(3)\fP
  132. .IP CURLOPT_FNMATCH_DATA
  133. Data pointer to pass to the wildcard matching callback. See \fICURLOPT_FNMATCH_DATA(3)\fP
  134. .IP CURLOPT_SUPPRESS_CONNECT_HEADERS
  135. Suppress proxy CONNECT response headers from user callbacks. See \fICURLOPT_SUPPRESS_CONNECT_HEADERS(3)\fP
  136. .IP CURLOPT_RESOLVER_START_FUNCTION
  137. Callback to be called before a new resolve request is started. See \fICURLOPT_RESOLVER_START_FUNCTION(3)\fP
  138. .IP CURLOPT_RESOLVER_START_DATA
  139. Data pointer to pass to resolver start callback. See \fICURLOPT_RESOLVER_START_DATA(3)\fP
  140. .SH ERROR OPTIONS
  141. .IP CURLOPT_ERRORBUFFER
  142. Error message buffer. See \fICURLOPT_ERRORBUFFER(3)\fP
  143. .IP CURLOPT_STDERR
  144. stderr replacement stream. See \fICURLOPT_STDERR(3)\fP
  145. .IP CURLOPT_FAILONERROR
  146. Fail on HTTP 4xx errors. \fICURLOPT_FAILONERROR(3)\fP
  147. .IP CURLOPT_KEEP_SENDING_ON_ERROR
  148. Keep sending on HTTP >= 300 errors. \fICURLOPT_KEEP_SENDING_ON_ERROR(3)\fP
  149. .SH NETWORK OPTIONS
  150. .IP CURLOPT_URL
  151. URL to work on. See \fICURLOPT_URL(3)\fP
  152. .IP CURLOPT_PATH_AS_IS
  153. Disable squashing /../ and /./ sequences in the path. See \fICURLOPT_PATH_AS_IS(3)\fP
  154. .IP CURLOPT_PROTOCOLS
  155. Allowed protocols. See \fICURLOPT_PROTOCOLS(3)\fP
  156. .IP CURLOPT_REDIR_PROTOCOLS
  157. Protocols to allow redirects to. See \fICURLOPT_REDIR_PROTOCOLS(3)\fP
  158. .IP CURLOPT_DEFAULT_PROTOCOL
  159. Default protocol. See \fICURLOPT_DEFAULT_PROTOCOL(3)\fP
  160. .IP CURLOPT_PROXY
  161. Proxy to use. See \fICURLOPT_PROXY(3)\fP
  162. .IP CURLOPT_PRE_PROXY
  163. Socks proxy to use. See \fICURLOPT_PRE_PROXY(3)\fP
  164. .IP CURLOPT_PROXYPORT
  165. Proxy port to use. See \fICURLOPT_PROXYPORT(3)\fP
  166. .IP CURLOPT_PROXYTYPE
  167. Proxy type. See \fICURLOPT_PROXYTYPE(3)\fP
  168. .IP CURLOPT_NOPROXY
  169. Filter out hosts from proxy use. \fICURLOPT_NOPROXY(3)\fP
  170. .IP CURLOPT_HTTPPROXYTUNNEL
  171. Tunnel through the HTTP proxy. \fICURLOPT_HTTPPROXYTUNNEL(3)\fP
  172. .IP CURLOPT_CONNECT_TO
  173. Connect to a specific host and port. See \fICURLOPT_CONNECT_TO(3)\fP
  174. .IP CURLOPT_SOCKS5_AUTH
  175. Socks5 authentication methods. See \fICURLOPT_SOCKS5_AUTH(3)\fP
  176. .IP CURLOPT_SOCKS5_GSSAPI_SERVICE
  177. Socks5 GSSAPI service name. \fICURLOPT_SOCKS5_GSSAPI_SERVICE(3)\fP
  178. .IP CURLOPT_SOCKS5_GSSAPI_NEC
  179. Socks5 GSSAPI NEC mode. See \fICURLOPT_SOCKS5_GSSAPI_NEC(3)\fP
  180. .IP CURLOPT_PROXY_SERVICE_NAME
  181. Proxy authentication service name. \fICURLOPT_PROXY_SERVICE_NAME(3)\fP
  182. .IP CURLOPT_HAPROXYPROTOCOL
  183. Send an HAProxy PROXY protocol v1 header. See \fICURLOPT_HAPROXYPROTOCOL(3)\fP
  184. .IP CURLOPT_SERVICE_NAME
  185. Authentication service name. \fICURLOPT_SERVICE_NAME(3)\fP
  186. .IP CURLOPT_INTERFACE
  187. Bind connection locally to this. See \fICURLOPT_INTERFACE(3)\fP
  188. .IP CURLOPT_LOCALPORT
  189. Bind connection locally to this port. See \fICURLOPT_LOCALPORT(3)\fP
  190. .IP CURLOPT_LOCALPORTRANGE
  191. Bind connection locally to port range. See \fICURLOPT_LOCALPORTRANGE(3)\fP
  192. .IP CURLOPT_DNS_CACHE_TIMEOUT
  193. Timeout for DNS cache. See \fICURLOPT_DNS_CACHE_TIMEOUT(3)\fP
  194. .IP CURLOPT_DNS_USE_GLOBAL_CACHE
  195. OBSOLETE Enable global DNS cache. See \fICURLOPT_DNS_USE_GLOBAL_CACHE(3)\fP
  196. .IP CURLOPT_DOH_URL
  197. Use this DOH server for name resolves. See \fICURLOPT_DOH_URL(3)\fP
  198. .IP CURLOPT_BUFFERSIZE
  199. Ask for alternate buffer size. See \fICURLOPT_BUFFERSIZE(3)\fP
  200. .IP CURLOPT_PORT
  201. Port number to connect to. See \fICURLOPT_PORT(3)\fP
  202. .IP CURLOPT_TCP_FASTOPEN
  203. Enable TFO, TCP Fast Open. See \fICURLOPT_TCP_FASTOPEN(3)\fP
  204. .IP CURLOPT_TCP_NODELAY
  205. Disable the Nagle algorithm. See \fICURLOPT_TCP_NODELAY(3)\fP
  206. .IP CURLOPT_ADDRESS_SCOPE
  207. IPv6 scope for local addresses. See \fICURLOPT_ADDRESS_SCOPE(3)\fP
  208. .IP CURLOPT_TCP_KEEPALIVE
  209. Enable TCP keep-alive. See \fICURLOPT_TCP_KEEPALIVE(3)\fP
  210. .IP CURLOPT_TCP_KEEPIDLE
  211. Idle time before sending keep-alive. See \fICURLOPT_TCP_KEEPIDLE(3)\fP
  212. .IP CURLOPT_TCP_KEEPINTVL
  213. Interval between keep-alive probes. See \fICURLOPT_TCP_KEEPINTVL(3)\fP
  214. .IP CURLOPT_UNIX_SOCKET_PATH
  215. Path to a Unix domain socket. See \fICURLOPT_UNIX_SOCKET_PATH(3)\fP
  216. .IP CURLOPT_ABSTRACT_UNIX_SOCKET
  217. Path to an abstract Unix domain socket. See \fICURLOPT_ABSTRACT_UNIX_SOCKET(3)\fP
  218. .SH NAMES and PASSWORDS OPTIONS (Authentication)
  219. .IP CURLOPT_NETRC
  220. Enable .netrc parsing. See \fICURLOPT_NETRC(3)\fP
  221. .IP CURLOPT_NETRC_FILE
  222. \&.netrc file name. See \fICURLOPT_NETRC_FILE(3)\fP
  223. .IP CURLOPT_USERPWD
  224. User name and password. See \fICURLOPT_USERPWD(3)\fP
  225. .IP CURLOPT_PROXYUSERPWD
  226. Proxy user name and password. See \fICURLOPT_PROXYUSERPWD(3)\fP
  227. .IP CURLOPT_USERNAME
  228. User name. See \fICURLOPT_USERNAME(3)\fP
  229. .IP CURLOPT_PASSWORD
  230. Password. See \fICURLOPT_PASSWORD(3)\fP
  231. .IP CURLOPT_LOGIN_OPTIONS
  232. Login options. See \fICURLOPT_LOGIN_OPTIONS(3)\fP
  233. .IP CURLOPT_PROXYUSERNAME
  234. Proxy user name. See \fICURLOPT_PROXYUSERNAME(3)\fP
  235. .IP CURLOPT_PROXYPASSWORD
  236. Proxy password. See \fICURLOPT_PROXYPASSWORD(3)\fP
  237. .IP CURLOPT_HTTPAUTH
  238. HTTP server authentication methods. See \fICURLOPT_HTTPAUTH(3)\fP
  239. .IP CURLOPT_TLSAUTH_USERNAME
  240. TLS authentication user name. See \fICURLOPT_TLSAUTH_USERNAME(3)\fP
  241. .IP CURLOPT_PROXY_TLSAUTH_USERNAME
  242. Proxy TLS authentication user name. See \fICURLOPT_PROXY_TLSAUTH_USERNAME(3)\fP
  243. .IP CURLOPT_TLSAUTH_PASSWORD
  244. TLS authentication password. See \fICURLOPT_TLSAUTH_PASSWORD(3)\fP
  245. .IP CURLOPT_PROXY_TLSAUTH_PASSWORD
  246. Proxy TLS authentication password. See \fICURLOPT_PROXY_TLSAUTH_PASSWORD(3)\fP
  247. .IP CURLOPT_TLSAUTH_TYPE
  248. TLS authentication methods. See \fICURLOPT_TLSAUTH_TYPE(3)\fP
  249. .IP CURLOPT_PROXY_TLSAUTH_TYPE
  250. Proxy TLS authentication methods. See \fICURLOPT_PROXY_TLSAUTH_TYPE(3)\fP
  251. .IP CURLOPT_PROXYAUTH
  252. HTTP proxy authentication methods. See \fICURLOPT_PROXYAUTH(3)\fP
  253. .IP CURLOPT_SASL_IR
  254. Enable SASL initial response. See \fICURLOPT_SASL_IR(3)\fP
  255. .IP CURLOPT_XOAUTH2_BEARER
  256. OAuth2 bearer token. See \fICURLOPT_XOAUTH2_BEARER(3)\fP
  257. .IP CURLOPT_DISALLOW_USERNAME_IN_URL
  258. Don't allow username in URL. See \fICURLOPT_DISALLOW_USERNAME_IN_URL(3)\fP
  259. .SH HTTP OPTIONS
  260. .IP CURLOPT_AUTOREFERER
  261. Automatically set Referer: header. See \fICURLOPT_AUTOREFERER(3)\fP
  262. .IP CURLOPT_ACCEPT_ENCODING
  263. Accept-Encoding and automatic decompressing data. See \fICURLOPT_ACCEPT_ENCODING(3)\fP
  264. .IP CURLOPT_TRANSFER_ENCODING
  265. Request Transfer-Encoding. See \fICURLOPT_TRANSFER_ENCODING(3)\fP
  266. .IP CURLOPT_FOLLOWLOCATION
  267. Follow HTTP redirects. See \fICURLOPT_FOLLOWLOCATION(3)\fP
  268. .IP CURLOPT_UNRESTRICTED_AUTH
  269. Do not restrict authentication to original host. \fICURLOPT_UNRESTRICTED_AUTH(3)\fP
  270. .IP CURLOPT_MAXREDIRS
  271. Maximum number of redirects to follow. See \fICURLOPT_MAXREDIRS(3)\fP
  272. .IP CURLOPT_POSTREDIR
  273. How to act on redirects after POST. See \fICURLOPT_POSTREDIR(3)\fP
  274. .IP CURLOPT_PUT
  275. Issue an HTTP PUT request. See \fICURLOPT_PUT(3)\fP
  276. .IP CURLOPT_POST
  277. Issue an HTTP POST request. See \fICURLOPT_POST(3)\fP
  278. .IP CURLOPT_POSTFIELDS
  279. Send a POST with this data. See \fICURLOPT_POSTFIELDS(3)\fP
  280. .IP CURLOPT_POSTFIELDSIZE
  281. The POST data is this big. See \fICURLOPT_POSTFIELDSIZE(3)\fP
  282. .IP CURLOPT_POSTFIELDSIZE_LARGE
  283. The POST data is this big. See \fICURLOPT_POSTFIELDSIZE_LARGE(3)\fP
  284. .IP CURLOPT_COPYPOSTFIELDS
  285. Send a POST with this data - and copy it. See \fICURLOPT_COPYPOSTFIELDS(3)\fP
  286. .IP CURLOPT_HTTPPOST
  287. Multipart formpost HTTP POST. See \fICURLOPT_HTTPPOST(3)\fP
  288. .IP CURLOPT_REFERER
  289. Referer: header. See \fICURLOPT_REFERER(3)\fP
  290. .IP CURLOPT_USERAGENT
  291. User-Agent: header. See \fICURLOPT_USERAGENT(3)\fP
  292. .IP CURLOPT_HTTPHEADER
  293. Custom HTTP headers. See \fICURLOPT_HTTPHEADER(3)\fP
  294. .IP CURLOPT_HEADEROPT
  295. Control custom headers. See \fICURLOPT_HEADEROPT(3)\fP
  296. .IP CURLOPT_PROXYHEADER
  297. Custom HTTP headers sent to proxy. See \fICURLOPT_PROXYHEADER(3)\fP
  298. .IP CURLOPT_HTTP200ALIASES
  299. Alternative versions of 200 OK. See \fICURLOPT_HTTP200ALIASES(3)\fP
  300. .IP CURLOPT_COOKIE
  301. Cookie(s) to send. See \fICURLOPT_COOKIE(3)\fP
  302. .IP CURLOPT_COOKIEFILE
  303. File to read cookies from. See \fICURLOPT_COOKIEFILE(3)\fP
  304. .IP CURLOPT_COOKIEJAR
  305. File to write cookies to. See \fICURLOPT_COOKIEJAR(3)\fP
  306. .IP CURLOPT_COOKIESESSION
  307. Start a new cookie session. See \fICURLOPT_COOKIESESSION(3)\fP
  308. .IP CURLOPT_COOKIELIST
  309. Add or control cookies. See \fICURLOPT_COOKIELIST(3)\fP
  310. .IP CURLOPT_HTTPGET
  311. Do an HTTP GET request. See \fICURLOPT_HTTPGET(3)\fP
  312. .IP CURLOPT_REQUEST_TARGET
  313. Set the request target. \fICURLOPT_REQUEST_TARGET(3)\fP
  314. .IP CURLOPT_HTTP_VERSION
  315. HTTP version to use. \fICURLOPT_HTTP_VERSION(3)\fP
  316. .IP CURLOPT_HTTP09_ALLOWED
  317. Allow HTTP/0.9 responses. \fICURLOPT_HTTP09_ALLOWED(3)\fP
  318. .IP CURLOPT_IGNORE_CONTENT_LENGTH
  319. Ignore Content-Length. See \fICURLOPT_IGNORE_CONTENT_LENGTH(3)\fP
  320. .IP CURLOPT_HTTP_CONTENT_DECODING
  321. Disable Content decoding. See \fICURLOPT_HTTP_CONTENT_DECODING(3)\fP
  322. .IP CURLOPT_HTTP_TRANSFER_DECODING
  323. Disable Transfer decoding. See \fICURLOPT_HTTP_TRANSFER_DECODING(3)\fP
  324. .IP CURLOPT_EXPECT_100_TIMEOUT_MS
  325. 100-continue timeout. See \fICURLOPT_EXPECT_100_TIMEOUT_MS(3)\fP
  326. .IP CURLOPT_TRAILERFUNCTION
  327. Set callback for sending trailing headers. See
  328. \fICURLOPT_TRAILERFUNCTION(3)\fP
  329. .IP CURLOPT_TRAILERDATA
  330. Custom pointer passed to the trailing headers callback. See
  331. \fICURLOPT_TRAILERDATA(3)\fP
  332. .IP CURLOPT_PIPEWAIT
  333. Wait on connection to pipeline on it. See \fICURLOPT_PIPEWAIT(3)\fP
  334. .IP CURLOPT_STREAM_DEPENDS
  335. This HTTP/2 stream depends on another. See \fICURLOPT_STREAM_DEPENDS(3)\fP
  336. .IP CURLOPT_STREAM_DEPENDS_E
  337. This HTTP/2 stream depends on another exclusively. See
  338. \fICURLOPT_STREAM_DEPENDS_E(3)\fP
  339. .IP CURLOPT_STREAM_WEIGHT
  340. Set this HTTP/2 stream's weight. See \fICURLOPT_STREAM_WEIGHT(3)\fP
  341. .SH SMTP OPTIONS
  342. .IP CURLOPT_MAIL_FROM
  343. Address of the sender. See \fICURLOPT_MAIL_FROM(3)\fP
  344. .IP CURLOPT_MAIL_RCPT
  345. Address of the recipients. See \fICURLOPT_MAIL_RCPT(3)\fP
  346. .IP CURLOPT_MAIL_AUTH
  347. Authentication address. See \fICURLOPT_MAIL_AUTH(3)\fP
  348. .SH TFTP OPTIONS
  349. .IP CURLOPT_TFTP_BLKSIZE
  350. TFTP block size. See \fICURLOPT_TFTP_BLKSIZE(3)\fP
  351. .IP CURLOPT_TFTP_NO_OPTIONS
  352. Do not send TFTP options requests. See \fICURLOPT_TFTP_NO_OPTIONS(3)\fP
  353. .SH FTP OPTIONS
  354. .IP CURLOPT_FTPPORT
  355. Use active FTP. See \fICURLOPT_FTPPORT(3)\fP
  356. .IP CURLOPT_QUOTE
  357. Commands to run before transfer. See \fICURLOPT_QUOTE(3)\fP
  358. .IP CURLOPT_POSTQUOTE
  359. Commands to run after transfer. See \fICURLOPT_POSTQUOTE(3)\fP
  360. .IP CURLOPT_PREQUOTE
  361. Commands to run just before transfer. See \fICURLOPT_PREQUOTE(3)\fP
  362. .IP CURLOPT_APPEND
  363. Append to remote file. See \fICURLOPT_APPEND(3)\fP
  364. .IP CURLOPT_FTP_USE_EPRT
  365. Use EPTR. See \fICURLOPT_FTP_USE_EPRT(3)\fP
  366. .IP CURLOPT_FTP_USE_EPSV
  367. Use EPSV. See \fICURLOPT_FTP_USE_EPSV(3)\fP
  368. .IP CURLOPT_FTP_USE_PRET
  369. Use PRET. See \fICURLOPT_FTP_USE_PRET(3)\fP
  370. .IP CURLOPT_FTP_CREATE_MISSING_DIRS
  371. Create missing directories on the remote server. See \fICURLOPT_FTP_CREATE_MISSING_DIRS(3)\fP
  372. .IP CURLOPT_FTP_RESPONSE_TIMEOUT
  373. Timeout for FTP responses. See \fICURLOPT_FTP_RESPONSE_TIMEOUT(3)\fP
  374. .IP CURLOPT_FTP_ALTERNATIVE_TO_USER
  375. Alternative to USER. See \fICURLOPT_FTP_ALTERNATIVE_TO_USER(3)\fP
  376. .IP CURLOPT_FTP_SKIP_PASV_IP
  377. Ignore the IP address in the PASV response. See \fICURLOPT_FTP_SKIP_PASV_IP(3)\fP
  378. .IP CURLOPT_FTPSSLAUTH
  379. Control how to do TLS. See \fICURLOPT_FTPSSLAUTH(3)\fP
  380. .IP CURLOPT_FTP_SSL_CCC
  381. Back to non-TLS again after authentication. See \fICURLOPT_FTP_SSL_CCC(3)\fP
  382. .IP CURLOPT_FTP_ACCOUNT
  383. Send ACCT command. See \fICURLOPT_FTP_ACCOUNT(3)\fP
  384. .IP CURLOPT_FTP_FILEMETHOD
  385. Specify how to reach files. See \fICURLOPT_FTP_FILEMETHOD(3)\fP
  386. .SH RTSP OPTIONS
  387. .IP CURLOPT_RTSP_REQUEST
  388. RTSP request. See \fICURLOPT_RTSP_REQUEST(3)\fP
  389. .IP CURLOPT_RTSP_SESSION_ID
  390. RTSP session-id. See \fICURLOPT_RTSP_SESSION_ID(3)\fP
  391. .IP CURLOPT_RTSP_STREAM_URI
  392. RTSP stream URI. See \fICURLOPT_RTSP_STREAM_URI(3)\fP
  393. .IP CURLOPT_RTSP_TRANSPORT
  394. RTSP Transport: header. See \fICURLOPT_RTSP_TRANSPORT(3)\fP
  395. .IP CURLOPT_RTSP_CLIENT_CSEQ
  396. Client CSEQ number. See \fICURLOPT_RTSP_CLIENT_CSEQ(3)\fP
  397. .IP CURLOPT_RTSP_SERVER_CSEQ
  398. CSEQ number for RTSP Server->Client request. See \fICURLOPT_RTSP_SERVER_CSEQ(3)\fP
  399. .SH PROTOCOL OPTIONS
  400. .IP CURLOPT_TRANSFERTEXT
  401. Use text transfer. See \fICURLOPT_TRANSFERTEXT(3)\fP
  402. .IP CURLOPT_PROXY_TRANSFER_MODE
  403. Add transfer mode to URL over proxy. See \fICURLOPT_PROXY_TRANSFER_MODE(3)\fP
  404. .IP CURLOPT_CRLF
  405. Convert newlines. See \fICURLOPT_CRLF(3)\fP
  406. .IP CURLOPT_RANGE
  407. Range requests. See \fICURLOPT_RANGE(3)\fP
  408. .IP CURLOPT_RESUME_FROM
  409. Resume a transfer. See \fICURLOPT_RESUME_FROM(3)\fP
  410. .IP CURLOPT_RESUME_FROM_LARGE
  411. Resume a transfer. See \fICURLOPT_RESUME_FROM_LARGE(3)\fP
  412. .IP CURLOPT_CURLU
  413. Set URL to work on with CURLU *. See \fICURLOPT_CURLU(3)\fP
  414. .IP CURLOPT_CUSTOMREQUEST
  415. Custom request/method. See \fICURLOPT_CUSTOMREQUEST(3)\fP
  416. .IP CURLOPT_FILETIME
  417. Request file modification date and time. See \fICURLOPT_FILETIME(3)\fP
  418. .IP CURLOPT_DIRLISTONLY
  419. List only. See \fICURLOPT_DIRLISTONLY(3)\fP
  420. .IP CURLOPT_NOBODY
  421. Do not get the body contents. See \fICURLOPT_NOBODY(3)\fP
  422. .IP CURLOPT_INFILESIZE
  423. Size of file to send. \fICURLOPT_INFILESIZE(3)\fP
  424. .IP CURLOPT_INFILESIZE_LARGE
  425. Size of file to send. \fICURLOPT_INFILESIZE_LARGE(3)\fP
  426. .IP CURLOPT_UPLOAD
  427. Upload data. See \fICURLOPT_UPLOAD(3)\fP
  428. .IP CURLOPT_UPLOAD_BUFFERSIZE
  429. Set upload buffer size. See \fICURLOPT_UPLOAD_BUFFERSIZE(3)\fP
  430. .IP CURLOPT_MIMEPOST
  431. Post/send MIME data. See \fICURLOPT_MIMEPOST(3)\fP
  432. .IP CURLOPT_MAXFILESIZE
  433. Maximum file size to get. See \fICURLOPT_MAXFILESIZE(3)\fP
  434. .IP CURLOPT_MAXFILESIZE_LARGE
  435. Maximum file size to get. See \fICURLOPT_MAXFILESIZE_LARGE(3)\fP
  436. .IP CURLOPT_TIMECONDITION
  437. Make a time conditional request. See \fICURLOPT_TIMECONDITION(3)\fP
  438. .IP CURLOPT_TIMEVALUE
  439. Time value for the time conditional request. See \fICURLOPT_TIMEVALUE(3)\fP
  440. .IP CURLOPT_TIMEVALUE_LARGE
  441. Time value for the time conditional request. See \fICURLOPT_TIMEVALUE_LARGE(3)\fP
  442. .SH CONNECTION OPTIONS
  443. .IP CURLOPT_TIMEOUT
  444. Timeout for the entire request. See \fICURLOPT_TIMEOUT(3)\fP
  445. .IP CURLOPT_TIMEOUT_MS
  446. Millisecond timeout for the entire request. See \fICURLOPT_TIMEOUT_MS(3)\fP
  447. .IP CURLOPT_LOW_SPEED_LIMIT
  448. Low speed limit to abort transfer. See \fICURLOPT_LOW_SPEED_LIMIT(3)\fP
  449. .IP CURLOPT_LOW_SPEED_TIME
  450. Time to be below the speed to trigger low speed abort. See \fICURLOPT_LOW_SPEED_TIME(3)\fP
  451. .IP CURLOPT_MAX_SEND_SPEED_LARGE
  452. Cap the upload speed to this. See \fICURLOPT_MAX_SEND_SPEED_LARGE(3)\fP
  453. .IP CURLOPT_MAX_RECV_SPEED_LARGE
  454. Cap the download speed to this. See \fICURLOPT_MAX_RECV_SPEED_LARGE(3)\fP
  455. .IP CURLOPT_MAXCONNECTS
  456. Maximum number of connections in the connection pool. See \fICURLOPT_MAXCONNECTS(3)\fP
  457. .IP CURLOPT_FRESH_CONNECT
  458. Use a new connection. \fICURLOPT_FRESH_CONNECT(3)\fP
  459. .IP CURLOPT_FORBID_REUSE
  460. Prevent subsequent connections from re-using this. See \fICURLOPT_FORBID_REUSE(3)\fP
  461. .IP CURLOPT_CONNECTTIMEOUT
  462. Timeout for the connection phase. See \fICURLOPT_CONNECTTIMEOUT(3)\fP
  463. .IP CURLOPT_CONNECTTIMEOUT_MS
  464. Millisecond timeout for the connection phase. See \fICURLOPT_CONNECTTIMEOUT_MS(3)\fP
  465. .IP CURLOPT_IPRESOLVE
  466. IP version to resolve to. See \fICURLOPT_IPRESOLVE(3)\fP
  467. .IP CURLOPT_CONNECT_ONLY
  468. Only connect, nothing else. See \fICURLOPT_CONNECT_ONLY(3)\fP
  469. .IP CURLOPT_USE_SSL
  470. Use TLS/SSL. See \fICURLOPT_USE_SSL(3)\fP
  471. .IP CURLOPT_RESOLVE
  472. Provide fixed/fake name resolves. See \fICURLOPT_RESOLVE(3)\fP
  473. .IP CURLOPT_DNS_INTERFACE
  474. Bind name resolves to this interface. See \fICURLOPT_DNS_INTERFACE(3)\fP
  475. .IP CURLOPT_DNS_LOCAL_IP4
  476. Bind name resolves to this IP4 address. See \fICURLOPT_DNS_LOCAL_IP4(3)\fP
  477. .IP CURLOPT_DNS_LOCAL_IP6
  478. Bind name resolves to this IP6 address. See \fICURLOPT_DNS_LOCAL_IP6(3)\fP
  479. .IP CURLOPT_DNS_SERVERS
  480. Preferred DNS servers. See \fICURLOPT_DNS_SERVERS(3)\fP
  481. .IP CURLOPT_DNS_SHUFFLE_ADDRESSES
  482. Shuffle addresses before use. See \fICURLOPT_DNS_SHUFFLE_ADDRESSES(3)\fP
  483. .IP CURLOPT_ACCEPTTIMEOUT_MS
  484. Timeout for waiting for the server's connect back to be accepted. See \fICURLOPT_ACCEPTTIMEOUT_MS(3)\fP
  485. .IP CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS
  486. Timeout for happy eyeballs. See \fICURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS(3)\fP
  487. .IP CURLOPT_UPKEEP_INTERVAL_MS
  488. Sets the interval at which connection upkeep are performed. See
  489. \fICURLOPT_UPKEEP_INTERVAL_MS(3)\fP
  490. .SH SSL and SECURITY OPTIONS
  491. .IP CURLOPT_SSLCERT
  492. Client cert. See \fICURLOPT_SSLCERT(3)\fP
  493. .IP CURLOPT_PROXY_SSLCERT
  494. Proxy client cert. See \fICURLOPT_PROXY_SSLCERT(3)\fP
  495. .IP CURLOPT_SSLCERTTYPE
  496. Client cert type. See \fICURLOPT_SSLCERTTYPE(3)\fP
  497. .IP CURLOPT_PROXY_SSLCERTTYPE
  498. Proxy client cert type. See \fICURLOPT_PROXY_SSLCERTTYPE(3)\fP
  499. .IP CURLOPT_SSLKEY
  500. Client key. See \fICURLOPT_SSLKEY(3)\fP
  501. .IP CURLOPT_PROXY_SSLKEY
  502. Proxy client key. See \fICURLOPT_PROXY_SSLKEY(3)\fP
  503. .IP CURLOPT_SSLKEYTYPE
  504. Client key type. See \fICURLOPT_SSLKEYTYPE(3)\fP
  505. .IP CURLOPT_PROXY_SSLKEYTYPE
  506. Proxy client key type. See \fICURLOPT_PROXY_SSLKEYTYPE(3)\fP
  507. .IP CURLOPT_KEYPASSWD
  508. Client key password. See \fICURLOPT_KEYPASSWD(3)\fP
  509. .IP CURLOPT_PROXY_KEYPASSWD
  510. Proxy client key password. See \fICURLOPT_PROXY_KEYPASSWD(3)\fP
  511. .IP CURLOPT_SSL_ENABLE_ALPN
  512. Enable use of ALPN. See \fICURLOPT_SSL_ENABLE_ALPN(3)\fP
  513. .IP CURLOPT_SSL_ENABLE_NPN
  514. Enable use of NPN. See \fICURLOPT_SSL_ENABLE_NPN(3)\fP
  515. .IP CURLOPT_SSLENGINE
  516. Use identifier with SSL engine. See \fICURLOPT_SSLENGINE(3)\fP
  517. .IP CURLOPT_SSLENGINE_DEFAULT
  518. Default SSL engine. See \fICURLOPT_SSLENGINE_DEFAULT(3)\fP
  519. .IP CURLOPT_SSL_FALSESTART
  520. Enable TLS False Start. See \fICURLOPT_SSL_FALSESTART(3)\fP
  521. .IP CURLOPT_SSLVERSION
  522. SSL version to use. See \fICURLOPT_SSLVERSION(3)\fP
  523. .IP CURLOPT_PROXY_SSLVERSION
  524. Proxy SSL version to use. See \fICURLOPT_PROXY_SSLVERSION(3)\fP
  525. .IP CURLOPT_SSL_VERIFYHOST
  526. Verify the host name in the SSL certificate. See \fICURLOPT_SSL_VERIFYHOST(3)\fP
  527. .IP CURLOPT_PROXY_SSL_VERIFYHOST
  528. Verify the host name in the proxy SSL certificate. See \fICURLOPT_PROXY_SSL_VERIFYHOST(3)\fP
  529. .IP CURLOPT_SSL_VERIFYPEER
  530. Verify the SSL certificate. See \fICURLOPT_SSL_VERIFYPEER(3)\fP
  531. .IP CURLOPT_PROXY_SSL_VERIFYPEER
  532. Verify the proxy SSL certificate. See \fICURLOPT_PROXY_SSL_VERIFYPEER(3)\fP
  533. .IP CURLOPT_SSL_VERIFYSTATUS
  534. Verify the SSL certificate's status. See \fICURLOPT_SSL_VERIFYSTATUS(3)\fP
  535. .IP CURLOPT_CAINFO
  536. CA cert bundle. See \fICURLOPT_CAINFO(3)\fP
  537. .IP CURLOPT_PROXY_CAINFO
  538. Proxy CA cert bundle. See \fICURLOPT_PROXY_CAINFO(3)\fP
  539. .IP CURLOPT_ISSUERCERT
  540. Issuer certificate. See \fICURLOPT_ISSUERCERT(3)\fP
  541. .IP CURLOPT_CAPATH
  542. Path to CA cert bundle. See \fICURLOPT_CAPATH(3)\fP
  543. .IP CURLOPT_PROXY_CAPATH
  544. Path to proxy CA cert bundle. See \fICURLOPT_PROXY_CAPATH(3)\fP
  545. .IP CURLOPT_CRLFILE
  546. Certificate Revocation List. See \fICURLOPT_CRLFILE(3)\fP
  547. .IP CURLOPT_PROXY_CRLFILE
  548. Proxy Certificate Revocation List. See \fICURLOPT_PROXY_CRLFILE(3)\fP
  549. .IP CURLOPT_CERTINFO
  550. Extract certificate info. See \fICURLOPT_CERTINFO(3)\fP
  551. .IP CURLOPT_PINNEDPUBLICKEY
  552. Set pinned SSL public key . See \fICURLOPT_PINNEDPUBLICKEY(3)\fP
  553. .IP CURLOPT_PROXY_PINNEDPUBLICKEY
  554. Set the proxy's pinned SSL public key. See
  555. \fICURLOPT_PROXY_PINNEDPUBLICKEY(3)\fP
  556. .IP CURLOPT_RANDOM_FILE
  557. Provide source for entropy random data. See \fICURLOPT_RANDOM_FILE(3)\fP
  558. .IP CURLOPT_EGDSOCKET
  559. Identify EGD socket for entropy. See \fICURLOPT_EGDSOCKET(3)\fP
  560. .IP CURLOPT_SSL_CIPHER_LIST
  561. Ciphers to use. See \fICURLOPT_SSL_CIPHER_LIST(3)\fP
  562. .IP CURLOPT_PROXY_SSL_CIPHER_LIST
  563. Proxy ciphers to use. See \fICURLOPT_PROXY_SSL_CIPHER_LIST(3)\fP
  564. .IP CURLOPT_TLS13_CIPHERS
  565. TLS 1.3 cipher suites to use. See \fICURLOPT_TLS13_CIPHERS(3)\fP
  566. .IP CURLOPT_PROXY_TLS13_CIPHERS
  567. Proxy TLS 1.3 cipher suites to use. See \fICURLOPT_PROXY_TLS13_CIPHERS(3)\fP
  568. .IP CURLOPT_SSL_SESSIONID_CACHE
  569. Disable SSL session-id cache. See \fICURLOPT_SSL_SESSIONID_CACHE(3)\fP
  570. .IP CURLOPT_SSL_OPTIONS
  571. Control SSL behavior. See \fICURLOPT_SSL_OPTIONS(3)\fP
  572. .IP CURLOPT_PROXY_SSL_OPTIONS
  573. Control proxy SSL behavior. See \fICURLOPT_PROXY_SSL_OPTIONS(3)\fP
  574. .IP CURLOPT_KRBLEVEL
  575. Kerberos security level. See \fICURLOPT_KRBLEVEL(3)\fP
  576. .IP CURLOPT_GSSAPI_DELEGATION
  577. Disable GSS-API delegation. See \fICURLOPT_GSSAPI_DELEGATION(3)\fP
  578. .SH SSH OPTIONS
  579. .IP CURLOPT_SSH_AUTH_TYPES
  580. SSH authentication types. See \fICURLOPT_SSH_AUTH_TYPES(3)\fP
  581. .IP CURLOPT_SSH_COMPRESSION
  582. Enable SSH compression. See \fICURLOPT_SSH_COMPRESSION(3)\fP
  583. .IP CURLOPT_SSH_HOST_PUBLIC_KEY_MD5
  584. MD5 of host's public key. See \fICURLOPT_SSH_HOST_PUBLIC_KEY_MD5(3)\fP
  585. .IP CURLOPT_SSH_PUBLIC_KEYFILE
  586. File name of public key. See \fICURLOPT_SSH_PUBLIC_KEYFILE(3)\fP
  587. .IP CURLOPT_SSH_PRIVATE_KEYFILE
  588. File name of private key. See \fICURLOPT_SSH_PRIVATE_KEYFILE(3)\fP
  589. .IP CURLOPT_SSH_KNOWNHOSTS
  590. File name with known hosts. See \fICURLOPT_SSH_KNOWNHOSTS(3)\fP
  591. .IP CURLOPT_SSH_KEYFUNCTION
  592. Callback for known hosts handling. See \fICURLOPT_SSH_KEYFUNCTION(3)\fP
  593. .IP CURLOPT_SSH_KEYDATA
  594. Custom pointer to pass to ssh key callback. See \fICURLOPT_SSH_KEYDATA(3)\fP
  595. .SH OTHER OPTIONS
  596. .IP CURLOPT_PRIVATE
  597. Private pointer to store. See \fICURLOPT_PRIVATE(3)\fP
  598. .IP CURLOPT_SHARE
  599. Share object to use. See \fICURLOPT_SHARE(3)\fP
  600. .IP CURLOPT_NEW_FILE_PERMS
  601. Mode for creating new remote files. See \fICURLOPT_NEW_FILE_PERMS(3)\fP
  602. .IP CURLOPT_NEW_DIRECTORY_PERMS
  603. Mode for creating new remote directories. See \fICURLOPT_NEW_DIRECTORY_PERMS(3)\fP
  604. .SH TELNET OPTIONS
  605. .IP CURLOPT_TELNETOPTIONS
  606. TELNET options. See \fICURLOPT_TELNETOPTIONS(3)\fP
  607. .SH RETURN VALUE
  608. \fICURLE_OK\fP (zero) means that the option was set properly, non-zero means an
  609. error occurred as \fI<curl/curl.h>\fP defines. See the \fIlibcurl-errors(3)\fP
  610. man page for the full list with descriptions.
  611. If you try to set an option that libcurl doesn't know about, perhaps because
  612. the library is too old to support it or the option was removed in a recent
  613. version, this function will return \fICURLE_UNKNOWN_OPTION\fP. If support for
  614. the option was disabled at compile-time, it will return
  615. \fICURLE_NOT_BUILT_IN\fP.
  616. .SH EXAMPLE
  617. .nf
  618. CURL *curl = curl_easy_init();
  619. if(curl) {
  620. CURLcode res;
  621. curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
  622. res = curl_easy_perform(curl);
  623. curl_easy_cleanup(curl);
  624. }
  625. .fi
  626. .SH "SEE ALSO"
  627. .BR curl_easy_init "(3), " curl_easy_cleanup "(3), " curl_easy_reset "(3), "
  628. .BR curl_easy_getinfo "(3), " curl_multi_setopt "(3), "