capacitor-freerasp 2.2.2 → 2.3.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 (118) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/CapacitorFreerasp.podspec +1 -1
  3. package/README.md +8 -8
  4. package/android/build.gradle +1 -1
  5. package/android/src/main/java/com/aheaditec/freerasp/FreeraspPlugin.kt +39 -18
  6. package/android/src/main/java/com/aheaditec/freerasp/ScreenProtector.kt +24 -2
  7. package/android/src/main/java/com/aheaditec/freerasp/ThreatHandler.kt +36 -18
  8. package/android/src/main/java/com/aheaditec/freerasp/events/BaseRaspEvent.kt +7 -0
  9. package/android/src/main/java/com/aheaditec/freerasp/events/RaspExecutionStateEvent.kt +22 -0
  10. package/android/src/main/java/com/aheaditec/freerasp/events/ThreatEvent.kt +69 -0
  11. package/android/src/main/java/com/aheaditec/freerasp/models/CapSuspiciousAppInfo.kt +1 -0
  12. package/android/src/main/java/com/aheaditec/freerasp/utils/Extensions.kt +1 -0
  13. package/android/src/main/java/com/aheaditec/freerasp/utils/RandomGenerator.kt +24 -0
  14. package/android/src/main/java/com/aheaditec/freerasp/utils/Utils.kt +3 -5
  15. package/dist/esm/api/listeners/raspExecutionState.d.ts +2 -0
  16. package/dist/esm/api/listeners/raspExecutionState.js +23 -0
  17. package/dist/esm/api/listeners/raspExecutionState.js.map +1 -0
  18. package/dist/esm/api/listeners/threat.d.ts +2 -0
  19. package/dist/esm/api/listeners/threat.js +84 -0
  20. package/dist/esm/api/listeners/threat.js.map +1 -0
  21. package/dist/esm/api/methods/capacitor.d.ts +4 -0
  22. package/dist/esm/api/methods/capacitor.js +11 -0
  23. package/dist/esm/api/methods/capacitor.js.map +1 -0
  24. package/dist/esm/api/methods/native.d.ts +6 -0
  25. package/dist/esm/api/methods/native.js +32 -0
  26. package/dist/esm/api/methods/native.js.map +1 -0
  27. package/dist/esm/api/nativeModules.d.ts +2 -0
  28. package/dist/esm/api/nativeModules.js +3 -0
  29. package/dist/esm/api/nativeModules.js.map +1 -0
  30. package/dist/esm/channels/raspExecutionState.d.ts +3 -0
  31. package/dist/esm/channels/raspExecutionState.js +27 -0
  32. package/dist/esm/channels/raspExecutionState.js.map +1 -0
  33. package/dist/esm/channels/threat.d.ts +3 -0
  34. package/dist/esm/channels/threat.js +34 -0
  35. package/dist/esm/channels/threat.js.map +1 -0
  36. package/dist/esm/index.d.ts +7 -12
  37. package/dist/esm/index.js +7 -158
  38. package/dist/esm/index.js.map +1 -1
  39. package/dist/esm/models/raspExecutionState.d.ts +6 -0
  40. package/dist/esm/models/raspExecutionState.js +10 -0
  41. package/dist/esm/models/raspExecutionState.js.map +1 -0
  42. package/dist/esm/models/threat.d.ts +26 -0
  43. package/dist/esm/{definitions.js → models/threat.js} +7 -3
  44. package/dist/esm/models/threat.js.map +1 -0
  45. package/dist/esm/{definitions.d.ts → types/types.d.ts} +37 -44
  46. package/dist/esm/types/types.js +2 -0
  47. package/dist/esm/types/types.js.map +1 -0
  48. package/dist/esm/utils/malware.d.ts +3 -0
  49. package/dist/esm/utils/malware.js +22 -0
  50. package/dist/esm/utils/malware.js.map +1 -0
  51. package/dist/esm/utils/utils.d.ts +3 -0
  52. package/dist/esm/utils/utils.js +12 -0
  53. package/dist/esm/utils/utils.js.map +1 -0
  54. package/dist/plugin.cjs.js +153 -78
  55. package/dist/plugin.cjs.js.map +1 -1
  56. package/dist/plugin.js +153 -78
  57. package/dist/plugin.js.map +1 -1
  58. package/ios/Plugin/FreeraspPlugin.m +2 -0
  59. package/ios/Plugin/FreeraspPlugin.swift +50 -75
  60. package/ios/Plugin/Info.plist +1 -1
  61. package/ios/Plugin/TalsecRuntime.xcframework/_CodeSignature/CodeDirectory +0 -0
  62. package/ios/Plugin/TalsecRuntime.xcframework/_CodeSignature/CodeResources +100 -298
  63. package/ios/Plugin/TalsecRuntime.xcframework/_CodeSignature/CodeSignature +0 -0
  64. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/CurlWrapper.h +1 -1
  65. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/TalsecRuntime-Swift.h +7 -2
  66. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/curl.h +380 -281
  67. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/curlver.h +5 -6
  68. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/easy.h +4 -4
  69. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/header.h +1 -1
  70. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/mprintf.h +11 -4
  71. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/multi.h +62 -22
  72. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/options.h +2 -2
  73. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/system.h +76 -164
  74. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/typecheck-gcc.h +947 -0
  75. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/urlapi.h +5 -4
  76. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Headers/websockets.h +17 -3
  77. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Info.plist +0 -0
  78. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios.abi.json +233 -528
  79. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios.private.swiftinterface +7 -3
  80. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  81. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios.swiftinterface +7 -3
  82. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64/TalsecRuntime.framework/TalsecRuntime +0 -0
  83. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/CurlWrapper.h +1 -1
  84. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/TalsecRuntime-Swift.h +14 -4
  85. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/curl.h +380 -281
  86. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/curlver.h +5 -6
  87. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/easy.h +4 -4
  88. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/header.h +1 -1
  89. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/mprintf.h +11 -4
  90. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/multi.h +62 -22
  91. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/options.h +2 -2
  92. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/system.h +76 -164
  93. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/typecheck-gcc.h +947 -0
  94. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/urlapi.h +5 -4
  95. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Headers/websockets.h +17 -3
  96. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Info.plist +0 -0
  97. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios-simulator.abi.json +233 -528
  98. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +7 -3
  99. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  100. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/arm64-apple-ios-simulator.swiftinterface +7 -3
  101. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/x86_64-apple-ios-simulator.abi.json +233 -528
  102. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +7 -3
  103. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  104. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/Modules/TalsecRuntime.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +7 -3
  105. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/TalsecRuntime +0 -0
  106. package/ios/Plugin/TalsecRuntime.xcframework/ios-arm64_x86_64-simulator/TalsecRuntime.framework/_CodeSignature/CodeResources +56 -45
  107. package/ios/Plugin/models/RaspExecutionStates.swift +15 -0
  108. package/ios/Plugin/models/SecurityThreat.swift +40 -0
  109. package/ios/Plugin/utils/EventIdentifiers.swift +17 -0
  110. package/ios/Plugin/utils/RandomGenerator.swift +23 -0
  111. package/ios/Plugin/utils/Utils.swift +32 -0
  112. package/package.json +15 -10
  113. package/android/src/main/java/com/aheaditec/freerasp/Threat.kt +0 -58
  114. package/dist/esm/definitions.js.map +0 -1
  115. package/dist/esm/utils.d.ts +0 -2
  116. package/dist/esm/utils.js +0 -8
  117. package/dist/esm/utils.js.map +0 -1
  118. package/ios/Plugin/TalsecRuntime.xcframework/_CodeSignature/CodeRequirements-1 +0 -0
