curl_impersonate 0.1.1

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.
@@ -0,0 +1,402 @@
1
+ #ifndef CURLINC_SYSTEM_H
2
+ #define CURLINC_SYSTEM_H
3
+ /***************************************************************************
4
+ * _ _ ____ _
5
+ * Project ___| | | | _ \| |
6
+ * / __| | | | |_) | |
7
+ * | (__| |_| | _ <| |___
8
+ * \___|\___/|_| \_\_____|
9
+ *
10
+ * Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
11
+ *
12
+ * This software is licensed as described in the file COPYING, which
13
+ * you should have received as part of this distribution. The terms
14
+ * are also available at https://curl.se/docs/copyright.html.
15
+ *
16
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
17
+ * copies of the Software, and permit persons to whom the Software is
18
+ * furnished to do so, under the terms of the COPYING file.
19
+ *
20
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
21
+ * KIND, either express or implied.
22
+ *
23
+ * SPDX-License-Identifier: curl
24
+ *
25
+ ***************************************************************************/
26
+
27
+ /*
28
+ * Try to keep one section per platform, compiler and architecture, otherwise,
29
+ * if an existing section is reused for a different one and later on the
30
+ * original is adjusted, probably the piggybacking one can be adversely
31
+ * changed.
32
+ *
33
+ * In order to differentiate between platforms/compilers/architectures use
34
+ * only compiler built-in predefined preprocessor symbols.
35
+ *
36
+ * curl_off_t
37
+ * ----------
38
+ *
39
+ * For any given platform/compiler curl_off_t MUST be typedef'ed to a 64-bit
40
+ * wide signed integral data type. The width of this data type must remain
41
+ * constant and independent of any possible large file support settings.
42
+ *
43
+ * As a general rule, curl_off_t shall not be mapped to off_t. This rule shall
44
+ * only be violated if off_t is the only 64-bit data type available and the
45
+ * size of off_t is independent of large file support settings. Keep your
46
+ * build on the safe side avoiding an off_t gating. If you have a 64-bit
47
+ * off_t then take for sure that another 64-bit data type exists, dig deeper
48
+ * and you will find it.
49
+ *
50
+ */
51
+
52
+ #ifdef __DJGPP__
53
+ # define CURL_TYPEOF_CURL_OFF_T long long
54
+ # define CURL_FORMAT_CURL_OFF_T "lld"
55
+ # define CURL_FORMAT_CURL_OFF_TU "llu"
56
+ # define CURL_SUFFIX_CURL_OFF_T LL
57
+ # define CURL_SUFFIX_CURL_OFF_TU ULL
58
+ # define CURL_TYPEOF_CURL_SOCKLEN_T int
59
+
60
+ #elif defined(__BORLANDC__)
61
+ # define CURL_TYPEOF_CURL_OFF_T __int64
62
+ # define CURL_FORMAT_CURL_OFF_T "I64d"
63
+ # define CURL_FORMAT_CURL_OFF_TU "I64u"
64
+ # define CURL_SUFFIX_CURL_OFF_T i64
65
+ # define CURL_SUFFIX_CURL_OFF_TU ui64
66
+ # define CURL_TYPEOF_CURL_SOCKLEN_T int
67
+
68
+ #elif defined(__POCC__)
69
+ # if defined(_MSC_VER)
70
+ # define CURL_TYPEOF_CURL_OFF_T __int64
71
+ # define CURL_FORMAT_CURL_OFF_T "I64d"
72
+ # define CURL_FORMAT_CURL_OFF_TU "I64u"
73
+ # define CURL_SUFFIX_CURL_OFF_T i64
74
+ # define CURL_SUFFIX_CURL_OFF_TU ui64
75
+ # else
76
+ # define CURL_TYPEOF_CURL_OFF_T long long
77
+ # define CURL_FORMAT_CURL_OFF_T "lld"
78
+ # define CURL_FORMAT_CURL_OFF_TU "llu"
79
+ # define CURL_SUFFIX_CURL_OFF_T LL
80
+ # define CURL_SUFFIX_CURL_OFF_TU ULL
81
+ # endif
82
+ # define CURL_TYPEOF_CURL_SOCKLEN_T int
83
+
84
+ #elif defined(__LCC__)
85
+ # if defined(__MCST__) /* MCST eLbrus Compiler Collection */
86
+ # define CURL_TYPEOF_CURL_OFF_T long
87
+ # define CURL_FORMAT_CURL_OFF_T "ld"
88
+ # define CURL_FORMAT_CURL_OFF_TU "lu"
89
+ # define CURL_SUFFIX_CURL_OFF_T L
90
+ # define CURL_SUFFIX_CURL_OFF_TU UL
91
+ # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
92
+ # define CURL_PULL_SYS_TYPES_H 1
93
+ # define CURL_PULL_SYS_SOCKET_H 1
94
+ # else /* Local (or Little) C Compiler */
95
+ # define CURL_TYPEOF_CURL_OFF_T long
96
+ # define CURL_FORMAT_CURL_OFF_T "ld"
97
+ # define CURL_FORMAT_CURL_OFF_TU "lu"
98
+ # define CURL_SUFFIX_CURL_OFF_T L
99
+ # define CURL_SUFFIX_CURL_OFF_TU UL
100
+ # define CURL_TYPEOF_CURL_SOCKLEN_T int
101
+ # endif
102
+
103
+ #elif defined(macintosh)
104
+ # include <ConditionalMacros.h>
105
+ # if TYPE_LONGLONG
106
+ # define CURL_TYPEOF_CURL_OFF_T long long
107
+ # define CURL_FORMAT_CURL_OFF_T "lld"
108
+ # define CURL_FORMAT_CURL_OFF_TU "llu"
109
+ # define CURL_SUFFIX_CURL_OFF_T LL
110
+ # define CURL_SUFFIX_CURL_OFF_TU ULL
111
+ # else
112
+ # define CURL_TYPEOF_CURL_OFF_T long
113
+ # define CURL_FORMAT_CURL_OFF_T "ld"
114
+ # define CURL_FORMAT_CURL_OFF_TU "lu"
115
+ # define CURL_SUFFIX_CURL_OFF_T L
116
+ # define CURL_SUFFIX_CURL_OFF_TU UL
117
+ # endif
118
+ # define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int
119
+
120
+ #elif defined(__TANDEM)
121
+ # if !defined(__LP64)
122
+ # define CURL_TYPEOF_CURL_OFF_T long long
123
+ # define CURL_FORMAT_CURL_OFF_T "lld"
124
+ # define CURL_FORMAT_CURL_OFF_TU "llu"
125
+ # define CURL_SUFFIX_CURL_OFF_T LL
126
+ # define CURL_SUFFIX_CURL_OFF_TU ULL
127
+ # define CURL_TYPEOF_CURL_SOCKLEN_T int
128
+ # else
129
+ # define CURL_TYPEOF_CURL_OFF_T long
130
+ # define CURL_FORMAT_CURL_OFF_T "ld"
131
+ # define CURL_FORMAT_CURL_OFF_TU "lu"
132
+ # define CURL_SUFFIX_CURL_OFF_T L
133
+ # define CURL_SUFFIX_CURL_OFF_TU UL
134
+ # define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int
135
+ # endif
136
+
137
+ #elif defined(UNDER_CE)
138
+ # if defined(__MINGW32CE__)
139
+ # define CURL_TYPEOF_CURL_OFF_T long long
140
+ # define CURL_FORMAT_CURL_OFF_T "lld"
141
+ # define CURL_FORMAT_CURL_OFF_TU "llu"
142
+ # define CURL_SUFFIX_CURL_OFF_T LL
143
+ # define CURL_SUFFIX_CURL_OFF_TU ULL
144
+ # define CURL_TYPEOF_CURL_SOCKLEN_T int
145
+ # else
146
+ # define CURL_TYPEOF_CURL_OFF_T __int64
147
+ # define CURL_FORMAT_CURL_OFF_T "I64d"
148
+ # define CURL_FORMAT_CURL_OFF_TU "I64u"
149
+ # define CURL_SUFFIX_CURL_OFF_T i64
150
+ # define CURL_SUFFIX_CURL_OFF_TU ui64
151
+ # define CURL_TYPEOF_CURL_SOCKLEN_T int
152
+ # endif
153
+
154
+ #elif defined(__MINGW32__)
155
+ # include <inttypes.h>
156
+ # define CURL_TYPEOF_CURL_OFF_T long long
157
+ # define CURL_FORMAT_CURL_OFF_T PRId64
158
+ # define CURL_FORMAT_CURL_OFF_TU PRIu64
159
+ # define CURL_SUFFIX_CURL_OFF_T LL
160
+ # define CURL_SUFFIX_CURL_OFF_TU ULL
161
+ # define CURL_TYPEOF_CURL_SOCKLEN_T int
162
+ # define CURL_PULL_SYS_TYPES_H 1
163
+
164
+ #elif defined(__VMS)
165
+ # if defined(__VAX)
166
+ # define CURL_TYPEOF_CURL_OFF_T long
167
+ # define CURL_FORMAT_CURL_OFF_T "ld"
168
+ # define CURL_FORMAT_CURL_OFF_TU "lu"
169
+ # define CURL_SUFFIX_CURL_OFF_T L
170
+ # define CURL_SUFFIX_CURL_OFF_TU UL
171
+ # else
172
+ # define CURL_TYPEOF_CURL_OFF_T long long
173
+ # define CURL_FORMAT_CURL_OFF_T "lld"
174
+ # define CURL_FORMAT_CURL_OFF_TU "llu"
175
+ # define CURL_SUFFIX_CURL_OFF_T LL
176
+ # define CURL_SUFFIX_CURL_OFF_TU ULL
177
+ # endif
178
+ # define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int
179
+
180
+ #elif defined(__OS400__)
181
+ # define CURL_TYPEOF_CURL_OFF_T long long
182
+ # define CURL_FORMAT_CURL_OFF_T "lld"
183
+ # define CURL_FORMAT_CURL_OFF_TU "llu"
184
+ # define CURL_SUFFIX_CURL_OFF_T LL
185
+ # define CURL_SUFFIX_CURL_OFF_TU ULL
186
+ # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
187
+ # define CURL_PULL_SYS_TYPES_H 1
188
+ # define CURL_PULL_SYS_SOCKET_H 1
189
+
190
+ #elif defined(__MVS__)
191
+ # if defined(_LONG_LONG)
192
+ # define CURL_TYPEOF_CURL_OFF_T long long
193
+ # define CURL_FORMAT_CURL_OFF_T "lld"
194
+ # define CURL_FORMAT_CURL_OFF_TU "llu"
195
+ # define CURL_SUFFIX_CURL_OFF_T LL
196
+ # define CURL_SUFFIX_CURL_OFF_TU ULL
197
+ # else /* _LP64 and default */
198
+ # define CURL_TYPEOF_CURL_OFF_T long
199
+ # define CURL_FORMAT_CURL_OFF_T "ld"
200
+ # define CURL_FORMAT_CURL_OFF_TU "lu"
201
+ # define CURL_SUFFIX_CURL_OFF_T L
202
+ # define CURL_SUFFIX_CURL_OFF_TU UL
203
+ # endif
204
+ # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
205
+ # define CURL_PULL_SYS_TYPES_H 1
206
+ # define CURL_PULL_SYS_SOCKET_H 1
207
+
208
+ #elif defined(__370__)
209
+ # if defined(__IBMC__) || defined(__IBMCPP__)
210
+ # if defined(_LONG_LONG)
211
+ # define CURL_TYPEOF_CURL_OFF_T long long
212
+ # define CURL_FORMAT_CURL_OFF_T "lld"
213
+ # define CURL_FORMAT_CURL_OFF_TU "llu"
214
+ # define CURL_SUFFIX_CURL_OFF_T LL
215
+ # define CURL_SUFFIX_CURL_OFF_TU ULL
216
+ # else /* _LP64 and default */
217
+ # define CURL_TYPEOF_CURL_OFF_T long
218
+ # define CURL_FORMAT_CURL_OFF_T "ld"
219
+ # define CURL_FORMAT_CURL_OFF_TU "lu"
220
+ # define CURL_SUFFIX_CURL_OFF_T L
221
+ # define CURL_SUFFIX_CURL_OFF_TU UL
222
+ # endif
223
+ # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
224
+ # define CURL_PULL_SYS_TYPES_H 1
225
+ # define CURL_PULL_SYS_SOCKET_H 1
226
+ # endif
227
+
228
+ #elif defined(TPF)
229
+ # define CURL_TYPEOF_CURL_OFF_T long
230
+ # define CURL_FORMAT_CURL_OFF_T "ld"
231
+ # define CURL_FORMAT_CURL_OFF_TU "lu"
232
+ # define CURL_SUFFIX_CURL_OFF_T L
233
+ # define CURL_SUFFIX_CURL_OFF_TU UL
234
+ # define CURL_TYPEOF_CURL_SOCKLEN_T int
235
+
236
+ #elif defined(__TINYC__) /* also known as tcc */
237
+ # define CURL_TYPEOF_CURL_OFF_T long long
238
+ # define CURL_FORMAT_CURL_OFF_T "lld"
239
+ # define CURL_FORMAT_CURL_OFF_TU "llu"
240
+ # define CURL_SUFFIX_CURL_OFF_T LL
241
+ # define CURL_SUFFIX_CURL_OFF_TU ULL
242
+ # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
243
+ # define CURL_PULL_SYS_TYPES_H 1
244
+ # define CURL_PULL_SYS_SOCKET_H 1
245
+
246
+ #elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) /* Oracle Solaris Studio */
247
+ # if !defined(__LP64) && (defined(__ILP32) || \
248
+ defined(__i386) || \
249
+ defined(__sparcv8) || \
250
+ defined(__sparcv8plus))
251
+ # define CURL_TYPEOF_CURL_OFF_T long long
252
+ # define CURL_FORMAT_CURL_OFF_T "lld"
253
+ # define CURL_FORMAT_CURL_OFF_TU "llu"
254
+ # define CURL_SUFFIX_CURL_OFF_T LL
255
+ # define CURL_SUFFIX_CURL_OFF_TU ULL
256
+ # elif defined(__LP64) || \
257
+ defined(__amd64) || defined(__sparcv9)
258
+ # define CURL_TYPEOF_CURL_OFF_T long
259
+ # define CURL_FORMAT_CURL_OFF_T "ld"
260
+ # define CURL_FORMAT_CURL_OFF_TU "lu"
261
+ # define CURL_SUFFIX_CURL_OFF_T L
262
+ # define CURL_SUFFIX_CURL_OFF_TU UL
263
+ # endif
264
+ # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
265
+ # define CURL_PULL_SYS_TYPES_H 1
266
+ # define CURL_PULL_SYS_SOCKET_H 1
267
+
268
+ #elif defined(__xlc__) /* IBM xlc compiler */
269
+ # if !defined(_LP64)
270
+ # define CURL_TYPEOF_CURL_OFF_T long long
271
+ # define CURL_FORMAT_CURL_OFF_T "lld"
272
+ # define CURL_FORMAT_CURL_OFF_TU "llu"
273
+ # define CURL_SUFFIX_CURL_OFF_T LL
274
+ # define CURL_SUFFIX_CURL_OFF_TU ULL
275
+ # else
276
+ # define CURL_TYPEOF_CURL_OFF_T long
277
+ # define CURL_FORMAT_CURL_OFF_T "ld"
278
+ # define CURL_FORMAT_CURL_OFF_TU "lu"
279
+ # define CURL_SUFFIX_CURL_OFF_T L
280
+ # define CURL_SUFFIX_CURL_OFF_TU UL
281
+ # endif
282
+ # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
283
+ # define CURL_PULL_SYS_TYPES_H 1
284
+ # define CURL_PULL_SYS_SOCKET_H 1
285
+
286
+ #elif defined(__hpux) /* HP aCC compiler */
287
+ # if !defined(_LP64)
288
+ # define CURL_TYPEOF_CURL_OFF_T long long
289
+ # define CURL_FORMAT_CURL_OFF_T "lld"
290
+ # define CURL_FORMAT_CURL_OFF_TU "llu"
291
+ # define CURL_SUFFIX_CURL_OFF_T LL
292
+ # define CURL_SUFFIX_CURL_OFF_TU ULL
293
+ # else
294
+ # define CURL_TYPEOF_CURL_OFF_T long
295
+ # define CURL_FORMAT_CURL_OFF_T "ld"
296
+ # define CURL_FORMAT_CURL_OFF_TU "lu"
297
+ # define CURL_SUFFIX_CURL_OFF_T L
298
+ # define CURL_SUFFIX_CURL_OFF_TU UL
299
+ # endif
300
+ # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
301
+ # define CURL_PULL_SYS_TYPES_H 1
302
+ # define CURL_PULL_SYS_SOCKET_H 1
303
+
304
+ /* ===================================== */
305
+ /* KEEP MSVC THE PENULTIMATE ENTRY */
306
+ /* ===================================== */
307
+
308
+ #elif defined(_MSC_VER)
309
+ # if (_MSC_VER >= 1800)
310
+ # include <inttypes.h>
311
+ # define CURL_FORMAT_CURL_OFF_T PRId64
312
+ # define CURL_FORMAT_CURL_OFF_TU PRIu64
313
+ # else
314
+ # define CURL_FORMAT_CURL_OFF_T "I64d"
315
+ # define CURL_FORMAT_CURL_OFF_TU "I64u"
316
+ # endif
317
+ # define CURL_TYPEOF_CURL_OFF_T __int64
318
+ # define CURL_SUFFIX_CURL_OFF_T i64
319
+ # define CURL_SUFFIX_CURL_OFF_TU ui64
320
+ # define CURL_TYPEOF_CURL_SOCKLEN_T int
321
+
322
+ /* ===================================== */
323
+ /* KEEP GENERIC GCC THE LAST ENTRY */
324
+ /* ===================================== */
325
+
326
+ #elif defined(__GNUC__) && !defined(_SCO_DS)
327
+ # if !defined(__LP64__) && \
328
+ (defined(__ILP32__) || defined(__i386__) || defined(__hppa__) || \
329
+ defined(__ppc__) || defined(__powerpc__) || defined(__arm__) || \
330
+ defined(__sparc__) || defined(__mips__) || defined(__sh__) || \
331
+ defined(__XTENSA__) || \
332
+ (defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 4) || \
333
+ (defined(__LONG_MAX__) && __LONG_MAX__ == 2147483647L))
334
+ # define CURL_TYPEOF_CURL_OFF_T long long
335
+ # define CURL_FORMAT_CURL_OFF_T "lld"
336
+ # define CURL_FORMAT_CURL_OFF_TU "llu"
337
+ # define CURL_SUFFIX_CURL_OFF_T LL
338
+ # define CURL_SUFFIX_CURL_OFF_TU ULL
339
+ # define CURL_POPCOUNT64(x) __builtin_popcountll(x)
340
+ # define CURL_CTZ64(x) __builtin_ctzll(x)
341
+ # elif defined(__LP64__) || \
342
+ defined(__x86_64__) || defined(__ppc64__) || defined(__sparc64__) || \
343
+ defined(__e2k__) || \
344
+ (defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 8) || \
345
+ (defined(__LONG_MAX__) && __LONG_MAX__ == 9223372036854775807L)
346
+ # define CURL_TYPEOF_CURL_OFF_T long
347
+ # define CURL_FORMAT_CURL_OFF_T "ld"
348
+ # define CURL_FORMAT_CURL_OFF_TU "lu"
349
+ # define CURL_SUFFIX_CURL_OFF_T L
350
+ # define CURL_SUFFIX_CURL_OFF_TU UL
351
+ # define CURL_POPCOUNT64(x) __builtin_popcountl(x)
352
+ # define CURL_CTZ64(x) __builtin_ctzl(x)
353
+ # endif
354
+ # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
355
+ # define CURL_PULL_SYS_TYPES_H 1
356
+ # define CURL_PULL_SYS_SOCKET_H 1
357
+
358
+ #else
359
+ /* generic "safe guess" on old 32-bit style */
360
+ # define CURL_TYPEOF_CURL_OFF_T long long
361
+ # define CURL_FORMAT_CURL_OFF_T "lld"
362
+ # define CURL_FORMAT_CURL_OFF_TU "llu"
363
+ # define CURL_SUFFIX_CURL_OFF_T LL
364
+ # define CURL_SUFFIX_CURL_OFF_TU ULL
365
+ # define CURL_TYPEOF_CURL_SOCKLEN_T int
366
+ #endif
367
+
368
+ #ifdef _AIX
369
+ /* AIX needs <sys/poll.h> */
370
+ #define CURL_PULL_SYS_POLL_H
371
+ #endif
372
+
373
+ /* CURL_PULL_SYS_TYPES_H is defined above when inclusion of header file */
374
+ /* sys/types.h is required here to properly make type definitions below. */
375
+ #ifdef CURL_PULL_SYS_TYPES_H
376
+ # include <sys/types.h>
377
+ #endif
378
+
379
+ /* CURL_PULL_SYS_SOCKET_H is defined above when inclusion of header file */
380
+ /* sys/socket.h is required here to properly make type definitions below. */
381
+ #ifdef CURL_PULL_SYS_SOCKET_H
382
+ # include <sys/socket.h>
383
+ #endif
384
+
385
+ /* CURL_PULL_SYS_POLL_H is defined above when inclusion of header file */
386
+ /* sys/poll.h is required here to properly make type definitions below. */
387
+ #ifdef CURL_PULL_SYS_POLL_H
388
+ # include <sys/poll.h>
389
+ #endif
390
+
391
+ /* Data type definition of curl_socklen_t. */
392
+ #ifdef CURL_TYPEOF_CURL_SOCKLEN_T
393
+ typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t;
394
+ #endif
395
+
396
+ /* Data type definition of curl_off_t. */
397
+
398
+ #ifdef CURL_TYPEOF_CURL_OFF_T
399
+ typedef CURL_TYPEOF_CURL_OFF_T curl_off_t;
400
+ #endif
401
+
402
+ #endif /* CURLINC_SYSTEM_H */