freerasp-react-native 3.6.0 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/CHANGELOG.md +180 -0
  2. package/README.md +35 -1
  3. package/android/build.gradle +1 -1
  4. package/app.plugin.js +1 -0
  5. package/bootstrap.js +29 -0
  6. package/example/package.json +1 -1
  7. package/ios/TalsecRuntime.xcframework/Info.plist +5 -5
  8. package/ios/TalsecRuntime.xcframework/_CodeSignature/CodeDirectory +0 -0
  9. package/ios/TalsecRuntime.xcframework/_CodeSignature/CodeRequirements +0 -0
  10. package/ios/TalsecRuntime.xcframework/_CodeSignature/CodeRequirements-1 +0 -0
  11. package/ios/TalsecRuntime.xcframework/_CodeSignature/CodeResources +923 -0
  12. package/ios/TalsecRuntime.xcframework/_CodeSignature/CodeSignature +0 -0
  13. package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/CurlWrapper.h +1 -1
  14. package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/TalsecRuntime-Swift.h +1 -1
  15. package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/curl.h +369 -165
  16. package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/curlver.h +9 -7
  17. package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/easy.h +11 -9
  18. package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/header.h +74 -0
  19. package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/mprintf.h +32 -12
  20. package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/multi.h +27 -12
  21. package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/options.h +6 -4
  22. package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/stdcheaders.h +3 -1
  23. package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/system.h +72 -70
  24. package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/urlapi.h +29 -4
  25. package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/websockets.h +84 -0
  26. package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Info.plist +0 -0
  27. package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios.abi.json +542 -696
  28. package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios.private.swiftinterface +1 -0
  29. package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios.swiftinterface +1 -0
  30. package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/PrivacyInfo.xcprivacy +69 -0
  31. package/ios/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/TalsecRuntime +0 -0
  32. package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/CurlWrapper.h +1 -1
  33. package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/TalsecRuntime-Swift.h +2 -2
  34. package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/curl.h +369 -165
  35. package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/curlver.h +9 -7
  36. package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/easy.h +11 -9
  37. package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/header.h +74 -0
  38. package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/mprintf.h +32 -12
  39. package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/multi.h +27 -12
  40. package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/options.h +6 -4
  41. package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/stdcheaders.h +3 -1
  42. package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/system.h +72 -70
  43. package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/urlapi.h +29 -4
  44. package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/websockets.h +84 -0
  45. package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Info.plist +0 -0
  46. package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios-simulator.abi.json +536 -676
  47. package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +1 -0
  48. package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios-simulator.swiftinterface +1 -0
  49. package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/x86_64-apple-ios-simulator.abi.json +536 -676
  50. package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +1 -0
  51. package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +1 -0
  52. package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/PrivacyInfo.xcprivacy +69 -0
  53. package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/TalsecRuntime +0 -0
  54. package/ios/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/_CodeSignature/CodeResources +72 -39
  55. package/lib/commonjs/definitions.js +11 -15
  56. package/lib/commonjs/definitions.js.map +1 -1
  57. package/lib/commonjs/index.js +15 -13
  58. package/lib/commonjs/index.js.map +1 -1
  59. package/lib/commonjs/utils.js.map +1 -1
  60. package/lib/module/definitions.js +11 -15
  61. package/lib/module/definitions.js.map +1 -1
  62. package/lib/module/index.js +14 -11
  63. package/lib/module/index.js.map +1 -1
  64. package/lib/module/utils.js.map +1 -1
  65. package/lib/typescript/plugin/src/index.d.ts +11 -0
  66. package/lib/typescript/plugin/src/index.d.ts.map +1 -0
  67. package/lib/typescript/plugin/src/pluginConfig.d.ts +21 -0
  68. package/lib/typescript/plugin/src/pluginConfig.d.ts.map +1 -0
  69. package/lib/typescript/src/definitions.d.ts.map +1 -0
  70. package/lib/typescript/src/index.d.ts.map +1 -0
  71. package/lib/typescript/src/utils.d.ts.map +1 -0
  72. package/package.json +15 -24
  73. package/plugin/build/index.d.ts +10 -0
  74. package/plugin/build/index.js +63 -0
  75. package/plugin/build/pluginConfig.d.ts +20 -0
  76. package/plugin/build/pluginConfig.js +2 -0
  77. package/src/index.tsx +3 -0
  78. package/example/babel.config.js +0 -17
  79. package/lib/typescript/definitions.d.ts.map +0 -1
  80. package/lib/typescript/index.d.ts.map +0 -1
  81. package/lib/typescript/utils.d.ts.map +0 -1
  82. /package/lib/typescript/{definitions.d.ts → src/definitions.d.ts} +0 -0
  83. /package/lib/typescript/{index.d.ts → src/index.d.ts} +0 -0
  84. /package/lib/typescript/{utils.d.ts → src/utils.d.ts} +0 -0