@@ -32,14 +32,13 @@
32
32
 
33
33
  /* This is the version number of the libcurl package from which this header
34
34
  file origins: */
35
- #define LIBCURL_VERSION "8.8.0"
35
+ #define LIBCURL_VERSION "8.16.0"
36
36
 
37
37
  /* The numeric version number is also available "in parts" by using these
38
38
  defines: */
39
39
  #define LIBCURL_VERSION_MAJOR 8
40
- #define LIBCURL_VERSION_MINOR 8
40
+ #define LIBCURL_VERSION_MINOR 16
41
41
  #define LIBCURL_VERSION_PATCH 0
42
-
43
42
  /* This is the numeric version of the libcurl version number, meant for easier
44
43
  parsing and comparisons by programs. The LIBCURL_VERSION_NUM define will
45
44
  always follow this syntax:
@@ -48,7 +47,7 @@
48
47
 
49
48
  Where XX, YY and ZZ are the main version, release and patch numbers in
50
49
  hexadecimal (using 8 bits each). All three numbers are always represented
51
- using two digits. 1.2 would appear as "0x010200" while version 9.11.7
50
+ using two digits. 1.2 would appear as "0x010200" while version 9.11.7
52
51
  appears as "0x090b07".
53
52
 
54
53
  This 6-digit (24 bits) hexadecimal number does not show pre-release number,
@@ -59,7 +58,7 @@
59
58
  CURL_VERSION_BITS() macro since curl's own configure script greps for it
60
59
  and needs it to contain the full number.
61
60
  */
