102102#include <sys/time.h>
103103#endif
104104
105- #ifdef __cplusplus
105+ #ifdef __cplusplus
106106extern "C" {
107107#endif
108108
@@ -124,7 +124,7 @@ typedef void CURLSH;
124124#elif defined(_WIN32 ) || \
125125 (CURL_HAS_DECLSPEC_ATTRIBUTE (dllexport ) && \
126126 CURL_HAS_DECLSPEC_ATTRIBUTE (dllimport ))
127- # if defined( BUILDING_LIBCURL )
127+ # ifdef BUILDING_LIBCURL
128128# define CURL_EXTERN __declspec(dllexport)
129129# else
130130# define CURL_EXTERN __declspec(dllimport)
@@ -788,20 +788,24 @@ typedef CURLcode (*curl_ssl_ctx_callback)(CURL *curl, /* easy handle */
788788 mbedtls_ssl_config */
789789 void * userptr );
790790
791+ #define CURLPROXY_HTTP 0L /* added in 7.10, new in 7.19.4 default is
792+ to use CONNECT HTTP/1.1 */
793+ #define CURLPROXY_HTTP_1_0 1L /* force to use CONNECT HTTP/1.0
794+ added in 7.19.4 */
795+ #define CURLPROXY_HTTPS 2L /* HTTPS but stick to HTTP/1
796+ added in 7.52.0 */
797+ #define CURLPROXY_HTTPS2 3L /* HTTPS and attempt HTTP/2
798+ added in 8.2.0 */
799+ #define CURLPROXY_SOCKS4 4L /* support added in 7.15.2, enum existed
800+ already in 7.10 */
801+ #define CURLPROXY_SOCKS5 5L /* added in 7.10 */
802+ #define CURLPROXY_SOCKS4A 6L /* added in 7.18.0 */
803+ #define CURLPROXY_SOCKS5_HOSTNAME 7L /* Use the SOCKS5 protocol but pass along
804+ the hostname rather than the IP
805+ address. added in 7.18.0 */
806+
791807typedef enum {
792- CURLPROXY_HTTP = 0 , /* added in 7.10, new in 7.19.4 default is to use
793- CONNECT HTTP/1.1 */
794- CURLPROXY_HTTP_1_0 = 1 , /* added in 7.19.4, force to use CONNECT
795- HTTP/1.0 */
796- CURLPROXY_HTTPS = 2 , /* HTTPS but stick to HTTP/1 added in 7.52.0 */
797- CURLPROXY_HTTPS2 = 3 , /* HTTPS and attempt HTTP/2 added in 8.2.0 */
798- CURLPROXY_SOCKS4 = 4 , /* support added in 7.15.2, enum existed already
799- in 7.10 */
800- CURLPROXY_SOCKS5 = 5 , /* added in 7.10 */
801- CURLPROXY_SOCKS4A = 6 , /* added in 7.18.0 */
802- CURLPROXY_SOCKS5_HOSTNAME = 7 /* Use the SOCKS5 protocol but pass along the
803- hostname rather than the IP address. added
804- in 7.18.0 */
808+ CURLPROXY_LAST = 8 /* never use */
805809} curl_proxytype ; /* this enum was added in 7.10 */
806810
807811/*
@@ -842,19 +846,19 @@ typedef enum {
842846#define CURLAUTH_ANY (~CURLAUTH_DIGEST_IE)
843847#define CURLAUTH_ANYSAFE (~(CURLAUTH_BASIC|CURLAUTH_DIGEST_IE))
844848
845- #define CURLSSH_AUTH_ANY ~0 /* all types supported by the server */
846- #define CURLSSH_AUTH_NONE 0 /* none allowed, silly but complete */
847- #define CURLSSH_AUTH_PUBLICKEY (1 <<0) /* public/private key files */
848- #define CURLSSH_AUTH_PASSWORD (1 <<1) /* password */
849- #define CURLSSH_AUTH_HOST (1 <<2) /* host key files */
850- #define CURLSSH_AUTH_KEYBOARD (1 <<3) /* keyboard interactive */
851- #define CURLSSH_AUTH_AGENT (1 <<4) /* agent (ssh-agent, pageant...) */
852- #define CURLSSH_AUTH_GSSAPI (1 <<5) /* gssapi (kerberos, ...) */
849+ #define CURLSSH_AUTH_ANY ~0L /* all types supported by the server */
850+ #define CURLSSH_AUTH_NONE 0L /* none allowed, silly but complete */
851+ #define CURLSSH_AUTH_PUBLICKEY (1L <<0) /* public/private key files */
852+ #define CURLSSH_AUTH_PASSWORD (1L <<1) /* password */
853+ #define CURLSSH_AUTH_HOST (1L <<2) /* host key files */
854+ #define CURLSSH_AUTH_KEYBOARD (1L <<3) /* keyboard interactive */
855+ #define CURLSSH_AUTH_AGENT (1L <<4) /* agent (ssh-agent, pageant...) */
856+ #define CURLSSH_AUTH_GSSAPI (1L <<5) /* gssapi (kerberos, ...) */
853857#define CURLSSH_AUTH_DEFAULT CURLSSH_AUTH_ANY
854858
855- #define CURLGSSAPI_DELEGATION_NONE 0 /* no delegation (default) */
856- #define CURLGSSAPI_DELEGATION_POLICY_FLAG (1 <<0) /* if permitted by policy */
857- #define CURLGSSAPI_DELEGATION_FLAG (1 <<1) /* delegate always */
859+ #define CURLGSSAPI_DELEGATION_NONE 0L /* no delegation (default) */
860+ #define CURLGSSAPI_DELEGATION_POLICY_FLAG (1L <<0) /* if permitted by policy */
861+ #define CURLGSSAPI_DELEGATION_FLAG (1L <<1) /* delegate always */
858862
859863#define CURL_ERROR_SIZE 256
860864
@@ -979,50 +983,55 @@ typedef enum {
979983#endif /* !CURL_NO_OLDIES */
980984
981985/* parameter for the CURLOPT_FTP_SSL_CCC option */
986+ #define CURLFTPSSL_CCC_NONE 0L /* do not send CCC */
987+ #define CURLFTPSSL_CCC_PASSIVE 1L /* Let the server initiate the shutdown */
988+ #define CURLFTPSSL_CCC_ACTIVE 2L /* Initiate the shutdown */
989+
982990typedef enum {
983- CURLFTPSSL_CCC_NONE , /* do not send CCC */
984- CURLFTPSSL_CCC_PASSIVE , /* Let the server initiate the shutdown */
985- CURLFTPSSL_CCC_ACTIVE , /* Initiate the shutdown */
986- CURLFTPSSL_CCC_LAST /* not an option, never use */
991+ CURLFTPSSL_CCC_LAST = 3 /* not an option, never use */
987992} curl_ftpccc ;
988993
989994/* parameter for the CURLOPT_FTPSSLAUTH option */
995+ #define CURLFTPAUTH_DEFAULT 0L /* let libcurl decide */
996+ #define CURLFTPAUTH_SSL 1L /* use "AUTH SSL" */
997+ #define CURLFTPAUTH_TLS 2L /* use "AUTH TLS" */
998+
990999typedef enum {
991- CURLFTPAUTH_DEFAULT , /* let libcurl decide */
992- CURLFTPAUTH_SSL , /* use "AUTH SSL" */
993- CURLFTPAUTH_TLS , /* use "AUTH TLS" */
994- CURLFTPAUTH_LAST /* not an option, never use */
1000+ CURLFTPAUTH_LAST = 3 /* not an option, never use */
9951001} curl_ftpauth ;
9961002
9971003/* parameter for the CURLOPT_FTP_CREATE_MISSING_DIRS option */
1004+ #define CURLFTP_CREATE_DIR_NONE 0L /* do NOT create missing dirs! */
1005+ #define CURLFTP_CREATE_DIR 1L /* (FTP/SFTP) if CWD fails, try MKD and
1006+ then CWD again if MKD succeeded, for
1007+ SFTP this does similar magic */
1008+ #define CURLFTP_CREATE_DIR_RETRY 2L /* (FTP only) if CWD fails, try MKD and
1009+ then CWD again even if MKD failed! */
1010+
9981011typedef enum {
999- CURLFTP_CREATE_DIR_NONE , /* do NOT create missing dirs! */
1000- CURLFTP_CREATE_DIR , /* (FTP/SFTP) if CWD fails, try MKD and then CWD
1001- again if MKD succeeded, for SFTP this does
1002- similar magic */
1003- CURLFTP_CREATE_DIR_RETRY , /* (FTP only) if CWD fails, try MKD and then CWD
1004- again even if MKD failed! */
1005- CURLFTP_CREATE_DIR_LAST /* not an option, never use */
1012+ CURLFTP_CREATE_DIR_LAST = 3 /* not an option, never use */
10061013} curl_ftpcreatedir ;
10071014
10081015/* parameter for the CURLOPT_FTP_FILEMETHOD option */
1016+ #define CURLFTPMETHOD_DEFAULT 0L /* let libcurl pick */
1017+ #define CURLFTPMETHOD_MULTICWD 1L /* single CWD operation for each path
1018+ part */
1019+ #define CURLFTPMETHOD_NOCWD 2L /* no CWD at all */
1020+ #define CURLFTPMETHOD_SINGLECWD 3L /* one CWD to full dir, then work on file */
1021+
10091022typedef enum {
1010- CURLFTPMETHOD_DEFAULT , /* let libcurl pick */
1011- CURLFTPMETHOD_MULTICWD , /* single CWD operation for each path part */
1012- CURLFTPMETHOD_NOCWD , /* no CWD at all */
1013- CURLFTPMETHOD_SINGLECWD , /* one CWD to full dir, then work on file */
1014- CURLFTPMETHOD_LAST /* not an option, never use */
1023+ CURLFTPMETHOD_LAST = 4 /* not an option, never use */
10151024} curl_ftpmethod ;
10161025
10171026/* bitmask defines for CURLOPT_HEADEROPT */
1018- #define CURLHEADER_UNIFIED 0
1019- #define CURLHEADER_SEPARATE (1 <<0)
1027+ #define CURLHEADER_UNIFIED 0L
1028+ #define CURLHEADER_SEPARATE (1L <<0)
10201029
10211030/* CURLALTSVC_* are bits for the CURLOPT_ALTSVC_CTRL option */
1022- #define CURLALTSVC_READONLYFILE (1 <<2)
1023- #define CURLALTSVC_H1 (1 <<3)
1024- #define CURLALTSVC_H2 (1 <<4)
1025- #define CURLALTSVC_H3 (1 <<5)
1031+ #define CURLALTSVC_READONLYFILE (1L <<2)
1032+ #define CURLALTSVC_H1 (1L <<3)
1033+ #define CURLALTSVC_H2 (1L <<4)
1034+ #define CURLALTSVC_H3 (1L <<5)
10261035
10271036/* bitmask values for CURLOPT_UPLOAD_FLAGS */
10281037#define CURLULFLAG_ANSWERED (1L<<0)
@@ -1058,42 +1067,42 @@ typedef CURLSTScode (*curl_hstswrite_callback)(CURL *easy,
10581067 void * userp );
10591068
10601069/* CURLHSTS_* are bits for the CURLOPT_HSTS option */
1061- #define CURLHSTS_ENABLE (long)(1 <<0)
1062- #define CURLHSTS_READONLYFILE (long)(1 <<1)
1070+ #define CURLHSTS_ENABLE (1L <<0)
1071+ #define CURLHSTS_READONLYFILE (1L <<1)
10631072
10641073/* The CURLPROTO_ defines below are for the **deprecated** CURLOPT_*PROTOCOLS
10651074 options. Do not use. */
1066- #define CURLPROTO_HTTP (1 <<0)
1067- #define CURLPROTO_HTTPS (1 <<1)
1068- #define CURLPROTO_FTP (1 <<2)
1069- #define CURLPROTO_FTPS (1 <<3)
1070- #define CURLPROTO_SCP (1 <<4)
1071- #define CURLPROTO_SFTP (1 <<5)
1072- #define CURLPROTO_TELNET (1 <<6)
1073- #define CURLPROTO_LDAP (1 <<7)
1074- #define CURLPROTO_LDAPS (1 <<8)
1075- #define CURLPROTO_DICT (1 <<9)
1076- #define CURLPROTO_FILE (1 <<10)
1077- #define CURLPROTO_TFTP (1 <<11)
1078- #define CURLPROTO_IMAP (1 <<12)
1079- #define CURLPROTO_IMAPS (1 <<13)
1080- #define CURLPROTO_POP3 (1 <<14)
1081- #define CURLPROTO_POP3S (1 <<15)
1082- #define CURLPROTO_SMTP (1 <<16)
1083- #define CURLPROTO_SMTPS (1 <<17)
1084- #define CURLPROTO_RTSP (1 <<18)
1085- #define CURLPROTO_RTMP (1 <<19)
1086- #define CURLPROTO_RTMPT (1 <<20)
1087- #define CURLPROTO_RTMPE (1 <<21)
1088- #define CURLPROTO_RTMPTE (1 <<22)
1089- #define CURLPROTO_RTMPS (1 <<23)
1090- #define CURLPROTO_RTMPTS (1 <<24)
1091- #define CURLPROTO_GOPHER (1 <<25)
1092- #define CURLPROTO_SMB (1 <<26)
1093- #define CURLPROTO_SMBS (1 <<27)
1094- #define CURLPROTO_MQTT (1 <<28)
1095- #define CURLPROTO_GOPHERS (1 <<29)
1096- #define CURLPROTO_ALL (~0 ) /* enable everything */
1075+ #define CURLPROTO_HTTP (1L <<0)
1076+ #define CURLPROTO_HTTPS (1L <<1)
1077+ #define CURLPROTO_FTP (1L <<2)
1078+ #define CURLPROTO_FTPS (1L <<3)
1079+ #define CURLPROTO_SCP (1L <<4)
1080+ #define CURLPROTO_SFTP (1L <<5)
1081+ #define CURLPROTO_TELNET (1L <<6)
1082+ #define CURLPROTO_LDAP (1L <<7)
1083+ #define CURLPROTO_LDAPS (1L <<8)
1084+ #define CURLPROTO_DICT (1L <<9)
1085+ #define CURLPROTO_FILE (1L <<10)
1086+ #define CURLPROTO_TFTP (1L <<11)
1087+ #define CURLPROTO_IMAP (1L <<12)
1088+ #define CURLPROTO_IMAPS (1L <<13)
1089+ #define CURLPROTO_POP3 (1L <<14)
1090+ #define CURLPROTO_POP3S (1L <<15)
1091+ #define CURLPROTO_SMTP (1L <<16)
1092+ #define CURLPROTO_SMTPS (1L <<17)
1093+ #define CURLPROTO_RTSP (1L <<18)
1094+ #define CURLPROTO_RTMP (1L <<19)
1095+ #define CURLPROTO_RTMPT (1L <<20)
1096+ #define CURLPROTO_RTMPE (1L <<21)
1097+ #define CURLPROTO_RTMPTE (1L <<22)
1098+ #define CURLPROTO_RTMPS (1L <<23)
1099+ #define CURLPROTO_RTMPTS (1L <<24)
1100+ #define CURLPROTO_GOPHER (1L <<25)
1101+ #define CURLPROTO_SMB (1L <<26)
1102+ #define CURLPROTO_SMBS (1L <<27)
1103+ #define CURLPROTO_MQTT (1L <<28)
1104+ #define CURLPROTO_GOPHERS (1L <<29)
1105+ #define CURLPROTO_ALL (~0L ) /* enable everything */
10971106
10981107/* long may be 32 or 64 bits, but we should never depend on anything else
10991108 but 32 */
@@ -2354,18 +2363,18 @@ enum CURL_NETRC_OPTION {
23542363 CURL_NETRC_LAST = 3
23552364};
23562365
2357- #define CURL_SSLVERSION_DEFAULT 0
2358- #define CURL_SSLVERSION_TLSv1 1 /* TLS 1.x */
2359- #define CURL_SSLVERSION_SSLv2 2
2360- #define CURL_SSLVERSION_SSLv3 3
2361- #define CURL_SSLVERSION_TLSv1_0 4
2362- #define CURL_SSLVERSION_TLSv1_1 5
2363- #define CURL_SSLVERSION_TLSv1_2 6
2364- #define CURL_SSLVERSION_TLSv1_3 7
2366+ #define CURL_SSLVERSION_DEFAULT 0L
2367+ #define CURL_SSLVERSION_TLSv1 1L /* TLS 1.x */
2368+ #define CURL_SSLVERSION_SSLv2 2L
2369+ #define CURL_SSLVERSION_SSLv3 3L
2370+ #define CURL_SSLVERSION_TLSv1_0 4L
2371+ #define CURL_SSLVERSION_TLSv1_1 5L
2372+ #define CURL_SSLVERSION_TLSv1_2 6L
2373+ #define CURL_SSLVERSION_TLSv1_3 7L
23652374
2366- #define CURL_SSLVERSION_LAST 8 /* never use, keep last */
2375+ #define CURL_SSLVERSION_LAST 8L /* never use, keep last */
23672376
2368- #define CURL_SSLVERSION_MAX_NONE 0
2377+ #define CURL_SSLVERSION_MAX_NONE 0L
23692378#define CURL_SSLVERSION_MAX_DEFAULT (CURL_SSLVERSION_TLSv1 << 16)
23702379#define CURL_SSLVERSION_MAX_TLSv1_0 (CURL_SSLVERSION_TLSv1_0 << 16)
23712380#define CURL_SSLVERSION_MAX_TLSv1_1 (CURL_SSLVERSION_TLSv1_1 << 16)
@@ -2389,10 +2398,10 @@ enum CURL_TLSAUTH {
23892398 can be bitwise ORed so that CURL_REDIR_POST_301 | CURL_REDIR_POST_302
23902399 | CURL_REDIR_POST_303 == CURL_REDIR_POST_ALL */
23912400
2392- #define CURL_REDIR_GET_ALL 0
2393- #define CURL_REDIR_POST_301 1
2394- #define CURL_REDIR_POST_302 2
2395- #define CURL_REDIR_POST_303 4
2401+ #define CURL_REDIR_GET_ALL 0L
2402+ #define CURL_REDIR_POST_301 1L
2403+ #define CURL_REDIR_POST_302 2L
2404+ #define CURL_REDIR_POST_303 4L
23962405#define CURL_REDIR_POST_ALL \
23972406 (CURL_REDIR_POST_301|CURL_REDIR_POST_302|CURL_REDIR_POST_303)
23982407
@@ -2421,7 +2430,7 @@ typedef struct curl_mime curl_mime; /* Mime context. */
24212430typedef struct curl_mimepart curl_mimepart ; /* Mime part context. */
24222431
24232432/* CURLMIMEOPT_ defines are for the CURLOPT_MIME_OPTIONS option. */
2424- #define CURLMIMEOPT_FORMESCAPE (1 <<0) /* Use backslash-escaping for forms. */
2433+ #define CURLMIMEOPT_FORMESCAPE (1L <<0) /* Use backslash-escaping for forms. */
24252434
24262435/*
24272436 * NAME curl_mime_init()
@@ -2750,7 +2759,7 @@ CURL_EXTERN CURLcode curl_global_init(long flags);
27502759 * for each application that uses libcurl. This function can be used to
27512760 * initialize libcurl and set user defined memory management callback
27522761 * functions. Users can implement memory management routines to check for
2753- * memory leaks, check for mis-use of the curl library etc. User registered
2762+ * memory leaks, check for misuse of the curl library etc. User registered
27542763 * callback routines will be invoked by this library instead of the system
27552764 * memory management routines like malloc, free etc.
27562765 */
@@ -3302,7 +3311,7 @@ CURL_EXTERN CURLcode curl_easy_ssls_export(CURL *handle,
33023311 void * userptr );
33033312
33043313
3305- #ifdef __cplusplus
3314+ #ifdef __cplusplus
33063315} /* end of extern "C" */
33073316#endif
33083317
@@ -3317,8 +3326,9 @@ CURL_EXTERN CURLcode curl_easy_ssls_export(CURL *handle,
33173326#include "mprintf.h"
33183327
33193328/* the typechecker does not work in C++ (yet) */
3320- #if defined(__GNUC__ ) && defined(__GNUC_MINOR__ ) && \
3321- ((__GNUC__ > 4 ) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3 )) && \
3329+ #if ((defined(__GNUC__ ) && defined(__GNUC_MINOR__ ) && \
3330+ ((__GNUC__ > 4 ) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3 ))) || \
3331+ (defined(__clang__ ) && __clang_major__ >= 14 )) && \
33223332 !defined(__cplusplus ) && !defined(CURL_DISABLE_TYPECHECK )
33233333#include "typecheck-gcc.h"
33243334#else
0 commit comments