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