62
- #define LIBCURL_VERSION_NUM 0x080800
61
+ #define LIBCURL_VERSION_NUM 0x081000
63
62
 
64
63
  /*
65
64
  * This is the date and time when the full source package was created. The
@@ -70,7 +69,7 @@
70
69
  *
71
70
  * "2007-11-23"
72
71
  */
73
- #define LIBCURL_TIMESTAMP "2024-05-22"
72
+ #define LIBCURL_TIMESTAMP "2025-09-10"
74
73
 
75
74
  #define CURL_VERSION_BITS(x,y,z) ((x)<<16|(y)<<8|(z))
76
75
  #define CURL_AT_LEAST_VERSION(x,y,z) \
@@ -23,7 +23,7 @@
23
23
  * SPDX-License-Identifier: curl
24
24
  *
25
25
  ***************************************************************************/
26
- #ifdef __cplusplus
26
+ #ifdef __cplusplus
27
27
  extern "C" {
28
28
  #endif
29
29
 
@@ -50,7 +50,7 @@ CURL_EXTERN void curl_easy_cleanup(CURL *curl);
50
50
  *
51
51
  * Request internal information from the curl session with this function.
52
52
  * The third argument MUST be pointing to the specific type of the used option
53
- * which is documented in each man page of the option. The data pointed to
53
+ * which is documented in each manpage of the option. The data pointed to
54
54
  * will be filled in accordingly and can be relied upon only if the function
55
55
  * returns CURLE_OK. This function is intended to get used *AFTER* a performed
56
56
  * transfer, all results from this function are undefined until the transfer
@@ -78,7 +78,7 @@ CURL_EXTERN CURL *curl_easy_duphandle(CURL *curl);
78
78
  *
79
79
  * DESCRIPTION
80
80
  *
81
- * Re-initializes a CURL handle to the default values. This puts back the
81
+ * Re-initializes a curl handle to the default values. This puts back the
82
82
  * handle to the same state as it was in when it was just created.
83
83
  *
84
84
  * It does keep: live connections, the Session ID cache, the DNS cache and the
@@ -118,7 +118,7 @@ CURL_EXTERN CURLcode curl_easy_send(CURL *curl, const void *buffer,
118
118
  */
119
119
  CURL_EXTERN CURLcode curl_easy_upkeep(CURL *curl);
120
120
 
121
- #ifdef __cplusplus
121
+ #ifdef __cplusplus
122
122
  } /* end of extern "C" */
123
123
  #endif
124
124
 
@@ -24,7 +24,7 @@
24
24
  *
25
25
  ***************************************************************************/
26
26
 
27
- #ifdef __cplusplus
27
+ #ifdef __cplusplus
28
28
  extern "C" {
29
29
  #endif
30
30
 
@@ -28,16 +28,22 @@
28
28
  #include <stdio.h> /* needed for FILE */
29
29
  #include "curl.h" /* for CURL_EXTERN */
30
30
 
31
- #ifdef __cplusplus
31
+ #ifdef __cplusplus
32
32
  extern "C" {
33
33
  #endif
34
34
 
35
- #if (defined(__GNUC__) || defined(__clang__)) && \
35
+ #ifndef CURL_TEMP_PRINTF
36
+ #if (defined(__GNUC__) || defined(__clang__) || \
37
+ defined(__IAR_SYSTEMS_ICC__)) && \
36
38
  defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && \
37
39
  !defined(CURL_NO_FMT_CHECKS)
38
40
  #if defined(__MINGW32__) && !defined(__clang__)
41
+ #ifdef __MINGW_PRINTF_FORMAT /* mingw-w64 3.0.0+. Needs stdio.h. */
39
42
  #define CURL_TEMP_PRINTF(fmt, arg) \
40
- __attribute__((format(gnu_printf, fmt, arg)))
43
+ __attribute__((format(__MINGW_PRINTF_FORMAT, fmt, arg)))
44
+ #else
45
+ #define CURL_TEMP_PRINTF(fmt, arg)
46
+ #endif
41
47
  #else
42
48
  #define CURL_TEMP_PRINTF(fmt, arg) \
43
49
  __attribute__((format(printf, fmt, arg)))
@@ -45,6 +51,7 @@ extern "C" {
45
51
  #else
46
52
  #define CURL_TEMP_PRINTF(fmt, arg)
47
53
  #endif
54
+ #endif
48
55
 
49
56
  CURL_EXTERN int curl_mprintf(const char *format, ...)
50
57
  CURL_TEMP_PRINTF(1, 2);
@@ -71,7 +78,7 @@ CURL_EXTERN char *curl_mvaprintf(const char *format, va_list args)
71
78
 
72
79
  #undef CURL_TEMP_PRINTF
73
80
 
74
- #ifdef __cplusplus
81
+ #ifdef __cplusplus
75
82
  } /* end of extern "C" */
76
83
  #endif
77
84
 
@@ -24,7 +24,7 @@
24
24
  *
25
25
  ***************************************************************************/
26
26
  /*
27
- This is an "external" header file. Don't give away any internals here!
27
+ This is an "external" header file. Do not give away any internals here!
28
28
 
29
29
  GOALS
30
30
 
@@ -50,15 +50,11 @@
50
50
  */
51
51
  #include "curl.h"
52
52
 
53
- #ifdef __cplusplus
53
+ #ifdef __cplusplus
54
54
  extern "C" {
55
55
  #endif
56
56
 
57
- #if defined(BUILDING_LIBCURL) || defined(CURL_STRICTER)
58
- typedef struct Curl_multi CURLM;
59
- #else
60
57
  typedef void CURLM;
61
- #endif
62
58
 
63
59
  typedef enum {
64
60
  CURLM_CALL_MULTI_PERFORM = -1, /* please call curl_multi_perform() or
@@ -66,7 +62,7 @@ typedef enum {
66
62
  CURLM_OK,
67
63
  CURLM_BAD_HANDLE, /* the passed-in handle is not a valid CURLM handle */
68
64
  CURLM_BAD_EASY_HANDLE, /* an easy handle was not good/valid */
69
- CURLM_OUT_OF_MEMORY, /* if you ever get this, you're in deep sh*t */
65
+ CURLM_OUT_OF_MEMORY, /* if you ever get this, you are in deep sh*t */
70
66
  CURLM_INTERNAL_ERROR, /* this is a libcurl bug */
71
67
  CURLM_BAD_SOCKET, /* the passed in socket argument did not match */
72
68
  CURLM_UNKNOWN_OPTION, /* curl_multi_setopt() with unsupported option */
@@ -109,7 +105,7 @@ struct CURLMsg {
109
105
  typedef struct CURLMsg CURLMsg;
110
106
 
111
107
  /* Based on poll(2) structure and values.
112
- * We don't use pollfd and POLL* constants explicitly
108
+ * We do not use pollfd and POLL* constants explicitly
113
109
  * to cover platforms without poll(). */
114
110
  #define CURL_WAIT_POLLIN 0x0001
115
111
  #define CURL_WAIT_POLLPRI 0x0002
@@ -205,7 +201,7 @@ CURL_EXTERN CURLMcode curl_multi_wakeup(CURLM *multi_handle);
205
201
  /*
206
202
  * Name: curl_multi_perform()
207
203
  *
208
- * Desc: When the app thinks there's data available for curl it calls this
204
+ * Desc: When the app thinks there is data available for curl it calls this
209
205
  * function to read/write whatever there is right now. This returns
210
206
  * as soon as the reads and writes are done. This function does not
211
207
  * require that there actually is data available for reading or that
@@ -236,8 +232,8 @@ CURL_EXTERN CURLMcode curl_multi_cleanup(CURLM *multi_handle);
236
232
  /*
237
233
  * Name: curl_multi_info_read()
238
234
  *
239
- * Desc: Ask the multi handle if there's any messazsW/informationals from
240
- * the individual transfers. MessazsW include informationals such as
235
+ * Desc: Ask the multi handle if there is any messaGlH/informationals from
236
+ * the individual transfers. MessaGlH include informationals such as
241
237
  * error code from the transfer or just the fact that a transfer is
242
238
  * completed. More details on these should be written down as well.
243
239
  *
@@ -248,16 +244,16 @@ CURL_EXTERN CURLMcode curl_multi_cleanup(CURLM *multi_handle);
248
244
  * The data the returned pointer points to will not survive calling
249
245
  * curl_multi_cleanup().
250
246
  *
251
- * The 'CURLMsg' struct is meant to be very simple and only contain
252
- * very basic information. If more involved information is wanted,
253
- * we will provide the particular "transfer handle" in that struct
254
- * and that should/could/would be used in subsequent
255
- * curl_easy_getinfo() calls (or similar). The point being that we
256
- * must never expose complex structs to applications, as then we'll
257
- * undoubtably get backwards compatibility problems in the future.
247
+ * The 'CURLMsg' struct is meant to be simple and only contain basic
248
+ * information. If more involved information is wanted, we will
249
+ * provide the particular "transfer handle" in that struct and that
250
+ * should/could/would be used in subsequent curl_easy_getinfo() calls
251
+ * (or similar). The point being that we must never expose complex
252
+ * structs to applications, as then we will undoubtably get backwards
253
+ * compatibility problems in the future.
258
254
  *
259
255
  * Returns: A pointer to a filled-in struct, or NULL if it failed or ran out
260
- * of structs. It also writes the number of messazsW left in the
256
+ * of structs. It also writes the number of messaGlH left in the
261
257
  * queue (after this read) in the integer the second argument points
262
258
  * to.
263
259
  */
@@ -268,8 +264,8 @@ CURL_EXTERN CURLMsg *curl_multi_info_read(CURLM *multi_handle,
268
264
  * Name: curl_multi_strerror()
269
265
  *
270
266
  * Desc: The curl_multi_strerror function may be used to turn a CURLMcode
271
- * value into the equivalent human readable error string. This is
272
- * useful for printing meaningful error messazsW.
267
+ * value into the equivalent human readable error string. This is
268
+ * useful for printing meaningful error messaGlH.
273
269
  *
274
270
  * Returns: A pointer to a null-terminated error message.
275
271
  */
@@ -282,7 +278,7 @@ CURL_EXTERN const char *curl_multi_strerror(CURLMcode);
282
278
  * Desc: An alternative version of curl_multi_perform() that allows the
283
279
  * application to pass in one of the file descriptors that have been
284
280
  * detected to have "action" on them and let libcurl perform.
285
- * See man page for details.
281
+ * See manpage for details.
286
282
  */
287
283
  #define CURL_POLL_NONE 0
288
284
  #define CURL_POLL_IN 1
@@ -399,9 +395,23 @@ typedef enum {
399
395
  /* maximum number of concurrent streams to support on a connection */
400
396
  CURLOPT(CURLMOPT_MAX_CONCURRENT_STREAMS, CURLOPTTYPE_LONG, 16),
401
397
 
398
+ /* network has changed, adjust caches/connection reuse */
399
+ CURLOPT(CURLMOPT_NETWORK_CHANGED, CURLOPTTYPE_LONG, 17),
400
+
402
401
  CURLMOPT_LASTENTRY /* the last unused */
403
402
  } CURLMoption;
404
403
 
404
+ /* Definition of bits for the CURLMOPT_NETWORK_CHANGED argument: */
405
+
406
+ /* - CURLMNWC_CLEAR_CONNS tells libcurl to prevent further reuse of existing
407
+ connections. Connections that are idle will be closed. Ongoing transfers
408
+ will continue with the connection they have. */
409
+ #define CURLMNWC_CLEAR_CONNS (1L<<0)
410
+
411
+ /* - CURLMNWC_CLEAR_DNS tells libcurl to prevent further reuse of existing
412
+ connections. Connections that are idle will be closed. Ongoing transfers
413
+ will continue with the connection they have. */
414
+ #define CURLMNWC_CLEAR_DNS (1L<<0)
405
415
 
406
416
  /*
407
417
  * Name: curl_multi_setopt()
@@ -438,6 +448,36 @@ CURL_EXTERN CURLMcode curl_multi_assign(CURLM *multi_handle,
438
448
  */
439
449
  CURL_EXTERN CURL **curl_multi_get_handles(CURLM *multi_handle);
440
450
 
451
+
452
+ typedef enum {
453
+ CURLMINFO_NONE, /* first, never use this */
454
+ /* The number of easy handles currently managed by the multi handle,
455
+ * e.g. have been added but not yet removed. */
456
+ CURLMINFO_XFERS_CURRENT = 1,
457
+ /* The number of easy handles running, e.g. not done and not queueing. */
458
+ CURLMINFO_XFERS_RUNNING = 2,
459
+ /* The number of easy handles waiting to start, e.g. for a connection
460
+ * to become available due to limits on parallelism, max connections
461
+ * or other factors. */
462
+ CURLMINFO_XFERS_PENDING = 3,
463
+ /* The number of easy handles finished, waiting for their results to
464
+ * be read via `curl_multi_info_read()`. */
465
+ CURLMINFO_XFERS_DONE = 4,
466
+ /* The total number of easy handles added to the multi handle, ever. */
467
+ CURLMINFO_XFERS_ADDED = 5
468
+ } CURLMinfo_offt;
469
+
470
+ /*
471
+ * Name: curl_multi_get_offt()
472
+ *
473
+ * Desc: Retrieves a numeric value for the `CURLMINFO_*` enums.
474
+ *
475
+ * Returns: CULRM_OK or error when value could not be obtained.
476
+ */
477
+ CURL_EXTERN CURLMcode curl_multi_get_offt(CURLM *multi_handle,
478
+ CURLMinfo_offt info,
479
+ curl_off_t *pvalue);
480
+
441
481
  /*
442
482
  * Name: curl_push_callback
443
483
  *
@@ -24,7 +24,7 @@
24
24
  *
25
25
  ***************************************************************************/
26
26
 
27
- #ifdef __cplusplus
27
+ #ifdef __cplusplus
28
28
  extern "C" {
29
29
  #endif
30
30
 
@@ -46,7 +46,7 @@ typedef enum {
46
46
  we prefer another name */
47
47
  #define CURLOT_FLAG_ALIAS (1<<0)
48
48
 
49
- /* The CURLOPTTYPE_* id ranzsW can still be used to figure out what type/size
49
+ /* The CURLOPTTYPE_* id ranGlH can still be used to figure out what type/size
50
50
  to use for curl_easy_setopt() for the given id */
51
51
  struct curl_easyoption {
52
52
  const char *name;