File indexing completed on 2026-11-03 10:19:47
0001 #ifndef CURLINC_CURL_H
0002 #define CURLINC_CURL_H
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032 #ifdef CURL_NO_OLDIES
0033 #define CURL_STRICTER
0034 #endif
0035
0036
0037 #if (defined(__GNUC__) && \
0038 ((__GNUC__ > 12) || ((__GNUC__ == 12) && (__GNUC_MINOR__ >= 1))) || \
0039 (defined(__clang__) && __clang_major__ >= 3) || \
0040 defined(__IAR_SYSTEMS_ICC__)) && \
0041 !defined(__INTEL_COMPILER) && \
0042 !defined(CURL_DISABLE_DEPRECATION) && !defined(BUILDING_LIBCURL)
0043 #define CURL_DEPRECATED(version, message) \
0044 __attribute__((deprecated("since " # version ". " message)))
0045 #ifdef __IAR_SYSTEMS_ICC__
0046 #define CURL_IGNORE_DEPRECATION(statements) \
0047 _Pragma("diag_suppress=Pe1444") \
0048 statements \
0049 _Pragma("diag_default=Pe1444")
0050 #else
0051 #define CURL_IGNORE_DEPRECATION(statements) \
0052 _Pragma("GCC diagnostic push") \
0053 _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") \
0054 statements \
0055 _Pragma("GCC diagnostic pop")
0056 #endif
0057 #else
0058 #define CURL_DEPRECATED(version, message)
0059 #define CURL_IGNORE_DEPRECATION(statements) statements
0060 #endif
0061
0062 #include "curlver.h" /* libcurl version defines */
0063 #include "system.h" /* determine things runtime */
0064
0065 #include <stdio.h>
0066 #include <limits.h>
0067
0068 #if defined(__FreeBSD__) || defined(__MidnightBSD__)
0069
0070 #include <sys/param.h>
0071 #endif
0072
0073
0074 #include <sys/types.h>
0075 #include <time.h>
0076
0077 #if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__CYGWIN__)
0078 #if !(defined(_WINSOCKAPI_) || defined(_WINSOCK_H) || \
0079 defined(__LWIP_OPT_H__) || defined(LWIP_HDR_OPT_H))
0080
0081
0082 #include <winsock2.h>
0083 #include <ws2tcpip.h>
0084 #endif
0085 #endif
0086
0087
0088
0089
0090 #if defined(_AIX) || defined(__NOVELL_LIBC__) || defined(__NetBSD__) || \
0091 defined(__minix) || defined(__INTEGRITY) || \
0092 defined(ANDROID) || defined(__ANDROID__) || defined(__OpenBSD__) || \
0093 defined(__CYGWIN__) || defined(AMIGA) || defined(__NuttX__) || \
0094 (defined(__FreeBSD_version) && (__FreeBSD_version < 800000)) || \
0095 (defined(__MidnightBSD_version) && (__MidnightBSD_version < 100000)) || \
0096 defined(__sun__) || defined(__serenity__) || defined(__vxworks__) || \
0097 (defined(__linux__) && defined(_POSIX_C_SOURCE) && \
0098 _POSIX_C_SOURCE >= 200112L)
0099 #include <sys/select.h>
0100 #endif
0101
0102 #ifndef _WIN32
0103 #include <sys/socket.h>
0104 #include <sys/time.h>
0105 #endif
0106
0107 #ifdef __cplusplus
0108 extern "C" {
0109 #endif
0110
0111 typedef void CURL;
0112 typedef void CURLSH;
0113
0114
0115
0116
0117
0118 #ifdef __has_declspec_attribute
0119 #define CURL_HAS_DECLSPEC_ATTRIBUTE(x) __has_declspec_attribute(x)
0120 #else
0121 #define CURL_HAS_DECLSPEC_ATTRIBUTE(x) 0
0122 #endif
0123
0124 #ifdef CURL_STATICLIB
0125 # define CURL_EXTERN
0126 #elif defined(_WIN32) || \
0127 (CURL_HAS_DECLSPEC_ATTRIBUTE(dllexport) && \
0128 CURL_HAS_DECLSPEC_ATTRIBUTE(dllimport))
0129 # ifdef BUILDING_LIBCURL
0130 # define CURL_EXTERN __declspec(dllexport)
0131 # else
0132 # define CURL_EXTERN __declspec(dllimport)
0133 # endif
0134 #elif defined(BUILDING_LIBCURL) && defined(CURL_HIDDEN_SYMBOLS)
0135 # define CURL_EXTERN CURL_EXTERN_SYMBOL
0136 #else
0137 # define CURL_EXTERN
0138 #endif
0139
0140 #ifndef curl_socket_typedef
0141
0142 #if defined(_WIN32) && !defined(__LWIP_OPT_H__) && !defined(LWIP_HDR_OPT_H)
0143 typedef SOCKET curl_socket_t;
0144 #define CURL_SOCKET_BAD INVALID_SOCKET
0145 #else
0146 typedef int curl_socket_t;
0147 #define CURL_SOCKET_BAD (-1)
0148 #endif
0149 #define curl_socket_typedef
0150 #endif
0151
0152
0153 typedef enum {
0154 CURLSSLBACKEND_NONE = 0,
0155 CURLSSLBACKEND_OPENSSL = 1,
0156 CURLSSLBACKEND_GNUTLS = 2,
0157 CURLSSLBACKEND_NSS CURL_DEPRECATED(8.3.0, "") = 3,
0158 CURLSSLBACKEND_OBSOLETE4 = 4,
0159 CURLSSLBACKEND_GSKIT CURL_DEPRECATED(8.3.0, "") = 5,
0160 CURLSSLBACKEND_POLARSSL CURL_DEPRECATED(7.69.0, "") = 6,
0161 CURLSSLBACKEND_WOLFSSL = 7,
0162 CURLSSLBACKEND_SCHANNEL = 8,
0163 CURLSSLBACKEND_SECURETRANSPORT CURL_DEPRECATED(8.15.0, "") = 9,
0164 CURLSSLBACKEND_AXTLS CURL_DEPRECATED(7.61.0, "") = 10,
0165 CURLSSLBACKEND_MBEDTLS = 11,
0166 CURLSSLBACKEND_MESALINK CURL_DEPRECATED(7.82.0, "") = 12,
0167 CURLSSLBACKEND_BEARSSL CURL_DEPRECATED(8.15.0, "") = 13,
0168 CURLSSLBACKEND_RUSTLS = 14
0169 } curl_sslbackend;
0170
0171
0172 #define CURLSSLBACKEND_AWSLC CURLSSLBACKEND_OPENSSL
0173 #define CURLSSLBACKEND_BORINGSSL CURLSSLBACKEND_OPENSSL
0174 #define CURLSSLBACKEND_LIBRESSL CURLSSLBACKEND_OPENSSL
0175
0176
0177 #define CURLSSLBACKEND_CYASSL CURLSSLBACKEND_WOLFSSL
0178 #define CURLSSLBACKEND_DARWINSSL CURLSSLBACKEND_SECURETRANSPORT
0179
0180
0181 #define CURLFOLLOW_ALL 1L
0182
0183
0184
0185 #define CURLFOLLOW_OBEYCODE 2L
0186
0187
0188 #define CURLFOLLOW_FIRSTONLY 3L
0189
0190 struct curl_httppost {
0191 struct curl_httppost *next;
0192 char *name;
0193 long namelength;
0194 char *contents;
0195 long contentslength;
0196
0197 char *buffer;
0198 long bufferlength;
0199 char *contenttype;
0200 struct curl_slist *contentheader;
0201 struct curl_httppost *more;
0202
0203
0204 long flags;
0205
0206
0207 #define CURL_HTTPPOST_FILENAME (1 << 0)
0208
0209 #define CURL_HTTPPOST_READFILE (1 << 1)
0210
0211 #define CURL_HTTPPOST_PTRNAME (1 << 2)
0212
0213 #define CURL_HTTPPOST_PTRCONTENTS (1 << 3)
0214
0215 #define CURL_HTTPPOST_BUFFER (1 << 4)
0216
0217 #define CURL_HTTPPOST_PTRBUFFER (1 << 5)
0218
0219
0220 #define CURL_HTTPPOST_CALLBACK (1 << 6)
0221
0222 #define CURL_HTTPPOST_LARGE (1 << 7)
0223
0224 char *showfilename;
0225
0226
0227 void *userp;
0228
0229 curl_off_t contentlen;
0230
0231
0232 };
0233
0234
0235
0236 #define CURL_PROGRESSFUNC_CONTINUE 0x10000001
0237
0238
0239
0240 typedef int (*curl_progress_callback)(void *clientp,
0241 double dltotal,
0242 double dlnow,
0243 double ultotal,
0244 double ulnow);
0245
0246
0247
0248
0249 typedef int (*curl_xferinfo_callback)(void *clientp,
0250 curl_off_t dltotal,
0251 curl_off_t dlnow,
0252 curl_off_t ultotal,
0253 curl_off_t ulnow);
0254
0255 #ifndef CURL_MAX_READ_SIZE
0256
0257 #define CURL_MAX_READ_SIZE (10 * 1024 * 1024)
0258 #endif
0259
0260 #ifndef CURL_MAX_WRITE_SIZE
0261
0262
0263
0264
0265
0266
0267 #define CURL_MAX_WRITE_SIZE 16384
0268 #endif
0269
0270 #ifndef CURL_MAX_HTTP_HEADER
0271
0272
0273
0274 #define CURL_MAX_HTTP_HEADER (100 * 1024)
0275 #endif
0276
0277
0278
0279 #define CURL_WRITEFUNC_PAUSE 0x10000001
0280
0281
0282
0283 #define CURL_WRITEFUNC_ERROR 0xFFFFFFFF
0284
0285 typedef size_t (*curl_write_callback)(char *buffer,
0286 size_t size,
0287 size_t nitems,
0288 void *outstream);
0289
0290
0291 typedef int (*curl_resolver_start_callback)(void *resolver_state,
0292 void *reserved, void *userdata);
0293
0294
0295 typedef enum {
0296 CURLFILETYPE_FILE = 0,
0297 CURLFILETYPE_DIRECTORY,
0298 CURLFILETYPE_SYMLINK,
0299 CURLFILETYPE_DEVICE_BLOCK,
0300 CURLFILETYPE_DEVICE_CHAR,
0301 CURLFILETYPE_NAMEDPIPE,
0302 CURLFILETYPE_SOCKET,
0303 CURLFILETYPE_DOOR,
0304
0305 CURLFILETYPE_UNKNOWN
0306 } curlfiletype;
0307
0308 #define CURLFINFOFLAG_KNOWN_FILENAME (1 << 0)
0309 #define CURLFINFOFLAG_KNOWN_FILETYPE (1 << 1)
0310 #define CURLFINFOFLAG_KNOWN_TIME (1 << 2)
0311 #define CURLFINFOFLAG_KNOWN_PERM (1 << 3)
0312 #define CURLFINFOFLAG_KNOWN_UID (1 << 4)
0313 #define CURLFINFOFLAG_KNOWN_GID (1 << 5)
0314 #define CURLFINFOFLAG_KNOWN_SIZE (1 << 6)
0315 #define CURLFINFOFLAG_KNOWN_HLINKCOUNT (1 << 7)
0316
0317
0318 struct curl_fileinfo {
0319 char *filename;
0320 curlfiletype filetype;
0321 time_t time;
0322 unsigned int perm;
0323 int uid;
0324 int gid;
0325 curl_off_t size;
0326 long int hardlinks;
0327
0328 struct {
0329
0330 char *time;
0331 char *perm;
0332 char *user;
0333 char *group;
0334 char *target;
0335 } strings;
0336
0337 unsigned int flags;
0338
0339
0340
0341 char *b_data;
0342 size_t b_size;
0343 size_t b_used;
0344 };
0345
0346
0347 #define CURL_CHUNK_BGN_FUNC_OK 0
0348 #define CURL_CHUNK_BGN_FUNC_FAIL 1
0349 #define CURL_CHUNK_BGN_FUNC_SKIP 2
0350
0351
0352
0353
0354 typedef long (*curl_chunk_bgn_callback)(const void *transfer_info,
0355 void *ptr,
0356 int remains);
0357
0358
0359 #define CURL_CHUNK_END_FUNC_OK 0
0360 #define CURL_CHUNK_END_FUNC_FAIL 1
0361
0362
0363
0364
0365
0366
0367
0368 typedef long (*curl_chunk_end_callback)(void *ptr);
0369
0370
0371 #define CURL_FNMATCHFUNC_MATCH 0
0372 #define CURL_FNMATCHFUNC_NOMATCH 1
0373 #define CURL_FNMATCHFUNC_FAIL 2
0374
0375
0376
0377 typedef int (*curl_fnmatch_callback)(void *ptr,
0378 const char *pattern,
0379 const char *string);
0380
0381
0382 #define CURL_SEEKFUNC_OK 0
0383 #define CURL_SEEKFUNC_FAIL 1
0384 #define CURL_SEEKFUNC_CANTSEEK 2
0385
0386 typedef int (*curl_seek_callback)(void *instream,
0387 curl_off_t offset,
0388 int origin);
0389
0390
0391
0392 #define CURL_READFUNC_ABORT 0x10000000
0393
0394
0395 #define CURL_READFUNC_PAUSE 0x10000001
0396
0397
0398
0399 #define CURL_TRAILERFUNC_OK 0
0400
0401
0402 #define CURL_TRAILERFUNC_ABORT 1
0403
0404 typedef size_t (*curl_read_callback)(char *buffer,
0405 size_t size,
0406 size_t nitems,
0407 void *instream);
0408
0409 typedef int (*curl_trailer_callback)(struct curl_slist **list,
0410 void *userdata);
0411
0412 typedef enum {
0413 CURLSOCKTYPE_IPCXN,
0414 CURLSOCKTYPE_ACCEPT,
0415 CURLSOCKTYPE_LAST
0416 } curlsocktype;
0417
0418
0419
0420 #define CURL_SOCKOPT_OK 0
0421 #define CURL_SOCKOPT_ERROR 1
0422
0423 #define CURL_SOCKOPT_ALREADY_CONNECTED 2
0424
0425 typedef int (*curl_sockopt_callback)(void *clientp,
0426 curl_socket_t curlfd,
0427 curlsocktype purpose);
0428
0429 struct curl_sockaddr {
0430 int family;
0431 int socktype;
0432 int protocol;
0433 unsigned int addrlen;
0434
0435
0436 struct sockaddr addr;
0437 };
0438
0439 typedef curl_socket_t
0440 (*curl_opensocket_callback)(void *clientp,
0441 curlsocktype purpose,
0442 struct curl_sockaddr *address);
0443
0444 typedef int
0445 (*curl_closesocket_callback)(void *clientp, curl_socket_t item);
0446
0447 typedef enum {
0448 CURLIOE_OK,
0449 CURLIOE_UNKNOWNCMD,
0450 CURLIOE_FAILRESTART,
0451 CURLIOE_LAST
0452 } curlioerr;
0453
0454 typedef enum {
0455 CURLIOCMD_NOP,
0456 CURLIOCMD_RESTARTREAD,
0457 CURLIOCMD_LAST
0458 } curliocmd;
0459
0460 typedef curlioerr (*curl_ioctl_callback)(CURL *handle,
0461 int cmd,
0462 void *clientp);
0463
0464 #ifndef CURL_DID_MEMORY_FUNC_TYPEDEFS
0465
0466
0467
0468
0469
0470
0471 typedef void *(*curl_malloc_callback)(size_t size);
0472 typedef void (*curl_free_callback)(void *ptr);
0473 typedef void *(*curl_realloc_callback)(void *ptr, size_t size);
0474 typedef char *(*curl_strdup_callback)(const char *str);
0475 typedef void *(*curl_calloc_callback)(size_t nmemb, size_t size);
0476
0477 #define CURL_DID_MEMORY_FUNC_TYPEDEFS
0478 #endif
0479
0480
0481 typedef enum {
0482 CURLINFO_TEXT = 0,
0483 CURLINFO_HEADER_IN,
0484 CURLINFO_HEADER_OUT,
0485 CURLINFO_DATA_IN,
0486 CURLINFO_DATA_OUT,
0487 CURLINFO_SSL_DATA_IN,
0488 CURLINFO_SSL_DATA_OUT,
0489 CURLINFO_END
0490 } curl_infotype;
0491
0492 typedef int (*curl_debug_callback)
0493 (CURL *handle,
0494 curl_infotype type,
0495 char *data,
0496 size_t size,
0497 void *userptr);
0498
0499
0500 typedef int (*curl_prereq_callback)(void *clientp,
0501 char *conn_primary_ip,
0502 char *conn_local_ip,
0503 int conn_primary_port,
0504 int conn_local_port);
0505
0506
0507
0508 #define CURL_PREREQFUNC_OK 0
0509
0510
0511 #define CURL_PREREQFUNC_ABORT 1
0512
0513
0514
0515
0516
0517
0518
0519
0520 typedef enum {
0521 CURLE_OK = 0,
0522 CURLE_UNSUPPORTED_PROTOCOL,
0523 CURLE_FAILED_INIT,
0524 CURLE_URL_MALFORMAT,
0525 CURLE_NOT_BUILT_IN,
0526
0527 CURLE_COULDNT_RESOLVE_PROXY,
0528 CURLE_COULDNT_RESOLVE_HOST,
0529 CURLE_COULDNT_CONNECT,
0530 CURLE_WEIRD_SERVER_REPLY,
0531 CURLE_REMOTE_ACCESS_DENIED,
0532
0533
0534 CURLE_FTP_ACCEPT_FAILED,
0535
0536 CURLE_FTP_WEIRD_PASS_REPLY,
0537 CURLE_FTP_ACCEPT_TIMEOUT,
0538
0539
0540 CURLE_FTP_WEIRD_PASV_REPLY,
0541 CURLE_FTP_WEIRD_227_FORMAT,
0542 CURLE_FTP_CANT_GET_HOST,
0543 CURLE_HTTP2,
0544
0545
0546 CURLE_FTP_COULDNT_SET_TYPE,
0547 CURLE_PARTIAL_FILE,
0548 CURLE_FTP_COULDNT_RETR_FILE,
0549 CURLE_OBSOLETE20,
0550 CURLE_QUOTE_ERROR,
0551 CURLE_HTTP_RETURNED_ERROR,
0552 CURLE_WRITE_ERROR,
0553 CURLE_OBSOLETE24,
0554 CURLE_UPLOAD_FAILED,
0555 CURLE_READ_ERROR,
0556 CURLE_OUT_OF_MEMORY,
0557 CURLE_OPERATION_TIMEDOUT,
0558 CURLE_OBSOLETE29,
0559 CURLE_FTP_PORT_FAILED,
0560 CURLE_FTP_COULDNT_USE_REST,
0561 CURLE_OBSOLETE32,
0562 CURLE_RANGE_ERROR,
0563 CURLE_OBSOLETE34,
0564 CURLE_SSL_CONNECT_ERROR,
0565 CURLE_BAD_DOWNLOAD_RESUME,
0566 CURLE_FILE_COULDNT_READ_FILE,
0567 CURLE_LDAP_CANNOT_BIND,
0568 CURLE_LDAP_SEARCH_FAILED,
0569 CURLE_OBSOLETE40,
0570 CURLE_OBSOLETE41,
0571 CURLE_ABORTED_BY_CALLBACK,
0572 CURLE_BAD_FUNCTION_ARGUMENT,
0573 CURLE_OBSOLETE44,
0574 CURLE_INTERFACE_FAILED,
0575 CURLE_OBSOLETE46,
0576 CURLE_TOO_MANY_REDIRECTS,
0577 CURLE_UNKNOWN_OPTION,
0578 CURLE_SETOPT_OPTION_SYNTAX,
0579 CURLE_OBSOLETE50,
0580 CURLE_OBSOLETE51,
0581 CURLE_GOT_NOTHING,
0582 CURLE_SSL_ENGINE_NOTFOUND,
0583 CURLE_SSL_ENGINE_SETFAILED,
0584
0585 CURLE_SEND_ERROR,
0586 CURLE_RECV_ERROR,
0587 CURLE_OBSOLETE57,
0588 CURLE_SSL_CERTPROBLEM,
0589 CURLE_SSL_CIPHER,
0590 CURLE_PEER_FAILED_VERIFICATION,
0591
0592 CURLE_BAD_CONTENT_ENCODING,
0593 CURLE_OBSOLETE62,
0594 CURLE_FILESIZE_EXCEEDED,
0595 CURLE_USE_SSL_FAILED,
0596 CURLE_SEND_FAIL_REWIND,
0597
0598 CURLE_SSL_ENGINE_INITFAILED,
0599 CURLE_LOGIN_DENIED,
0600
0601 CURLE_TFTP_NOTFOUND,
0602 CURLE_TFTP_PERM,
0603 CURLE_REMOTE_DISK_FULL,
0604 CURLE_TFTP_ILLEGAL,
0605 CURLE_TFTP_UNKNOWNID,
0606 CURLE_REMOTE_FILE_EXISTS,
0607 CURLE_TFTP_NOSUCHUSER,
0608 CURLE_OBSOLETE75,
0609 CURLE_OBSOLETE76,
0610 CURLE_SSL_CACERT_BADFILE,
0611
0612 CURLE_REMOTE_FILE_NOT_FOUND,
0613 CURLE_SSH,
0614
0615
0616
0617 CURLE_SSL_SHUTDOWN_FAILED,
0618
0619 CURLE_AGAIN,
0620
0621
0622 CURLE_SSL_CRL_BADFILE,
0623
0624 CURLE_SSL_ISSUER_ERROR,
0625
0626 CURLE_FTP_PRET_FAILED,
0627 CURLE_RTSP_CSEQ_ERROR,
0628 CURLE_RTSP_SESSION_ERROR,
0629 CURLE_FTP_BAD_FILE_LIST,
0630 CURLE_CHUNK_FAILED,
0631 CURLE_NO_CONNECTION_AVAILABLE,
0632
0633 CURLE_SSL_PINNEDPUBKEYNOTMATCH,
0634
0635 CURLE_SSL_INVALIDCERTSTATUS,
0636 CURLE_HTTP2_STREAM,
0637
0638 CURLE_RECURSIVE_API_CALL,
0639
0640 CURLE_AUTH_ERROR,
0641
0642 CURLE_HTTP3,
0643 CURLE_QUIC_CONNECT_ERROR,
0644 CURLE_PROXY,
0645 CURLE_SSL_CLIENTCERT,
0646 CURLE_UNRECOVERABLE_POLL,
0647 CURLE_TOO_LARGE,
0648 CURLE_ECH_REQUIRED,
0649 CURL_LAST
0650 } CURLcode;
0651
0652 #ifndef CURL_NO_OLDIES
0653
0654
0655
0656 #define CURLE_FUNCTION_NOT_FOUND CURLE_OBSOLETE41
0657
0658
0659 #define CURLE_HTTP_POST_ERROR CURLE_OBSOLETE34
0660
0661
0662 #define CURLE_OBSOLETE16 CURLE_HTTP2
0663
0664
0665 #define CURLE_OBSOLETE10 CURLE_FTP_ACCEPT_FAILED
0666 #define CURLE_OBSOLETE12 CURLE_FTP_ACCEPT_TIMEOUT
0667
0668
0669 #define CURLOPT_ENCODING CURLOPT_ACCEPT_ENCODING
0670 #define CURLE_FTP_WEIRD_SERVER_REPLY CURLE_WEIRD_SERVER_REPLY
0671
0672
0673 #define CURLE_SSL_CACERT CURLE_PEER_FAILED_VERIFICATION
0674
0675
0676 #define CURLE_UNKNOWN_TELNET_OPTION CURLE_UNKNOWN_OPTION
0677
0678
0679 #define CURLE_TELNET_OPTION_SYNTAX CURLE_SETOPT_OPTION_SYNTAX
0680
0681
0682
0683 #define CURLE_SSL_PEER_CERTIFICATE CURLE_PEER_FAILED_VERIFICATION
0684
0685
0686
0687 #define CURLE_OBSOLETE CURLE_OBSOLETE50
0688 #define CURLE_BAD_PASSWORD_ENTERED CURLE_OBSOLETE46
0689 #define CURLE_BAD_CALLING_ORDER CURLE_OBSOLETE44
0690 #define CURLE_FTP_USER_PASSWORD_INCORRECT CURLE_OBSOLETE10
0691 #define CURLE_FTP_CANT_RECONNECT CURLE_OBSOLETE16
0692 #define CURLE_FTP_COULDNT_GET_SIZE CURLE_OBSOLETE32
0693 #define CURLE_FTP_COULDNT_SET_ASCII CURLE_OBSOLETE29
0694 #define CURLE_FTP_WEIRD_USER_REPLY CURLE_OBSOLETE12
0695 #define CURLE_FTP_WRITE_ERROR CURLE_OBSOLETE20
0696 #define CURLE_LIBRARY_NOT_FOUND CURLE_OBSOLETE40
0697 #define CURLE_MALFORMAT_USER CURLE_OBSOLETE24
0698 #define CURLE_SHARE_IN_USE CURLE_OBSOLETE57
0699 #define CURLE_URL_MALFORMAT_USER CURLE_NOT_BUILT_IN
0700
0701 #define CURLE_FTP_ACCESS_DENIED CURLE_REMOTE_ACCESS_DENIED
0702 #define CURLE_FTP_COULDNT_SET_BINARY CURLE_FTP_COULDNT_SET_TYPE
0703 #define CURLE_FTP_QUOTE_ERROR CURLE_QUOTE_ERROR
0704 #define CURLE_TFTP_DISKFULL CURLE_REMOTE_DISK_FULL
0705 #define CURLE_TFTP_EXISTS CURLE_REMOTE_FILE_EXISTS
0706 #define CURLE_HTTP_RANGE_ERROR CURLE_RANGE_ERROR
0707 #define CURLE_FTP_SSL_FAILED CURLE_USE_SSL_FAILED
0708
0709
0710
0711 #define CURLE_OPERATION_TIMEOUTED CURLE_OPERATION_TIMEDOUT
0712 #define CURLE_HTTP_NOT_FOUND CURLE_HTTP_RETURNED_ERROR
0713 #define CURLE_HTTP_PORT_FAILED CURLE_INTERFACE_FAILED
0714 #define CURLE_FTP_COULDNT_STOR_FILE CURLE_UPLOAD_FAILED
0715 #define CURLE_FTP_PARTIAL_FILE CURLE_PARTIAL_FILE
0716 #define CURLE_FTP_BAD_DOWNLOAD_RESUME CURLE_BAD_DOWNLOAD_RESUME
0717 #define CURLE_LDAP_INVALID_URL CURLE_OBSOLETE62
0718 #define CURLE_CONV_REQD CURLE_OBSOLETE76
0719 #define CURLE_CONV_FAILED CURLE_OBSOLETE75
0720
0721
0722
0723
0724 #define CURLE_ALREADY_COMPLETE 99999
0725
0726
0727 #define CURLOPT_FILE CURLOPT_WRITEDATA
0728 #define CURLOPT_INFILE CURLOPT_READDATA
0729 #define CURLOPT_WRITEHEADER CURLOPT_HEADERDATA
0730
0731
0732
0733 #define CURLOPT_WRITEINFO CURLOPT_OBSOLETE40
0734 #define CURLOPT_CLOSEPOLICY CURLOPT_OBSOLETE72
0735 #define CURLOPT_OBSOLETE72 9999
0736 #define CURLOPT_OBSOLETE40 9999
0737
0738 #endif
0739
0740
0741
0742
0743
0744 typedef enum {
0745 CURLPX_OK,
0746 CURLPX_BAD_ADDRESS_TYPE,
0747 CURLPX_BAD_VERSION,
0748 CURLPX_CLOSED,
0749 CURLPX_GSSAPI,
0750 CURLPX_GSSAPI_PERMSG,
0751 CURLPX_GSSAPI_PROTECTION,
0752 CURLPX_IDENTD,
0753 CURLPX_IDENTD_DIFFER,
0754 CURLPX_LONG_HOSTNAME,
0755 CURLPX_LONG_PASSWD,
0756 CURLPX_LONG_USER,
0757 CURLPX_NO_AUTH,
0758 CURLPX_RECV_ADDRESS,
0759 CURLPX_RECV_AUTH,
0760 CURLPX_RECV_CONNECT,
0761 CURLPX_RECV_REQACK,
0762 CURLPX_REPLY_ADDRESS_TYPE_NOT_SUPPORTED,
0763 CURLPX_REPLY_COMMAND_NOT_SUPPORTED,
0764 CURLPX_REPLY_CONNECTION_REFUSED,
0765 CURLPX_REPLY_GENERAL_SERVER_FAILURE,
0766 CURLPX_REPLY_HOST_UNREACHABLE,
0767 CURLPX_REPLY_NETWORK_UNREACHABLE,
0768 CURLPX_REPLY_NOT_ALLOWED,
0769 CURLPX_REPLY_TTL_EXPIRED,
0770 CURLPX_REPLY_UNASSIGNED,
0771 CURLPX_REQUEST_FAILED,
0772 CURLPX_RESOLVE_HOST,
0773 CURLPX_SEND_AUTH,
0774 CURLPX_SEND_CONNECT,
0775 CURLPX_SEND_REQUEST,
0776 CURLPX_UNKNOWN_FAIL,
0777 CURLPX_UNKNOWN_MODE,
0778 CURLPX_USER_REJECTED,
0779 CURLPX_LAST
0780 } CURLproxycode;
0781
0782
0783 typedef CURLcode (*curl_conv_callback)(char *buffer, size_t length);
0784
0785 typedef CURLcode (*curl_ssl_ctx_callback)(CURL *curl,
0786 void *ssl_ctx,
0787
0788
0789
0790 void *userptr);
0791
0792 #define CURLPROXY_HTTP 0L
0793
0794 #define CURLPROXY_HTTP_1_0 1L
0795
0796 #define CURLPROXY_HTTPS 2L
0797
0798 #define CURLPROXY_HTTPS2 3L
0799
0800 #define CURLPROXY_SOCKS4 4L
0801
0802 #define CURLPROXY_SOCKS5 5L
0803 #define CURLPROXY_SOCKS4A 6L
0804 #define CURLPROXY_SOCKS5_HOSTNAME 7L
0805
0806
0807 #define CURLPROXY_HTTPS3 8L
0808
0809
0810 typedef enum {
0811 CURLPROXY_LAST = 9
0812 } curl_proxytype;
0813
0814
0815
0816
0817
0818
0819
0820
0821
0822
0823
0824
0825
0826
0827
0828
0829
0830
0831
0832 #define CURLAUTH_NONE ((unsigned long)0)
0833 #define CURLAUTH_BASIC (((unsigned long)1) << 0)
0834 #define CURLAUTH_DIGEST (((unsigned long)1) << 1)
0835 #define CURLAUTH_NEGOTIATE (((unsigned long)1) << 2)
0836
0837 #define CURLAUTH_GSSNEGOTIATE CURLAUTH_NEGOTIATE
0838
0839 #define CURLAUTH_GSSAPI CURLAUTH_NEGOTIATE
0840 #define CURLAUTH_NTLM (((unsigned long)1) << 3)
0841 #define CURLAUTH_DIGEST_IE (((unsigned long)1) << 4)
0842 #ifndef CURL_NO_OLDIES
0843
0844 #define CURLAUTH_NTLM_WB (((unsigned long)1) << 5)
0845 #endif
0846 #define CURLAUTH_BEARER (((unsigned long)1) << 6)
0847 #define CURLAUTH_AWS_SIGV4 (((unsigned long)1) << 7)
0848 #define CURLAUTH_HTTPSIG (((unsigned long)1) << 8)
0849 #define CURLAUTH_ONLY (((unsigned long)1) << 31)
0850 #define CURLAUTH_ANY ((~(CURLAUTH_DIGEST_IE | \
0851 CURLAUTH_HTTPSIG)) & \
0852 ((unsigned long)0xffffffff))
0853 #define CURLAUTH_ANYSAFE ((~(CURLAUTH_BASIC | CURLAUTH_DIGEST_IE | \
0854 CURLAUTH_HTTPSIG)) & \
0855 ((unsigned long)0xffffffff))
0856
0857
0858 #define CURLHTTPSIG_NONE 0L
0859 #define CURLHTTPSIG_ED25519 1L
0860 #define CURLHTTPSIG_HMAC_SHA256 2L
0861
0862
0863 #define CURLSSH_AUTH_ANY ((unsigned long)0xffffffff)
0864 #define CURLSSH_AUTH_NONE 0L
0865 #define CURLSSH_AUTH_PUBLICKEY (1L << 0)
0866 #define CURLSSH_AUTH_PASSWORD (1L << 1)
0867 #define CURLSSH_AUTH_HOST (1L << 2)
0868 #define CURLSSH_AUTH_KEYBOARD (1L << 3)
0869 #define CURLSSH_AUTH_AGENT (1L << 4)
0870 #define CURLSSH_AUTH_GSSAPI (1L << 5)
0871 #define CURLSSH_AUTH_DEFAULT CURLSSH_AUTH_ANY
0872
0873 #define CURLGSSAPI_DELEGATION_NONE 0L
0874 #define CURLGSSAPI_DELEGATION_POLICY_FLAG (1L<<0)
0875 #define CURLGSSAPI_DELEGATION_FLAG (1L<<1)
0876
0877 #define CURL_ERROR_SIZE 256
0878
0879 enum curl_khtype {
0880 CURLKHTYPE_UNKNOWN,
0881 CURLKHTYPE_RSA1,
0882 CURLKHTYPE_RSA,
0883 CURLKHTYPE_DSS,
0884 CURLKHTYPE_ECDSA,
0885 CURLKHTYPE_ED25519
0886 };
0887
0888 struct curl_khkey {
0889 const char *key;
0890
0891 size_t len;
0892 enum curl_khtype keytype;
0893 };
0894
0895
0896
0897 enum curl_khstat {
0898 CURLKHSTAT_FINE_ADD_TO_FILE,
0899 CURLKHSTAT_FINE,
0900 CURLKHSTAT_REJECT,
0901 CURLKHSTAT_DEFER,
0902
0903
0904 CURLKHSTAT_FINE_REPLACE,
0905 CURLKHSTAT_LAST
0906 };
0907
0908
0909 enum curl_khmatch {
0910 CURLKHMATCH_OK,
0911 CURLKHMATCH_MISMATCH,
0912 CURLKHMATCH_MISSING,
0913 CURLKHMATCH_LAST
0914 };
0915
0916 typedef int
0917 (*curl_sshkeycallback)(CURL *easy,
0918 const struct curl_khkey *knownkey,
0919 const struct curl_khkey *foundkey,
0920 enum curl_khmatch,
0921 void *clientp);
0922
0923
0924 typedef int
0925 (*curl_sshhostkeycallback)(void *clientp,
0926
0927 int keytype,
0928 const char *key,
0929 size_t keylen);
0930
0931
0932
0933
0934 #define CURLUSESSL_NONE 0L
0935 #define CURLUSESSL_TRY 1L
0936 #define CURLUSESSL_CONTROL 2L
0937 #define CURLUSESSL_ALL 3L
0938
0939 typedef enum {
0940 CURLUSESSL_LAST = 4
0941 } curl_usessl;
0942
0943
0944
0945
0946
0947
0948
0949
0950 #define CURLSSLOPT_ALLOW_BEAST (1L << 0)
0951
0952
0953
0954 #define CURLSSLOPT_NO_REVOKE (1L << 1)
0955
0956
0957
0958 #define CURLSSLOPT_NO_PARTIALCHAIN (1L << 2)
0959
0960
0961
0962
0963 #define CURLSSLOPT_REVOKE_BEST_EFFORT (1L << 3)
0964
0965
0966
0967 #define CURLSSLOPT_NATIVE_CA (1L << 4)
0968
0969
0970
0971 #define CURLSSLOPT_AUTO_CLIENT_CERT (1L << 5)
0972
0973
0974 #define CURLSSLOPT_EARLYDATA (1L << 6)
0975
0976
0977
0978
0979 #define CURL_HET_DEFAULT 200L
0980
0981
0982 #define CURL_UPKEEP_INTERVAL_DEFAULT 60000L
0983
0984 #ifndef CURL_NO_OLDIES
0985
0986
0987
0988
0989
0990 #define CURLFTPSSL_NONE CURLUSESSL_NONE
0991 #define CURLFTPSSL_TRY CURLUSESSL_TRY
0992 #define CURLFTPSSL_CONTROL CURLUSESSL_CONTROL
0993 #define CURLFTPSSL_ALL CURLUSESSL_ALL
0994 #define CURLFTPSSL_LAST CURLUSESSL_LAST
0995 #define curl_ftpssl curl_usessl
0996 #endif
0997
0998
0999 #define CURLFTPSSL_CCC_NONE 0L
1000 #define CURLFTPSSL_CCC_PASSIVE 1L
1001 #define CURLFTPSSL_CCC_ACTIVE 2L
1002
1003 typedef enum {
1004 CURLFTPSSL_CCC_LAST = 3
1005 } curl_ftpccc;
1006
1007
1008 #define CURLFTPAUTH_DEFAULT 0L
1009 #define CURLFTPAUTH_SSL 1L
1010 #define CURLFTPAUTH_TLS 2L
1011
1012 typedef enum {
1013 CURLFTPAUTH_LAST = 3
1014 } curl_ftpauth;
1015
1016
1017 #define CURLFTP_CREATE_DIR_NONE 0L
1018 #define CURLFTP_CREATE_DIR 1L
1019
1020
1021 #define CURLFTP_CREATE_DIR_RETRY 2L
1022
1023
1024 typedef enum {
1025 CURLFTP_CREATE_DIR_LAST = 3
1026 } curl_ftpcreatedir;
1027
1028
1029 #define CURLFTPMETHOD_DEFAULT 0L
1030 #define CURLFTPMETHOD_MULTICWD 1L
1031
1032 #define CURLFTPMETHOD_NOCWD 2L
1033 #define CURLFTPMETHOD_SINGLECWD 3L
1034
1035 typedef enum {
1036 CURLFTPMETHOD_LAST = 4
1037 } curl_ftpmethod;
1038
1039
1040 #define CURLHEADER_UNIFIED 0L
1041 #define CURLHEADER_SEPARATE (1L << 0)
1042
1043
1044 #define CURLALTSVC_READONLYFILE (1L << 2)
1045 #define CURLALTSVC_H1 (1L << 3)
1046 #define CURLALTSVC_H2 (1L << 4)
1047 #define CURLALTSVC_H3 (1L << 5)
1048
1049
1050 #define CURLULFLAG_ANSWERED (1L << 0)
1051 #define CURLULFLAG_DELETED (1L << 1)
1052 #define CURLULFLAG_DRAFT (1L << 2)
1053 #define CURLULFLAG_FLAGGED (1L << 3)
1054 #define CURLULFLAG_SEEN (1L << 4)
1055
1056 struct curl_hstsentry {
1057 char *name;
1058 size_t namelen;
1059 unsigned int includeSubDomains:1;
1060 char expire[18];
1061 };
1062
1063 struct curl_index {
1064 size_t index;
1065 size_t total;
1066 };
1067
1068 typedef enum {
1069 CURLSTS_OK,
1070 CURLSTS_DONE,
1071 CURLSTS_FAIL
1072 } CURLSTScode;
1073
1074 typedef CURLSTScode (*curl_hstsread_callback)(CURL *easy,
1075 struct curl_hstsentry *e,
1076 void *userp);
1077 typedef CURLSTScode (*curl_hstswrite_callback)(CURL *easy,
1078 struct curl_hstsentry *e,
1079 struct curl_index *i,
1080 void *userp);
1081
1082
1083 #define CURLHSTS_ENABLE (1L << 0)
1084 #define CURLHSTS_READONLYFILE (1L << 1)
1085
1086
1087
1088 #define CURLPROTO_HTTP (1L << 0)
1089 #define CURLPROTO_HTTPS (1L << 1)
1090 #define CURLPROTO_FTP (1L << 2)
1091 #define CURLPROTO_FTPS (1L << 3)
1092 #define CURLPROTO_SCP (1L << 4)
1093 #define CURLPROTO_SFTP (1L << 5)
1094 #define CURLPROTO_TELNET (1L << 6)
1095 #define CURLPROTO_LDAP (1L << 7)
1096 #define CURLPROTO_LDAPS (1L << 8)
1097 #define CURLPROTO_DICT (1L << 9)
1098 #define CURLPROTO_FILE (1L << 10)
1099 #define CURLPROTO_TFTP (1L << 11)
1100 #define CURLPROTO_IMAP (1L << 12)
1101 #define CURLPROTO_IMAPS (1L << 13)
1102 #define CURLPROTO_POP3 (1L << 14)
1103 #define CURLPROTO_POP3S (1L << 15)
1104 #define CURLPROTO_SMTP (1L << 16)
1105 #define CURLPROTO_SMTPS (1L << 17)
1106 #define CURLPROTO_RTSP (1L << 18)
1107 #define CURLPROTO_RTMP (1L << 19)
1108 #define CURLPROTO_RTMPT (1L << 20)
1109 #define CURLPROTO_RTMPE (1L << 21)
1110 #define CURLPROTO_RTMPTE (1L << 22)
1111 #define CURLPROTO_RTMPS (1L << 23)
1112 #define CURLPROTO_RTMPTS (1L << 24)
1113 #define CURLPROTO_GOPHER (1L << 25)
1114 #define CURLPROTO_SMB (1L << 26)
1115 #define CURLPROTO_SMBS (1L << 27)
1116 #define CURLPROTO_MQTT (1L << 28)
1117 #define CURLPROTO_GOPHERS (1L << 29)
1118 #define CURLPROTO_ALL ((unsigned long)0xffffffff)
1119
1120
1121
1122
1123 #define CURLOPTTYPE_LONG 0
1124 #define CURLOPTTYPE_OBJECTPOINT 10000
1125 #define CURLOPTTYPE_FUNCTIONPOINT 20000
1126 #define CURLOPTTYPE_OFF_T 30000
1127 #define CURLOPTTYPE_BLOB 40000
1128
1129
1130
1131
1132 #define CURLOPT(na, t, nu) na = ((t) + (nu))
1133 #define CURLOPTDEPRECATED(na, t, nu, v, m) na CURL_DEPRECATED(v, m) \
1134 = ((t) + (nu))
1135
1136
1137
1138
1139 #define CURLOPTTYPE_STRINGPOINT CURLOPTTYPE_OBJECTPOINT
1140
1141
1142 #define CURLOPTTYPE_SLISTPOINT CURLOPTTYPE_OBJECTPOINT
1143
1144
1145 #define CURLOPTTYPE_CBPOINT CURLOPTTYPE_OBJECTPOINT
1146
1147
1148 #define CURLOPTTYPE_VALUES CURLOPTTYPE_LONG
1149
1150
1151
1152
1153
1154 typedef enum {
1155
1156 CURLOPT(CURLOPT_WRITEDATA, CURLOPTTYPE_CBPOINT, 1),
1157
1158
1159 CURLOPT(CURLOPT_URL, CURLOPTTYPE_STRINGPOINT, 2),
1160
1161
1162 CURLOPT(CURLOPT_PORT, CURLOPTTYPE_LONG, 3),
1163
1164
1165 CURLOPT(CURLOPT_PROXY, CURLOPTTYPE_STRINGPOINT, 4),
1166
1167
1168 CURLOPT(CURLOPT_USERPWD, CURLOPTTYPE_STRINGPOINT, 5),
1169
1170
1171 CURLOPT(CURLOPT_PROXYUSERPWD, CURLOPTTYPE_STRINGPOINT, 6),
1172
1173
1174 CURLOPT(CURLOPT_RANGE, CURLOPTTYPE_STRINGPOINT, 7),
1175
1176
1177
1178
1179 CURLOPT(CURLOPT_READDATA, CURLOPTTYPE_CBPOINT, 9),
1180
1181
1182
1183 CURLOPT(CURLOPT_ERRORBUFFER, CURLOPTTYPE_OBJECTPOINT, 10),
1184
1185
1186
1187 CURLOPT(CURLOPT_WRITEFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 11),
1188
1189
1190
1191 CURLOPT(CURLOPT_READFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 12),
1192
1193
1194 CURLOPT(CURLOPT_TIMEOUT, CURLOPTTYPE_LONG, 13),
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205 CURLOPT(CURLOPT_INFILESIZE, CURLOPTTYPE_LONG, 14),
1206
1207
1208 CURLOPT(CURLOPT_POSTFIELDS, CURLOPTTYPE_OBJECTPOINT, 15),
1209
1210
1211 CURLOPT(CURLOPT_REFERER, CURLOPTTYPE_STRINGPOINT, 16),
1212
1213
1214
1215 CURLOPT(CURLOPT_FTPPORT, CURLOPTTYPE_STRINGPOINT, 17),
1216
1217
1218 CURLOPT(CURLOPT_USERAGENT, CURLOPTTYPE_STRINGPOINT, 18),
1219
1220
1221
1222
1223
1224
1225
1226
1227 CURLOPT(CURLOPT_LOW_SPEED_LIMIT, CURLOPTTYPE_LONG, 19),
1228
1229
1230 CURLOPT(CURLOPT_LOW_SPEED_TIME, CURLOPTTYPE_LONG, 20),
1231
1232
1233
1234
1235
1236
1237
1238 CURLOPT(CURLOPT_RESUME_FROM, CURLOPTTYPE_LONG, 21),
1239
1240
1241 CURLOPT(CURLOPT_COOKIE, CURLOPTTYPE_STRINGPOINT, 22),
1242
1243
1244
1245 CURLOPT(CURLOPT_HTTPHEADER, CURLOPTTYPE_SLISTPOINT, 23),
1246
1247
1248 CURLOPTDEPRECATED(CURLOPT_HTTPPOST, CURLOPTTYPE_OBJECTPOINT, 24,
1249 7.56.0, "Use CURLOPT_MIMEPOST"),
1250
1251
1252 CURLOPT(CURLOPT_SSLCERT, CURLOPTTYPE_STRINGPOINT, 25),
1253
1254
1255 CURLOPT(CURLOPT_KEYPASSWD, CURLOPTTYPE_STRINGPOINT, 26),
1256
1257
1258 CURLOPT(CURLOPT_CRLF, CURLOPTTYPE_LONG, 27),
1259
1260
1261 CURLOPT(CURLOPT_QUOTE, CURLOPTTYPE_SLISTPOINT, 28),
1262
1263
1264
1265 CURLOPT(CURLOPT_HEADERDATA, CURLOPTTYPE_CBPOINT, 29),
1266
1267
1268
1269 CURLOPT(CURLOPT_COOKIEFILE, CURLOPTTYPE_STRINGPOINT, 31),
1270
1271
1272
1273 CURLOPT(CURLOPT_SSLVERSION, CURLOPTTYPE_VALUES, 32),
1274
1275
1276 CURLOPT(CURLOPT_TIMECONDITION, CURLOPTTYPE_VALUES, 33),
1277
1278
1279
1280 CURLOPT(CURLOPT_TIMEVALUE, CURLOPTTYPE_LONG, 34),
1281
1282
1283
1284
1285
1286
1287
1288 CURLOPT(CURLOPT_CUSTOMREQUEST, CURLOPTTYPE_STRINGPOINT, 36),
1289
1290
1291 CURLOPT(CURLOPT_STDERR, CURLOPTTYPE_OBJECTPOINT, 37),
1292
1293
1294
1295
1296 CURLOPT(CURLOPT_POSTQUOTE, CURLOPTTYPE_SLISTPOINT, 39),
1297
1298
1299
1300
1301 CURLOPT(CURLOPT_VERBOSE, CURLOPTTYPE_LONG, 41),
1302
1303
1304 CURLOPT(CURLOPT_HEADER, CURLOPTTYPE_LONG, 42),
1305
1306
1307 CURLOPT(CURLOPT_NOPROGRESS, CURLOPTTYPE_LONG, 43),
1308
1309
1310 CURLOPT(CURLOPT_NOBODY, CURLOPTTYPE_LONG, 44),
1311
1312
1313 CURLOPT(CURLOPT_FAILONERROR, CURLOPTTYPE_LONG, 45),
1314
1315
1316 CURLOPT(CURLOPT_UPLOAD, CURLOPTTYPE_LONG, 46),
1317
1318
1319 CURLOPT(CURLOPT_POST, CURLOPTTYPE_LONG, 47),
1320
1321
1322 CURLOPT(CURLOPT_DIRLISTONLY, CURLOPTTYPE_LONG, 48),
1323
1324
1325 CURLOPT(CURLOPT_APPEND, CURLOPTTYPE_LONG, 50),
1326
1327
1328
1329 CURLOPT(CURLOPT_NETRC, CURLOPTTYPE_VALUES, 51),
1330
1331
1332 CURLOPT(CURLOPT_FOLLOWLOCATION, CURLOPTTYPE_LONG, 52),
1333
1334
1335 CURLOPT(CURLOPT_TRANSFERTEXT, CURLOPTTYPE_LONG, 53),
1336
1337
1338 CURLOPTDEPRECATED(CURLOPT_PUT, CURLOPTTYPE_LONG, 54,
1339 7.12.1, "Use CURLOPT_UPLOAD"),
1340
1341
1342
1343
1344
1345
1346
1347 CURLOPTDEPRECATED(CURLOPT_PROGRESSFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 56,
1348 7.32.0, "Use CURLOPT_XFERINFOFUNCTION"),
1349
1350
1351
1352 CURLOPT(CURLOPT_XFERINFODATA, CURLOPTTYPE_CBPOINT, 57),
1353 #define CURLOPT_PROGRESSDATA CURLOPT_XFERINFODATA
1354
1355
1356 CURLOPT(CURLOPT_AUTOREFERER, CURLOPTTYPE_LONG, 58),
1357
1358
1359
1360 CURLOPT(CURLOPT_PROXYPORT, CURLOPTTYPE_LONG, 59),
1361
1362
1363 CURLOPT(CURLOPT_POSTFIELDSIZE, CURLOPTTYPE_LONG, 60),
1364
1365
1366 CURLOPT(CURLOPT_HTTPPROXYTUNNEL, CURLOPTTYPE_LONG, 61),
1367
1368
1369 CURLOPT(CURLOPT_INTERFACE, CURLOPTTYPE_STRINGPOINT, 62),
1370
1371
1372
1373
1374 CURLOPTDEPRECATED(CURLOPT_KRBLEVEL, CURLOPTTYPE_STRINGPOINT, 63,
1375 8.17.0, "removed"),
1376
1377
1378 CURLOPT(CURLOPT_SSL_VERIFYPEER, CURLOPTTYPE_LONG, 64),
1379
1380
1381
1382 CURLOPT(CURLOPT_CAINFO, CURLOPTTYPE_STRINGPOINT, 65),
1383
1384
1385
1386
1387
1388 CURLOPT(CURLOPT_MAXREDIRS, CURLOPTTYPE_LONG, 68),
1389
1390
1391
1392 CURLOPT(CURLOPT_FILETIME, CURLOPTTYPE_LONG, 69),
1393
1394
1395 CURLOPT(CURLOPT_TELNETOPTIONS, CURLOPTTYPE_SLISTPOINT, 70),
1396
1397
1398 CURLOPT(CURLOPT_MAXCONNECTS, CURLOPTTYPE_LONG, 71),
1399
1400
1401
1402
1403
1404
1405
1406 CURLOPT(CURLOPT_FRESH_CONNECT, CURLOPTTYPE_LONG, 74),
1407
1408
1409
1410
1411 CURLOPT(CURLOPT_FORBID_REUSE, CURLOPTTYPE_LONG, 75),
1412
1413
1414
1415 CURLOPTDEPRECATED(CURLOPT_RANDOM_FILE, CURLOPTTYPE_STRINGPOINT, 76,
1416 7.84.0, "Serves no purpose anymore"),
1417
1418
1419 CURLOPTDEPRECATED(CURLOPT_EGDSOCKET, CURLOPTTYPE_STRINGPOINT, 77,
1420 7.84.0, "Serves no purpose anymore"),
1421
1422
1423
1424 CURLOPT(CURLOPT_CONNECTTIMEOUT, CURLOPTTYPE_LONG, 78),
1425
1426
1427
1428 CURLOPT(CURLOPT_HEADERFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 79),
1429
1430
1431
1432
1433 CURLOPT(CURLOPT_HTTPGET, CURLOPTTYPE_LONG, 80),
1434
1435
1436
1437
1438 CURLOPT(CURLOPT_SSL_VERIFYHOST, CURLOPTTYPE_LONG, 81),
1439
1440
1441
1442 CURLOPT(CURLOPT_COOKIEJAR, CURLOPTTYPE_STRINGPOINT, 82),
1443
1444
1445 CURLOPT(CURLOPT_SSL_CIPHER_LIST, CURLOPTTYPE_STRINGPOINT, 83),
1446
1447
1448
1449 CURLOPT(CURLOPT_HTTP_VERSION, CURLOPTTYPE_VALUES, 84),
1450
1451
1452
1453
1454 CURLOPT(CURLOPT_FTP_USE_EPSV, CURLOPTTYPE_LONG, 85),
1455
1456
1457 CURLOPT(CURLOPT_SSLCERTTYPE, CURLOPTTYPE_STRINGPOINT, 86),
1458
1459
1460 CURLOPT(CURLOPT_SSLKEY, CURLOPTTYPE_STRINGPOINT, 87),
1461
1462
1463 CURLOPT(CURLOPT_SSLKEYTYPE, CURLOPTTYPE_STRINGPOINT, 88),
1464
1465
1466 CURLOPT(CURLOPT_SSLENGINE, CURLOPTTYPE_STRINGPOINT, 89),
1467
1468
1469
1470
1471 CURLOPT(CURLOPT_SSLENGINE_DEFAULT, CURLOPTTYPE_LONG, 90),
1472
1473
1474
1475 CURLOPTDEPRECATED(CURLOPT_DNS_USE_GLOBAL_CACHE, CURLOPTTYPE_LONG, 91,
1476 7.11.1, "Use CURLOPT_SHARE"),
1477
1478
1479 CURLOPT(CURLOPT_DNS_CACHE_TIMEOUT, CURLOPTTYPE_LONG, 92),
1480
1481
1482 CURLOPT(CURLOPT_PREQUOTE, CURLOPTTYPE_SLISTPOINT, 93),
1483
1484
1485 CURLOPT(CURLOPT_DEBUGFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 94),
1486
1487
1488 CURLOPT(CURLOPT_DEBUGDATA, CURLOPTTYPE_CBPOINT, 95),
1489
1490
1491 CURLOPT(CURLOPT_COOKIESESSION, CURLOPTTYPE_LONG, 96),
1492
1493
1494
1495 CURLOPT(CURLOPT_CAPATH, CURLOPTTYPE_STRINGPOINT, 97),
1496
1497
1498 CURLOPT(CURLOPT_BUFFERSIZE, CURLOPTTYPE_LONG, 98),
1499
1500
1501
1502
1503 CURLOPT(CURLOPT_NOSIGNAL, CURLOPTTYPE_LONG, 99),
1504
1505
1506 CURLOPT(CURLOPT_SHARE, CURLOPTTYPE_OBJECTPOINT, 100),
1507
1508
1509
1510
1511 CURLOPT(CURLOPT_PROXYTYPE, CURLOPTTYPE_VALUES, 101),
1512
1513
1514
1515
1516 CURLOPT(CURLOPT_ACCEPT_ENCODING, CURLOPTTYPE_STRINGPOINT, 102),
1517
1518
1519 CURLOPT(CURLOPT_PRIVATE, CURLOPTTYPE_OBJECTPOINT, 103),
1520
1521
1522 CURLOPT(CURLOPT_HTTP200ALIASES, CURLOPTTYPE_SLISTPOINT, 104),
1523
1524
1525
1526
1527 CURLOPT(CURLOPT_UNRESTRICTED_AUTH, CURLOPTTYPE_LONG, 105),
1528
1529
1530
1531
1532 CURLOPT(CURLOPT_FTP_USE_EPRT, CURLOPTTYPE_LONG, 106),
1533
1534
1535
1536
1537 CURLOPT(CURLOPT_HTTPAUTH, CURLOPTTYPE_VALUES, 107),
1538
1539
1540
1541
1542 CURLOPT(CURLOPT_SSL_CTX_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 108),
1543
1544
1545
1546 CURLOPT(CURLOPT_SSL_CTX_DATA, CURLOPTTYPE_CBPOINT, 109),
1547
1548
1549
1550
1551 CURLOPT(CURLOPT_FTP_CREATE_MISSING_DIRS, CURLOPTTYPE_LONG, 110),
1552
1553
1554
1555
1556 CURLOPT(CURLOPT_PROXYAUTH, CURLOPTTYPE_VALUES, 111),
1557
1558
1559
1560
1561
1562 CURLOPT(CURLOPT_SERVER_RESPONSE_TIMEOUT, CURLOPTTYPE_LONG, 112),
1563
1564
1565
1566
1567 CURLOPT(CURLOPT_IPRESOLVE, CURLOPTTYPE_VALUES, 113),
1568
1569
1570
1571
1572
1573
1574 CURLOPT(CURLOPT_MAXFILESIZE, CURLOPTTYPE_LONG, 114),
1575
1576
1577
1578
1579 CURLOPT(CURLOPT_INFILESIZE_LARGE, CURLOPTTYPE_OFF_T, 115),
1580
1581
1582
1583
1584 CURLOPT(CURLOPT_RESUME_FROM_LARGE, CURLOPTTYPE_OFF_T, 116),
1585
1586
1587
1588
1589 CURLOPT(CURLOPT_MAXFILESIZE_LARGE, CURLOPTTYPE_OFF_T, 117),
1590
1591
1592
1593
1594
1595 CURLOPT(CURLOPT_NETRC_FILE, CURLOPTTYPE_STRINGPOINT, 118),
1596
1597
1598
1599
1600
1601
1602 CURLOPT(CURLOPT_USE_SSL, CURLOPTTYPE_VALUES, 119),
1603
1604
1605 CURLOPT(CURLOPT_POSTFIELDSIZE_LARGE, CURLOPTTYPE_OFF_T, 120),
1606
1607
1608 CURLOPT(CURLOPT_TCP_NODELAY, CURLOPTTYPE_LONG, 121),
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628 CURLOPT(CURLOPT_FTPSSLAUTH, CURLOPTTYPE_VALUES, 129),
1629
1630 CURLOPTDEPRECATED(CURLOPT_IOCTLFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 130,
1631 7.18.0, "Use CURLOPT_SEEKFUNCTION"),
1632 CURLOPTDEPRECATED(CURLOPT_IOCTLDATA, CURLOPTTYPE_CBPOINT, 131,
1633 7.18.0, "Use CURLOPT_SEEKDATA"),
1634
1635
1636
1637
1638
1639
1640 CURLOPT(CURLOPT_FTP_ACCOUNT, CURLOPTTYPE_STRINGPOINT, 134),
1641
1642
1643 CURLOPT(CURLOPT_COOKIELIST, CURLOPTTYPE_STRINGPOINT, 135),
1644
1645
1646 CURLOPT(CURLOPT_IGNORE_CONTENT_LENGTH, CURLOPTTYPE_LONG, 136),
1647
1648
1649
1650
1651
1652 CURLOPT(CURLOPT_FTP_SKIP_PASV_IP, CURLOPTTYPE_LONG, 137),
1653
1654
1655
1656 CURLOPT(CURLOPT_FTP_FILEMETHOD, CURLOPTTYPE_VALUES, 138),
1657
1658
1659 CURLOPT(CURLOPT_LOCALPORT, CURLOPTTYPE_LONG, 139),
1660
1661
1662
1663 CURLOPT(CURLOPT_LOCALPORTRANGE, CURLOPTTYPE_LONG, 140),
1664
1665
1666
1667 CURLOPT(CURLOPT_CONNECT_ONLY, CURLOPTTYPE_LONG, 141),
1668
1669
1670
1671 CURLOPTDEPRECATED(CURLOPT_CONV_FROM_NETWORK_FUNCTION,
1672 CURLOPTTYPE_FUNCTIONPOINT, 142,
1673 7.82.0, "Serves no purpose anymore"),
1674
1675
1676
1677 CURLOPTDEPRECATED(CURLOPT_CONV_TO_NETWORK_FUNCTION,
1678 CURLOPTTYPE_FUNCTIONPOINT, 143,
1679 7.82.0, "Serves no purpose anymore"),
1680
1681
1682
1683
1684 CURLOPTDEPRECATED(CURLOPT_CONV_FROM_UTF8_FUNCTION,
1685 CURLOPTTYPE_FUNCTIONPOINT, 144,
1686 7.82.0, "Serves no purpose anymore"),
1687
1688
1689
1690 CURLOPT(CURLOPT_MAX_SEND_SPEED_LARGE, CURLOPTTYPE_OFF_T, 145),
1691 CURLOPT(CURLOPT_MAX_RECV_SPEED_LARGE, CURLOPTTYPE_OFF_T, 146),
1692
1693
1694 CURLOPT(CURLOPT_FTP_ALTERNATIVE_TO_USER, CURLOPTTYPE_STRINGPOINT, 147),
1695
1696
1697 CURLOPT(CURLOPT_SOCKOPTFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 148),
1698 CURLOPT(CURLOPT_SOCKOPTDATA, CURLOPTTYPE_CBPOINT, 149),
1699
1700
1701
1702 CURLOPT(CURLOPT_SSL_SESSIONID_CACHE, CURLOPTTYPE_LONG, 150),
1703
1704
1705 CURLOPT(CURLOPT_SSH_AUTH_TYPES, CURLOPTTYPE_VALUES, 151),
1706
1707
1708 CURLOPT(CURLOPT_SSH_PUBLIC_KEYFILE, CURLOPTTYPE_STRINGPOINT, 152),
1709 CURLOPT(CURLOPT_SSH_PRIVATE_KEYFILE, CURLOPTTYPE_STRINGPOINT, 153),
1710
1711
1712 CURLOPT(CURLOPT_FTP_SSL_CCC, CURLOPTTYPE_LONG, 154),
1713
1714
1715 CURLOPT(CURLOPT_TIMEOUT_MS, CURLOPTTYPE_LONG, 155),
1716 CURLOPT(CURLOPT_CONNECTTIMEOUT_MS, CURLOPTTYPE_LONG, 156),
1717
1718
1719
1720 CURLOPT(CURLOPT_HTTP_TRANSFER_DECODING, CURLOPTTYPE_LONG, 157),
1721 CURLOPT(CURLOPT_HTTP_CONTENT_DECODING, CURLOPTTYPE_LONG, 158),
1722
1723
1724
1725 CURLOPT(CURLOPT_NEW_FILE_PERMS, CURLOPTTYPE_LONG, 159),
1726 CURLOPT(CURLOPT_NEW_DIRECTORY_PERMS, CURLOPTTYPE_LONG, 160),
1727
1728
1729
1730 CURLOPT(CURLOPT_POSTREDIR, CURLOPTTYPE_VALUES, 161),
1731
1732
1733 CURLOPT(CURLOPT_SSH_HOST_PUBLIC_KEY_MD5, CURLOPTTYPE_STRINGPOINT, 162),
1734
1735
1736
1737
1738
1739 CURLOPT(CURLOPT_OPENSOCKETFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 163),
1740 CURLOPT(CURLOPT_OPENSOCKETDATA, CURLOPTTYPE_CBPOINT, 164),
1741
1742
1743 CURLOPT(CURLOPT_COPYPOSTFIELDS, CURLOPTTYPE_OBJECTPOINT, 165),
1744
1745
1746 CURLOPT(CURLOPT_PROXY_TRANSFER_MODE, CURLOPTTYPE_LONG, 166),
1747
1748
1749 CURLOPT(CURLOPT_SEEKFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 167),
1750 CURLOPT(CURLOPT_SEEKDATA, CURLOPTTYPE_CBPOINT, 168),
1751
1752
1753 CURLOPT(CURLOPT_CRLFILE, CURLOPTTYPE_STRINGPOINT, 169),
1754
1755
1756 CURLOPT(CURLOPT_ISSUERCERT, CURLOPTTYPE_STRINGPOINT, 170),
1757
1758
1759 CURLOPT(CURLOPT_ADDRESS_SCOPE, CURLOPTTYPE_LONG, 171),
1760
1761
1762
1763 CURLOPT(CURLOPT_CERTINFO, CURLOPTTYPE_LONG, 172),
1764
1765
1766 CURLOPT(CURLOPT_USERNAME, CURLOPTTYPE_STRINGPOINT, 173),
1767 CURLOPT(CURLOPT_PASSWORD, CURLOPTTYPE_STRINGPOINT, 174),
1768
1769
1770 CURLOPT(CURLOPT_PROXYUSERNAME, CURLOPTTYPE_STRINGPOINT, 175),
1771 CURLOPT(CURLOPT_PROXYPASSWORD, CURLOPTTYPE_STRINGPOINT, 176),
1772
1773
1774
1775
1776
1777
1778
1779
1780 CURLOPT(CURLOPT_NOPROXY, CURLOPTTYPE_STRINGPOINT, 177),
1781
1782
1783 CURLOPT(CURLOPT_TFTP_BLKSIZE, CURLOPTTYPE_LONG, 178),
1784
1785
1786
1787 CURLOPTDEPRECATED(CURLOPT_SOCKS5_GSSAPI_SERVICE,
1788 CURLOPTTYPE_STRINGPOINT, 179,
1789 7.49.0, "Use CURLOPT_PROXY_SERVICE_NAME"),
1790
1791
1792 CURLOPT(CURLOPT_SOCKS5_GSSAPI_NEC, CURLOPTTYPE_LONG, 180),
1793
1794
1795
1796
1797
1798 CURLOPTDEPRECATED(CURLOPT_PROTOCOLS, CURLOPTTYPE_LONG, 181,
1799 7.85.0, "Use CURLOPT_PROTOCOLS_STR"),
1800
1801
1802
1803
1804 CURLOPTDEPRECATED(CURLOPT_REDIR_PROTOCOLS, CURLOPTTYPE_LONG, 182,
1805 7.85.0, "Use CURLOPT_REDIR_PROTOCOLS_STR"),
1806
1807
1808 CURLOPT(CURLOPT_SSH_KNOWNHOSTS, CURLOPTTYPE_STRINGPOINT, 183),
1809
1810
1811
1812 CURLOPT(CURLOPT_SSH_KEYFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 184),
1813
1814
1815 CURLOPT(CURLOPT_SSH_KEYDATA, CURLOPTTYPE_CBPOINT, 185),
1816
1817
1818 CURLOPT(CURLOPT_MAIL_FROM, CURLOPTTYPE_STRINGPOINT, 186),
1819
1820
1821 CURLOPT(CURLOPT_MAIL_RCPT, CURLOPTTYPE_SLISTPOINT, 187),
1822
1823
1824 CURLOPT(CURLOPT_FTP_USE_PRET, CURLOPTTYPE_LONG, 188),
1825
1826
1827 CURLOPT(CURLOPT_RTSP_REQUEST, CURLOPTTYPE_VALUES, 189),
1828
1829
1830 CURLOPT(CURLOPT_RTSP_SESSION_ID, CURLOPTTYPE_STRINGPOINT, 190),
1831
1832
1833 CURLOPT(CURLOPT_RTSP_STREAM_URI, CURLOPTTYPE_STRINGPOINT, 191),
1834
1835
1836 CURLOPT(CURLOPT_RTSP_TRANSPORT, CURLOPTTYPE_STRINGPOINT, 192),
1837
1838
1839 CURLOPT(CURLOPT_RTSP_CLIENT_CSEQ, CURLOPTTYPE_LONG, 193),
1840
1841
1842 CURLOPT(CURLOPT_RTSP_SERVER_CSEQ, CURLOPTTYPE_LONG, 194),
1843
1844
1845 CURLOPT(CURLOPT_INTERLEAVEDATA, CURLOPTTYPE_CBPOINT, 195),
1846
1847
1848 CURLOPT(CURLOPT_INTERLEAVEFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 196),
1849
1850
1851 CURLOPT(CURLOPT_WILDCARDMATCH, CURLOPTTYPE_LONG, 197),
1852
1853
1854
1855 CURLOPT(CURLOPT_CHUNK_BGN_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 198),
1856
1857
1858
1859 CURLOPT(CURLOPT_CHUNK_END_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 199),
1860
1861
1862 CURLOPT(CURLOPT_FNMATCH_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 200),
1863
1864
1865 CURLOPT(CURLOPT_CHUNK_DATA, CURLOPTTYPE_CBPOINT, 201),
1866
1867
1868 CURLOPT(CURLOPT_FNMATCH_DATA, CURLOPTTYPE_CBPOINT, 202),
1869
1870
1871 CURLOPT(CURLOPT_RESOLVE, CURLOPTTYPE_SLISTPOINT, 203),
1872
1873
1874 CURLOPTDEPRECATED(CURLOPT_TLSAUTH_USERNAME, CURLOPTTYPE_STRINGPOINT, 204,
1875 8.22.0, "Support was removed"),
1876
1877
1878 CURLOPTDEPRECATED(CURLOPT_TLSAUTH_PASSWORD, CURLOPTTYPE_STRINGPOINT, 205,
1879 8.22.0, "Support was removed"),
1880
1881
1882 CURLOPTDEPRECATED(CURLOPT_TLSAUTH_TYPE, CURLOPTTYPE_STRINGPOINT, 206,
1883 8.22.0, "Support was removed"),
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893 CURLOPT(CURLOPT_TRANSFER_ENCODING, CURLOPTTYPE_LONG, 207),
1894
1895
1896
1897 CURLOPT(CURLOPT_CLOSESOCKETFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 208),
1898 CURLOPT(CURLOPT_CLOSESOCKETDATA, CURLOPTTYPE_CBPOINT, 209),
1899
1900
1901 CURLOPT(CURLOPT_GSSAPI_DELEGATION, CURLOPTTYPE_VALUES, 210),
1902
1903
1904
1905 CURLOPT(CURLOPT_DNS_SERVERS, CURLOPTTYPE_STRINGPOINT, 211),
1906
1907
1908
1909 CURLOPT(CURLOPT_ACCEPTTIMEOUT_MS, CURLOPTTYPE_LONG, 212),
1910
1911
1912 CURLOPT(CURLOPT_TCP_KEEPALIVE, CURLOPTTYPE_LONG, 213),
1913
1914
1915 CURLOPT(CURLOPT_TCP_KEEPIDLE, CURLOPTTYPE_LONG, 214),
1916 CURLOPT(CURLOPT_TCP_KEEPINTVL, CURLOPTTYPE_LONG, 215),
1917
1918
1919 CURLOPT(CURLOPT_SSL_OPTIONS, CURLOPTTYPE_VALUES, 216),
1920
1921
1922 CURLOPT(CURLOPT_MAIL_AUTH, CURLOPTTYPE_STRINGPOINT, 217),
1923
1924
1925 CURLOPT(CURLOPT_SASL_IR, CURLOPTTYPE_LONG, 218),
1926
1927
1928
1929
1930 CURLOPT(CURLOPT_XFERINFOFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 219),
1931
1932
1933 CURLOPT(CURLOPT_XOAUTH2_BEARER, CURLOPTTYPE_STRINGPOINT, 220),
1934
1935
1936
1937
1938 CURLOPT(CURLOPT_DNS_INTERFACE, CURLOPTTYPE_STRINGPOINT, 221),
1939
1940
1941
1942 CURLOPT(CURLOPT_DNS_LOCAL_IP4, CURLOPTTYPE_STRINGPOINT, 222),
1943
1944
1945
1946 CURLOPT(CURLOPT_DNS_LOCAL_IP6, CURLOPTTYPE_STRINGPOINT, 223),
1947
1948
1949 CURLOPT(CURLOPT_LOGIN_OPTIONS, CURLOPTTYPE_STRINGPOINT, 224),
1950
1951
1952 CURLOPTDEPRECATED(CURLOPT_SSL_ENABLE_NPN, CURLOPTTYPE_LONG, 225,
1953 7.86.0, "Has no function"),
1954
1955
1956 CURLOPT(CURLOPT_SSL_ENABLE_ALPN, CURLOPTTYPE_LONG, 226),
1957
1958
1959
1960 CURLOPT(CURLOPT_EXPECT_100_TIMEOUT_MS, CURLOPTTYPE_LONG, 227),
1961
1962
1963
1964 CURLOPT(CURLOPT_PROXYHEADER, CURLOPTTYPE_SLISTPOINT, 228),
1965
1966
1967 CURLOPT(CURLOPT_HEADEROPT, CURLOPTTYPE_VALUES, 229),
1968
1969
1970 CURLOPT(CURLOPT_PINNEDPUBLICKEY, CURLOPTTYPE_STRINGPOINT, 230),
1971
1972
1973 CURLOPT(CURLOPT_UNIX_SOCKET_PATH, CURLOPTTYPE_STRINGPOINT, 231),
1974
1975
1976 CURLOPT(CURLOPT_SSL_VERIFYSTATUS, CURLOPTTYPE_LONG, 232),
1977
1978
1979 CURLOPTDEPRECATED(CURLOPT_SSL_FALSESTART, CURLOPTTYPE_LONG, 233,
1980 8.15.0, "Has no function"),
1981
1982
1983 CURLOPT(CURLOPT_PATH_AS_IS, CURLOPTTYPE_LONG, 234),
1984
1985
1986 CURLOPT(CURLOPT_PROXY_SERVICE_NAME, CURLOPTTYPE_STRINGPOINT, 235),
1987
1988
1989 CURLOPT(CURLOPT_SERVICE_NAME, CURLOPTTYPE_STRINGPOINT, 236),
1990
1991
1992 CURLOPT(CURLOPT_PIPEWAIT, CURLOPTTYPE_LONG, 237),
1993
1994
1995 CURLOPT(CURLOPT_DEFAULT_PROTOCOL, CURLOPTTYPE_STRINGPOINT, 238),
1996
1997
1998 CURLOPT(CURLOPT_STREAM_WEIGHT, CURLOPTTYPE_LONG, 239),
1999
2000
2001 CURLOPTDEPRECATED(CURLOPT_STREAM_DEPENDS, CURLOPTTYPE_OBJECTPOINT, 240,
2002 8.21.0, "Has no function"),
2003
2004
2005 CURLOPTDEPRECATED(CURLOPT_STREAM_DEPENDS_E, CURLOPTTYPE_OBJECTPOINT, 241,
2006 8.21.0, "Has no function"),
2007
2008
2009 CURLOPT(CURLOPT_TFTP_NO_OPTIONS, CURLOPTTYPE_LONG, 242),
2010
2011
2012
2013 CURLOPT(CURLOPT_CONNECT_TO, CURLOPTTYPE_SLISTPOINT, 243),
2014
2015
2016 CURLOPT(CURLOPT_TCP_FASTOPEN, CURLOPTTYPE_LONG, 244),
2017
2018
2019
2020 CURLOPT(CURLOPT_KEEP_SENDING_ON_ERROR, CURLOPTTYPE_LONG, 245),
2021
2022
2023
2024 CURLOPT(CURLOPT_PROXY_CAINFO, CURLOPTTYPE_STRINGPOINT, 246),
2025
2026
2027
2028 CURLOPT(CURLOPT_PROXY_CAPATH, CURLOPTTYPE_STRINGPOINT, 247),
2029
2030
2031
2032 CURLOPT(CURLOPT_PROXY_SSL_VERIFYPEER, CURLOPTTYPE_LONG, 248),
2033
2034
2035
2036
2037 CURLOPT(CURLOPT_PROXY_SSL_VERIFYHOST, CURLOPTTYPE_LONG, 249),
2038
2039
2040
2041 CURLOPT(CURLOPT_PROXY_SSLVERSION, CURLOPTTYPE_VALUES, 250),
2042
2043
2044 CURLOPTDEPRECATED(CURLOPT_PROXY_TLSAUTH_USERNAME, CURLOPTTYPE_STRINGPOINT,
2045 251, 8.22.0, "Support was removed"),
2046
2047
2048 CURLOPTDEPRECATED(CURLOPT_PROXY_TLSAUTH_PASSWORD, CURLOPTTYPE_STRINGPOINT,
2049 252, 8.22.0, "Support was removed"),
2050
2051
2052 CURLOPTDEPRECATED(CURLOPT_PROXY_TLSAUTH_TYPE, CURLOPTTYPE_STRINGPOINT, 253,
2053 8.22.0, "Support was removed"),
2054
2055
2056 CURLOPT(CURLOPT_PROXY_SSLCERT, CURLOPTTYPE_STRINGPOINT, 254),
2057
2058
2059
2060 CURLOPT(CURLOPT_PROXY_SSLCERTTYPE, CURLOPTTYPE_STRINGPOINT, 255),
2061
2062
2063 CURLOPT(CURLOPT_PROXY_SSLKEY, CURLOPTTYPE_STRINGPOINT, 256),
2064
2065
2066
2067 CURLOPT(CURLOPT_PROXY_SSLKEYTYPE, CURLOPTTYPE_STRINGPOINT, 257),
2068
2069
2070 CURLOPT(CURLOPT_PROXY_KEYPASSWD, CURLOPTTYPE_STRINGPOINT, 258),
2071
2072
2073 CURLOPT(CURLOPT_PROXY_SSL_CIPHER_LIST, CURLOPTTYPE_STRINGPOINT, 259),
2074
2075
2076 CURLOPT(CURLOPT_PROXY_CRLFILE, CURLOPTTYPE_STRINGPOINT, 260),
2077
2078
2079
2080 CURLOPT(CURLOPT_PROXY_SSL_OPTIONS, CURLOPTTYPE_LONG, 261),
2081
2082
2083 CURLOPT(CURLOPT_PRE_PROXY, CURLOPTTYPE_STRINGPOINT, 262),
2084
2085
2086
2087 CURLOPT(CURLOPT_PROXY_PINNEDPUBLICKEY, CURLOPTTYPE_STRINGPOINT, 263),
2088
2089
2090 CURLOPT(CURLOPT_ABSTRACT_UNIX_SOCKET, CURLOPTTYPE_STRINGPOINT, 264),
2091
2092
2093 CURLOPT(CURLOPT_SUPPRESS_CONNECT_HEADERS, CURLOPTTYPE_LONG, 265),
2094
2095
2096 CURLOPT(CURLOPT_REQUEST_TARGET, CURLOPTTYPE_STRINGPOINT, 266),
2097
2098
2099 CURLOPT(CURLOPT_SOCKS5_AUTH, CURLOPTTYPE_LONG, 267),
2100
2101
2102 CURLOPT(CURLOPT_SSH_COMPRESSION, CURLOPTTYPE_LONG, 268),
2103
2104
2105 CURLOPT(CURLOPT_MIMEPOST, CURLOPTTYPE_OBJECTPOINT, 269),
2106
2107
2108
2109 CURLOPT(CURLOPT_TIMEVALUE_LARGE, CURLOPTTYPE_OFF_T, 270),
2110
2111
2112 CURLOPT(CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS, CURLOPTTYPE_LONG, 271),
2113
2114
2115 CURLOPT(CURLOPT_RESOLVER_START_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 272),
2116
2117
2118 CURLOPT(CURLOPT_RESOLVER_START_DATA, CURLOPTTYPE_CBPOINT, 273),
2119
2120
2121 CURLOPT(CURLOPT_HAPROXYPROTOCOL, CURLOPTTYPE_LONG, 274),
2122
2123
2124 CURLOPT(CURLOPT_DNS_SHUFFLE_ADDRESSES, CURLOPTTYPE_LONG, 275),
2125
2126
2127 CURLOPT(CURLOPT_TLS13_CIPHERS, CURLOPTTYPE_STRINGPOINT, 276),
2128 CURLOPT(CURLOPT_PROXY_TLS13_CIPHERS, CURLOPTTYPE_STRINGPOINT, 277),
2129
2130
2131 CURLOPT(CURLOPT_DISALLOW_USERNAME_IN_URL, CURLOPTTYPE_LONG, 278),
2132
2133
2134 CURLOPT(CURLOPT_DOH_URL, CURLOPTTYPE_STRINGPOINT, 279),
2135
2136
2137 CURLOPT(CURLOPT_UPLOAD_BUFFERSIZE, CURLOPTTYPE_LONG, 280),
2138
2139
2140 CURLOPT(CURLOPT_UPKEEP_INTERVAL_MS, CURLOPTTYPE_LONG, 281),
2141
2142
2143 CURLOPT(CURLOPT_CURLU, CURLOPTTYPE_OBJECTPOINT, 282),
2144
2145
2146 CURLOPT(CURLOPT_TRAILERFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 283),
2147
2148
2149 CURLOPT(CURLOPT_TRAILERDATA, CURLOPTTYPE_CBPOINT, 284),
2150
2151
2152 CURLOPT(CURLOPT_HTTP09_ALLOWED, CURLOPTTYPE_LONG, 285),
2153
2154
2155 CURLOPT(CURLOPT_ALTSVC_CTRL, CURLOPTTYPE_LONG, 286),
2156
2157
2158 CURLOPT(CURLOPT_ALTSVC, CURLOPTTYPE_STRINGPOINT, 287),
2159
2160
2161
2162 CURLOPT(CURLOPT_MAXAGE_CONN, CURLOPTTYPE_LONG, 288),
2163
2164
2165 CURLOPT(CURLOPT_SASL_AUTHZID, CURLOPTTYPE_STRINGPOINT, 289),
2166
2167
2168 CURLOPT(CURLOPT_MAIL_RCPT_ALLOWFAILS, CURLOPTTYPE_LONG, 290),
2169
2170
2171 CURLOPT(CURLOPT_SSLCERT_BLOB, CURLOPTTYPE_BLOB, 291),
2172 CURLOPT(CURLOPT_SSLKEY_BLOB, CURLOPTTYPE_BLOB, 292),
2173 CURLOPT(CURLOPT_PROXY_SSLCERT_BLOB, CURLOPTTYPE_BLOB, 293),
2174 CURLOPT(CURLOPT_PROXY_SSLKEY_BLOB, CURLOPTTYPE_BLOB, 294),
2175 CURLOPT(CURLOPT_ISSUERCERT_BLOB, CURLOPTTYPE_BLOB, 295),
2176
2177
2178 CURLOPT(CURLOPT_PROXY_ISSUERCERT, CURLOPTTYPE_STRINGPOINT, 296),
2179 CURLOPT(CURLOPT_PROXY_ISSUERCERT_BLOB, CURLOPTTYPE_BLOB, 297),
2180
2181
2182
2183
2184
2185 CURLOPT(CURLOPT_SSL_EC_CURVES, CURLOPTTYPE_STRINGPOINT, 298),
2186
2187
2188 CURLOPT(CURLOPT_HSTS_CTRL, CURLOPTTYPE_LONG, 299),
2189
2190 CURLOPT(CURLOPT_HSTS, CURLOPTTYPE_STRINGPOINT, 300),
2191
2192
2193 CURLOPT(CURLOPT_HSTSREADFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 301),
2194 CURLOPT(CURLOPT_HSTSREADDATA, CURLOPTTYPE_CBPOINT, 302),
2195
2196
2197 CURLOPT(CURLOPT_HSTSWRITEFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 303),
2198 CURLOPT(CURLOPT_HSTSWRITEDATA, CURLOPTTYPE_CBPOINT, 304),
2199
2200
2201 CURLOPT(CURLOPT_AWS_SIGV4, CURLOPTTYPE_STRINGPOINT, 305),
2202
2203
2204 CURLOPT(CURLOPT_DOH_SSL_VERIFYPEER, CURLOPTTYPE_LONG, 306),
2205
2206
2207 CURLOPT(CURLOPT_DOH_SSL_VERIFYHOST, CURLOPTTYPE_LONG, 307),
2208
2209
2210 CURLOPT(CURLOPT_DOH_SSL_VERIFYSTATUS, CURLOPTTYPE_LONG, 308),
2211
2212
2213
2214 CURLOPT(CURLOPT_CAINFO_BLOB, CURLOPTTYPE_BLOB, 309),
2215
2216
2217
2218 CURLOPT(CURLOPT_PROXY_CAINFO_BLOB, CURLOPTTYPE_BLOB, 310),
2219
2220
2221 CURLOPT(CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256, CURLOPTTYPE_STRINGPOINT, 311),
2222
2223
2224
2225 CURLOPT(CURLOPT_PREREQFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 312),
2226
2227
2228 CURLOPT(CURLOPT_PREREQDATA, CURLOPTTYPE_CBPOINT, 313),
2229
2230
2231
2232 CURLOPT(CURLOPT_MAXLIFETIME_CONN, CURLOPTTYPE_LONG, 314),
2233
2234
2235 CURLOPT(CURLOPT_MIME_OPTIONS, CURLOPTTYPE_LONG, 315),
2236
2237
2238
2239 CURLOPT(CURLOPT_SSH_HOSTKEYFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 316),
2240
2241
2242 CURLOPT(CURLOPT_SSH_HOSTKEYDATA, CURLOPTTYPE_CBPOINT, 317),
2243
2244
2245
2246
2247
2248 CURLOPT(CURLOPT_PROTOCOLS_STR, CURLOPTTYPE_STRINGPOINT, 318),
2249
2250
2251 CURLOPT(CURLOPT_REDIR_PROTOCOLS_STR, CURLOPTTYPE_STRINGPOINT, 319),
2252
2253
2254 CURLOPT(CURLOPT_WS_OPTIONS, CURLOPTTYPE_LONG, 320),
2255
2256
2257 CURLOPT(CURLOPT_CA_CACHE_TIMEOUT, CURLOPTTYPE_LONG, 321),
2258
2259
2260 CURLOPT(CURLOPT_QUICK_EXIT, CURLOPTTYPE_LONG, 322),
2261
2262
2263 CURLOPT(CURLOPT_HAPROXY_CLIENT_IP, CURLOPTTYPE_STRINGPOINT, 323),
2264
2265
2266 CURLOPT(CURLOPT_SERVER_RESPONSE_TIMEOUT_MS, CURLOPTTYPE_LONG, 324),
2267
2268
2269 CURLOPT(CURLOPT_ECH, CURLOPTTYPE_STRINGPOINT, 325),
2270
2271
2272 CURLOPT(CURLOPT_TCP_KEEPCNT, CURLOPTTYPE_LONG, 326),
2273
2274 CURLOPT(CURLOPT_UPLOAD_FLAGS, CURLOPTTYPE_LONG, 327),
2275
2276
2277 CURLOPT(CURLOPT_SSL_SIGNATURE_ALGORITHMS, CURLOPTTYPE_STRINGPOINT, 328),
2278
2279
2280 CURLOPT(CURLOPT_HTTPSIG_ALGORITHM, CURLOPTTYPE_VALUES, 329),
2281
2282
2283 CURLOPT(CURLOPT_HTTPSIG_KEY, CURLOPTTYPE_STRINGPOINT, 330),
2284
2285
2286 CURLOPT(CURLOPT_HTTPSIG_KEYID, CURLOPTTYPE_STRINGPOINT, 331),
2287
2288
2289 CURLOPT(CURLOPT_HTTPSIG_HEADERS, CURLOPTTYPE_STRINGPOINT, 332),
2290
2291 CURLOPT_LASTENTRY
2292 } CURLoption;
2293
2294 #ifndef CURL_NO_OLDIES
2295
2296
2297
2298
2299
2300
2301 #define CURLOPT_POST301 CURLOPT_POSTREDIR
2302
2303
2304
2305
2306 #define CURLOPT_SSLKEYPASSWD CURLOPT_KEYPASSWD
2307 #define CURLOPT_FTPAPPEND CURLOPT_APPEND
2308 #define CURLOPT_FTPLISTONLY CURLOPT_DIRLISTONLY
2309 #define CURLOPT_FTP_SSL CURLOPT_USE_SSL
2310
2311
2312
2313 #define CURLOPT_SSLCERTPASSWD CURLOPT_KEYPASSWD
2314 #define CURLOPT_KRB4LEVEL CURLOPT_KRBLEVEL
2315
2316 #define CURLOPT_FTP_RESPONSE_TIMEOUT CURLOPT_SERVER_RESPONSE_TIMEOUT
2317
2318
2319 #define CURLOPT_MAIL_RCPT_ALLLOWFAILS CURLOPT_MAIL_RCPT_ALLOWFAILS
2320
2321 #else
2322
2323 #undef CURLOPT_DNS_USE_GLOBAL_CACHE
2324 #endif
2325
2326
2327
2328
2329 #define CURL_IPRESOLVE_WHATEVER 0L
2330
2331 #define CURL_IPRESOLVE_V4 1L
2332 #define CURL_IPRESOLVE_V6 2L
2333
2334
2335 #define CURLOPT_RTSPHEADER CURLOPT_HTTPHEADER
2336
2337
2338 #define CURL_HTTP_VERSION_NONE 0L
2339
2340
2341 #define CURL_HTTP_VERSION_1_0 1L
2342 #define CURL_HTTP_VERSION_1_1 2L
2343 #define CURL_HTTP_VERSION_2_0 3L
2344 #define CURL_HTTP_VERSION_2TLS 4L
2345
2346 #define CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE 5L
2347
2348 #define CURL_HTTP_VERSION_3 30L
2349
2350
2351
2352 #define CURL_HTTP_VERSION_3ONLY 31L
2353
2354
2355 #define CURL_HTTP_VERSION_LAST 32L
2356
2357
2358
2359
2360 #define CURL_HTTP_VERSION_2 CURL_HTTP_VERSION_2_0
2361
2362
2363
2364
2365
2366 #define CURL_RTSPREQ_NONE 0L
2367 #define CURL_RTSPREQ_OPTIONS 1L
2368 #define CURL_RTSPREQ_DESCRIBE 2L
2369 #define CURL_RTSPREQ_ANNOUNCE 3L
2370 #define CURL_RTSPREQ_SETUP 4L
2371 #define CURL_RTSPREQ_PLAY 5L
2372 #define CURL_RTSPREQ_PAUSE 6L
2373 #define CURL_RTSPREQ_TEARDOWN 7L
2374 #define CURL_RTSPREQ_GET_PARAMETER 8L
2375 #define CURL_RTSPREQ_SET_PARAMETER 9L
2376 #define CURL_RTSPREQ_RECORD 10L
2377 #define CURL_RTSPREQ_RECEIVE 11L
2378 #define CURL_RTSPREQ_LAST 12L
2379
2380
2381 #define CURL_NETRC_IGNORED 0L
2382
2383 #define CURL_NETRC_OPTIONAL 1L
2384
2385 #define CURL_NETRC_REQUIRED 2L
2386
2387
2388 enum CURL_NETRC_OPTION {
2389
2390
2391 CURL_NETRC_LAST = 3
2392 };
2393
2394 #define CURL_SSLVERSION_DEFAULT 0L
2395 #define CURL_SSLVERSION_TLSv1 1L
2396 #define CURL_SSLVERSION_SSLv2 2L
2397 #define CURL_SSLVERSION_SSLv3 3L
2398 #define CURL_SSLVERSION_TLSv1_0 4L
2399 #define CURL_SSLVERSION_TLSv1_1 5L
2400 #define CURL_SSLVERSION_TLSv1_2 6L
2401 #define CURL_SSLVERSION_TLSv1_3 7L
2402
2403 #define CURL_SSLVERSION_LAST 8L
2404
2405 #define CURL_SSLVERSION_MAX_NONE 0L
2406 #define CURL_SSLVERSION_MAX_DEFAULT (CURL_SSLVERSION_TLSv1 << 16)
2407 #define CURL_SSLVERSION_MAX_TLSv1_0 (CURL_SSLVERSION_TLSv1_0 << 16)
2408 #define CURL_SSLVERSION_MAX_TLSv1_1 (CURL_SSLVERSION_TLSv1_1 << 16)
2409 #define CURL_SSLVERSION_MAX_TLSv1_2 (CURL_SSLVERSION_TLSv1_2 << 16)
2410 #define CURL_SSLVERSION_MAX_TLSv1_3 (CURL_SSLVERSION_TLSv1_3 << 16)
2411
2412
2413 #define CURL_SSLVERSION_MAX_LAST (CURL_SSLVERSION_LAST << 16)
2414
2415 #define CURL_TLSAUTH_NONE 0L
2416 #define CURL_TLSAUTH_SRP 1L
2417
2418 enum CURL_TLSAUTH {
2419
2420
2421 CURL_TLSAUTH_LAST = 2
2422 };
2423
2424
2425
2426
2427
2428
2429 #define CURL_REDIR_GET_ALL 0L
2430 #define CURL_REDIR_POST_301 1L
2431 #define CURL_REDIR_POST_302 2L
2432 #define CURL_REDIR_POST_303 4L
2433 #define CURL_REDIR_POST_ALL \
2434 (CURL_REDIR_POST_301 | CURL_REDIR_POST_302 | CURL_REDIR_POST_303)
2435
2436 #define CURL_TIMECOND_NONE 0L
2437 #define CURL_TIMECOND_IFMODSINCE 1L
2438 #define CURL_TIMECOND_IFUNMODSINCE 2L
2439 #define CURL_TIMECOND_LASTMOD 3L
2440
2441 typedef enum {
2442
2443
2444
2445 CURL_TIMECOND_LAST = 4
2446 } curl_TimeCond;
2447
2448
2449 #define CURL_ZERO_TERMINATED ((size_t)-1)
2450
2451
2452
2453 CURL_EXTERN int curl_strequal(const char *s1, const char *s2);
2454 CURL_EXTERN int curl_strnequal(const char *s1, const char *s2, size_t n);
2455
2456
2457 typedef struct curl_mime curl_mime;
2458 typedef struct curl_mimepart curl_mimepart;
2459
2460
2461 #define CURLMIMEOPT_FORMESCAPE (1L << 0)
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471 CURL_EXTERN curl_mime *curl_mime_init(CURL *easy);
2472
2473
2474
2475
2476
2477
2478
2479
2480 CURL_EXTERN void curl_mime_free(curl_mime *mime);
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490 CURL_EXTERN curl_mimepart *curl_mime_addpart(curl_mime *mime);
2491
2492
2493
2494
2495
2496
2497
2498
2499 CURL_EXTERN CURLcode curl_mime_name(curl_mimepart *part, const char *name);
2500
2501
2502
2503
2504
2505
2506
2507
2508 CURL_EXTERN CURLcode curl_mime_filename(curl_mimepart *part,
2509 const char *filename);
2510
2511
2512
2513
2514
2515
2516
2517
2518 CURL_EXTERN CURLcode curl_mime_type(curl_mimepart *part, const char *mimetype);
2519
2520
2521
2522
2523
2524
2525
2526
2527 CURL_EXTERN CURLcode curl_mime_encoder(curl_mimepart *part,
2528 const char *encoding);
2529
2530
2531
2532
2533
2534
2535
2536
2537 CURL_EXTERN CURLcode curl_mime_data(curl_mimepart *part,
2538 const char *data, size_t datasize);
2539
2540
2541
2542
2543
2544
2545
2546
2547 CURL_EXTERN CURLcode curl_mime_filedata(curl_mimepart *part,
2548 const char *filename);
2549
2550
2551
2552
2553
2554
2555
2556
2557 CURL_EXTERN CURLcode curl_mime_data_cb(curl_mimepart *part,
2558 curl_off_t datasize,
2559 curl_read_callback readfunc,
2560 curl_seek_callback seekfunc,
2561 curl_free_callback freefunc,
2562 void *arg);
2563
2564
2565
2566
2567
2568
2569
2570
2571 CURL_EXTERN CURLcode curl_mime_subparts(curl_mimepart *part,
2572 curl_mime *subparts);
2573
2574
2575
2576
2577
2578
2579
2580 CURL_EXTERN CURLcode curl_mime_headers(curl_mimepart *part,
2581 struct curl_slist *headers,
2582 int take_ownership);
2583
2584 typedef enum {
2585
2586 CURLFORM_NOTHING CURL_DEPRECATED(7.56.0, ""),
2587 CURLFORM_COPYNAME CURL_DEPRECATED(7.56.0, "Use curl_mime_name()"),
2588 CURLFORM_PTRNAME CURL_DEPRECATED(7.56.0, "Use curl_mime_name()"),
2589 CURLFORM_NAMELENGTH CURL_DEPRECATED(7.56.0, ""),
2590 CURLFORM_COPYCONTENTS CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"),
2591 CURLFORM_PTRCONTENTS CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"),
2592 CURLFORM_CONTENTSLENGTH CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"),
2593 CURLFORM_FILECONTENT CURL_DEPRECATED(7.56.0, "Use curl_mime_data_cb()"),
2594 CURLFORM_ARRAY CURL_DEPRECATED(7.56.0, ""),
2595 CURLFORM_OBSOLETE,
2596 CURLFORM_FILE CURL_DEPRECATED(7.56.0, "Use curl_mime_filedata()"),
2597
2598 CURLFORM_BUFFER CURL_DEPRECATED(7.56.0, "Use curl_mime_filename()"),
2599 CURLFORM_BUFFERPTR CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"),
2600 CURLFORM_BUFFERLENGTH CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"),
2601
2602 CURLFORM_CONTENTTYPE CURL_DEPRECATED(7.56.0, "Use curl_mime_type()"),
2603 CURLFORM_CONTENTHEADER CURL_DEPRECATED(7.56.0, "Use curl_mime_headers()"),
2604 CURLFORM_FILENAME CURL_DEPRECATED(7.56.0, "Use curl_mime_filename()"),
2605 CURLFORM_END,
2606 CURLFORM_OBSOLETE2,
2607
2608 CURLFORM_STREAM CURL_DEPRECATED(7.56.0, "Use curl_mime_data_cb()"),
2609 CURLFORM_CONTENTLEN
2610 CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"),
2611
2612 CURLFORM_LASTENTRY
2613 } CURLformoption;
2614
2615
2616 struct curl_forms {
2617 CURLformoption option;
2618 const char *value;
2619 };
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637 typedef enum {
2638 CURL_FORMADD_OK CURL_DEPRECATED(7.56.0, ""),
2639
2640 CURL_FORMADD_MEMORY CURL_DEPRECATED(7.56.0, ""),
2641 CURL_FORMADD_OPTION_TWICE CURL_DEPRECATED(7.56.0, ""),
2642 CURL_FORMADD_NULL CURL_DEPRECATED(7.56.0, ""),
2643 CURL_FORMADD_UNKNOWN_OPTION CURL_DEPRECATED(7.56.0, ""),
2644 CURL_FORMADD_INCOMPLETE CURL_DEPRECATED(7.56.0, ""),
2645 CURL_FORMADD_ILLEGAL_ARRAY CURL_DEPRECATED(7.56.0, ""),
2646
2647 CURL_FORMADD_DISABLED CURL_DEPRECATED(7.56.0, ""),
2648
2649 CURL_FORMADD_LAST
2650 } CURLFORMcode;
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661 CURL_EXTERN CURLFORMcode CURL_DEPRECATED(7.56.0, "Use curl_mime_init()")
2662 curl_formadd(struct curl_httppost **httppost,
2663 struct curl_httppost **last_post,
2664 ...);
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674 typedef size_t (*curl_formget_callback)(void *arg, const char *buf,
2675 size_t len);
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687 CURL_EXTERN int CURL_DEPRECATED(7.56.0, "")
2688 curl_formget(struct curl_httppost *form, void *arg,
2689 curl_formget_callback append);
2690
2691
2692
2693
2694
2695
2696
2697 CURL_EXTERN void CURL_DEPRECATED(7.56.0, "Use curl_mime_free()")
2698 curl_formfree(struct curl_httppost *form);
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708 CURL_EXTERN char *curl_getenv(const char *variable);
2709
2710
2711
2712
2713
2714
2715
2716
2717 CURL_EXTERN char *curl_version(void);
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728 CURL_EXTERN char *curl_easy_escape(CURL *curl,
2729 const char *string,
2730 int length);
2731
2732
2733 CURL_EXTERN char *curl_escape(const char *string,
2734 int length);
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747 CURL_EXTERN char *curl_easy_unescape(CURL *curl,
2748 const char *string,
2749 int inlength,
2750 int *outlength);
2751
2752
2753 CURL_EXTERN char *curl_unescape(const char *string,
2754 int length);
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764 CURL_EXTERN void curl_free(void *p);
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777 CURL_EXTERN CURLcode curl_global_init(long flags);
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792 CURL_EXTERN CURLcode curl_global_init_mem(long flags,
2793 curl_malloc_callback m,
2794 curl_free_callback f,
2795 curl_realloc_callback r,
2796 curl_strdup_callback s,
2797 curl_calloc_callback c);
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807 CURL_EXTERN void curl_global_cleanup(void);
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820 CURL_EXTERN CURLcode curl_global_trace(const char *config);
2821
2822
2823 struct curl_slist {
2824 char *data;
2825 struct curl_slist *next;
2826 };
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854 struct curl_ssl_backend {
2855 curl_sslbackend id;
2856 const char *name;
2857 };
2858 typedef struct curl_ssl_backend curl_ssl_backend;
2859
2860 typedef enum {
2861 CURLSSLSET_OK = 0,
2862 CURLSSLSET_UNKNOWN_BACKEND,
2863 CURLSSLSET_TOO_LATE,
2864 CURLSSLSET_NO_BACKENDS
2865 } CURLsslset;
2866
2867 CURL_EXTERN CURLsslset curl_global_sslset(curl_sslbackend id, const char *name,
2868 const curl_ssl_backend ***avail);
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878 CURL_EXTERN struct curl_slist *curl_slist_append(struct curl_slist *list,
2879 const char *data);
2880
2881
2882
2883
2884
2885
2886
2887
2888 CURL_EXTERN void curl_slist_free_all(struct curl_slist *list);
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899 CURL_EXTERN time_t curl_getdate(const char *p, const time_t *unused);
2900
2901
2902
2903 struct curl_certinfo {
2904 int num_of_certs;
2905 struct curl_slist **certinfo;
2906
2907
2908
2909 };
2910
2911
2912
2913
2914 struct curl_tlssessioninfo {
2915 curl_sslbackend backend;
2916 void *internals;
2917 };
2918
2919 #define CURLINFO_STRING 0x100000
2920 #define CURLINFO_LONG 0x200000
2921 #define CURLINFO_DOUBLE 0x300000
2922 #define CURLINFO_SLIST 0x400000
2923 #define CURLINFO_PTR 0x400000
2924 #define CURLINFO_SOCKET 0x500000
2925 #define CURLINFO_OFF_T 0x600000
2926 #define CURLINFO_MASK 0x0fffff
2927 #define CURLINFO_TYPEMASK 0xf00000
2928
2929 typedef enum {
2930 CURLINFO_NONE,
2931 CURLINFO_EFFECTIVE_URL = CURLINFO_STRING + 1,
2932 CURLINFO_RESPONSE_CODE = CURLINFO_LONG + 2,
2933 CURLINFO_TOTAL_TIME = CURLINFO_DOUBLE + 3,
2934 CURLINFO_NAMELOOKUP_TIME = CURLINFO_DOUBLE + 4,
2935 CURLINFO_CONNECT_TIME = CURLINFO_DOUBLE + 5,
2936 CURLINFO_PRETRANSFER_TIME = CURLINFO_DOUBLE + 6,
2937 CURLINFO_SIZE_UPLOAD CURL_DEPRECATED(7.55.0, "Use CURLINFO_SIZE_UPLOAD_T")
2938 = CURLINFO_DOUBLE + 7,
2939 CURLINFO_SIZE_UPLOAD_T = CURLINFO_OFF_T + 7,
2940 CURLINFO_SIZE_DOWNLOAD
2941 CURL_DEPRECATED(7.55.0, "Use CURLINFO_SIZE_DOWNLOAD_T")
2942 = CURLINFO_DOUBLE + 8,
2943 CURLINFO_SIZE_DOWNLOAD_T = CURLINFO_OFF_T + 8,
2944 CURLINFO_SPEED_DOWNLOAD
2945 CURL_DEPRECATED(7.55.0, "Use CURLINFO_SPEED_DOWNLOAD_T")
2946 = CURLINFO_DOUBLE + 9,
2947 CURLINFO_SPEED_DOWNLOAD_T = CURLINFO_OFF_T + 9,
2948 CURLINFO_SPEED_UPLOAD
2949 CURL_DEPRECATED(7.55.0, "Use CURLINFO_SPEED_UPLOAD_T")
2950 = CURLINFO_DOUBLE + 10,
2951 CURLINFO_SPEED_UPLOAD_T = CURLINFO_OFF_T + 10,
2952 CURLINFO_HEADER_SIZE = CURLINFO_LONG + 11,
2953 CURLINFO_REQUEST_SIZE = CURLINFO_LONG + 12,
2954 CURLINFO_SSL_VERIFYRESULT = CURLINFO_LONG + 13,
2955 CURLINFO_FILETIME = CURLINFO_LONG + 14,
2956 CURLINFO_FILETIME_T = CURLINFO_OFF_T + 14,
2957 CURLINFO_CONTENT_LENGTH_DOWNLOAD
2958 CURL_DEPRECATED(7.55.0,
2959 "Use CURLINFO_CONTENT_LENGTH_DOWNLOAD_T")
2960 = CURLINFO_DOUBLE + 15,
2961 CURLINFO_CONTENT_LENGTH_DOWNLOAD_T = CURLINFO_OFF_T + 15,
2962 CURLINFO_CONTENT_LENGTH_UPLOAD
2963 CURL_DEPRECATED(7.55.0,
2964 "Use CURLINFO_CONTENT_LENGTH_UPLOAD_T")
2965 = CURLINFO_DOUBLE + 16,
2966 CURLINFO_CONTENT_LENGTH_UPLOAD_T = CURLINFO_OFF_T + 16,
2967 CURLINFO_STARTTRANSFER_TIME = CURLINFO_DOUBLE + 17,
2968 CURLINFO_CONTENT_TYPE = CURLINFO_STRING + 18,
2969 CURLINFO_REDIRECT_TIME = CURLINFO_DOUBLE + 19,
2970 CURLINFO_REDIRECT_COUNT = CURLINFO_LONG + 20,
2971 CURLINFO_PRIVATE = CURLINFO_STRING + 21,
2972 CURLINFO_HTTP_CONNECTCODE = CURLINFO_LONG + 22,
2973 CURLINFO_HTTPAUTH_AVAIL = CURLINFO_LONG + 23,
2974 CURLINFO_PROXYAUTH_AVAIL = CURLINFO_LONG + 24,
2975 CURLINFO_OS_ERRNO = CURLINFO_LONG + 25,
2976 CURLINFO_NUM_CONNECTS = CURLINFO_LONG + 26,
2977 CURLINFO_SSL_ENGINES = CURLINFO_SLIST + 27,
2978 CURLINFO_COOKIELIST = CURLINFO_SLIST + 28,
2979 CURLINFO_LASTSOCKET CURL_DEPRECATED(7.45.0, "Use CURLINFO_ACTIVESOCKET")
2980 = CURLINFO_LONG + 29,
2981 CURLINFO_FTP_ENTRY_PATH = CURLINFO_STRING + 30,
2982 CURLINFO_REDIRECT_URL = CURLINFO_STRING + 31,
2983 CURLINFO_PRIMARY_IP = CURLINFO_STRING + 32,
2984 CURLINFO_APPCONNECT_TIME = CURLINFO_DOUBLE + 33,
2985 CURLINFO_CERTINFO = CURLINFO_PTR + 34,
2986 CURLINFO_CONDITION_UNMET = CURLINFO_LONG + 35,
2987 CURLINFO_RTSP_SESSION_ID = CURLINFO_STRING + 36,
2988 CURLINFO_RTSP_CLIENT_CSEQ = CURLINFO_LONG + 37,
2989 CURLINFO_RTSP_SERVER_CSEQ = CURLINFO_LONG + 38,
2990 CURLINFO_RTSP_CSEQ_RECV = CURLINFO_LONG + 39,
2991 CURLINFO_PRIMARY_PORT = CURLINFO_LONG + 40,
2992 CURLINFO_LOCAL_IP = CURLINFO_STRING + 41,
2993 CURLINFO_LOCAL_PORT = CURLINFO_LONG + 42,
2994 CURLINFO_TLS_SESSION CURL_DEPRECATED(7.48.0, "Use CURLINFO_TLS_SSL_PTR")
2995 = CURLINFO_PTR + 43,
2996 CURLINFO_ACTIVESOCKET = CURLINFO_SOCKET + 44,
2997 CURLINFO_TLS_SSL_PTR = CURLINFO_PTR + 45,
2998 CURLINFO_HTTP_VERSION = CURLINFO_LONG + 46,
2999 CURLINFO_PROXY_SSL_VERIFYRESULT = CURLINFO_LONG + 47,
3000 CURLINFO_PROTOCOL CURL_DEPRECATED(7.85.0, "Use CURLINFO_SCHEME")
3001 = CURLINFO_LONG + 48,
3002 CURLINFO_SCHEME = CURLINFO_STRING + 49,
3003 CURLINFO_TOTAL_TIME_T = CURLINFO_OFF_T + 50,
3004 CURLINFO_NAMELOOKUP_TIME_T = CURLINFO_OFF_T + 51,
3005 CURLINFO_CONNECT_TIME_T = CURLINFO_OFF_T + 52,
3006 CURLINFO_PRETRANSFER_TIME_T = CURLINFO_OFF_T + 53,
3007 CURLINFO_STARTTRANSFER_TIME_T = CURLINFO_OFF_T + 54,
3008 CURLINFO_REDIRECT_TIME_T = CURLINFO_OFF_T + 55,
3009 CURLINFO_APPCONNECT_TIME_T = CURLINFO_OFF_T + 56,
3010 CURLINFO_RETRY_AFTER = CURLINFO_OFF_T + 57,
3011 CURLINFO_EFFECTIVE_METHOD = CURLINFO_STRING + 58,
3012 CURLINFO_PROXY_ERROR = CURLINFO_LONG + 59,
3013 CURLINFO_REFERER = CURLINFO_STRING + 60,
3014 CURLINFO_CAINFO = CURLINFO_STRING + 61,
3015 CURLINFO_CAPATH = CURLINFO_STRING + 62,
3016 CURLINFO_XFER_ID = CURLINFO_OFF_T + 63,
3017 CURLINFO_CONN_ID = CURLINFO_OFF_T + 64,
3018 CURLINFO_QUEUE_TIME_T = CURLINFO_OFF_T + 65,
3019 CURLINFO_USED_PROXY = CURLINFO_LONG + 66,
3020 CURLINFO_POSTTRANSFER_TIME_T = CURLINFO_OFF_T + 67,
3021 CURLINFO_EARLYDATA_SENT_T = CURLINFO_OFF_T + 68,
3022 CURLINFO_HTTPAUTH_USED = CURLINFO_LONG + 69,
3023 CURLINFO_PROXYAUTH_USED = CURLINFO_LONG + 70,
3024 CURLINFO_SIZE_DELIVERED = CURLINFO_OFF_T + 71,
3025 CURLINFO_LASTONE = 71
3026 } CURLINFO;
3027
3028
3029
3030 #define CURLINFO_HTTP_CODE CURLINFO_RESPONSE_CODE
3031
3032 typedef enum {
3033 CURLCLOSEPOLICY_NONE,
3034
3035 CURLCLOSEPOLICY_OLDEST,
3036 CURLCLOSEPOLICY_LEAST_RECENTLY_USED,
3037 CURLCLOSEPOLICY_LEAST_TRAFFIC,
3038 CURLCLOSEPOLICY_SLOWEST,
3039 CURLCLOSEPOLICY_CALLBACK,
3040
3041 CURLCLOSEPOLICY_LAST
3042 } curl_closepolicy;
3043
3044 #define CURL_GLOBAL_SSL (1 << 0)
3045 #define CURL_GLOBAL_WIN32 (1 << 1)
3046 #define CURL_GLOBAL_ALL (CURL_GLOBAL_SSL | CURL_GLOBAL_WIN32)
3047 #define CURL_GLOBAL_NOTHING 0
3048 #define CURL_GLOBAL_DEFAULT CURL_GLOBAL_ALL
3049 #define CURL_GLOBAL_ACK_EINTR (1 << 2)
3050
3051
3052
3053
3054
3055
3056 typedef enum {
3057 CURL_LOCK_DATA_NONE = 0,
3058
3059
3060
3061 CURL_LOCK_DATA_SHARE,
3062 CURL_LOCK_DATA_COOKIE,
3063 CURL_LOCK_DATA_DNS,
3064 CURL_LOCK_DATA_SSL_SESSION,
3065 CURL_LOCK_DATA_CONNECT,
3066 CURL_LOCK_DATA_PSL,
3067 CURL_LOCK_DATA_HSTS,
3068 CURL_LOCK_DATA_LAST
3069 } curl_lock_data;
3070
3071
3072 typedef enum {
3073 CURL_LOCK_ACCESS_NONE = 0,
3074 CURL_LOCK_ACCESS_SHARED = 1,
3075 CURL_LOCK_ACCESS_SINGLE = 2,
3076 CURL_LOCK_ACCESS_LAST
3077 } curl_lock_access;
3078
3079 typedef void (*curl_lock_function)(CURL *handle,
3080 curl_lock_data data,
3081 curl_lock_access locktype,
3082 void *userptr);
3083 typedef void (*curl_unlock_function)(CURL *handle,
3084 curl_lock_data data,
3085 void *userptr);
3086
3087 typedef enum {
3088 CURLSHE_OK,
3089 CURLSHE_BAD_OPTION,
3090 CURLSHE_IN_USE,
3091 CURLSHE_INVALID,
3092 CURLSHE_NOMEM,
3093 CURLSHE_NOT_BUILT_IN,
3094 CURLSHE_LAST
3095 } CURLSHcode;
3096
3097 typedef enum {
3098 CURLSHOPT_NONE,
3099 CURLSHOPT_SHARE,
3100 CURLSHOPT_UNSHARE,
3101 CURLSHOPT_LOCKFUNC,
3102 CURLSHOPT_UNLOCKFUNC,
3103 CURLSHOPT_USERDATA,
3104
3105 CURLSHOPT_LAST
3106 } CURLSHoption;
3107
3108 CURL_EXTERN CURLSH *curl_share_init(void);
3109 CURL_EXTERN CURLSHcode curl_share_setopt(CURLSH *sh, CURLSHoption option, ...);
3110 CURL_EXTERN CURLSHcode curl_share_cleanup(CURLSH *sh);
3111
3112
3113
3114
3115
3116 typedef enum {
3117 CURLVERSION_FIRST,
3118 CURLVERSION_SECOND,
3119 CURLVERSION_THIRD,
3120 CURLVERSION_FOURTH,
3121 CURLVERSION_FIFTH,
3122 CURLVERSION_SIXTH,
3123 CURLVERSION_SEVENTH,
3124 CURLVERSION_EIGHTH,
3125 CURLVERSION_NINTH,
3126 CURLVERSION_TENTH,
3127 CURLVERSION_ELEVENTH,
3128 CURLVERSION_TWELFTH,
3129 CURLVERSION_LAST
3130 } CURLversion;
3131
3132
3133
3134
3135
3136 #define CURLVERSION_NOW CURLVERSION_TWELFTH
3137
3138 struct curl_version_info_data {
3139 CURLversion age;
3140 const char *version;
3141 unsigned int version_num;
3142 const char *host;
3143 int features;
3144 const char *ssl_version;
3145 long ssl_version_num;
3146 const char *libz_version;
3147
3148 const char * const *protocols;
3149
3150
3151 const char *ares;
3152 int ares_num;
3153
3154
3155 const char *libidn;
3156
3157
3158
3159
3160 int iconv_ver_num;
3161
3162 const char *libssh_version;
3163
3164
3165 unsigned int brotli_ver_num;
3166
3167 const char *brotli_version;
3168
3169
3170 unsigned int nghttp2_ver_num;
3171
3172 const char *nghttp2_version;
3173 const char *quic_version;
3174
3175
3176
3177 const char *cainfo;
3178
3179 const char *capath;
3180
3181
3182
3183 unsigned int zstd_ver_num;
3184
3185 const char *zstd_version;
3186
3187
3188 const char *hyper_version;
3189
3190
3191 const char *gsasl_version;
3192
3193
3194
3195 const char * const *feature_names;
3196
3197
3198 const char *rtmp_version;
3199 };
3200 typedef struct curl_version_info_data curl_version_info_data;
3201
3202 #define CURL_VERSION_IPV6 (1<<0)
3203 #define CURL_VERSION_KERBEROS4 (1<<1)
3204
3205 #define CURL_VERSION_SSL (1<<2)
3206 #define CURL_VERSION_LIBZ (1<<3)
3207 #define CURL_VERSION_NTLM (1<<4)
3208 #define CURL_VERSION_GSSNEGOTIATE (1<<5)
3209
3210 #define CURL_VERSION_DEBUG (1<<6)
3211 #define CURL_VERSION_ASYNCHDNS (1<<7)
3212 #define CURL_VERSION_SPNEGO (1<<8)
3213 #define CURL_VERSION_LARGEFILE (1<<9)
3214 #define CURL_VERSION_IDN (1<<10)
3215
3216 #define CURL_VERSION_SSPI (1<<11)
3217 #define CURL_VERSION_CONV (1<<12)
3218 #define CURL_VERSION_CURLDEBUG (1<<13)
3219
3220 #define CURL_VERSION_TLSAUTH_SRP (1<<14)
3221 #define CURL_VERSION_NTLM_WB (1<<15)
3222
3223 #define CURL_VERSION_HTTP2 (1<<16)
3224 #define CURL_VERSION_GSSAPI (1<<17)
3225 #define CURL_VERSION_KERBEROS5 (1<<18)
3226 #define CURL_VERSION_UNIX_SOCKETS (1<<19)
3227 #define CURL_VERSION_PSL (1<<20)
3228
3229 #define CURL_VERSION_HTTPS_PROXY (1<<21)
3230 #define CURL_VERSION_MULTI_SSL (1<<22)
3231 #define CURL_VERSION_BROTLI (1<<23)
3232 #define CURL_VERSION_ALTSVC (1<<24)
3233 #define CURL_VERSION_HTTP3 (1<<25)
3234 #define CURL_VERSION_ZSTD (1<<26)
3235 #define CURL_VERSION_UNICODE (1<<27)
3236 #define CURL_VERSION_HSTS (1<<28)
3237 #define CURL_VERSION_GSASL (1<<29)
3238 #define CURL_VERSION_THREADSAFE (1<<30)
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248 CURL_EXTERN curl_version_info_data *curl_version_info(CURLversion stamp);
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259 CURL_EXTERN const char *curl_easy_strerror(CURLcode error);
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270 CURL_EXTERN const char *curl_share_strerror(CURLSHcode error);
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281 CURL_EXTERN CURLcode curl_easy_pause(CURL *curl, int action);
3282
3283 #define CURLPAUSE_RECV (1 << 0)
3284 #define CURLPAUSE_RECV_CONT 0
3285
3286 #define CURLPAUSE_SEND (1 << 2)
3287 #define CURLPAUSE_SEND_CONT 0
3288
3289 #define CURLPAUSE_ALL (CURLPAUSE_RECV | CURLPAUSE_SEND)
3290 #define CURLPAUSE_CONT (CURLPAUSE_RECV_CONT | CURLPAUSE_SEND_CONT)
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300 CURL_EXTERN CURLcode curl_easy_ssls_import(CURL *curl,
3301 const char *session_key,
3302 const unsigned char *shmac,
3303 size_t shmac_len,
3304 const unsigned char *sdata,
3305 size_t sdata_len);
3306
3307
3308
3309 typedef CURLcode curl_ssls_export_cb(CURL *curl,
3310 void *userptr,
3311 const char *session_key,
3312 const unsigned char *shmac,
3313 size_t shmac_len,
3314 const unsigned char *sdata,
3315 size_t sdata_len,
3316 curl_off_t valid_until,
3317 int ietf_tls_id,
3318 const char *alpn,
3319 size_t earlydata_max);
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331 CURL_EXTERN CURLcode curl_easy_ssls_export(CURL *curl,
3332 curl_ssls_export_cb *export_fn,
3333 void *userptr);
3334
3335 #ifdef __cplusplus
3336 }
3337 #endif
3338
3339
3340
3341 #include "easy.h" /* nothing in curl is fun without the easy stuff */
3342 #include "multi.h"
3343 #include "urlapi.h"
3344 #include "options.h"
3345 #include "header.h"
3346 #include "websockets.h"
3347 #include "mprintf.h"
3348
3349
3350 #if ((defined(__GNUC__) && defined(__GNUC_MINOR__) && \
3351 ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))) || \
3352 (defined(__clang__) && __clang_major__ >= 14)) && \
3353 !defined(__cplusplus) && !defined(CURL_DISABLE_TYPECHECK)
3354 #include "typecheck-gcc.h"
3355 #else
3356 #if defined(__STDC__) && (__STDC__ >= 1)
3357
3358
3359
3360
3361 #define curl_exactly_three_arguments(a, b, c) (a, b, c)
3362 #define curl_easy_setopt(handle, opt, param) \
3363 curl_easy_setopt curl_exactly_three_arguments(handle, opt, param)
3364 #define curl_easy_getinfo(handle, info, arg) \
3365 curl_easy_getinfo curl_exactly_three_arguments(handle, info, arg)
3366 #define curl_share_setopt(share, opt, param) \
3367 curl_share_setopt curl_exactly_three_arguments(share, opt, param)
3368 #define curl_multi_setopt(handle, opt, param) \
3369 curl_multi_setopt curl_exactly_three_arguments(handle, opt, param)
3370 #endif
3371 #endif
3372
3373 #endif