xref: /curl/lib/easyoptions.c (revision b77d627d)
1 /***************************************************************************
2  *                                  _   _ ____  _
3  *  Project                     ___| | | |  _ \| |
4  *                             / __| | | | |_) | |
5  *                            | (__| |_| |  _ <| |___
6  *                             \___|\___/|_| \_\_____|
7  *
8  * Copyright (C) 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.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  * SPDX-License-Identifier: curl
22  *
23  ***************************************************************************/
24 
25 /* This source code is generated by optiontable.pl - DO NOT EDIT BY HAND */
26 
27 #include "curl_setup.h"
28 #include "easyoptions.h"
29 
30 /* all easy setopt options listed in alphabetical order */
31 struct curl_easyoption Curl_easyopts[] = {
32   {"ABSTRACT_UNIX_SOCKET", CURLOPT_ABSTRACT_UNIX_SOCKET, CURLOT_STRING, 0},
33   {"ACCEPTTIMEOUT_MS", CURLOPT_ACCEPTTIMEOUT_MS, CURLOT_LONG, 0},
34   {"ACCEPT_ENCODING", CURLOPT_ACCEPT_ENCODING, CURLOT_STRING, 0},
35   {"ADDRESS_SCOPE", CURLOPT_ADDRESS_SCOPE, CURLOT_LONG, 0},
36   {"ALTSVC", CURLOPT_ALTSVC, CURLOT_STRING, 0},
37   {"ALTSVC_CTRL", CURLOPT_ALTSVC_CTRL, CURLOT_LONG, 0},
38   {"APPEND", CURLOPT_APPEND, CURLOT_LONG, 0},
39   {"AUTOREFERER", CURLOPT_AUTOREFERER, CURLOT_LONG, 0},
40   {"AWS_SIGV4", CURLOPT_AWS_SIGV4, CURLOT_STRING, 0},
41   {"BUFFERSIZE", CURLOPT_BUFFERSIZE, CURLOT_LONG, 0},
42   {"CAINFO", CURLOPT_CAINFO, CURLOT_STRING, 0},
43   {"CAINFO_BLOB", CURLOPT_CAINFO_BLOB, CURLOT_BLOB, 0},
44   {"CAPATH", CURLOPT_CAPATH, CURLOT_STRING, 0},
45   {"CA_CACHE_TIMEOUT", CURLOPT_CA_CACHE_TIMEOUT, CURLOT_LONG, 0},
46   {"CERTINFO", CURLOPT_CERTINFO, CURLOT_LONG, 0},
47   {"CHUNK_BGN_FUNCTION", CURLOPT_CHUNK_BGN_FUNCTION, CURLOT_FUNCTION, 0},
48   {"CHUNK_DATA", CURLOPT_CHUNK_DATA, CURLOT_CBPTR, 0},
49   {"CHUNK_END_FUNCTION", CURLOPT_CHUNK_END_FUNCTION, CURLOT_FUNCTION, 0},
50   {"CLOSESOCKETDATA", CURLOPT_CLOSESOCKETDATA, CURLOT_CBPTR, 0},
51   {"CLOSESOCKETFUNCTION", CURLOPT_CLOSESOCKETFUNCTION, CURLOT_FUNCTION, 0},
52   {"CONNECTTIMEOUT", CURLOPT_CONNECTTIMEOUT, CURLOT_LONG, 0},
53   {"CONNECTTIMEOUT_MS", CURLOPT_CONNECTTIMEOUT_MS, CURLOT_LONG, 0},
54   {"CONNECT_ONLY", CURLOPT_CONNECT_ONLY, CURLOT_LONG, 0},
55   {"CONNECT_TO", CURLOPT_CONNECT_TO, CURLOT_SLIST, 0},
56   {"CONV_FROM_NETWORK_FUNCTION", CURLOPT_CONV_FROM_NETWORK_FUNCTION,
57    CURLOT_FUNCTION, 0},
58   {"CONV_FROM_UTF8_FUNCTION", CURLOPT_CONV_FROM_UTF8_FUNCTION,
59    CURLOT_FUNCTION, 0},
60   {"CONV_TO_NETWORK_FUNCTION", CURLOPT_CONV_TO_NETWORK_FUNCTION,
61    CURLOT_FUNCTION, 0},
62   {"COOKIE", CURLOPT_COOKIE, CURLOT_STRING, 0},
63   {"COOKIEFILE", CURLOPT_COOKIEFILE, CURLOT_STRING, 0},
64   {"COOKIEJAR", CURLOPT_COOKIEJAR, CURLOT_STRING, 0},
65   {"COOKIELIST", CURLOPT_COOKIELIST, CURLOT_STRING, 0},
66   {"COOKIESESSION", CURLOPT_COOKIESESSION, CURLOT_LONG, 0},
67   {"COPYPOSTFIELDS", CURLOPT_COPYPOSTFIELDS, CURLOT_OBJECT, 0},
68   {"CRLF", CURLOPT_CRLF, CURLOT_LONG, 0},
69   {"CRLFILE", CURLOPT_CRLFILE, CURLOT_STRING, 0},
70   {"CURLU", CURLOPT_CURLU, CURLOT_OBJECT, 0},
71   {"CUSTOMREQUEST", CURLOPT_CUSTOMREQUEST, CURLOT_STRING, 0},
72   {"DEBUGDATA", CURLOPT_DEBUGDATA, CURLOT_CBPTR, 0},
73   {"DEBUGFUNCTION", CURLOPT_DEBUGFUNCTION, CURLOT_FUNCTION, 0},
74   {"DEFAULT_PROTOCOL", CURLOPT_DEFAULT_PROTOCOL, CURLOT_STRING, 0},
75   {"DIRLISTONLY", CURLOPT_DIRLISTONLY, CURLOT_LONG, 0},
76   {"DISALLOW_USERNAME_IN_URL", CURLOPT_DISALLOW_USERNAME_IN_URL,
77    CURLOT_LONG, 0},
78   {"DNS_CACHE_TIMEOUT", CURLOPT_DNS_CACHE_TIMEOUT, CURLOT_LONG, 0},
79   {"DNS_INTERFACE", CURLOPT_DNS_INTERFACE, CURLOT_STRING, 0},
80   {"DNS_LOCAL_IP4", CURLOPT_DNS_LOCAL_IP4, CURLOT_STRING, 0},
81   {"DNS_LOCAL_IP6", CURLOPT_DNS_LOCAL_IP6, CURLOT_STRING, 0},
82   {"DNS_SERVERS", CURLOPT_DNS_SERVERS, CURLOT_STRING, 0},
83   {"DNS_SHUFFLE_ADDRESSES", CURLOPT_DNS_SHUFFLE_ADDRESSES, CURLOT_LONG, 0},
84   {"DNS_USE_GLOBAL_CACHE", CURLOPT_DNS_USE_GLOBAL_CACHE, CURLOT_LONG, 0},
85   {"DOH_SSL_VERIFYHOST", CURLOPT_DOH_SSL_VERIFYHOST, CURLOT_LONG, 0},
86   {"DOH_SSL_VERIFYPEER", CURLOPT_DOH_SSL_VERIFYPEER, CURLOT_LONG, 0},
87   {"DOH_SSL_VERIFYSTATUS", CURLOPT_DOH_SSL_VERIFYSTATUS, CURLOT_LONG, 0},
88   {"DOH_URL", CURLOPT_DOH_URL, CURLOT_STRING, 0},
89   {"ECH", CURLOPT_ECH, CURLOT_STRING, 0},
90   {"EGDSOCKET", CURLOPT_EGDSOCKET, CURLOT_STRING, 0},
91   {"ENCODING", CURLOPT_ACCEPT_ENCODING, CURLOT_STRING, CURLOT_FLAG_ALIAS},
92   {"ERRORBUFFER", CURLOPT_ERRORBUFFER, CURLOT_OBJECT, 0},
93   {"EXPECT_100_TIMEOUT_MS", CURLOPT_EXPECT_100_TIMEOUT_MS, CURLOT_LONG, 0},
94   {"FAILONERROR", CURLOPT_FAILONERROR, CURLOT_LONG, 0},
95   {"FILE", CURLOPT_WRITEDATA, CURLOT_CBPTR, CURLOT_FLAG_ALIAS},
96   {"FILETIME", CURLOPT_FILETIME, CURLOT_LONG, 0},
97   {"FNMATCH_DATA", CURLOPT_FNMATCH_DATA, CURLOT_CBPTR, 0},
98   {"FNMATCH_FUNCTION", CURLOPT_FNMATCH_FUNCTION, CURLOT_FUNCTION, 0},
99   {"FOLLOWLOCATION", CURLOPT_FOLLOWLOCATION, CURLOT_LONG, 0},
100   {"FORBID_REUSE", CURLOPT_FORBID_REUSE, CURLOT_LONG, 0},
101   {"FRESH_CONNECT", CURLOPT_FRESH_CONNECT, CURLOT_LONG, 0},
102   {"FTPAPPEND", CURLOPT_APPEND, CURLOT_LONG, CURLOT_FLAG_ALIAS},
103   {"FTPLISTONLY", CURLOPT_DIRLISTONLY, CURLOT_LONG, CURLOT_FLAG_ALIAS},
104   {"FTPPORT", CURLOPT_FTPPORT, CURLOT_STRING, 0},
105   {"FTPSSLAUTH", CURLOPT_FTPSSLAUTH, CURLOT_VALUES, 0},
106   {"FTP_ACCOUNT", CURLOPT_FTP_ACCOUNT, CURLOT_STRING, 0},
107   {"FTP_ALTERNATIVE_TO_USER", CURLOPT_FTP_ALTERNATIVE_TO_USER,
108    CURLOT_STRING, 0},
109   {"FTP_CREATE_MISSING_DIRS", CURLOPT_FTP_CREATE_MISSING_DIRS,
110    CURLOT_LONG, 0},
111   {"FTP_FILEMETHOD", CURLOPT_FTP_FILEMETHOD, CURLOT_VALUES, 0},
112   {"FTP_RESPONSE_TIMEOUT", CURLOPT_SERVER_RESPONSE_TIMEOUT,
113    CURLOT_LONG, CURLOT_FLAG_ALIAS},
114   {"FTP_SKIP_PASV_IP", CURLOPT_FTP_SKIP_PASV_IP, CURLOT_LONG, 0},
115   {"FTP_SSL", CURLOPT_USE_SSL, CURLOT_VALUES, CURLOT_FLAG_ALIAS},
116   {"FTP_SSL_CCC", CURLOPT_FTP_SSL_CCC, CURLOT_LONG, 0},
117   {"FTP_USE_EPRT", CURLOPT_FTP_USE_EPRT, CURLOT_LONG, 0},
118   {"FTP_USE_EPSV", CURLOPT_FTP_USE_EPSV, CURLOT_LONG, 0},
119   {"FTP_USE_PRET", CURLOPT_FTP_USE_PRET, CURLOT_LONG, 0},
120   {"GSSAPI_DELEGATION", CURLOPT_GSSAPI_DELEGATION, CURLOT_VALUES, 0},
121   {"HAPPY_EYEBALLS_TIMEOUT_MS", CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS,
122    CURLOT_LONG, 0},
123   {"HAPROXYPROTOCOL", CURLOPT_HAPROXYPROTOCOL, CURLOT_LONG, 0},
124   {"HAPROXY_CLIENT_IP", CURLOPT_HAPROXY_CLIENT_IP, CURLOT_STRING, 0},
125   {"HEADER", CURLOPT_HEADER, CURLOT_LONG, 0},
126   {"HEADERDATA", CURLOPT_HEADERDATA, CURLOT_CBPTR, 0},
127   {"HEADERFUNCTION", CURLOPT_HEADERFUNCTION, CURLOT_FUNCTION, 0},
128   {"HEADEROPT", CURLOPT_HEADEROPT, CURLOT_VALUES, 0},
129   {"HSTS", CURLOPT_HSTS, CURLOT_STRING, 0},
130   {"HSTSREADDATA", CURLOPT_HSTSREADDATA, CURLOT_CBPTR, 0},
131   {"HSTSREADFUNCTION", CURLOPT_HSTSREADFUNCTION, CURLOT_FUNCTION, 0},
132   {"HSTSWRITEDATA", CURLOPT_HSTSWRITEDATA, CURLOT_CBPTR, 0},
133   {"HSTSWRITEFUNCTION", CURLOPT_HSTSWRITEFUNCTION, CURLOT_FUNCTION, 0},
134   {"HSTS_CTRL", CURLOPT_HSTS_CTRL, CURLOT_LONG, 0},
135   {"HTTP09_ALLOWED", CURLOPT_HTTP09_ALLOWED, CURLOT_LONG, 0},
136   {"HTTP200ALIASES", CURLOPT_HTTP200ALIASES, CURLOT_SLIST, 0},
137   {"HTTPAUTH", CURLOPT_HTTPAUTH, CURLOT_VALUES, 0},
138   {"HTTPGET", CURLOPT_HTTPGET, CURLOT_LONG, 0},
139   {"HTTPHEADER", CURLOPT_HTTPHEADER, CURLOT_SLIST, 0},
140   {"HTTPPOST", CURLOPT_HTTPPOST, CURLOT_OBJECT, 0},
141   {"HTTPPROXYTUNNEL", CURLOPT_HTTPPROXYTUNNEL, CURLOT_LONG, 0},
142   {"HTTP_CONTENT_DECODING", CURLOPT_HTTP_CONTENT_DECODING, CURLOT_LONG, 0},
143   {"HTTP_TRANSFER_DECODING", CURLOPT_HTTP_TRANSFER_DECODING, CURLOT_LONG, 0},
144   {"HTTP_VERSION", CURLOPT_HTTP_VERSION, CURLOT_VALUES, 0},
145   {"IGNORE_CONTENT_LENGTH", CURLOPT_IGNORE_CONTENT_LENGTH, CURLOT_LONG, 0},
146   {"INFILE", CURLOPT_READDATA, CURLOT_CBPTR, CURLOT_FLAG_ALIAS},
147   {"INFILESIZE", CURLOPT_INFILESIZE, CURLOT_LONG, 0},
148   {"INFILESIZE_LARGE", CURLOPT_INFILESIZE_LARGE, CURLOT_OFF_T, 0},
149   {"INTERFACE", CURLOPT_INTERFACE, CURLOT_STRING, 0},
150   {"INTERLEAVEDATA", CURLOPT_INTERLEAVEDATA, CURLOT_CBPTR, 0},
151   {"INTERLEAVEFUNCTION", CURLOPT_INTERLEAVEFUNCTION, CURLOT_FUNCTION, 0},
152   {"IOCTLDATA", CURLOPT_IOCTLDATA, CURLOT_CBPTR, 0},
153   {"IOCTLFUNCTION", CURLOPT_IOCTLFUNCTION, CURLOT_FUNCTION, 0},
154   {"IPRESOLVE", CURLOPT_IPRESOLVE, CURLOT_VALUES, 0},
155   {"ISSUERCERT", CURLOPT_ISSUERCERT, CURLOT_STRING, 0},
156   {"ISSUERCERT_BLOB", CURLOPT_ISSUERCERT_BLOB, CURLOT_BLOB, 0},
157   {"KEEP_SENDING_ON_ERROR", CURLOPT_KEEP_SENDING_ON_ERROR, CURLOT_LONG, 0},
158   {"KEYPASSWD", CURLOPT_KEYPASSWD, CURLOT_STRING, 0},
159   {"KRB4LEVEL", CURLOPT_KRBLEVEL, CURLOT_STRING, CURLOT_FLAG_ALIAS},
160   {"KRBLEVEL", CURLOPT_KRBLEVEL, CURLOT_STRING, 0},
161   {"LOCALPORT", CURLOPT_LOCALPORT, CURLOT_LONG, 0},
162   {"LOCALPORTRANGE", CURLOPT_LOCALPORTRANGE, CURLOT_LONG, 0},
163   {"LOGIN_OPTIONS", CURLOPT_LOGIN_OPTIONS, CURLOT_STRING, 0},
164   {"LOW_SPEED_LIMIT", CURLOPT_LOW_SPEED_LIMIT, CURLOT_LONG, 0},
165   {"LOW_SPEED_TIME", CURLOPT_LOW_SPEED_TIME, CURLOT_LONG, 0},
166   {"MAIL_AUTH", CURLOPT_MAIL_AUTH, CURLOT_STRING, 0},
167   {"MAIL_FROM", CURLOPT_MAIL_FROM, CURLOT_STRING, 0},
168   {"MAIL_RCPT", CURLOPT_MAIL_RCPT, CURLOT_SLIST, 0},
169   {"MAIL_RCPT_ALLLOWFAILS", CURLOPT_MAIL_RCPT_ALLOWFAILS,
170    CURLOT_LONG, CURLOT_FLAG_ALIAS},
171   {"MAIL_RCPT_ALLOWFAILS", CURLOPT_MAIL_RCPT_ALLOWFAILS, CURLOT_LONG, 0},
172   {"MAXAGE_CONN", CURLOPT_MAXAGE_CONN, CURLOT_LONG, 0},
173   {"MAXCONNECTS", CURLOPT_MAXCONNECTS, CURLOT_LONG, 0},
174   {"MAXFILESIZE", CURLOPT_MAXFILESIZE, CURLOT_LONG, 0},
175   {"MAXFILESIZE_LARGE", CURLOPT_MAXFILESIZE_LARGE, CURLOT_OFF_T, 0},
176   {"MAXLIFETIME_CONN", CURLOPT_MAXLIFETIME_CONN, CURLOT_LONG, 0},
177   {"MAXREDIRS", CURLOPT_MAXREDIRS, CURLOT_LONG, 0},
178   {"MAX_RECV_SPEED_LARGE", CURLOPT_MAX_RECV_SPEED_LARGE, CURLOT_OFF_T, 0},
179   {"MAX_SEND_SPEED_LARGE", CURLOPT_MAX_SEND_SPEED_LARGE, CURLOT_OFF_T, 0},
180   {"MIMEPOST", CURLOPT_MIMEPOST, CURLOT_OBJECT, 0},
181   {"MIME_OPTIONS", CURLOPT_MIME_OPTIONS, CURLOT_LONG, 0},
182   {"NETRC", CURLOPT_NETRC, CURLOT_VALUES, 0},
183   {"NETRC_FILE", CURLOPT_NETRC_FILE, CURLOT_STRING, 0},
184   {"NEW_DIRECTORY_PERMS", CURLOPT_NEW_DIRECTORY_PERMS, CURLOT_LONG, 0},
185   {"NEW_FILE_PERMS", CURLOPT_NEW_FILE_PERMS, CURLOT_LONG, 0},
186   {"NOBODY", CURLOPT_NOBODY, CURLOT_LONG, 0},
187   {"NOPROGRESS", CURLOPT_NOPROGRESS, CURLOT_LONG, 0},
188   {"NOPROXY", CURLOPT_NOPROXY, CURLOT_STRING, 0},
189   {"NOSIGNAL", CURLOPT_NOSIGNAL, CURLOT_LONG, 0},
190   {"OPENSOCKETDATA", CURLOPT_OPENSOCKETDATA, CURLOT_CBPTR, 0},
191   {"OPENSOCKETFUNCTION", CURLOPT_OPENSOCKETFUNCTION, CURLOT_FUNCTION, 0},
192   {"PASSWORD", CURLOPT_PASSWORD, CURLOT_STRING, 0},
193   {"PATH_AS_IS", CURLOPT_PATH_AS_IS, CURLOT_LONG, 0},
194   {"PINNEDPUBLICKEY", CURLOPT_PINNEDPUBLICKEY, CURLOT_STRING, 0},
195   {"PIPEWAIT", CURLOPT_PIPEWAIT, CURLOT_LONG, 0},
196   {"PORT", CURLOPT_PORT, CURLOT_LONG, 0},
197   {"POST", CURLOPT_POST, CURLOT_LONG, 0},
198   {"POST301", CURLOPT_POSTREDIR, CURLOT_VALUES, CURLOT_FLAG_ALIAS},
199   {"POSTFIELDS", CURLOPT_POSTFIELDS, CURLOT_OBJECT, 0},
200   {"POSTFIELDSIZE", CURLOPT_POSTFIELDSIZE, CURLOT_LONG, 0},
201   {"POSTFIELDSIZE_LARGE", CURLOPT_POSTFIELDSIZE_LARGE, CURLOT_OFF_T, 0},
202   {"POSTQUOTE", CURLOPT_POSTQUOTE, CURLOT_SLIST, 0},
203   {"POSTREDIR", CURLOPT_POSTREDIR, CURLOT_VALUES, 0},
204   {"PREQUOTE", CURLOPT_PREQUOTE, CURLOT_SLIST, 0},
205   {"PREREQDATA", CURLOPT_PREREQDATA, CURLOT_CBPTR, 0},
206   {"PREREQFUNCTION", CURLOPT_PREREQFUNCTION, CURLOT_FUNCTION, 0},
207   {"PRE_PROXY", CURLOPT_PRE_PROXY, CURLOT_STRING, 0},
208   {"PRIVATE", CURLOPT_PRIVATE, CURLOT_OBJECT, 0},
209   {"PROGRESSDATA", CURLOPT_XFERINFODATA, CURLOT_CBPTR, CURLOT_FLAG_ALIAS},
210   {"PROGRESSFUNCTION", CURLOPT_PROGRESSFUNCTION, CURLOT_FUNCTION, 0},
211   {"PROTOCOLS", CURLOPT_PROTOCOLS, CURLOT_LONG, 0},
212   {"PROTOCOLS_STR", CURLOPT_PROTOCOLS_STR, CURLOT_STRING, 0},
213   {"PROXY", CURLOPT_PROXY, CURLOT_STRING, 0},
214   {"PROXYAUTH", CURLOPT_PROXYAUTH, CURLOT_VALUES, 0},
215   {"PROXYHEADER", CURLOPT_PROXYHEADER, CURLOT_SLIST, 0},
216   {"PROXYPASSWORD", CURLOPT_PROXYPASSWORD, CURLOT_STRING, 0},
217   {"PROXYPORT", CURLOPT_PROXYPORT, CURLOT_LONG, 0},
218   {"PROXYTYPE", CURLOPT_PROXYTYPE, CURLOT_VALUES, 0},
219   {"PROXYUSERNAME", CURLOPT_PROXYUSERNAME, CURLOT_STRING, 0},
220   {"PROXYUSERPWD", CURLOPT_PROXYUSERPWD, CURLOT_STRING, 0},
221   {"PROXY_CAINFO", CURLOPT_PROXY_CAINFO, CURLOT_STRING, 0},
222   {"PROXY_CAINFO_BLOB", CURLOPT_PROXY_CAINFO_BLOB, CURLOT_BLOB, 0},
223   {"PROXY_CAPATH", CURLOPT_PROXY_CAPATH, CURLOT_STRING, 0},
224   {"PROXY_CRLFILE", CURLOPT_PROXY_CRLFILE, CURLOT_STRING, 0},
225   {"PROXY_ISSUERCERT", CURLOPT_PROXY_ISSUERCERT, CURLOT_STRING, 0},
226   {"PROXY_ISSUERCERT_BLOB", CURLOPT_PROXY_ISSUERCERT_BLOB, CURLOT_BLOB, 0},
227   {"PROXY_KEYPASSWD", CURLOPT_PROXY_KEYPASSWD, CURLOT_STRING, 0},
228   {"PROXY_PINNEDPUBLICKEY", CURLOPT_PROXY_PINNEDPUBLICKEY, CURLOT_STRING, 0},
229   {"PROXY_SERVICE_NAME", CURLOPT_PROXY_SERVICE_NAME, CURLOT_STRING, 0},
230   {"PROXY_SSLCERT", CURLOPT_PROXY_SSLCERT, CURLOT_STRING, 0},
231   {"PROXY_SSLCERTTYPE", CURLOPT_PROXY_SSLCERTTYPE, CURLOT_STRING, 0},
232   {"PROXY_SSLCERT_BLOB", CURLOPT_PROXY_SSLCERT_BLOB, CURLOT_BLOB, 0},
233   {"PROXY_SSLKEY", CURLOPT_PROXY_SSLKEY, CURLOT_STRING, 0},
234   {"PROXY_SSLKEYTYPE", CURLOPT_PROXY_SSLKEYTYPE, CURLOT_STRING, 0},
235   {"PROXY_SSLKEY_BLOB", CURLOPT_PROXY_SSLKEY_BLOB, CURLOT_BLOB, 0},
236   {"PROXY_SSLVERSION", CURLOPT_PROXY_SSLVERSION, CURLOT_VALUES, 0},
237   {"PROXY_SSL_CIPHER_LIST", CURLOPT_PROXY_SSL_CIPHER_LIST, CURLOT_STRING, 0},
238   {"PROXY_SSL_OPTIONS", CURLOPT_PROXY_SSL_OPTIONS, CURLOT_LONG, 0},
239   {"PROXY_SSL_VERIFYHOST", CURLOPT_PROXY_SSL_VERIFYHOST, CURLOT_LONG, 0},
240   {"PROXY_SSL_VERIFYPEER", CURLOPT_PROXY_SSL_VERIFYPEER, CURLOT_LONG, 0},
241   {"PROXY_TLS13_CIPHERS", CURLOPT_PROXY_TLS13_CIPHERS, CURLOT_STRING, 0},
242   {"PROXY_TLSAUTH_PASSWORD", CURLOPT_PROXY_TLSAUTH_PASSWORD,
243    CURLOT_STRING, 0},
244   {"PROXY_TLSAUTH_TYPE", CURLOPT_PROXY_TLSAUTH_TYPE, CURLOT_STRING, 0},
245   {"PROXY_TLSAUTH_USERNAME", CURLOPT_PROXY_TLSAUTH_USERNAME,
246    CURLOT_STRING, 0},
247   {"PROXY_TRANSFER_MODE", CURLOPT_PROXY_TRANSFER_MODE, CURLOT_LONG, 0},
248   {"PUT", CURLOPT_PUT, CURLOT_LONG, 0},
249   {"QUICK_EXIT", CURLOPT_QUICK_EXIT, CURLOT_LONG, 0},
250   {"QUOTE", CURLOPT_QUOTE, CURLOT_SLIST, 0},
251   {"RANDOM_FILE", CURLOPT_RANDOM_FILE, CURLOT_STRING, 0},
252   {"RANGE", CURLOPT_RANGE, CURLOT_STRING, 0},
253   {"READDATA", CURLOPT_READDATA, CURLOT_CBPTR, 0},
254   {"READFUNCTION", CURLOPT_READFUNCTION, CURLOT_FUNCTION, 0},
255   {"REDIR_PROTOCOLS", CURLOPT_REDIR_PROTOCOLS, CURLOT_LONG, 0},
256   {"REDIR_PROTOCOLS_STR", CURLOPT_REDIR_PROTOCOLS_STR, CURLOT_STRING, 0},
257   {"REFERER", CURLOPT_REFERER, CURLOT_STRING, 0},
258   {"REQUEST_TARGET", CURLOPT_REQUEST_TARGET, CURLOT_STRING, 0},
259   {"RESOLVE", CURLOPT_RESOLVE, CURLOT_SLIST, 0},
260   {"RESOLVER_START_DATA", CURLOPT_RESOLVER_START_DATA, CURLOT_CBPTR, 0},
261   {"RESOLVER_START_FUNCTION", CURLOPT_RESOLVER_START_FUNCTION,
262    CURLOT_FUNCTION, 0},
263   {"RESUME_FROM", CURLOPT_RESUME_FROM, CURLOT_LONG, 0},
264   {"RESUME_FROM_LARGE", CURLOPT_RESUME_FROM_LARGE, CURLOT_OFF_T, 0},
265   {"RTSPHEADER", CURLOPT_HTTPHEADER, CURLOT_SLIST, CURLOT_FLAG_ALIAS},
266   {"RTSP_CLIENT_CSEQ", CURLOPT_RTSP_CLIENT_CSEQ, CURLOT_LONG, 0},
267   {"RTSP_REQUEST", CURLOPT_RTSP_REQUEST, CURLOT_VALUES, 0},
268   {"RTSP_SERVER_CSEQ", CURLOPT_RTSP_SERVER_CSEQ, CURLOT_LONG, 0},
269   {"RTSP_SESSION_ID", CURLOPT_RTSP_SESSION_ID, CURLOT_STRING, 0},
270   {"RTSP_STREAM_URI", CURLOPT_RTSP_STREAM_URI, CURLOT_STRING, 0},
271   {"RTSP_TRANSPORT", CURLOPT_RTSP_TRANSPORT, CURLOT_STRING, 0},
272   {"SASL_AUTHZID", CURLOPT_SASL_AUTHZID, CURLOT_STRING, 0},
273   {"SASL_IR", CURLOPT_SASL_IR, CURLOT_LONG, 0},
274   {"SEEKDATA", CURLOPT_SEEKDATA, CURLOT_CBPTR, 0},
275   {"SEEKFUNCTION", CURLOPT_SEEKFUNCTION, CURLOT_FUNCTION, 0},
276   {"SERVER_RESPONSE_TIMEOUT", CURLOPT_SERVER_RESPONSE_TIMEOUT,
277    CURLOT_LONG, 0},
278   {"SERVER_RESPONSE_TIMEOUT_MS", CURLOPT_SERVER_RESPONSE_TIMEOUT_MS,
279    CURLOT_LONG, 0},
280   {"SERVICE_NAME", CURLOPT_SERVICE_NAME, CURLOT_STRING, 0},
281   {"SHARE", CURLOPT_SHARE, CURLOT_OBJECT, 0},
282   {"SOCKOPTDATA", CURLOPT_SOCKOPTDATA, CURLOT_CBPTR, 0},
283   {"SOCKOPTFUNCTION", CURLOPT_SOCKOPTFUNCTION, CURLOT_FUNCTION, 0},
284   {"SOCKS5_AUTH", CURLOPT_SOCKS5_AUTH, CURLOT_LONG, 0},
285   {"SOCKS5_GSSAPI_NEC", CURLOPT_SOCKS5_GSSAPI_NEC, CURLOT_LONG, 0},
286   {"SOCKS5_GSSAPI_SERVICE", CURLOPT_SOCKS5_GSSAPI_SERVICE, CURLOT_STRING, 0},
287   {"SSH_AUTH_TYPES", CURLOPT_SSH_AUTH_TYPES, CURLOT_VALUES, 0},
288   {"SSH_COMPRESSION", CURLOPT_SSH_COMPRESSION, CURLOT_LONG, 0},
289   {"SSH_HOSTKEYDATA", CURLOPT_SSH_HOSTKEYDATA, CURLOT_CBPTR, 0},
290   {"SSH_HOSTKEYFUNCTION", CURLOPT_SSH_HOSTKEYFUNCTION, CURLOT_FUNCTION, 0},
291   {"SSH_HOST_PUBLIC_KEY_MD5", CURLOPT_SSH_HOST_PUBLIC_KEY_MD5,
292    CURLOT_STRING, 0},
293   {"SSH_HOST_PUBLIC_KEY_SHA256", CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256,
294    CURLOT_STRING, 0},
295   {"SSH_KEYDATA", CURLOPT_SSH_KEYDATA, CURLOT_CBPTR, 0},
296   {"SSH_KEYFUNCTION", CURLOPT_SSH_KEYFUNCTION, CURLOT_FUNCTION, 0},
297   {"SSH_KNOWNHOSTS", CURLOPT_SSH_KNOWNHOSTS, CURLOT_STRING, 0},
298   {"SSH_PRIVATE_KEYFILE", CURLOPT_SSH_PRIVATE_KEYFILE, CURLOT_STRING, 0},
299   {"SSH_PUBLIC_KEYFILE", CURLOPT_SSH_PUBLIC_KEYFILE, CURLOT_STRING, 0},
300   {"SSLCERT", CURLOPT_SSLCERT, CURLOT_STRING, 0},
301   {"SSLCERTPASSWD", CURLOPT_KEYPASSWD, CURLOT_STRING, CURLOT_FLAG_ALIAS},
302   {"SSLCERTTYPE", CURLOPT_SSLCERTTYPE, CURLOT_STRING, 0},
303   {"SSLCERT_BLOB", CURLOPT_SSLCERT_BLOB, CURLOT_BLOB, 0},
304   {"SSLENGINE", CURLOPT_SSLENGINE, CURLOT_STRING, 0},
305   {"SSLENGINE_DEFAULT", CURLOPT_SSLENGINE_DEFAULT, CURLOT_LONG, 0},
306   {"SSLKEY", CURLOPT_SSLKEY, CURLOT_STRING, 0},
307   {"SSLKEYPASSWD", CURLOPT_KEYPASSWD, CURLOT_STRING, CURLOT_FLAG_ALIAS},
308   {"SSLKEYTYPE", CURLOPT_SSLKEYTYPE, CURLOT_STRING, 0},
309   {"SSLKEY_BLOB", CURLOPT_SSLKEY_BLOB, CURLOT_BLOB, 0},
310   {"SSLVERSION", CURLOPT_SSLVERSION, CURLOT_VALUES, 0},
311   {"SSL_CIPHER_LIST", CURLOPT_SSL_CIPHER_LIST, CURLOT_STRING, 0},
312   {"SSL_CTX_DATA", CURLOPT_SSL_CTX_DATA, CURLOT_CBPTR, 0},
313   {"SSL_CTX_FUNCTION", CURLOPT_SSL_CTX_FUNCTION, CURLOT_FUNCTION, 0},
314   {"SSL_EC_CURVES", CURLOPT_SSL_EC_CURVES, CURLOT_STRING, 0},
315   {"SSL_ENABLE_ALPN", CURLOPT_SSL_ENABLE_ALPN, CURLOT_LONG, 0},
316   {"SSL_ENABLE_NPN", CURLOPT_SSL_ENABLE_NPN, CURLOT_LONG, 0},
317   {"SSL_FALSESTART", CURLOPT_SSL_FALSESTART, CURLOT_LONG, 0},
318   {"SSL_OPTIONS", CURLOPT_SSL_OPTIONS, CURLOT_VALUES, 0},
319   {"SSL_SESSIONID_CACHE", CURLOPT_SSL_SESSIONID_CACHE, CURLOT_LONG, 0},
320   {"SSL_VERIFYHOST", CURLOPT_SSL_VERIFYHOST, CURLOT_LONG, 0},
321   {"SSL_VERIFYPEER", CURLOPT_SSL_VERIFYPEER, CURLOT_LONG, 0},
322   {"SSL_VERIFYSTATUS", CURLOPT_SSL_VERIFYSTATUS, CURLOT_LONG, 0},
323   {"STDERR", CURLOPT_STDERR, CURLOT_OBJECT, 0},
324   {"STREAM_DEPENDS", CURLOPT_STREAM_DEPENDS, CURLOT_OBJECT, 0},
325   {"STREAM_DEPENDS_E", CURLOPT_STREAM_DEPENDS_E, CURLOT_OBJECT, 0},
326   {"STREAM_WEIGHT", CURLOPT_STREAM_WEIGHT, CURLOT_LONG, 0},
327   {"SUPPRESS_CONNECT_HEADERS", CURLOPT_SUPPRESS_CONNECT_HEADERS,
328    CURLOT_LONG, 0},
329   {"TCP_FASTOPEN", CURLOPT_TCP_FASTOPEN, CURLOT_LONG, 0},
330   {"TCP_KEEPALIVE", CURLOPT_TCP_KEEPALIVE, CURLOT_LONG, 0},
331   {"TCP_KEEPCNT", CURLOPT_TCP_KEEPCNT, CURLOT_LONG, 0},
332   {"TCP_KEEPIDLE", CURLOPT_TCP_KEEPIDLE, CURLOT_LONG, 0},
333   {"TCP_KEEPINTVL", CURLOPT_TCP_KEEPINTVL, CURLOT_LONG, 0},
334   {"TCP_NODELAY", CURLOPT_TCP_NODELAY, CURLOT_LONG, 0},
335   {"TELNETOPTIONS", CURLOPT_TELNETOPTIONS, CURLOT_SLIST, 0},
336   {"TFTP_BLKSIZE", CURLOPT_TFTP_BLKSIZE, CURLOT_LONG, 0},
337   {"TFTP_NO_OPTIONS", CURLOPT_TFTP_NO_OPTIONS, CURLOT_LONG, 0},
338   {"TIMECONDITION", CURLOPT_TIMECONDITION, CURLOT_VALUES, 0},
339   {"TIMEOUT", CURLOPT_TIMEOUT, CURLOT_LONG, 0},
340   {"TIMEOUT_MS", CURLOPT_TIMEOUT_MS, CURLOT_LONG, 0},
341   {"TIMEVALUE", CURLOPT_TIMEVALUE, CURLOT_LONG, 0},
342   {"TIMEVALUE_LARGE", CURLOPT_TIMEVALUE_LARGE, CURLOT_OFF_T, 0},
343   {"TLS13_CIPHERS", CURLOPT_TLS13_CIPHERS, CURLOT_STRING, 0},
344   {"TLSAUTH_PASSWORD", CURLOPT_TLSAUTH_PASSWORD, CURLOT_STRING, 0},
345   {"TLSAUTH_TYPE", CURLOPT_TLSAUTH_TYPE, CURLOT_STRING, 0},
346   {"TLSAUTH_USERNAME", CURLOPT_TLSAUTH_USERNAME, CURLOT_STRING, 0},
347   {"TRAILERDATA", CURLOPT_TRAILERDATA, CURLOT_CBPTR, 0},
348   {"TRAILERFUNCTION", CURLOPT_TRAILERFUNCTION, CURLOT_FUNCTION, 0},
349   {"TRANSFERTEXT", CURLOPT_TRANSFERTEXT, CURLOT_LONG, 0},
350   {"TRANSFER_ENCODING", CURLOPT_TRANSFER_ENCODING, CURLOT_LONG, 0},
351   {"UNIX_SOCKET_PATH", CURLOPT_UNIX_SOCKET_PATH, CURLOT_STRING, 0},
352   {"UNRESTRICTED_AUTH", CURLOPT_UNRESTRICTED_AUTH, CURLOT_LONG, 0},
353   {"UPKEEP_INTERVAL_MS", CURLOPT_UPKEEP_INTERVAL_MS, CURLOT_LONG, 0},
354   {"UPLOAD", CURLOPT_UPLOAD, CURLOT_LONG, 0},
355   {"UPLOAD_BUFFERSIZE", CURLOPT_UPLOAD_BUFFERSIZE, CURLOT_LONG, 0},
356   {"URL", CURLOPT_URL, CURLOT_STRING, 0},
357   {"USERAGENT", CURLOPT_USERAGENT, CURLOT_STRING, 0},
358   {"USERNAME", CURLOPT_USERNAME, CURLOT_STRING, 0},
359   {"USERPWD", CURLOPT_USERPWD, CURLOT_STRING, 0},
360   {"USE_SSL", CURLOPT_USE_SSL, CURLOT_VALUES, 0},
361   {"VERBOSE", CURLOPT_VERBOSE, CURLOT_LONG, 0},
362   {"WILDCARDMATCH", CURLOPT_WILDCARDMATCH, CURLOT_LONG, 0},
363   {"WRITEDATA", CURLOPT_WRITEDATA, CURLOT_CBPTR, 0},
364   {"WRITEFUNCTION", CURLOPT_WRITEFUNCTION, CURLOT_FUNCTION, 0},
365   {"WRITEHEADER", CURLOPT_HEADERDATA, CURLOT_CBPTR, CURLOT_FLAG_ALIAS},
366   {"WS_OPTIONS", CURLOPT_WS_OPTIONS, CURLOT_LONG, 0},
367   {"XFERINFODATA", CURLOPT_XFERINFODATA, CURLOT_CBPTR, 0},
368   {"XFERINFOFUNCTION", CURLOPT_XFERINFOFUNCTION, CURLOT_FUNCTION, 0},
369   {"XOAUTH2_BEARER", CURLOPT_XOAUTH2_BEARER, CURLOT_STRING, 0},
370   {NULL, CURLOPT_LASTENTRY, CURLOT_LONG, 0} /* end of table */
371 };
372 
373 #ifdef DEBUGBUILD
374 /*
375  * Curl_easyopts_check() is a debug-only function that returns non-zero
376  * if this source file is not in sync with the options listed in curl/curl.h
377  */
Curl_easyopts_check(void)378 int Curl_easyopts_check(void)
379 {
380   return ((CURLOPT_LASTENTRY%10000) != (326 + 1));
381 }
382 #endif
383