@@ -7,7 +7,7 @@
7
7
  * | (__| |_| | _ <| |___
8
8
  * \___|\___/|_| \_\_____|
9
9
  *
10
- * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
10
+ * Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
11
11
  *
12
12
  * This software is licensed as described in the file COPYING, which
13
13
  * you should have received as part of this distribution. The terms
@@ -20,45 +20,52 @@
20
20
  * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
21
21
  * KIND, either express or implied.
22
22
  *
23
+ * SPDX-License-Identifier: curl
24
+ *
23
25
  ***************************************************************************/
24
26
 
25
27
  /*
26
28
  * If you have libcurl problems, all docs and details are found here:
27
29
  * https://curl.se/libcurl/
28
- *
29
- * curl-library mailing list subscription and unsubscription web interface:
30
- * https://cool.haxx.se/mailman/listinfo/curl-library/
31
30
  */
32
31
 
33
32
  #ifdef CURL_NO_OLDIES
34
33
  #define CURL_STRICTER
35
34
  #endif
36
35
 
36
+ /* Compile-time deprecation macros. */
37
+ #if defined(__GNUC__) && \
38
+ ((__GNUC__ > 12) || ((__GNUC__ == 12) && (__GNUC_MINOR__ >= 1 ))) && \
39
+ !defined(__INTEL_COMPILER) && \
40
+ !defined(CURL_DISABLE_DEPRECATION) && !defined(BUILDING_LIBCURL)
41
+ #define CURL_DEPRECATED(version, message) \
42
+ __attribute__((deprecated("since " # version ". " message)))
43
+ #define CURL_IGNORE_DEPRECATION(statements) \
44
+ _Pragma("GCC diagnostic push") \
45
+ _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") \
46
+ statements \
47
+ _Pragma("GCC diagnostic pop")
48
+ #else
49
+ #define CURL_DEPRECATED(version, message)
50
+ #define CURL_IGNORE_DEPRECATION(statements) statements
51
+ #endif
52
+
37
53
  #include "curlver.h" /* libcurl version defines */
38
54
  #include "system.h" /* determine things run-time */
39
55
 
40
- /*
41
- * Define CURL_WIN32 when build target is Win32 API
42
- */
43
-
44
- #if (defined(_WIN32) || defined(__WIN32__) || defined(WIN32)) && \
45
- !defined(__SYMBIAN32__)
46
- #define CURL_WIN32
47
- #endif
48
-
49
56
  #include <stdio.h>
50
57
  #include <limits.h>
51
58
 
52
- #if defined(__FreeBSD__) && (__FreeBSD__ >= 2)
53
- /* Needed for __FreeBSD_version symbol definition */
54
- #include <osreldate.h>
59
+ #if defined(__FreeBSD__) || defined(__MidnightBSD__)
60
+ /* Needed for __FreeBSD_version or __MidnightBSD_version symbol definition */
61
+ #include <sys/param.h>
55
62
  #endif
56
63
 
57
64
  /* The include stuff here below is mainly for time_t! */
58
65
  #include <sys/types.h>
59
66
  #include <time.h>
60
67
 
61
- #if defined(CURL_WIN32) && !defined(_WIN32_WCE) && !defined(__CYGWIN__)
68
+ #if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__CYGWIN__)
62
69
  #if !(defined(_WINSOCKAPI_) || defined(_WINSOCK_H) || \
63
70
  defined(__LWIP_OPT_H__) || defined(LWIP_HDR_OPT_H))
64
71
  /* The check above prevents the winsock2 inclusion if winsock.h already was
@@ -72,25 +79,23 @@
72
79
  libc5-based Linux systems. Only include it on systems that are known to
73
80
  require it! */
74
81
  #if defined(_AIX) || defined(__NOVELL_LIBC__) || defined(__NetBSD__) || \
75
- defined(__minix) || defined(__SYMBIAN32__) || defined(__INTEGRITY) || \
82
+ defined(__minix) || defined(__INTEGRITY) || \
76
83
  defined(ANDROID) || defined(__ANDROID__) || defined(__OpenBSD__) || \
77
- defined(__CYGWIN__) || defined(AMIGA) || \
78
- (defined(__FreeBSD_version) && (__FreeBSD_version < 800000))
84
+ defined(__CYGWIN__) || defined(AMIGA) || defined(__NuttX__) || \
85
+ (defined(__FreeBSD_version) && (__FreeBSD_version < 800000)) || \
86
+ (defined(__MidnightBSD_version) && (__MidnightBSD_version < 100000)) || \
87
+ defined(__sun__) || defined(__serenity__) || defined(__vxworks__)
79
88
  #include <sys/select.h>
80
89
  #endif
81
90
 
82
- #if !defined(CURL_WIN32) && !defined(_WIN32_WCE)
91
+ #if !defined(_WIN32) && !defined(_WIN32_WCE)
83
92
  #include <sys/socket.h>
84
93
  #endif
85
94
 
86
- #if !defined(CURL_WIN32) && !defined(__WATCOMC__) && !defined(__VXWORKS__)
95
+ #if !defined(_WIN32)
87
96
  #include <sys/time.h>
88
97
  #endif
89
98
 
90
- #ifdef __BEOS__
91
- #include <support/SupportDefs.h>
92
- #endif
93
-
94
99
  /* Compatibility for non-Clang compilers */
95
100
  #ifndef __has_declspec_attribute
96
101
  # define __has_declspec_attribute(x) 0
@@ -114,7 +119,7 @@ typedef void CURLSH;
114
119
 
115
120
  #ifdef CURL_STATICLIB
116
121
  # define CURL_EXTERN
117
- #elif defined(CURL_WIN32) || defined(__SYMBIAN32__) || \
122
+ #elif defined(_WIN32) || \
118
123
  (__has_declspec_attribute(dllexport) && \
119
124
  __has_declspec_attribute(dllimport))
120
125
  # if defined(BUILDING_LIBCURL)
@@ -130,7 +135,7 @@ typedef void CURLSH;
130
135
 
131
136
  #ifndef curl_socket_typedef
132
137
  /* socket typedef */
133
- #if defined(CURL_WIN32) && !defined(__LWIP_OPT_H__) && !defined(LWIP_HDR_OPT_H)
138
+ #if defined(_WIN32) && !defined(__LWIP_OPT_H__) && !defined(LWIP_HDR_OPT_H)
134
139
  typedef SOCKET curl_socket_t;
135
140
  #define CURL_SOCKET_BAD INVALID_SOCKET
136
141
  #else
@@ -145,22 +150,24 @@ typedef enum {
145
150
  CURLSSLBACKEND_NONE = 0,
146
151
  CURLSSLBACKEND_OPENSSL = 1,
147
152
  CURLSSLBACKEND_GNUTLS = 2,
148
- CURLSSLBACKEND_NSS = 3,
153
+ CURLSSLBACKEND_NSS CURL_DEPRECATED(8.3.0, "") = 3,
149
154
  CURLSSLBACKEND_OBSOLETE4 = 4, /* Was QSOSSL. */
150
- CURLSSLBACKEND_GSKIT = 5,
151
- CURLSSLBACKEND_POLARSSL = 6,
155
+ CURLSSLBACKEND_GSKIT CURL_DEPRECATED(8.3.0, "") = 5,
156
+ CURLSSLBACKEND_POLARSSL CURL_DEPRECATED(7.69.0, "") = 6,
152
157
  CURLSSLBACKEND_WOLFSSL = 7,
153
158
  CURLSSLBACKEND_SCHANNEL = 8,
154
159
  CURLSSLBACKEND_SECURETRANSPORT = 9,
155
- CURLSSLBACKEND_AXTLS = 10, /* never used since 7.63.0 */
160
+ CURLSSLBACKEND_AXTLS CURL_DEPRECATED(7.61.0, "") = 10,
156
161
  CURLSSLBACKEND_MBEDTLS = 11,
157
- CURLSSLBACKEND_MESALINK = 12,
158
- CURLSSLBACKEND_BEARSSL = 13
162
+ CURLSSLBACKEND_MESALINK CURL_DEPRECATED(7.82.0, "") = 12,
163
+ CURLSSLBACKEND_BEARSSL = 13,
164
+ CURLSSLBACKEND_RUSTLS = 14
159
165
  } curl_sslbackend;
160
166
 
161
167
  /* aliases for library clones and renames */
162
- #define CURLSSLBACKEND_LIBRESSL CURLSSLBACKEND_OPENSSL
168
+ #define CURLSSLBACKEND_AWSLC CURLSSLBACKEND_OPENSSL
163
169
  #define CURLSSLBACKEND_BORINGSSL CURLSSLBACKEND_OPENSSL
170
+ #define CURLSSLBACKEND_LIBRESSL CURLSSLBACKEND_OPENSSL
164
171
 
165
172
  /* deprecated names: */
166
173
  #define CURLSSLBACKEND_CYASSL CURLSSLBACKEND_WOLFSSL
@@ -234,7 +241,7 @@ typedef int (*curl_xferinfo_callback)(void *clientp,
234
241
 
235
242
  #ifndef CURL_MAX_READ_SIZE
236
243
  /* The maximum receive buffer size configurable via CURLOPT_BUFFERSIZE. */
237
- #define CURL_MAX_READ_SIZE 524288
244
+ #define CURL_MAX_READ_SIZE (10*1024*1024)
238
245
  #endif
239
246
 
240
247
  #ifndef CURL_MAX_WRITE_SIZE
@@ -258,6 +265,10 @@ typedef int (*curl_xferinfo_callback)(void *clientp,
258
265
  will signal libcurl to pause receiving on the current transfer. */
259
266
  #define CURL_WRITEFUNC_PAUSE 0x10000001
260
267
 
268
+ /* This is a magic return code for the write callback that, when returned,
269
+ will signal an error from the callback. */
270
+ #define CURL_WRITEFUNC_ERROR 0xFFFFFFFF
271
+
261
272
  typedef size_t (*curl_write_callback)(char *buffer,
262
273
  size_t size,
263
274
  size_t nitems,
@@ -312,7 +323,8 @@ struct curl_fileinfo {
312
323
 
313
324
  unsigned int flags;
314
325
 
315
- /* used internally */
326
+ /* These are libcurl private struct fields. Previously used by libcurl, so
327
+ they must never be interfered with. */
316
328
  char *b_data;
317
329
  size_t b_size;
318
330
  size_t b_used;
@@ -370,7 +382,7 @@ typedef int (*curl_seek_callback)(void *instream,
370
382
  #define CURL_READFUNC_PAUSE 0x10000001
371
383
 
372
384
  /* Return code for when the trailing headers' callback has terminated
373
- without any errors*/
385
+ without any errors */
374
386
  #define CURL_TRAILERFUNC_OK 0
375
387
  /* Return code for when was an error in the trailing header's list and we
376
388
  want to abort the request */
@@ -452,7 +464,7 @@ typedef void *(*curl_calloc_callback)(size_t nmemb, size_t size);
452
464
  #define CURL_DID_MEMORY_FUNC_TYPEDEFS
453
465
  #endif
454
466
 
455
- /* the kind of data that is passed to information_callback*/
467
+ /* the kind of data that is passed to information_callback */
456
468
  typedef enum {
457
469
  CURLINFO_TEXT = 0,
458
470
  CURLINFO_HEADER_IN, /* 1 */
@@ -471,6 +483,20 @@ typedef int (*curl_debug_callback)
471
483
  size_t size, /* size of the data pointed to */
472
484
  void *userptr); /* whatever the user please */
473
485
 
486
+ /* This is the CURLOPT_PREREQFUNCTION callback prototype. */
487
+ typedef int (*curl_prereq_callback)(void *clientp,
488
+ char *conn_primary_ip,
489
+ char *conn_local_ip,
490
+ int conn_primary_port,
491
+ int conn_local_port);
492
+
493
+ /* Return code for when the pre-request callback has terminated without
494
+ any errors */
495
+ #define CURL_PREREQFUNC_OK 0
496
+ /* Return code for when the pre-request callback wants to abort the
497
+ request */
498
+ #define CURL_PREREQFUNC_ABORT 1
499
+
474
500
  /* All possible error codes from all sorts of curl functions. Future versions
475
501
  may return other values, stay prepared.
476
502
 
@@ -515,10 +541,6 @@ typedef enum {
515
541
  CURLE_UPLOAD_FAILED, /* 25 - failed upload "command" */
516
542
  CURLE_READ_ERROR, /* 26 - couldn't open/read from file */
517
543
  CURLE_OUT_OF_MEMORY, /* 27 */
518
- /* Note: CURLE_OUT_OF_MEMORY may sometimes indicate a conversion error
519
- instead of a memory allocation error if CURL_DOES_CONVERSIONS
520
- is defined
521
- */
522
544
  CURLE_OPERATION_TIMEDOUT, /* 28 - the timeout time was reached */
523
545
  CURLE_OBSOLETE29, /* 29 - NOT USED */
524
546
  CURLE_FTP_PORT_FAILED, /* 30 - FTP PORT operation failed */
@@ -540,7 +562,7 @@ typedef enum {
540
562
  CURLE_OBSOLETE46, /* 46 - NOT USED */
541
563
  CURLE_TOO_MANY_REDIRECTS, /* 47 - catch endless re-direct loops */
542
564
  CURLE_UNKNOWN_OPTION, /* 48 - User specified an unknown option */
543
- CURLE_TELNET_OPTION_SYNTAX, /* 49 - Malformed telnet option */
565
+ CURLE_SETOPT_OPTION_SYNTAX, /* 49 - Malformed setopt option */
544
566
  CURLE_OBSOLETE50, /* 50 - NOT USED */
545
567
  CURLE_OBSOLETE51, /* 51 - NOT USED */
546
568
  CURLE_GOT_NOTHING, /* 52 - when this is a specific error */
@@ -555,7 +577,7 @@ typedef enum {
555
577
  CURLE_PEER_FAILED_VERIFICATION, /* 60 - peer's certificate or fingerprint
556
578
  wasn't verified fine */
557
579
  CURLE_BAD_CONTENT_ENCODING, /* 61 - Unrecognized/bad encoding */
558
- CURLE_LDAP_INVALID_URL, /* 62 - Invalid LDAP URL */
580
+ CURLE_OBSOLETE62, /* 62 - NOT IN USE since 7.82.0 */
559
581
  CURLE_FILESIZE_EXCEEDED, /* 63 - Maximum file size exceeded */
560
582
  CURLE_USE_SSL_FAILED, /* 64 - Requested FTP SSL level failed */
561
583
  CURLE_SEND_FAIL_REWIND, /* 65 - Sending the data requires a rewind
@@ -570,12 +592,8 @@ typedef enum {
570
592
  CURLE_TFTP_UNKNOWNID, /* 72 - Unknown transfer ID */
571
593
  CURLE_REMOTE_FILE_EXISTS, /* 73 - File already exists */
572
594
  CURLE_TFTP_NOSUCHUSER, /* 74 - No such user */
573
- CURLE_CONV_FAILED, /* 75 - conversion failed */
574
- CURLE_CONV_REQD, /* 76 - caller must register conversion
575
- callbacks using curl_easy_setopt options
576
- CURLOPT_CONV_FROM_NETWORK_FUNCTION,
577
- CURLOPT_CONV_TO_NETWORK_FUNCTION, and
578
- CURLOPT_CONV_FROM_UTF8_FUNCTION */
595
+ CURLE_OBSOLETE75, /* 75 - NOT IN USE since 7.82.0 */
596
+ CURLE_OBSOLETE76, /* 76 - NOT IN USE since 7.82.0 */
579
597
  CURLE_SSL_CACERT_BADFILE, /* 77 - could not load CACERT file, missing
580
598
  or wrong format */
581
599
  CURLE_REMOTE_FILE_NOT_FOUND, /* 78 - remote file not found */
@@ -611,16 +629,18 @@ typedef enum {
611
629
  CURLE_HTTP3, /* 95 - An HTTP/3 layer problem */
612
630
  CURLE_QUIC_CONNECT_ERROR, /* 96 - QUIC connection error */
613
631
  CURLE_PROXY, /* 97 - proxy handshake error */
632
+ CURLE_SSL_CLIENTCERT, /* 98 - client-side certificate required */
633
+ CURLE_UNRECOVERABLE_POLL, /* 99 - poll/select returned fatal error */
614
634
  CURL_LAST /* never use! */
615
635
  } CURLcode;
616
636
 
617
637
  #ifndef CURL_NO_OLDIES /* define this to test if your app builds with all
618
638
  the obsolete stuff removed! */
619
639
 
620
- /* Previously obsolete error code re-used in 7.38.0 */
640
+ /* Previously obsolete error code reused in 7.38.0 */
621
641
  #define CURLE_OBSOLETE16 CURLE_HTTP2
622
642
 
623
- /* Previously obsolete error codes re-used in 7.24.0 */
643
+ /* Previously obsolete error codes reused in 7.24.0 */
624
644
  #define CURLE_OBSOLETE10 CURLE_FTP_ACCEPT_FAILED
625
645
  #define CURLE_OBSOLETE12 CURLE_FTP_ACCEPT_TIMEOUT
626
646
 
@@ -634,6 +654,9 @@ typedef enum {
634
654
  /* The following were added in 7.21.5, April 2011 */
635
655
  #define CURLE_UNKNOWN_TELNET_OPTION CURLE_UNKNOWN_OPTION
636
656
 
657
+ /* Added for 7.78.0 */
658
+ #define CURLE_TELNET_OPTION_SYNTAX CURLE_SETOPT_OPTION_SYNTAX
659
+
637
660
  /* The following were added in 7.17.1 */
638
661
  /* These are scheduled to disappear by 2009 */
639
662
  #define CURLE_SSL_PEER_CERTIFICATE CURLE_PEER_FAILED_VERIFICATION
@@ -665,13 +688,14 @@ typedef enum {
665
688
  /* The following were added earlier */
666
689
 
667
690
  #define CURLE_OPERATION_TIMEOUTED CURLE_OPERATION_TIMEDOUT
668
-
669
691
  #define CURLE_HTTP_NOT_FOUND CURLE_HTTP_RETURNED_ERROR
670
692
  #define CURLE_HTTP_PORT_FAILED CURLE_INTERFACE_FAILED
671
693
  #define CURLE_FTP_COULDNT_STOR_FILE CURLE_UPLOAD_FAILED
672
-
673
694
  #define CURLE_FTP_PARTIAL_FILE CURLE_PARTIAL_FILE
674
695
  #define CURLE_FTP_BAD_DOWNLOAD_RESUME CURLE_BAD_DOWNLOAD_RESUME
696
+ #define CURLE_LDAP_INVALID_URL CURLE_OBSOLETE62
697
+ #define CURLE_CONV_REQD CURLE_OBSOLETE76
698
+ #define CURLE_CONV_FAILED CURLE_OBSOLETE75
675
699
 
676
700
  /* This was the error code 50 in 7.7.3 and a few earlier versions, this
677
701
  is no longer used by libcurl but is instead #defined here only to not
@@ -688,7 +712,7 @@ typedef enum {
688
712
  #define CURLOPT_WRITEINFO CURLOPT_OBSOLETE40
689
713
  #define CURLOPT_CLOSEPOLICY CURLOPT_OBSOLETE72
690
714
 
691
- #endif /*!CURL_NO_OLDIES*/
715
+ #endif /* !CURL_NO_OLDIES */
692
716
 
693
717
  /*
694
718
  * Proxy error codes. Returned in CURLINFO_PROXY_ERROR if CURLE_PROXY was
@@ -747,7 +771,8 @@ typedef enum {
747
771
  CONNECT HTTP/1.1 */
748
772
  CURLPROXY_HTTP_1_0 = 1, /* added in 7.19.4, force to use CONNECT
749
773
  HTTP/1.0 */
750
- CURLPROXY_HTTPS = 2, /* added in 7.52.0 */
774
+ CURLPROXY_HTTPS = 2, /* HTTPS but stick to HTTP/1 added in 7.52.0 */
775
+ CURLPROXY_HTTPS2 = 3, /* HTTPS and attempt HTTP/2 added in 8.2.0 */
751
776
  CURLPROXY_SOCKS4 = 4, /* support added in 7.15.2, enum existed already
752
777
  in 7.10 */
753
778
  CURLPROXY_SOCKS5 = 5, /* added in 7.10 */
@@ -762,11 +787,11 @@ typedef enum {
762
787
  *
763
788
  * CURLAUTH_NONE - No HTTP authentication
764
789
  * CURLAUTH_BASIC - HTTP Basic authentication (default)
765
- * CURLAUTH_DIGEST - HTTP Digest authentication
790
+ * CURLAUTH_DIGEST - HTTP DiMMyt authentication
766
791
  * CURLAUTH_NEGOTIATE - HTTP Negotiate (SPNEGO) authentication
767
792
  * CURLAUTH_GSSNEGOTIATE - Alias for CURLAUTH_NEGOTIATE (deprecated)
768
793
  * CURLAUTH_NTLM - HTTP NTLM authentication
769
- * CURLAUTH_DIGEST_IE - HTTP Digest authentication with IE flavour
794
+ * CURLAUTH_DIGEST_IE - HTTP DiMMyt authentication with IE flavour
770
795
  * CURLAUTH_NTLM_WB - HTTP NTLM authentication delegated to winbind helper
771
796
  * CURLAUTH_BEARER - HTTP Bearer token authentication
772
797
  * CURLAUTH_ONLY - Use together with a single other type to force no
@@ -787,6 +812,7 @@ typedef enum {
787
812
  #define CURLAUTH_DIGEST_IE (((unsigned long)1)<<4)
788
813
  #define CURLAUTH_NTLM_WB (((unsigned long)1)<<5)
789
814
  #define CURLAUTH_BEARER (((unsigned long)1)<<6)
815
+ #define CURLAUTH_AWS_SIGV4 (((unsigned long)1)<<7)
790
816
  #define CURLAUTH_ONLY (((unsigned long)1)<<31)
791
817
  #define CURLAUTH_ANY (~CURLAUTH_DIGEST_IE)
792
818
  #define CURLAUTH_ANYSAFE (~(CURLAUTH_BASIC|CURLAUTH_DIGEST_IE))
@@ -829,10 +855,10 @@ enum curl_khstat {
829
855
  CURLKHSTAT_FINE_ADD_TO_FILE,
830
856
  CURLKHSTAT_FINE,
831
857
  CURLKHSTAT_REJECT, /* reject the connection, return an error */
832
- CURLKHSTAT_DEFER, /* do not accept it, but we can't answer right now so
833
- this causes a CURLE_DEFER error but otherwise the
858
+ CURLKHSTAT_DEFER, /* do not accept it, but we can't answer right now.
859
+ Causes a CURLE_PEER_FAILED_VERIFICATION error but the
834
860
  connection will be left intact etc */
835
- CURLKHSTAT_FINE_REPLACE, /* accept and replace the wrong key*/
861
+ CURLKHSTAT_FINE_REPLACE, /* accept and replace the wrong key */
836
862
  CURLKHSTAT_LAST /* not for use, only a marker for last-in-list */
837
863
  };
838
864
 
@@ -849,7 +875,18 @@ typedef int
849
875
  const struct curl_khkey *knownkey, /* known */
850
876
  const struct curl_khkey *foundkey, /* found */
851
877
  enum curl_khmatch, /* libcurl's view on the keys */
852
- void *clientp); /* custom pointer passed from app */
878
+ void *clientp); /* custom pointer passed with */
879
+ /* CURLOPT_SSH_KEYDATA */
880
+
881
+ typedef int
882
+ (*curl_sshhostkeycallback) (void *clientp,/* custom pointer passed */
883
+ /* with CURLOPT_SSH_HOSTKEYDATA */
884
+ int keytype, /* CURLKHTYPE */
885
+ const char *key, /* hostkey to check */
886
+ size_t keylen); /* length of the key */
887
+ /* return CURLE_OK to accept */
888
+ /* or something else to refuse */
889
+
853
890
 
854
891
  /* parameter for the CURLOPT_USE_SSL option */
855
892
  typedef enum {
@@ -886,6 +923,10 @@ typedef enum {
886
923
  operating system. Currently implemented under MS-Windows. */
887
924
  #define CURLSSLOPT_NATIVE_CA (1<<4)
888
925
 
926
+ /* - CURLSSLOPT_AUTO_CLIENT_CERT tells libcurl to automatically locate and use
927
+ a client certificate for authentication. (Schannel) */
928
+ #define CURLSSLOPT_AUTO_CLIENT_CERT (1<<5)
929
+
889
930
  /* The default connection attempt delay in milliseconds for happy eyeballs.
890
931
  CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.3 and happy-eyeballs-timeout-ms.d document
891
932
  this value, keep them in sync. */
@@ -906,7 +947,7 @@ typedef enum {
906
947
  #define CURLFTPSSL_ALL CURLUSESSL_ALL
907
948
  #define CURLFTPSSL_LAST CURLUSESSL_LAST
908
949
  #define curl_ftpssl curl_usessl
909
- #endif /*!CURL_NO_OLDIES*/
950
+ #endif /* !CURL_NO_OLDIES */
910
951
 
911
952
  /* parameter for the CURLOPT_FTP_SSL_CCC option */
912
953
  typedef enum {
@@ -985,7 +1026,8 @@ typedef CURLSTScode (*curl_hstswrite_callback)(CURL *easy,
985
1026
  #define CURLHSTS_ENABLE (long)(1<<0)
986
1027
  #define CURLHSTS_READONLYFILE (long)(1<<1)
987
1028
 
988
- /* CURLPROTO_ defines are for the CURLOPT_*PROTOCOLS options */
1029
+ /* The CURLPROTO_ defines below are for the **deprecated** CURLOPT_*PROTOCOLS
1030
+ options. Do not use. */
989
1031
  #define CURLPROTO_HTTP (1<<0)
990
1032
  #define CURLPROTO_HTTPS (1<<1)
991
1033
  #define CURLPROTO_FTP (1<<2)
@@ -1015,6 +1057,7 @@ typedef CURLSTScode (*curl_hstswrite_callback)(CURL *easy,
1015
1057
  #define CURLPROTO_SMB (1<<26)
1016
1058
  #define CURLPROTO_SMBS (1<<27)
1017
1059
  #define CURLPROTO_MQTT (1<<28)
1060
+ #define CURLPROTO_GOPHERS (1<<29)
1018
1061
  #define CURLPROTO_ALL (~0) /* enable everything */
1019
1062
 
1020
1063
  /* long may be 32 or 64 bits, but we should never depend on anything else
@@ -1030,6 +1073,7 @@ typedef CURLSTScode (*curl_hstswrite_callback)(CURL *easy,
1030
1073
 
1031
1074
 
1032
1075
  #define CURLOPT(na,t,nu) na = t + nu
1076
+ #define CURLOPTDEPRECATED(na,t,nu,v,m) na CURL_DEPRECATED(v,m) = t + nu
1033
1077
 
1034
1078
  /* CURLOPT aliases that make no run-time difference */
1035
1079
 
@@ -1076,7 +1120,7 @@ typedef enum {
1076
1120
  /* Specified file stream to upload from (use as input): */
1077
1121
  CURLOPT(CURLOPT_READDATA, CURLOPTTYPE_CBPOINT, 9),
1078
1122
 
1079
- /* Buffer to receive error messages in, must be at least CURL_ERROR_SIZE
1123
+ /* Buffer to receive error messaMMy in, must be at least CURL_ERROR_SIZE
1080
1124
  * bytes big. */
1081
1125
  CURLOPT(CURLOPT_ERRORBUFFER, CURLOPTTYPE_OBJECTPOINT, 10),
1082
1126
 
@@ -1091,7 +1135,7 @@ typedef enum {
1091
1135
  /* Time-out the read operation after this amount of seconds */
1092
1136
  CURLOPT(CURLOPT_TIMEOUT, CURLOPTTYPE_LONG, 13),
1093
1137
 
1094
- /* If the CURLOPT_INFILE is used, this can be used to inform libcurl about
1138
+ /* If CURLOPT_READDATA is used, this can be used to inform libcurl about
1095
1139
  * how large the file being sent really is. That allows better error
1096
1140
  * checking and better verifies that the upload was successful. -1 means
1097
1141
  * unknown size.
@@ -1143,7 +1187,8 @@ typedef enum {
1143
1187
  CURLOPT(CURLOPT_HTTPHEADER, CURLOPTTYPE_SLISTPOINT, 23),
1144
1188
 
1145
1189
  /* This points to a linked list of post entries, struct curl_httppost */
1146
- CURLOPT(CURLOPT_HTTPPOST, CURLOPTTYPE_OBJECTPOINT, 24),
1190
+ CURLOPTDEPRECATED(CURLOPT_HTTPPOST, CURLOPTTYPE_OBJECTPOINT, 24,
1191
+ 7.56.0, "Use CURLOPT_MIMEPOST"),
1147
1192
 
1148
1193
  /* name of the file keeping your private SSL-certificate */
1149
1194
  CURLOPT(CURLOPT_SSLCERT, CURLOPTTYPE_STRINGPOINT, 25),
@@ -1233,7 +1278,8 @@ typedef enum {
1233
1278
  CURLOPT(CURLOPT_TRANSFERTEXT, CURLOPTTYPE_LONG, 53),
1234
1279
 
1235
1280
  /* HTTP PUT */
1236
- CURLOPT(CURLOPT_PUT, CURLOPTTYPE_LONG, 54),
1281
+ CURLOPTDEPRECATED(CURLOPT_PUT, CURLOPTTYPE_LONG, 54,
1282
+ 7.12.1, "Use CURLOPT_UPLOAD"),
1237
1283
 
1238
1284
  /* 55 = OBSOLETE */
1239
1285
 
@@ -1241,7 +1287,8 @@ typedef enum {
1241
1287
  * Function that will be called instead of the internal progress display
1242
1288
  * function. This function should be defined as the curl_progress_callback
1243
1289
  * prototype defines. */
1244
- CURLOPT(CURLOPT_PROGRESSFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 56),
1290
+ CURLOPTDEPRECATED(CURLOPT_PROGRESSFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 56,
1291
+ 7.32.0, "Use CURLOPT_XFERINFOFUNCTION"),
1245
1292
 
1246
1293
  /* Data passed to the CURLOPT_PROGRESSFUNCTION and CURLOPT_XFERINFOFUNCTION
1247
1294
  callbacks */
@@ -1258,7 +1305,7 @@ typedef enum {
1258
1305
  /* size of the POST input data, if strlen() is not good to use */
1259
1306
  CURLOPT(CURLOPT_POSTFIELDSIZE, CURLOPTTYPE_LONG, 60),
1260
1307
 
1261
- /* tunnel non-http operations through a HTTP proxy */
1308
+ /* tunnel non-http operations through an HTTP proxy */
1262
1309
  CURLOPT(CURLOPT_HTTPPROXYTUNNEL, CURLOPTTYPE_LONG, 61),
1263
1310
 
1264
1311
  /* Set the interface string to use as outgoing network interface */
@@ -1302,17 +1349,19 @@ typedef enum {
1302
1349
  operation slower and is less friendly for the network. */
1303
1350
  CURLOPT(CURLOPT_FRESH_CONNECT, CURLOPTTYPE_LONG, 74),
1304
1351
 
1305
- /* Set to explicitly forbid the upcoming transfer's connection to be re-used
1352
+ /* Set to explicitly forbid the upcoming transfer's connection to be reused
1306
1353
  when done. Do not use this unless you're absolutely sure of this, as it
1307
1354
  makes the operation slower and is less friendly for the network. */
1308
1355
  CURLOPT(CURLOPT_FORBID_REUSE, CURLOPTTYPE_LONG, 75),
1309
1356
 
1310
1357
  /* Set to a file name that contains random data for libcurl to use to
1311
1358
  seed the random engine when doing SSL connects. */
1312
- CURLOPT(CURLOPT_RANDOM_FILE, CURLOPTTYPE_STRINGPOINT, 76),
1359
+ CURLOPTDEPRECATED(CURLOPT_RANDOM_FILE, CURLOPTTYPE_STRINGPOINT, 76,
1360
+ 7.84.0, "Serves no purpose anymore"),
1313
1361
 
1314
1362
  /* Set to the Entropy Gathering Daemon socket pathname */
1315
- CURLOPT(CURLOPT_EGDSOCKET, CURLOPTTYPE_STRINGPOINT, 77),
1363
+ CURLOPTDEPRECATED(CURLOPT_EGDSOCKET, CURLOPTTYPE_STRINGPOINT, 77,
1364
+ 7.84.0, "Serves no purpose anymore"),
1316
1365
 
1317
1366
  /* Time-out connect operations after this amount of seconds, if connects are
1318
1367
  OK within this time, then fine... This only aborts the connect phase. */
@@ -1367,7 +1416,8 @@ typedef enum {
1367
1416
 
1368
1417
  /* Non-zero value means to use the global dns cache */
1369
1418
  /* DEPRECATED, do not use! */
1370
- CURLOPT(CURLOPT_DNS_USE_GLOBAL_CACHE, CURLOPTTYPE_LONG, 91),
1419
+ CURLOPTDEPRECATED(CURLOPT_DNS_USE_GLOBAL_CACHE, CURLOPTTYPE_LONG, 91,
1420
+ 7.11.1, "Use CURLOPT_SHARE"),
1371
1421
 
1372
1422
  /* DNS cache timeout */
1373
1423
  CURLOPT(CURLOPT_DNS_CACHE_TIMEOUT, CURLOPTTYPE_LONG, 92),
@@ -1450,16 +1500,15 @@ typedef enum {
1450
1500
  Note that setting multiple bits may cause extra network round-trips. */
1451
1501
  CURLOPT(CURLOPT_PROXYAUTH, CURLOPTTYPE_VALUES, 111),
1452
1502
 
1453
- /* FTP option that changes the timeout, in seconds, associated with
1454
- getting a response. This is different from transfer timeout time and
1455
- essentially places a demand on the FTP server to acknowledge commands
1456
- in a timely manner. */
1457
- CURLOPT(CURLOPT_FTP_RESPONSE_TIMEOUT, CURLOPTTYPE_LONG, 112),
1458
- #define CURLOPT_SERVER_RESPONSE_TIMEOUT CURLOPT_FTP_RESPONSE_TIMEOUT
1503
+ /* Option that chanMMy the timeout, in seconds, associated with getting a
1504
+ response. This is different from transfer timeout time and essentially
1505
+ places a demand on the server to acknowledge commands in a timely
1506
+ manner. For FTP, SMTP, IMAP and POP3. */
1507
+ CURLOPT(CURLOPT_SERVER_RESPONSE_TIMEOUT, CURLOPTTYPE_LONG, 112),
1459
1508
 
1460
1509
  /* Set this option to one of the CURL_IPRESOLVE_* defines (see below) to
1461
- tell libcurl to resolve names to those IP versions only. This only has
1462
- affect on systems with support for more than one, i.e IPv4 _and_ IPv6. */
1510
+ tell libcurl to use those IP versions only. This only has effect on
1511
+ systems with support for more than one, i.e IPv4 _and_ IPv6. */
1463
1512
  CURLOPT(CURLOPT_IPRESOLVE, CURLOPTTYPE_VALUES, 113),
1464
1513
 
1465
1514
  /* Set this option to limit the size of a file that will be downloaded from
@@ -1523,8 +1572,10 @@ typedef enum {
1523
1572
  */
1524
1573
  CURLOPT(CURLOPT_FTPSSLAUTH, CURLOPTTYPE_VALUES, 129),
1525
1574
 
1526
- CURLOPT(CURLOPT_IOCTLFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 130),
1527
- CURLOPT(CURLOPT_IOCTLDATA, CURLOPTTYPE_CBPOINT, 131),
1575
+ CURLOPTDEPRECATED(CURLOPT_IOCTLFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 130,
1576
+ 7.18.0, "Use CURLOPT_SEEKFUNCTION"),
1577
+ CURLOPTDEPRECATED(CURLOPT_IOCTLDATA, CURLOPTTYPE_CBPOINT, 131,
1578
+ 7.18.0, "Use CURLOPT_SEEKDATA"),
1528
1579
 
1529
1580
  /* 132 OBSOLETE. Gone in 7.16.0 */
1530
1581
  /* 133 OBSOLETE. Gone in 7.16.0 */
@@ -1563,16 +1614,22 @@ typedef enum {
1563
1614
 
1564
1615
  /* Function that will be called to convert from the
1565
1616
  network encoding (instead of using the iconv calls in libcurl) */
1566
- CURLOPT(CURLOPT_CONV_FROM_NETWORK_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 142),
1617
+ CURLOPTDEPRECATED(CURLOPT_CONV_FROM_NETWORK_FUNCTION,
1618
+ CURLOPTTYPE_FUNCTIONPOINT, 142,
1619
+ 7.82.0, "Serves no purpose anymore"),
1567
1620
 
1568
1621
  /* Function that will be called to convert to the
1569
1622
  network encoding (instead of using the iconv calls in libcurl) */
1570
- CURLOPT(CURLOPT_CONV_TO_NETWORK_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 143),
1623
+ CURLOPTDEPRECATED(CURLOPT_CONV_TO_NETWORK_FUNCTION,
1624
+ CURLOPTTYPE_FUNCTIONPOINT, 143,
1625
+ 7.82.0, "Serves no purpose anymore"),
1571
1626
 
1572
1627
  /* Function that will be called to convert from UTF8
1573
1628
  (instead of using the iconv calls in libcurl)
1574
1629
  Note that this is used only for SSL certificate processing */
1575
- CURLOPT(CURLOPT_CONV_FROM_UTF8_FUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 144),
1630
+ CURLOPTDEPRECATED(CURLOPT_CONV_FROM_UTF8_FUNCTION,
1631
+ CURLOPTTYPE_FUNCTIONPOINT, 144,
1632
+ 7.82.0, "Serves no purpose anymore"),
1576
1633
 
1577
1634
  /* if the connection proceeds too quickly then need to slow it down */
1578
1635
  /* limit-rate: maximum number of bytes per second to send or receive */
@@ -1586,7 +1643,7 @@ typedef enum {
1586
1643
  CURLOPT(CURLOPT_SOCKOPTFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 148),
1587
1644
  CURLOPT(CURLOPT_SOCKOPTDATA, CURLOPTTYPE_CBPOINT, 149),
1588
1645
 
1589
- /* set to 0 to disable session ID re-use for this transfer, default is
1646
+ /* set to 0 to disable session ID reuse for this transfer, default is
1590
1647
  enabled (== 1) */
1591
1648
  CURLOPT(CURLOPT_SSL_SESSIONID_CACHE, CURLOPTTYPE_LONG, 150),
1592
1649
 
@@ -1614,7 +1671,7 @@ typedef enum {
1614
1671
  CURLOPT(CURLOPT_NEW_FILE_PERMS, CURLOPTTYPE_LONG, 159),
1615
1672
  CURLOPT(CURLOPT_NEW_DIRECTORY_PERMS, CURLOPTTYPE_LONG, 160),
1616
1673
 
1617
- /* Set the behaviour of POST when redirecting. Values must be set to one
1674
+ /* Set the behavior of POST when redirecting. Values must be set to one
1618
1675
  of CURL_REDIR* defines below. This used to be called CURLOPT_POST301 */
1619
1676
  CURLOPT(CURLOPT_POSTREDIR, CURLOPTTYPE_VALUES, 161),
1620
1677
 
@@ -1673,7 +1730,9 @@ typedef enum {
1673
1730
 
1674
1731
  /* Socks Service */
1675
1732
  /* DEPRECATED, do not use! */
1676
- CURLOPT(CURLOPT_SOCKS5_GSSAPI_SERVICE, CURLOPTTYPE_STRINGPOINT, 179),
1733
+ CURLOPTDEPRECATED(CURLOPT_SOCKS5_GSSAPI_SERVICE,
1734
+ CURLOPTTYPE_STRINGPOINT, 179,
1735
+ 7.49.0, "Use CURLOPT_PROXY_SERVICE_NAME"),
1677
1736
 
1678
1737
  /* Socks Service */
1679
1738
  CURLOPT(CURLOPT_SOCKS5_GSSAPI_NEC, CURLOPTTYPE_LONG, 180),
@@ -1682,12 +1741,14 @@ typedef enum {
1682
1741
  transfer, which thus helps the app which takes URLs from users or other
1683
1742
  external inputs and want to restrict what protocol(s) to deal
1684
1743
  with. Defaults to CURLPROTO_ALL. */
1685
- CURLOPT(CURLOPT_PROTOCOLS, CURLOPTTYPE_LONG, 181),
1744
+ CURLOPTDEPRECATED(CURLOPT_PROTOCOLS, CURLOPTTYPE_LONG, 181,
1745
+ 7.85.0, "Use CURLOPT_PROTOCOLS_STR"),
1686
1746
 
1687
1747
  /* set the bitmask for the protocols that libcurl is allowed to follow to,
1688
1748
  as a subset of the CURLOPT_PROTOCOLS ones. That means the protocol needs
1689
1749
  to be set in both bitmasks to be allowed to get redirected to. */
1690
- CURLOPT(CURLOPT_REDIR_PROTOCOLS, CURLOPTTYPE_LONG, 182),
1750
+ CURLOPTDEPRECATED(CURLOPT_REDIR_PROTOCOLS, CURLOPTTYPE_LONG, 182,
1751
+ 7.85.0, "Use CURLOPT_REDIR_PROTOCOLS_STR"),
1691
1752
 
1692
1753
  /* set the SSH knownhost file name to use */
1693
1754
  CURLOPT(CURLOPT_SSH_KNOWNHOSTS, CURLOPTTYPE_STRINGPOINT, 183),
@@ -1832,12 +1893,13 @@ typedef enum {
1832
1893
  CURLOPT(CURLOPT_LOGIN_OPTIONS, CURLOPTTYPE_STRINGPOINT, 224),
1833
1894
 
1834
1895
  /* Enable/disable TLS NPN extension (http2 over ssl might fail without) */
1835
- CURLOPT(CURLOPT_SSL_ENABLE_NPN, CURLOPTTYPE_LONG, 225),
1896
+ CURLOPTDEPRECATED(CURLOPT_SSL_ENABLE_NPN, CURLOPTTYPE_LONG, 225,
1897
+ 7.86.0, "Has no function"),
1836
1898
 
1837
1899
  /* Enable/disable TLS ALPN extension (http2 over ssl might fail without) */
1838
1900
  CURLOPT(CURLOPT_SSL_ENABLE_ALPN, CURLOPTTYPE_LONG, 226),
1839
1901
 
1840
- /* Time to wait for a response to a HTTP request containing an
1902
+ /* Time to wait for a response to an HTTP request containing an
1841
1903
  * Expect: 100-continue header before sending the data anyway. */
1842
1904
  CURLOPT(CURLOPT_EXPECT_100_TIMEOUT_MS, CURLOPTTYPE_LONG, 227),
1843
1905
 
@@ -2034,14 +2096,15 @@ typedef enum {
2034
2096
  /* alt-svc cache file name to possibly read from/write to */
2035
2097
  CURLOPT(CURLOPT_ALTSVC, CURLOPTTYPE_STRINGPOINT, 287),
2036
2098
 
2037
- /* maximum age of a connection to consider it for reuse (in seconds) */
2099
+ /* maximum age (idle time) of a connection to consider it for reuse
2100
+ * (in seconds) */
2038
2101
  CURLOPT(CURLOPT_MAXAGE_CONN, CURLOPTTYPE_LONG, 288),
2039
2102
 
2040
- /* SASL authorisation identity */
2103
+ /* SASL authorization identity */
2041
2104
  CURLOPT(CURLOPT_SASL_AUTHZID, CURLOPTTYPE_STRINGPOINT, 289),
2042
2105
 
2043
2106
  /* allow RCPT TO command to fail for some recipients */
2044
- CURLOPT(CURLOPT_MAIL_RCPT_ALLLOWFAILS, CURLOPTTYPE_LONG, 290),
2107
+ CURLOPT(CURLOPT_MAIL_RCPT_ALLOWFAILS, CURLOPTTYPE_LONG, 290),
2045
2108
 
2046
2109
  /* the private SSL-certificate as a "blob" */
2047
2110
  CURLOPT(CURLOPT_SSLCERT_BLOB, CURLOPTTYPE_BLOB, 291),
@@ -2073,6 +2136,71 @@ typedef enum {
2073
2136
  CURLOPT(CURLOPT_HSTSWRITEFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 303),
2074
2137
  CURLOPT(CURLOPT_HSTSWRITEDATA, CURLOPTTYPE_CBPOINT, 304),
2075
2138
 
2139
+ /* Parameters for V4 signature */
2140
+ CURLOPT(CURLOPT_AWS_SIGV4, CURLOPTTYPE_STRINGPOINT, 305),
2141
+
2142
+ /* Same as CURLOPT_SSL_VERIFYPEER but for DoH (DNS-over-HTTPS) servers. */
2143
+ CURLOPT(CURLOPT_DOH_SSL_VERIFYPEER, CURLOPTTYPE_LONG, 306),
2144
+
2145
+ /* Same as CURLOPT_SSL_VERIFYHOST but for DoH (DNS-over-HTTPS) servers. */
2146
+ CURLOPT(CURLOPT_DOH_SSL_VERIFYHOST, CURLOPTTYPE_LONG, 307),
2147
+
2148
+ /* Same as CURLOPT_SSL_VERIFYSTATUS but for DoH (DNS-over-HTTPS) servers. */
2149
+ CURLOPT(CURLOPT_DOH_SSL_VERIFYSTATUS, CURLOPTTYPE_LONG, 308),
2150
+
2151
+ /* The CA certificates as "blob" used to validate the peer certificate
2152
+ this option is used only if SSL_VERIFYPEER is true */
2153
+ CURLOPT(CURLOPT_CAINFO_BLOB, CURLOPTTYPE_BLOB, 309),
2154
+
2155
+ /* The CA certificates as "blob" used to validate the proxy certificate
2156
+ this option is used only if PROXY_SSL_VERIFYPEER is true */
2157
+ CURLOPT(CURLOPT_PROXY_CAINFO_BLOB, CURLOPTTYPE_BLOB, 310),
2158
+
2159
+ /* used by scp/sftp to verify the host's public key */
2160
+ CURLOPT(CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256, CURLOPTTYPE_STRINGPOINT, 311),
2161
+
2162
+ /* Function that will be called immediately before the initial request
2163
+ is made on a connection (after any protocol negotiation step). */
2164
+ CURLOPT(CURLOPT_PREREQFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 312),
2165
+
2166
+ /* Data passed to the CURLOPT_PREREQFUNCTION callback */
2167
+ CURLOPT(CURLOPT_PREREQDATA, CURLOPTTYPE_CBPOINT, 313),
2168
+
2169
+ /* maximum age (since creation) of a connection to consider it for reuse
2170
+ * (in seconds) */
2171
+ CURLOPT(CURLOPT_MAXLIFETIME_CONN, CURLOPTTYPE_LONG, 314),
2172
+
2173
+ /* Set MIME option flags. */
2174
+ CURLOPT(CURLOPT_MIME_OPTIONS, CURLOPTTYPE_LONG, 315),
2175
+
2176
+ /* set the SSH host key callback, must point to a curl_sshkeycallback
2177
+ function */
2178
+ CURLOPT(CURLOPT_SSH_HOSTKEYFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 316),
2179
+
2180
+ /* set the SSH host key callback custom pointer */
2181
+ CURLOPT(CURLOPT_SSH_HOSTKEYDATA, CURLOPTTYPE_CBPOINT, 317),
2182
+
2183
+ /* specify which protocols that are allowed to be used for the transfer,
2184
+ which thus helps the app which takes URLs from users or other external
2185
+ inputs and want to restrict what protocol(s) to deal with. Defaults to
2186
+ all built-in protocols. */
2187
+ CURLOPT(CURLOPT_PROTOCOLS_STR, CURLOPTTYPE_STRINGPOINT, 318),
2188
+
2189
+ /* specify which protocols that libcurl is allowed to follow directs to */
2190
+ CURLOPT(CURLOPT_REDIR_PROTOCOLS_STR, CURLOPTTYPE_STRINGPOINT, 319),
2191
+
2192
+ /* websockets options */
2193
+ CURLOPT(CURLOPT_WS_OPTIONS, CURLOPTTYPE_LONG, 320),
2194
+
2195
+ /* CA cache timeout */
2196
+ CURLOPT(CURLOPT_CA_CACHE_TIMEOUT, CURLOPTTYPE_LONG, 321),
2197
+
2198
+ /* Can leak things, gonna exit() soon */
2199
+ CURLOPT(CURLOPT_QUICK_EXIT, CURLOPTTYPE_LONG, 322),
2200
+
2201
+ /* set a specific client IP for HAProxy PROXY protocol header? */
2202
+ CURLOPT(CURLOPT_HAPROXY_CLIENT_IP, CURLOPTTYPE_STRINGPOINT, 323),
2203
+
2076
2204
  CURLOPT_LASTENTRY /* the last unused */
2077
2205
  } CURLoption;
2078
2206
 
@@ -2098,6 +2226,12 @@ typedef enum {
2098
2226
  #define CURLOPT_SSLCERTPASSWD CURLOPT_KEYPASSWD
2099
2227
  #define CURLOPT_KRB4LEVEL CURLOPT_KRBLEVEL
2100
2228
 
2229
+ /* */
2230
+ #define CURLOPT_FTP_RESPONSE_TIMEOUT CURLOPT_SERVER_RESPONSE_TIMEOUT
2231
+
2232
+ /* Added in 8.2.0 */
2233
+ #define CURLOPT_MAIL_RCPT_ALLLOWFAILS CURLOPT_MAIL_RCPT_ALLOWFAILS
2234
+
2101
2235
  #else
2102
2236
  /* This is set if CURL_NO_OLDIES is defined at compile-time */
2103
2237
  #undef CURLOPT_DNS_USE_GLOBAL_CACHE /* soon obsolete */
@@ -2107,12 +2241,12 @@ typedef enum {
2107
2241
  /* Below here follows defines for the CURLOPT_IPRESOLVE option. If a host
2108
2242
  name resolves addresses using more than one IP protocol version, this
2109
2243
  option might be handy to force libcurl to use a specific IP version. */
2110
- #define CURL_IPRESOLVE_WHATEVER 0 /* default, resolves addresses to all IP
2244
+ #define CURL_IPRESOLVE_WHATEVER 0 /* default, uses addresses to all IP
2111
2245
  versions that your system allows */
2112
- #define CURL_IPRESOLVE_V4 1 /* resolve to IPv4 addresses */
2113
- #define CURL_IPRESOLVE_V6 2 /* resolve to IPv6 addresses */
2246
+ #define CURL_IPRESOLVE_V4 1 /* uses only IPv4 addresses/connections */
2247
+ #define CURL_IPRESOLVE_V6 2 /* uses only IPv6 addresses/connections */
2114
2248
 
2115
- /* three convenient "aliases" that follow the name scheme better */
2249
+ /* Convenient "aliases" */
2116
2250
  #define CURLOPT_RTSPHEADER CURLOPT_HTTPHEADER
2117
2251
 
2118
2252
  /* These enums are for use with the CURLOPT_HTTP_VERSION option. */
@@ -2126,8 +2260,13 @@ enum {
2126
2260
  CURL_HTTP_VERSION_2TLS, /* use version 2 for HTTPS, version 1.1 for HTTP */
2127
2261
  CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE, /* please use HTTP 2 without HTTP/1.1
2128
2262
  Upgrade */
2129
- CURL_HTTP_VERSION_3 = 30, /* Makes use of explicit HTTP/3 without fallback.
2130
- Use CURLOPT_ALTSVC to enable HTTP/3 upgrade */
2263
+ CURL_HTTP_VERSION_3 = 30, /* Use HTTP/3, fallback to HTTP/2 or HTTP/1 if
2264
+ needed. For HTTPS only. For HTTP, this option
2265
+ makes libcurl return error. */
2266
+ CURL_HTTP_VERSION_3ONLY = 31, /* Use HTTP/3 without fallback. For HTTPS
2267
+ only. For HTTP, this makes libcurl
2268
+ return error. */
2269
+
2131
2270
  CURL_HTTP_VERSION_LAST /* *ILLEGAL* http version */
2132
2271
  };
2133
2272
 
@@ -2232,6 +2371,9 @@ CURL_EXTERN int curl_strnequal(const char *s1, const char *s2, size_t n);
2232
2371
  typedef struct curl_mime curl_mime; /* Mime context. */
2233
2372
  typedef struct curl_mimepart curl_mimepart; /* Mime part context. */
2234
2373
 
2374
+ /* CURLMIMEOPT_ defines are for the CURLOPT_MIME_OPTIONS option. */
2375
+ #define CURLMIMEOPT_FORMESCAPE (1<<0) /* Use backslash-escaping for forms. */
2376
+
2235
2377
  /*
2236
2378
  * NAME curl_mime_init()
2237
2379
  *
@@ -2354,30 +2496,32 @@ CURL_EXTERN CURLcode curl_mime_headers(curl_mimepart *part,
2354
2496
  int take_ownership);
2355
2497
 
2356
2498
  typedef enum {
2357
- CURLFORM_NOTHING, /********* the first one is unused ************/
2358
- CURLFORM_COPYNAME,
2359
- CURLFORM_PTRNAME,
2360
- CURLFORM_NAMELENGTH,
2361
- CURLFORM_COPYCONTENTS,
2362
- CURLFORM_PTRCONTENTS,
2363
- CURLFORM_CONTENTSLENGTH,
2364
- CURLFORM_FILECONTENT,
2365
- CURLFORM_ARRAY,
2499
+ /********* the first one is unused ************/
2500
+ CURLFORM_NOTHING CURL_DEPRECATED(7.56.0, ""),
2501
+ CURLFORM_COPYNAME CURL_DEPRECATED(7.56.0, "Use curl_mime_name()"),
2502
+ CURLFORM_PTRNAME CURL_DEPRECATED(7.56.0, "Use curl_mime_name()"),
2503
+ CURLFORM_NAMELENGTH CURL_DEPRECATED(7.56.0, ""),
2504
+ CURLFORM_COPYCONTENTS CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"),
2505
+ CURLFORM_PTRCONTENTS CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"),
2506
+ CURLFORM_CONTENTSLENGTH CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"),
2507
+ CURLFORM_FILECONTENT CURL_DEPRECATED(7.56.0, "Use curl_mime_data_cb()"),
2508
+ CURLFORM_ARRAY CURL_DEPRECATED(7.56.0, ""),
2366
2509
  CURLFORM_OBSOLETE,
2367
- CURLFORM_FILE,
2510
+ CURLFORM_FILE CURL_DEPRECATED(7.56.0, "Use curl_mime_filedata()"),
2368
2511
 
2369
- CURLFORM_BUFFER,
2370
- CURLFORM_BUFFERPTR,
2371
- CURLFORM_BUFFERLENGTH,
2512
+ CURLFORM_BUFFER CURL_DEPRECATED(7.56.0, "Use curl_mime_filename()"),
2513
+ CURLFORM_BUFFERPTR CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"),
2514
+ CURLFORM_BUFFERLENGTH CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"),
2372
2515
 
2373
- CURLFORM_CONTENTTYPE,
2374
- CURLFORM_CONTENTHEADER,
2375
- CURLFORM_FILENAME,
2516
+ CURLFORM_CONTENTTYPE CURL_DEPRECATED(7.56.0, "Use curl_mime_type()"),
2517
+ CURLFORM_CONTENTHEADER CURL_DEPRECATED(7.56.0, "Use curl_mime_headers()"),
2518
+ CURLFORM_FILENAME CURL_DEPRECATED(7.56.0, "Use curl_mime_filename()"),
2376
2519
  CURLFORM_END,
2377
2520
  CURLFORM_OBSOLETE2,
2378
2521
 
2379
- CURLFORM_STREAM,
2380
- CURLFORM_CONTENTLEN, /* added in 7.46.0, provide a curl_off_t length */
2522
+ CURLFORM_STREAM CURL_DEPRECATED(7.56.0, "Use curl_mime_data_cb()"),
2523
+ CURLFORM_CONTENTLEN /* added in 7.46.0, provide a curl_off_t length */
2524
+ CURL_DEPRECATED(7.56.0, "Use curl_mime_data()"),
2381
2525
 
2382
2526
  CURLFORM_LASTENTRY /* the last unused */
2383
2527
  } CURLformoption;
@@ -2405,15 +2549,16 @@ struct curl_forms {
2405
2549
  *
2406
2550
  ***************************************************************************/
2407
2551
  typedef enum {
2408
- CURL_FORMADD_OK, /* first, no error */
2552
+ CURL_FORMADD_OK CURL_DEPRECATED(7.56.0, ""), /* 1st, no error */
2409
2553
 
2410
- CURL_FORMADD_MEMORY,
2411
- CURL_FORMADD_OPTION_TWICE,
2412
- CURL_FORMADD_NULL,
2413
- CURL_FORMADD_UNKNOWN_OPTION,
2414
- CURL_FORMADD_INCOMPLETE,
2415
- CURL_FORMADD_ILLEGAL_ARRAY,
2416
- CURL_FORMADD_DISABLED, /* libcurl was built with this disabled */
2554
+ CURL_FORMADD_MEMORY CURL_DEPRECATED(7.56.0, ""),
2555
+ CURL_FORMADD_OPTION_TWICE CURL_DEPRECATED(7.56.0, ""),
2556
+ CURL_FORMADD_NULL CURL_DEPRECATED(7.56.0, ""),
2557
+ CURL_FORMADD_UNKNOWN_OPTION CURL_DEPRECATED(7.56.0, ""),
2558
+ CURL_FORMADD_INCOMPLETE CURL_DEPRECATED(7.56.0, ""),
2559
+ CURL_FORMADD_ILLEGAL_ARRAY CURL_DEPRECATED(7.56.0, ""),
2560
+ /* libcurl was built with form api disabled */
2561
+ CURL_FORMADD_DISABLED CURL_DEPRECATED(7.56.0, ""),
2417
2562
 
2418
2563
  CURL_FORMADD_LAST /* last */
2419
2564
  } CURLFORMcode;
@@ -2427,9 +2572,10 @@ typedef enum {
2427
2572
  * adds one part that together construct a full post. Then use
2428
2573
  * CURLOPT_HTTPPOST to send it off to libcurl.
2429
2574
  */
2430
- CURL_EXTERN CURLFORMcode curl_formadd(struct curl_httppost **httppost,
2431
- struct curl_httppost **last_post,
2432
- ...);
2575
+ CURL_EXTERN CURLFORMcode CURL_DEPRECATED(7.56.0, "Use curl_mime_init()")
2576
+ curl_formadd(struct curl_httppost **httppost,
2577
+ struct curl_httppost **last_post,
2578
+ ...);
2433
2579
 
2434
2580
  /*
2435
2581
  * callback function for curl_formget()
@@ -2452,8 +2598,9 @@ typedef size_t (*curl_formget_callback)(void *arg, const char *buf,
2452
2598
  * the curl_formget_callback function.
2453
2599
  * Returns 0 on success.
2454
2600
  */
2455
- CURL_EXTERN int curl_formget(struct curl_httppost *form, void *arg,
2456
- curl_formget_callback append);
2601
+ CURL_EXTERN int CURL_DEPRECATED(7.56.0, "")
2602
+ curl_formget(struct curl_httppost *form, void *arg,
2603
+ curl_formget_callback append);
2457
2604
  /*
2458
2605
  * NAME curl_formfree()
2459
2606
  *
@@ -2461,7 +2608,8 @@ CURL_EXTERN int curl_formget(struct curl_httppost *form, void *arg,
2461
2608
  *
2462
2609
  * Free a multipart formpost previously built with curl_formadd().
2463
2610
  */
2464
- CURL_EXTERN void curl_formfree(struct curl_httppost *form);
2611
+ CURL_EXTERN void CURL_DEPRECATED(7.56.0, "Use curl_mime_free()")
2612
+ curl_formfree(struct curl_httppost *form);
2465
2613
 
2466
2614
  /*
2467
2615
  * NAME curl_getenv()
@@ -2537,8 +2685,10 @@ CURL_EXTERN void curl_free(void *p);
2537
2685
  *
2538
2686
  * curl_global_init() should be invoked exactly once for each application that
2539
2687
  * uses libcurl and before any call of other libcurl functions.
2540
- *
2541
- * This function is not thread-safe!
2688
+
2689
+ * This function is thread-safe if CURL_VERSION_THREADSAFE is set in the
2690
+ * curl_version_info_data.features flag (fetch by curl_version_info()).
2691
+
2542
2692
  */
2543
2693
  CURL_EXTERN CURLcode curl_global_init(long flags);
2544
2694
 
@@ -2572,6 +2722,20 @@ CURL_EXTERN CURLcode curl_global_init_mem(long flags,
2572
2722
  */
2573
2723
  CURL_EXTERN void curl_global_cleanup(void);
2574
2724
 
2725
+ /*
2726
+ * NAME curl_global_trace()
2727
+ *
2728
+ * DESCRIPTION
2729
+ *
2730
+ * curl_global_trace() can be invoked at application start to
2731
+ * configure which components in curl should participate in tracing.
2732
+
2733
+ * This function is thread-safe if CURL_VERSION_THREADSAFE is set in the
2734
+ * curl_version_info_data.features flag (fetch by curl_version_info()).
2735
+
2736
+ */
2737
+ CURL_EXTERN CURLcode curl_global_trace(const char *config);
2738
+
2575
2739
  /* linked-list structure for the CURLOPT_QUOTE option (and other) */
2576
2740
  struct curl_slist {
2577
2741
  char *data;
@@ -2628,8 +2792,8 @@ CURL_EXTERN CURLsslset curl_global_sslset(curl_sslbackend id, const char *name,
2628
2792
  * Appends a string to a linked list. If no list exists, it will be created
2629
2793
  * first. Returns the new list, after appending.
2630
2794
  */
2631
- CURL_EXTERN struct curl_slist *curl_slist_append(struct curl_slist *,
2632
- const char *);
2795
+ CURL_EXTERN struct curl_slist *curl_slist_append(struct curl_slist *list,
2796
+ const char *data);
2633
2797
 
2634
2798
  /*
2635
2799
  * NAME curl_slist_free_all()
@@ -2638,7 +2802,7 @@ CURL_EXTERN struct curl_slist *curl_slist_append(struct curl_slist *,
2638
2802
  *
2639
2803
  * free a previously built curl_slist.
2640
2804
  */
2641
- CURL_EXTERN void curl_slist_free_all(struct curl_slist *);
2805
+ CURL_EXTERN void curl_slist_free_all(struct curl_slist *list);
2642
2806
 
2643
2807
  /*
2644
2808
  * NAME curl_getdate()
@@ -2651,13 +2815,14 @@ CURL_EXTERN void curl_slist_free_all(struct curl_slist *);
2651
2815
  */
2652
2816
  CURL_EXTERN time_t curl_getdate(const char *p, const time_t *unused);
2653
2817
 
2654
- /* info about the certificate chain, only for OpenSSL, GnuTLS, Schannel, NSS
2655
- and GSKit builds. Asked for with CURLOPT_CERTINFO / CURLINFO_CERTINFO */
2818
+ /* info about the certificate chain, for SSL backends that support it. Asked
2819
+ for with CURLOPT_CERTINFO / CURLINFO_CERTINFO */
2656
2820
  struct curl_certinfo {
2657
2821
  int num_of_certs; /* number of certificates with information */
2658
2822
  struct curl_slist **certinfo; /* for each index in this array, there's a
2659
- linked list with textual information in the
2660
- format "name: value" */
2823
+ linked list with textual information for a
2824
+ certificate in the format "name:content".
2825
+ eg "Subject:foo", "Issuer:bar", etc. */
2661
2826
  };
2662
2827
 
2663
2828
  /* Information about the SSL library used and the respective internal SSL
@@ -2686,22 +2851,35 @@ typedef enum {
2686
2851
  CURLINFO_NAMELOOKUP_TIME = CURLINFO_DOUBLE + 4,
2687
2852
  CURLINFO_CONNECT_TIME = CURLINFO_DOUBLE + 5,
2688
2853
  CURLINFO_PRETRANSFER_TIME = CURLINFO_DOUBLE + 6,
2689
- CURLINFO_SIZE_UPLOAD = CURLINFO_DOUBLE + 7,
2854
+ CURLINFO_SIZE_UPLOAD CURL_DEPRECATED(7.55.0, "Use CURLINFO_SIZE_UPLOAD_T")
2855
+ = CURLINFO_DOUBLE + 7,
2690
2856
  CURLINFO_SIZE_UPLOAD_T = CURLINFO_OFF_T + 7,
2691
- CURLINFO_SIZE_DOWNLOAD = CURLINFO_DOUBLE + 8,
2857
+ CURLINFO_SIZE_DOWNLOAD
2858
+ CURL_DEPRECATED(7.55.0, "Use CURLINFO_SIZE_DOWNLOAD_T")
2859
+ = CURLINFO_DOUBLE + 8,
2692
2860
  CURLINFO_SIZE_DOWNLOAD_T = CURLINFO_OFF_T + 8,
2693
- CURLINFO_SPEED_DOWNLOAD = CURLINFO_DOUBLE + 9,
2861
+ CURLINFO_SPEED_DOWNLOAD
2862
+ CURL_DEPRECATED(7.55.0, "Use CURLINFO_SPEED_DOWNLOAD_T")
2863
+ = CURLINFO_DOUBLE + 9,
2694
2864
  CURLINFO_SPEED_DOWNLOAD_T = CURLINFO_OFF_T + 9,
2695
- CURLINFO_SPEED_UPLOAD = CURLINFO_DOUBLE + 10,
2865
+ CURLINFO_SPEED_UPLOAD
2866
+ CURL_DEPRECATED(7.55.0, "Use CURLINFO_SPEED_UPLOAD_T")
2867
+ = CURLINFO_DOUBLE + 10,
2696
2868
  CURLINFO_SPEED_UPLOAD_T = CURLINFO_OFF_T + 10,
2697
2869
  CURLINFO_HEADER_SIZE = CURLINFO_LONG + 11,
2698
2870
  CURLINFO_REQUEST_SIZE = CURLINFO_LONG + 12,
2699
2871
  CURLINFO_SSL_VERIFYRESULT = CURLINFO_LONG + 13,
2700
2872
  CURLINFO_FILETIME = CURLINFO_LONG + 14,
2701
2873
  CURLINFO_FILETIME_T = CURLINFO_OFF_T + 14,
2702
- CURLINFO_CONTENT_LENGTH_DOWNLOAD = CURLINFO_DOUBLE + 15,
2874
+ CURLINFO_CONTENT_LENGTH_DOWNLOAD
2875
+ CURL_DEPRECATED(7.55.0,
2876
+ "Use CURLINFO_CONTENT_LENGTH_DOWNLOAD_T")
2877
+ = CURLINFO_DOUBLE + 15,
2703
2878
  CURLINFO_CONTENT_LENGTH_DOWNLOAD_T = CURLINFO_OFF_T + 15,
2704
- CURLINFO_CONTENT_LENGTH_UPLOAD = CURLINFO_DOUBLE + 16,
2879
+ CURLINFO_CONTENT_LENGTH_UPLOAD
2880
+ CURL_DEPRECATED(7.55.0,
2881
+ "Use CURLINFO_CONTENT_LENGTH_UPLOAD_T")
2882
+ = CURLINFO_DOUBLE + 16,
2705
2883
  CURLINFO_CONTENT_LENGTH_UPLOAD_T = CURLINFO_OFF_T + 16,
2706
2884
  CURLINFO_STARTTRANSFER_TIME = CURLINFO_DOUBLE + 17,
2707
2885
  CURLINFO_CONTENT_TYPE = CURLINFO_STRING + 18,
@@ -2715,7 +2893,8 @@ typedef enum {
2715
2893
  CURLINFO_NUM_CONNECTS = CURLINFO_LONG + 26,
2716
2894
  CURLINFO_SSL_ENGINES = CURLINFO_SLIST + 27,
2717
2895
  CURLINFO_COOKIELIST = CURLINFO_SLIST + 28,
2718
- CURLINFO_LASTSOCKET = CURLINFO_LONG + 29,
2896
+ CURLINFO_LASTSOCKET CURL_DEPRECATED(7.45.0, "Use CURLINFO_ACTIVESOCKET")
2897
+ = CURLINFO_LONG + 29,
2719
2898
  CURLINFO_FTP_ENTRY_PATH = CURLINFO_STRING + 30,
2720
2899
  CURLINFO_REDIRECT_URL = CURLINFO_STRING + 31,
2721
2900
  CURLINFO_PRIMARY_IP = CURLINFO_STRING + 32,
@@ -2729,12 +2908,14 @@ typedef enum {
2729
2908
  CURLINFO_PRIMARY_PORT = CURLINFO_LONG + 40,
2730
2909
  CURLINFO_LOCAL_IP = CURLINFO_STRING + 41,
2731
2910
  CURLINFO_LOCAL_PORT = CURLINFO_LONG + 42,
2732
- CURLINFO_TLS_SESSION = CURLINFO_PTR + 43,
2911
+ CURLINFO_TLS_SESSION CURL_DEPRECATED(7.48.0, "Use CURLINFO_TLS_SSL_PTR")
2912
+ = CURLINFO_PTR + 43,
2733
2913
  CURLINFO_ACTIVESOCKET = CURLINFO_SOCKET + 44,
2734
2914
  CURLINFO_TLS_SSL_PTR = CURLINFO_PTR + 45,
2735
2915
  CURLINFO_HTTP_VERSION = CURLINFO_LONG + 46,
2736
2916
  CURLINFO_PROXY_SSL_VERIFYRESULT = CURLINFO_LONG + 47,
2737
- CURLINFO_PROTOCOL = CURLINFO_LONG + 48,
2917
+ CURLINFO_PROTOCOL CURL_DEPRECATED(7.85.0, "Use CURLINFO_SCHEME")
2918
+ = CURLINFO_LONG + 48,
2738
2919
  CURLINFO_SCHEME = CURLINFO_STRING + 49,
2739
2920
  CURLINFO_TOTAL_TIME_T = CURLINFO_OFF_T + 50,
2740
2921
  CURLINFO_NAMELOOKUP_TIME_T = CURLINFO_OFF_T + 51,
@@ -2746,8 +2927,12 @@ typedef enum {
2746
2927
  CURLINFO_RETRY_AFTER = CURLINFO_OFF_T + 57,
2747
2928
  CURLINFO_EFFECTIVE_METHOD = CURLINFO_STRING + 58,
2748
2929
  CURLINFO_PROXY_ERROR = CURLINFO_LONG + 59,
2749
-
2750
- CURLINFO_LASTONE = 59
2930
+ CURLINFO_REFERER = CURLINFO_STRING + 60,
2931
+ CURLINFO_CAINFO = CURLINFO_STRING + 61,
2932
+ CURLINFO_CAPATH = CURLINFO_STRING + 62,
2933
+ CURLINFO_XFER_ID = CURLINFO_OFF_T + 63,
2934
+ CURLINFO_CONN_ID = CURLINFO_OFF_T + 64,
2935
+ CURLINFO_LASTONE = 64
2751
2936
  } CURLINFO;
2752
2937
 
2753
2938
  /* CURLINFO_RESPONSE_CODE is the new name for the option previously known as
@@ -2766,7 +2951,7 @@ typedef enum {
2766
2951
  CURLCLOSEPOLICY_LAST /* last, never use this */
2767
2952
  } curl_closepolicy;
2768
2953
 
2769
- #define CURL_GLOBAL_SSL (1<<0) /* no purpose since since 7.57.0 */
2954
+ #define CURL_GLOBAL_SSL (1<<0) /* no purpose since 7.57.0 */
2770
2955
  #define CURL_GLOBAL_WIN32 (1<<1)
2771
2956
  #define CURL_GLOBAL_ALL (CURL_GLOBAL_SSL|CURL_GLOBAL_WIN32)
2772
2957
  #define CURL_GLOBAL_NOTHING 0
@@ -2791,6 +2976,7 @@ typedef enum {
2791
2976
  CURL_LOCK_DATA_SSL_SESSION,
2792
2977
  CURL_LOCK_DATA_CONNECT,
2793
2978
  CURL_LOCK_DATA_PSL,
2979
+ CURL_LOCK_DATA_HSTS,
2794
2980
  CURL_LOCK_DATA_LAST
2795
2981
  } curl_lock_data;
2796
2982
 
@@ -2833,8 +3019,9 @@ typedef enum {
2833
3019
  } CURLSHoption;
2834
3020
 
2835
3021
  CURL_EXTERN CURLSH *curl_share_init(void);
2836
- CURL_EXTERN CURLSHcode curl_share_setopt(CURLSH *, CURLSHoption option, ...);
2837
- CURL_EXTERN CURLSHcode curl_share_cleanup(CURLSH *);
3022
+ CURL_EXTERN CURLSHcode curl_share_setopt(CURLSH *share, CURLSHoption option,
3023
+ ...);
3024
+ CURL_EXTERN CURLSHcode curl_share_cleanup(CURLSH *share);
2838
3025
 
2839
3026
  /****************************************************************************
2840
3027
  * Structures for querying information about the curl library at runtime.
@@ -2849,15 +3036,18 @@ typedef enum {
2849
3036
  CURLVERSION_SIXTH,
2850
3037
  CURLVERSION_SEVENTH,
2851
3038
  CURLVERSION_EIGHTH,
3039
+ CURLVERSION_NINTH,
3040
+ CURLVERSION_TENTH,
3041
+ CURLVERSION_ELEVENTH,
2852
3042
  CURLVERSION_LAST /* never actually use this */
2853
3043
  } CURLversion;
2854
3044
 
2855
3045
  /* The 'CURLVERSION_NOW' is the symbolic name meant to be used by
2856
3046
  basically all programs ever that want to get version information. It is
2857
3047
  meant to be a built-in version number for what kind of struct the caller
2858
- expects. If the struct ever changes, we redefine the NOW to another enum
3048
+ expects. If the struct ever chanMMy, we redefine the NOW to another enum
2859
3049
  from above. */
2860
- #define CURLVERSION_NOW CURLVERSION_EIGHTH
3050
+ #define CURLVERSION_NOW CURLVERSION_ELEVENTH
2861
3051
 
2862
3052
  struct curl_version_info_data {
2863
3053
  CURLversion age; /* age of the returned struct */
@@ -2908,6 +3098,15 @@ struct curl_version_info_data {
2908
3098
  (MAJOR << 24) | (MINOR << 12) | PATCH */
2909
3099
  const char *zstd_version; /* human readable string. */
2910
3100
 
3101
+ /* These fields were added in CURLVERSION_NINTH */
3102
+ const char *hyper_version; /* human readable string. */
3103
+
3104
+ /* These fields were added in CURLVERSION_TENTH */
3105
+ const char *gsasl_version; /* human readable string. */
3106
+
3107
+ /* These fields were added in CURLVERSION_ELEVENTH */
3108
+ /* feature_names is terminated by an entry with a NULL feature name */
3109
+ const char * const *feature_names;
2911
3110
  };
2912
3111
  typedef struct curl_version_info_data curl_version_info_data;
2913
3112
 
@@ -2945,6 +3144,8 @@ typedef struct curl_version_info_data curl_version_info_data;
2945
3144
  #define CURL_VERSION_ZSTD (1<<26) /* zstd features are present */
2946
3145
  #define CURL_VERSION_UNICODE (1<<27) /* Unicode support on Windows */
2947
3146
  #define CURL_VERSION_HSTS (1<<28) /* HSTS is supported */
3147
+ #define CURL_VERSION_GSASL (1<<29) /* libgsasl is supported */
3148
+ #define CURL_VERSION_THREADSAFE (1<<30) /* libcurl API is thread-safe */
2948
3149
 
2949
3150
  /*
2950
3151
  * NAME curl_version_info()
@@ -2963,7 +3164,7 @@ CURL_EXTERN curl_version_info_data *curl_version_info(CURLversion);
2963
3164
  *
2964
3165
  * The curl_easy_strerror function may be used to turn a CURLcode value
2965
3166
  * into the equivalent human readable error string. This is useful
2966
- * for printing meaningful error messages.
3167
+ * for printing meaningful error messaMMy.
2967
3168
  */
2968
3169
  CURL_EXTERN const char *curl_easy_strerror(CURLcode);
2969
3170
 
@@ -2974,7 +3175,7 @@ CURL_EXTERN const char *curl_easy_strerror(CURLcode);
2974
3175
  *
2975
3176
  * The curl_share_strerror function may be used to turn a CURLSHcode value
2976
3177
  * into the equivalent human readable error string. This is useful
2977
- * for printing meaningful error messages.
3178
+ * for printing meaningful error messaMMy.
2978
3179
  */
2979
3180
  CURL_EXTERN const char *curl_share_strerror(CURLSHcode);
2980
3181
 
@@ -2999,7 +3200,7 @@ CURL_EXTERN CURLcode curl_easy_pause(CURL *handle, int bitmask);
2999
3200
  #define CURLPAUSE_CONT (CURLPAUSE_RECV_CONT|CURLPAUSE_SEND_CONT)
3000
3201
 
3001
3202
  #ifdef __cplusplus
3002
- }
3203
+ } /* end of extern "C" */
3003
3204
  #endif
3004
3205
 
3005
3206
  /* unfortunately, the easy.h and multi.h include files need options and info
@@ -3008,6 +3209,9 @@ CURL_EXTERN CURLcode curl_easy_pause(CURL *handle, int bitmask);
3008
3209
  #include "multi.h"
3009
3210
  #include "urlapi.h"
3010
3211
  #include "options.h"
3212
+ #include "header.h"
3213
+ #include "websockets.h"
3214
+ #include "mprintf.h"
3011
3215
 
3012
3216
  /* the typechecker doesn't work in C++ (yet) */
3013
3217
  #if defined(__GNUC__) && defined(__GNUC_MINOR__) && \
@@ -3024,6 +3228,6 @@ CURL_EXTERN CURLcode curl_easy_pause(CURL *handle, int bitmask);
3024
3228
  #define curl_share_setopt(share,opt,param) curl_share_setopt(share,opt,param)
3025
3229
  #define curl_multi_setopt(handle,opt,param) curl_multi_setopt(handle,opt,param)
3026
3230
  #endif /* __STDC__ >= 1 */
3027
- #endif /* gcc >= 4.3 && !__cplusplus */
3231
+ #endif /* gcc >= 4.3 && !__cplusplus && !CURL_DISABLE_TYPECHECK */
3028
3232
 
3029
3233
  #endif /* CURLINC_CURL_H */