mirror of
https://github.com/curl/curl.git
synced 2026-07-24 08:07:16 +03:00
options: API for meta-data about easy options
const struct curl_easyoption *curl_easy_option_by_name(const char *name); const struct curl_easyoption *curl_easy_option_by_id (CURLoption id); const struct curl_easyoption * curl_easy_option_next(const struct curl_easyoption *prev); The purpose is to provide detailed enough information to allow for example libcurl bindings to get option information at run-time about what easy options that exist and what arguments they expect. Assisted-by: Jeroen Ooms Closes #5365
This commit is contained in:
parent
9ee5701f12
commit
6ebe63fac2
22 changed files with 1019 additions and 58 deletions
|
|
@ -5,7 +5,7 @@
|
|||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
# Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
|
|
@ -21,7 +21,7 @@
|
|||
###########################################################################
|
||||
pkginclude_HEADERS = \
|
||||
curl.h curlver.h easy.h mprintf.h stdcheaders.h multi.h \
|
||||
typecheck-gcc.h system.h urlapi.h
|
||||
typecheck-gcc.h system.h urlapi.h options.h
|
||||
|
||||
pkgincludedir= $(includedir)/curl
|
||||
|
||||
|
|
|
|||
|
|
@ -1002,17 +1002,27 @@ typedef enum {
|
|||
|
||||
#define CURLOPT(na,t,nu) na = t + nu
|
||||
|
||||
/* handy aliases that make no run-time difference */
|
||||
#define CURLOPTTYPE_STRINGPOINT CURLOPTTYPE_OBJECTPOINT
|
||||
/* CURLOPT aliases that make no run-time difference */
|
||||
|
||||
/* 'char *' argument to a string with a trailing zero */
|
||||
#define CURLOPTTYPE_STRINGPOINT CURLOPTTYPE_OBJECTPOINT
|
||||
|
||||
/* 'struct curl_slist *' argument */
|
||||
#define CURLOPTTYPE_SLISTPOINT CURLOPTTYPE_OBJECTPOINT
|
||||
|
||||
/* 'void *' argument passed untouched to callback */
|
||||
#define CURLOPTTYPE_CBPOINT CURLOPTTYPE_OBJECTPOINT
|
||||
|
||||
/* 'long' argument with a set of values/bitmask */
|
||||
#define CURLOPTTYPE_VALUES CURLOPTTYPE_LONG
|
||||
|
||||
/*
|
||||
* All CURLOPT_* values.
|
||||
*/
|
||||
|
||||
typedef enum {
|
||||
/* This is the FILE * or void * the regular output should be written to. */
|
||||
CURLOPT(CURLOPT_WRITEDATA, CURLOPTTYPE_OBJECTPOINT, 1),
|
||||
CURLOPT(CURLOPT_WRITEDATA, CURLOPTTYPE_CBPOINT, 1),
|
||||
|
||||
/* The full URL to get/put */
|
||||
CURLOPT(CURLOPT_URL, CURLOPTTYPE_STRINGPOINT, 2),
|
||||
|
|
@ -1035,7 +1045,7 @@ typedef enum {
|
|||
/* not used */
|
||||
|
||||
/* Specified file stream to upload from (use as input): */
|
||||
CURLOPT(CURLOPT_READDATA, CURLOPTTYPE_OBJECTPOINT, 9),
|
||||
CURLOPT(CURLOPT_READDATA, CURLOPTTYPE_CBPOINT, 9),
|
||||
|
||||
/* Buffer to receive error messages in, must be at least CURL_ERROR_SIZE
|
||||
* bytes big. */
|
||||
|
|
@ -1120,7 +1130,7 @@ typedef enum {
|
|||
|
||||
/* send FILE * or void * to store headers to, if you use a callback it
|
||||
is simply passed to the callback unmodified */
|
||||
CURLOPT(CURLOPT_HEADERDATA, CURLOPTTYPE_OBJECTPOINT, 29),
|
||||
CURLOPT(CURLOPT_HEADERDATA, CURLOPTTYPE_CBPOINT, 29),
|
||||
|
||||
/* point to a file to read the initial cookies from, also enables
|
||||
"cookie awareness" */
|
||||
|
|
@ -1128,10 +1138,10 @@ typedef enum {
|
|||
|
||||
/* What version to specifically try to use.
|
||||
See CURL_SSLVERSION defines below. */
|
||||
CURLOPT(CURLOPT_SSLVERSION, CURLOPTTYPE_LONG, 32),
|
||||
CURLOPT(CURLOPT_SSLVERSION, CURLOPTTYPE_VALUES, 32),
|
||||
|
||||
/* What kind of HTTP time condition to use, see defines */
|
||||
CURLOPT(CURLOPT_TIMECONDITION, CURLOPTTYPE_LONG, 33),
|
||||
CURLOPT(CURLOPT_TIMECONDITION, CURLOPTTYPE_VALUES, 33),
|
||||
|
||||
/* Time to use with the above condition. Specified in number of seconds
|
||||
since 1 Jan 1970 */
|
||||
|
|
@ -1185,7 +1195,7 @@ typedef enum {
|
|||
|
||||
/* Specify whether to read the user+password from the .netrc or the URL.
|
||||
* This must be one of the CURL_NETRC_* enums below. */
|
||||
CURLOPT(CURLOPT_NETRC, CURLOPTTYPE_LONG, 51),
|
||||
CURLOPT(CURLOPT_NETRC, CURLOPTTYPE_VALUES, 51),
|
||||
|
||||
/* use Location: Luke! */
|
||||
CURLOPT(CURLOPT_FOLLOWLOCATION, CURLOPTTYPE_LONG, 52),
|
||||
|
|
@ -1206,8 +1216,8 @@ typedef enum {
|
|||
|
||||
/* Data passed to the CURLOPT_PROGRESSFUNCTION and CURLOPT_XFERINFOFUNCTION
|
||||
callbacks */
|
||||
CURLOPT(CURLOPT_PROGRESSDATA, CURLOPTTYPE_OBJECTPOINT, 57),
|
||||
#define CURLOPT_XFERINFODATA CURLOPT_PROGRESSDATA
|
||||
CURLOPT(CURLOPT_XFERINFODATA, CURLOPTTYPE_CBPOINT, 57),
|
||||
#define CURLOPT_PROGRESSDATA CURLOPT_XFERINFODATA
|
||||
|
||||
/* We want the referrer field set automatically when following locations */
|
||||
CURLOPT(CURLOPT_AUTOREFERER, CURLOPTTYPE_LONG, 58),
|
||||
|
|
@ -1302,7 +1312,7 @@ typedef enum {
|
|||
|
||||
/* Specify which HTTP version to use! This must be set to one of the
|
||||
CURL_HTTP_VERSION* enums set below. */
|
||||
CURLOPT(CURLOPT_HTTP_VERSION, CURLOPTTYPE_LONG, 84),
|
||||
CURLOPT(CURLOPT_HTTP_VERSION, CURLOPTTYPE_VALUES, 84),
|
||||
|
||||
/* Specifically switch on or off the FTP engine's use of the EPSV command. By
|
||||
default, that one will always be attempted before the more traditional
|
||||
|
|
@ -1340,7 +1350,7 @@ typedef enum {
|
|||
CURLOPT(CURLOPT_DEBUGFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 94),
|
||||
|
||||
/* set the data for the debug function */
|
||||
CURLOPT(CURLOPT_DEBUGDATA, CURLOPTTYPE_OBJECTPOINT, 95),
|
||||
CURLOPT(CURLOPT_DEBUGDATA, CURLOPTTYPE_CBPOINT, 95),
|
||||
|
||||
/* mark this as start of a cookie session */
|
||||
CURLOPT(CURLOPT_COOKIESESSION, CURLOPTTYPE_LONG, 96),
|
||||
|
|
@ -1363,7 +1373,7 @@ typedef enum {
|
|||
/* indicates type of proxy. accepted values are CURLPROXY_HTTP (default),
|
||||
CURLPROXY_HTTPS, CURLPROXY_SOCKS4, CURLPROXY_SOCKS4A and
|
||||
CURLPROXY_SOCKS5. */
|
||||
CURLOPT(CURLOPT_PROXYTYPE, CURLOPTTYPE_LONG, 101),
|
||||
CURLOPT(CURLOPT_PROXYTYPE, CURLOPTTYPE_VALUES, 101),
|
||||
|
||||
/* Set the Accept-Encoding string. Use this to tell a server you would like
|
||||
the response to be compressed. Before 7.21.6, this was known as
|
||||
|
|
@ -1389,7 +1399,7 @@ typedef enum {
|
|||
/* Set this to a bitmask value to enable the particular authentications
|
||||
methods you like. Use this in combination with CURLOPT_USERPWD.
|
||||
Note that setting multiple bits may cause extra network round-trips. */
|
||||
CURLOPT(CURLOPT_HTTPAUTH, CURLOPTTYPE_LONG, 107),
|
||||
CURLOPT(CURLOPT_HTTPAUTH, CURLOPTTYPE_VALUES, 107),
|
||||
|
||||
/* Set the ssl context callback function, currently only for OpenSSL or
|
||||
WolfSSL ssl_ctx, or mbedTLS mbedtls_ssl_config in the second argument.
|
||||
|
|
@ -1398,7 +1408,7 @@ typedef enum {
|
|||
|
||||
/* Set the userdata for the ssl context callback function's third
|
||||
argument */
|
||||
CURLOPT(CURLOPT_SSL_CTX_DATA, CURLOPTTYPE_OBJECTPOINT, 109),
|
||||
CURLOPT(CURLOPT_SSL_CTX_DATA, CURLOPTTYPE_CBPOINT, 109),
|
||||
|
||||
/* FTP Option that causes missing dirs to be created on the remote server.
|
||||
In 7.19.4 we introduced the convenience enums for this option using the
|
||||
|
|
@ -1409,7 +1419,7 @@ typedef enum {
|
|||
/* Set this to a bitmask value to enable the particular authentications
|
||||
methods you like. Use this in combination with CURLOPT_PROXYUSERPWD.
|
||||
Note that setting multiple bits may cause extra network round-trips. */
|
||||
CURLOPT(CURLOPT_PROXYAUTH, CURLOPTTYPE_LONG, 111),
|
||||
CURLOPT(CURLOPT_PROXYAUTH, CURLOPTTYPE_VALUES, 111),
|
||||
|
||||
/* FTP option that changes the timeout, in seconds, associated with
|
||||
getting a response. This is different from transfer timeout time and
|
||||
|
|
@ -1421,7 +1431,7 @@ typedef enum {
|
|||
/* Set this option to one of the CURL_IPRESOLVE_* defines (see below) to
|
||||
tell libcurl to resolve names to those IP versions only. This only has
|
||||
affect on systems with support for more than one, i.e IPv4 _and_ IPv6. */
|
||||
CURLOPT(CURLOPT_IPRESOLVE, CURLOPTTYPE_LONG, 113),
|
||||
CURLOPT(CURLOPT_IPRESOLVE, CURLOPTTYPE_VALUES, 113),
|
||||
|
||||
/* Set this option to limit the size of a file that will be downloaded from
|
||||
an HTTP or FTP server.
|
||||
|
|
@ -1456,7 +1466,7 @@ typedef enum {
|
|||
CURLUSESSL_CONTROL - SSL for the control connection or fail
|
||||
CURLUSESSL_ALL - SSL for all communication or fail
|
||||
*/
|
||||
CURLOPT(CURLOPT_USE_SSL, CURLOPTTYPE_LONG, 119),
|
||||
CURLOPT(CURLOPT_USE_SSL, CURLOPTTYPE_VALUES, 119),
|
||||
|
||||
/* The _LARGE version of the standard POSTFIELDSIZE option */
|
||||
CURLOPT(CURLOPT_POSTFIELDSIZE_LARGE, CURLOPTTYPE_OFF_T, 120),
|
||||
|
|
@ -1482,10 +1492,10 @@ typedef enum {
|
|||
CURLFTPAUTH_SSL - try "AUTH SSL" first, then TLS
|
||||
CURLFTPAUTH_TLS - try "AUTH TLS" first, then SSL
|
||||
*/
|
||||
CURLOPT(CURLOPT_FTPSSLAUTH, CURLOPTTYPE_LONG, 129),
|
||||
CURLOPT(CURLOPT_FTPSSLAUTH, CURLOPTTYPE_VALUES, 129),
|
||||
|
||||
CURLOPT(CURLOPT_IOCTLFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 130),
|
||||
CURLOPT(CURLOPT_IOCTLDATA, CURLOPTTYPE_OBJECTPOINT, 131),
|
||||
CURLOPT(CURLOPT_IOCTLDATA, CURLOPTTYPE_CBPOINT, 131),
|
||||
|
||||
/* 132 OBSOLETE. Gone in 7.16.0 */
|
||||
/* 133 OBSOLETE. Gone in 7.16.0 */
|
||||
|
|
@ -1508,7 +1518,7 @@ typedef enum {
|
|||
|
||||
/* Select "file method" to use when doing FTP, see the curl_ftpmethod
|
||||
above. */
|
||||
CURLOPT(CURLOPT_FTP_FILEMETHOD, CURLOPTTYPE_LONG, 138),
|
||||
CURLOPT(CURLOPT_FTP_FILEMETHOD, CURLOPTTYPE_VALUES, 138),
|
||||
|
||||
/* Local port number to bind the socket to */
|
||||
CURLOPT(CURLOPT_LOCALPORT, CURLOPTTYPE_LONG, 139),
|
||||
|
|
@ -1545,14 +1555,14 @@ typedef enum {
|
|||
|
||||
/* callback function for setting socket options */
|
||||
CURLOPT(CURLOPT_SOCKOPTFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 148),
|
||||
CURLOPT(CURLOPT_SOCKOPTDATA, CURLOPTTYPE_OBJECTPOINT, 149),
|
||||
CURLOPT(CURLOPT_SOCKOPTDATA, CURLOPTTYPE_CBPOINT, 149),
|
||||
|
||||
/* set to 0 to disable session ID re-use for this transfer, default is
|
||||
enabled (== 1) */
|
||||
CURLOPT(CURLOPT_SSL_SESSIONID_CACHE, CURLOPTTYPE_LONG, 150),
|
||||
|
||||
/* allowed SSH authentication methods */
|
||||
CURLOPT(CURLOPT_SSH_AUTH_TYPES, CURLOPTTYPE_LONG, 151),
|
||||
CURLOPT(CURLOPT_SSH_AUTH_TYPES, CURLOPTTYPE_VALUES, 151),
|
||||
|
||||
/* Used by scp/sftp to do public/private key authentication */
|
||||
CURLOPT(CURLOPT_SSH_PUBLIC_KEYFILE, CURLOPTTYPE_STRINGPOINT, 152),
|
||||
|
|
@ -1577,7 +1587,7 @@ typedef enum {
|
|||
|
||||
/* Set the behaviour of POST when redirecting. Values must be set to one
|
||||
of CURL_REDIR* defines below. This used to be called CURLOPT_POST301 */
|
||||
CURLOPT(CURLOPT_POSTREDIR, CURLOPTTYPE_LONG, 161),
|
||||
CURLOPT(CURLOPT_POSTREDIR, CURLOPTTYPE_VALUES, 161),
|
||||
|
||||
/* used by scp/sftp to verify the host's public key */
|
||||
CURLOPT(CURLOPT_SSH_HOST_PUBLIC_KEY_MD5, CURLOPTTYPE_STRINGPOINT, 162),
|
||||
|
|
@ -1587,7 +1597,7 @@ typedef enum {
|
|||
CURL_SOCKET_BAD. The callback should have type
|
||||
curl_opensocket_callback */
|
||||
CURLOPT(CURLOPT_OPENSOCKETFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 163),
|
||||
CURLOPT(CURLOPT_OPENSOCKETDATA, CURLOPTTYPE_OBJECTPOINT, 164),
|
||||
CURLOPT(CURLOPT_OPENSOCKETDATA, CURLOPTTYPE_CBPOINT, 164),
|
||||
|
||||
/* POST volatile input fields. */
|
||||
CURLOPT(CURLOPT_COPYPOSTFIELDS, CURLOPTTYPE_OBJECTPOINT, 165),
|
||||
|
|
@ -1597,7 +1607,7 @@ typedef enum {
|
|||
|
||||
/* Callback function for seeking in the input stream */
|
||||
CURLOPT(CURLOPT_SEEKFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 167),
|
||||
CURLOPT(CURLOPT_SEEKDATA, CURLOPTTYPE_OBJECTPOINT, 168),
|
||||
CURLOPT(CURLOPT_SEEKDATA, CURLOPTTYPE_CBPOINT, 168),
|
||||
|
||||
/* CRL file */
|
||||
CURLOPT(CURLOPT_CRLFILE, CURLOPTTYPE_STRINGPOINT, 169),
|
||||
|
|
@ -1658,7 +1668,7 @@ typedef enum {
|
|||
CURLOPT(CURLOPT_SSH_KEYFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 184),
|
||||
|
||||
/* set the SSH host key callback custom pointer */
|
||||
CURLOPT(CURLOPT_SSH_KEYDATA, CURLOPTTYPE_OBJECTPOINT, 185),
|
||||
CURLOPT(CURLOPT_SSH_KEYDATA, CURLOPTTYPE_CBPOINT, 185),
|
||||
|
||||
/* set the SMTP mail originator */
|
||||
CURLOPT(CURLOPT_MAIL_FROM, CURLOPTTYPE_STRINGPOINT, 186),
|
||||
|
|
@ -1670,7 +1680,7 @@ typedef enum {
|
|||
CURLOPT(CURLOPT_FTP_USE_PRET, CURLOPTTYPE_LONG, 188),
|
||||
|
||||
/* RTSP request method (OPTIONS, SETUP, PLAY, etc...) */
|
||||
CURLOPT(CURLOPT_RTSP_REQUEST, CURLOPTTYPE_LONG, 189),
|
||||
CURLOPT(CURLOPT_RTSP_REQUEST, CURLOPTTYPE_VALUES, 189),
|
||||
|
||||
/* The RTSP session identifier */
|
||||
CURLOPT(CURLOPT_RTSP_SESSION_ID, CURLOPTTYPE_STRINGPOINT, 190),
|
||||
|
|
@ -1688,7 +1698,7 @@ typedef enum {
|
|||
CURLOPT(CURLOPT_RTSP_SERVER_CSEQ, CURLOPTTYPE_LONG, 194),
|
||||
|
||||
/* The stream to pass to INTERLEAVEFUNCTION. */
|
||||
CURLOPT(CURLOPT_INTERLEAVEDATA, CURLOPTTYPE_OBJECTPOINT, 195),
|
||||
CURLOPT(CURLOPT_INTERLEAVEDATA, CURLOPTTYPE_CBPOINT, 195),
|
||||
|
||||
/* Let the application define a custom write method for RTP data */
|
||||
CURLOPT(CURLOPT_INTERLEAVEFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 196),
|
||||
|
|
@ -1708,10 +1718,10 @@ typedef enum {
|
|||
CURLOPT(CURLOPT_FNMATCH_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 200),
|
||||
|
||||
/* Let the application define custom chunk data pointer */
|
||||
CURLOPT(CURLOPT_CHUNK_DATA, CURLOPTTYPE_OBJECTPOINT, 201),
|
||||
CURLOPT(CURLOPT_CHUNK_DATA, CURLOPTTYPE_CBPOINT, 201),
|
||||
|
||||
/* FNMATCH_FUNCTION user pointer */
|
||||
CURLOPT(CURLOPT_FNMATCH_DATA, CURLOPTTYPE_OBJECTPOINT, 202),
|
||||
CURLOPT(CURLOPT_FNMATCH_DATA, CURLOPTTYPE_CBPOINT, 202),
|
||||
|
||||
/* send linked-list of name:port:address sets */
|
||||
CURLOPT(CURLOPT_RESOLVE, CURLOPTTYPE_SLISTPOINT, 203),
|
||||
|
|
@ -1740,10 +1750,10 @@ typedef enum {
|
|||
/* Callback function for closing socket (instead of close(2)). The callback
|
||||
should have type curl_closesocket_callback */
|
||||
CURLOPT(CURLOPT_CLOSESOCKETFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 208),
|
||||
CURLOPT(CURLOPT_CLOSESOCKETDATA, CURLOPTTYPE_OBJECTPOINT, 209),
|
||||
CURLOPT(CURLOPT_CLOSESOCKETDATA, CURLOPTTYPE_CBPOINT, 209),
|
||||
|
||||
/* allow GSSAPI credential delegation */
|
||||
CURLOPT(CURLOPT_GSSAPI_DELEGATION, CURLOPTTYPE_LONG, 210),
|
||||
CURLOPT(CURLOPT_GSSAPI_DELEGATION, CURLOPTTYPE_VALUES, 210),
|
||||
|
||||
/* Set the name servers to use for DNS resolution */
|
||||
CURLOPT(CURLOPT_DNS_SERVERS, CURLOPTTYPE_STRINGPOINT, 211),
|
||||
|
|
@ -1760,7 +1770,7 @@ typedef enum {
|
|||
CURLOPT(CURLOPT_TCP_KEEPINTVL, CURLOPTTYPE_LONG, 215),
|
||||
|
||||
/* Enable/disable specific SSL features with a bitmask, see CURLSSLOPT_* */
|
||||
CURLOPT(CURLOPT_SSL_OPTIONS, CURLOPTTYPE_LONG, 216),
|
||||
CURLOPT(CURLOPT_SSL_OPTIONS, CURLOPTTYPE_VALUES, 216),
|
||||
|
||||
/* Set the SMTP auth originator */
|
||||
CURLOPT(CURLOPT_MAIL_AUTH, CURLOPTTYPE_STRINGPOINT, 217),
|
||||
|
|
@ -1807,7 +1817,7 @@ typedef enum {
|
|||
CURLOPT(CURLOPT_PROXYHEADER, CURLOPTTYPE_SLISTPOINT, 228),
|
||||
|
||||
/* Pass in a bitmask of "header options" */
|
||||
CURLOPT(CURLOPT_HEADEROPT, CURLOPTTYPE_LONG, 229),
|
||||
CURLOPT(CURLOPT_HEADEROPT, CURLOPTTYPE_VALUES, 229),
|
||||
|
||||
/* The public key in DER form used to validate the peer public key
|
||||
this option is used only if SSL_VERIFYPEER is true */
|
||||
|
|
@ -1879,7 +1889,7 @@ typedef enum {
|
|||
|
||||
/* What version to specifically try to use for proxy.
|
||||
See CURL_SSLVERSION defines below. */
|
||||
CURLOPT(CURLOPT_PROXY_SSLVERSION, CURLOPTTYPE_LONG, 250),
|
||||
CURLOPT(CURLOPT_PROXY_SSLVERSION, CURLOPTTYPE_VALUES, 250),
|
||||
|
||||
/* Set a username for authenticated TLS for proxy */
|
||||
CURLOPT(CURLOPT_PROXY_TLSAUTH_USERNAME, CURLOPTTYPE_STRINGPOINT, 251),
|
||||
|
|
@ -1953,7 +1963,7 @@ typedef enum {
|
|||
CURLOPT(CURLOPT_RESOLVER_START_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 272),
|
||||
|
||||
/* User data to pass to the resolver start callback. */
|
||||
CURLOPT(CURLOPT_RESOLVER_START_DATA, CURLOPTTYPE_OBJECTPOINT, 273),
|
||||
CURLOPT(CURLOPT_RESOLVER_START_DATA, CURLOPTTYPE_CBPOINT, 273),
|
||||
|
||||
/* send HAProxy PROXY protocol header? */
|
||||
CURLOPT(CURLOPT_HAPROXYPROTOCOL, CURLOPTTYPE_LONG, 274),
|
||||
|
|
@ -1984,7 +1994,7 @@ typedef enum {
|
|||
CURLOPT(CURLOPT_TRAILERFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 283),
|
||||
|
||||
/* pointer to be passed to HTTP_TRAILER_FUNCTION */
|
||||
CURLOPT(CURLOPT_TRAILERDATA, CURLOPTTYPE_OBJECTPOINT, 284),
|
||||
CURLOPT(CURLOPT_TRAILERDATA, CURLOPTTYPE_CBPOINT, 284),
|
||||
|
||||
/* set this to 1L to allow HTTP/0.9 responses or 0L to disallow */
|
||||
CURLOPT(CURLOPT_HTTP09_ALLOWED, CURLOPTTYPE_LONG, 285),
|
||||
|
|
@ -2948,6 +2958,7 @@ CURL_EXTERN CURLcode curl_easy_pause(CURL *handle, int bitmask);
|
|||
#include "easy.h" /* nothing in curl is fun without the easy stuff */
|
||||
#include "multi.h"
|
||||
#include "urlapi.h"
|
||||
#include "options.h"
|
||||
|
||||
/* the typechecker doesn't work in C++ (yet) */
|
||||
#if defined(__GNUC__) && defined(__GNUC_MINOR__) && \
|
||||
|
|
|
|||
68
include/curl/options.h
Normal file
68
include/curl/options.h
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
#ifndef CURLINC_OPTIONS_H
|
||||
#define CURLINC_OPTIONS_H
|
||||
/***************************************************************************
|
||||
* _ _ ____ _
|
||||
* Project ___| | | | _ \| |
|
||||
* / __| | | | |_) | |
|
||||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) 2018 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
* are also available at https://curl.haxx.se/docs/copyright.html.
|
||||
*
|
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
* copies of the Software, and permit persons to whom the Software is
|
||||
* furnished to do so, under the terms of the COPYING file.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef enum {
|
||||
CURLOT_LONG, /* long (a range of values) */
|
||||
CURLOT_VALUES, /* (a defined set or bitmask) */
|
||||
CURLOT_OFF_T, /* curl_off_t (a range of values) */
|
||||
CURLOT_OBJECT, /* pointer (void *) */
|
||||
CURLOT_STRING, /* (char * to zero terminated buffer) */
|
||||
CURLOT_SLIST, /* (struct curl_slist *) */
|
||||
CURLOT_CBPTR, /* (void * passed as-is to a callback) */
|
||||
CURLOT_BLOB, /* blob (struct curl_blob *) */
|
||||
CURLOT_FUNCTION /* function pointer */
|
||||
} curl_easytype;
|
||||
|
||||
/* Flag bits */
|
||||
|
||||
/* "alias" means it is provided for old programs to remain functional,
|
||||
we prefer another name */
|
||||
#define CURLOT_FLAG_ALIAS (1<<0)
|
||||
|
||||
/* The CURLOPTTYPE_* id ranges can still be used to figure out what type/size
|
||||
to use for curl_easy_setopt() for the given id */
|
||||
struct curl_easyoption {
|
||||
const char *name;
|
||||
CURLoption id;
|
||||
curl_easytype type;
|
||||
unsigned int flags;
|
||||
};
|
||||
|
||||
CURL_EXTERN const struct curl_easyoption *
|
||||
curl_easy_option_by_name(const char *name);
|
||||
|
||||
CURL_EXTERN const struct curl_easyoption *
|
||||
curl_easy_option_by_id (CURLoption id);
|
||||
|
||||
CURL_EXTERN const struct curl_easyoption *
|
||||
curl_easy_option_next(const struct curl_easyoption *prev);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* end of extern "C" */
|
||||
#endif
|
||||
#endif /* CURLINC_OPTIONS_H */
|
||||
Loading…
Add table
Add a link
Reference in a new issue