build-mac/curl/curl.h
changeset 531 a7cc26cc39f2
parent 340 ff99a398d872
     1.1 --- a/build-mac/curl/curl.h	Wed Apr 20 14:49:57 2016 +0200
     1.2 +++ b/build-mac/curl/curl.h	Wed Apr 20 15:40:00 2016 +0200
     1.3 @@ -11,7 +11,7 @@
     1.4   *
     1.5   * This software is licensed as described in the file COPYING, which
     1.6   * you should have received as part of this distribution. The terms
     1.7 - * are also available at http://curl.haxx.se/docs/copyright.html.
     1.8 + * are also available at https://curl.haxx.se/docs/copyright.html.
     1.9   *
    1.10   * You may opt to use, copy, modify, merge, publish, distribute and/or sell
    1.11   * copies of the Software, and permit persons to whom the Software is
    1.12 @@ -24,10 +24,10 @@
    1.13  
    1.14  /*
    1.15   * If you have libcurl problems, all docs and details are found here:
    1.16 - *   http://curl.haxx.se/libcurl/
    1.17 + *   https://curl.haxx.se/libcurl/
    1.18   *
    1.19   * curl-library mailing list subscription and unsubscription web interface:
    1.20 - *   http://cool.haxx.se/mailman/listinfo/curl-library/
    1.21 + *   https://cool.haxx.se/mailman/listinfo/curl-library/
    1.22   */
    1.23  
    1.24  #include "curlver.h"         /* libcurl version defines   */
    1.25 @@ -56,7 +56,8 @@
    1.26  #include <time.h>
    1.27  
    1.28  #if defined(WIN32) && !defined(_WIN32_WCE) && !defined(__CYGWIN__)
    1.29 -#if !(defined(_WINSOCKAPI_) || defined(_WINSOCK_H) || defined(__LWIP_OPT_H__))
    1.30 +#if !(defined(_WINSOCKAPI_) || defined(_WINSOCK_H) || \
    1.31 +      defined(__LWIP_OPT_H__) || defined(LWIP_HDR_OPT_H))
    1.32  /* The check above prevents the winsock2 inclusion if winsock.h already was
    1.33     included, since they can't co-exist without problems */
    1.34  #include <winsock2.h>
    1.35 @@ -112,7 +113,7 @@
    1.36  
    1.37  #ifndef curl_socket_typedef
    1.38  /* socket typedef */
    1.39 -#if defined(WIN32) && !defined(__LWIP_OPT_H__)
    1.40 +#if defined(WIN32) && !defined(__LWIP_OPT_H__) && !defined(LWIP_HDR_OPT_H)
    1.41  typedef SOCKET curl_socket_t;
    1.42  #define CURL_SOCKET_BAD INVALID_SOCKET
    1.43  #else
    1.44 @@ -127,7 +128,8 @@
    1.45    char *name;                       /* pointer to allocated name */
    1.46    long namelength;                  /* length of name length */
    1.47    char *contents;                   /* pointer to allocated data contents */
    1.48 -  long contentslength;              /* length of contents field */
    1.49 +  long contentslength;              /* length of contents field, see also
    1.50 +                                       CURL_HTTPPOST_LARGE */
    1.51    char *buffer;                     /* pointer to allocated buffer contents */
    1.52    long bufferlength;                /* length of buffer field */
    1.53    char *contenttype;                /* Content-Type */
    1.54 @@ -136,24 +138,33 @@
    1.55                                         file, this link should link to following
    1.56                                         files */
    1.57    long flags;                       /* as defined below */
    1.58 -#define HTTPPOST_FILENAME (1<<0)    /* specified content is a file name */
    1.59 -#define HTTPPOST_READFILE (1<<1)    /* specified content is a file name */
    1.60 -#define HTTPPOST_PTRNAME (1<<2)     /* name is only stored pointer
    1.61 -                                       do not free in formfree */
    1.62 -#define HTTPPOST_PTRCONTENTS (1<<3) /* contents is only stored pointer
    1.63 -                                       do not free in formfree */
    1.64 -#define HTTPPOST_BUFFER (1<<4)      /* upload file from buffer */
    1.65 -#define HTTPPOST_PTRBUFFER (1<<5)   /* upload file from pointer contents */
    1.66 -#define HTTPPOST_CALLBACK (1<<6)    /* upload file contents by using the
    1.67 -                                       regular read callback to get the data
    1.68 -                                       and pass the given pointer as custom
    1.69 -                                       pointer */
    1.70 +
    1.71 +/* specified content is a file name */
    1.72 +#define CURL_HTTPPOST_FILENAME (1<<0)
    1.73 +/* specified content is a file name */
    1.74 +#define CURL_HTTPPOST_READFILE (1<<1)
    1.75 +/* name is only stored pointer do not free in formfree */
    1.76 +#define CURL_HTTPPOST_PTRNAME (1<<2)
    1.77 +/* contents is only stored pointer do not free in formfree */
    1.78 +#define CURL_HTTPPOST_PTRCONTENTS (1<<3)
    1.79 +/* upload file from buffer */
    1.80 +#define CURL_HTTPPOST_BUFFER (1<<4)
    1.81 +/* upload file from pointer contents */
    1.82 +#define CURL_HTTPPOST_PTRBUFFER (1<<5)
    1.83 +/* upload file contents by using the regular read callback to get the data and
    1.84 +   pass the given pointer as custom pointer */
    1.85 +#define CURL_HTTPPOST_CALLBACK (1<<6)
    1.86 +/* use size in 'contentlen', added in 7.46.0 */
    1.87 +#define CURL_HTTPPOST_LARGE (1<<7)
    1.88  
    1.89    char *showfilename;               /* The file name to show. If not set, the
    1.90                                         actual file name will be used (if this
    1.91                                         is a file part) */
    1.92    void *userp;                      /* custom pointer used for
    1.93                                         HTTPPOST_CALLBACK posts */
    1.94 +  curl_off_t contentlen;            /* alternative length of contents
    1.95 +                                       field. Used if CURL_HTTPPOST_LARGE is
    1.96 +                                       set. Added in 7.46.0 */
    1.97  };
    1.98  
    1.99  /* This is the CURLOPT_PROGRESSFUNCTION callback proto. It is now considered
   1.100 @@ -725,6 +736,10 @@
   1.101     servers, a user can this way allow the vulnerability back. */
   1.102  #define CURLSSLOPT_ALLOW_BEAST (1<<0)
   1.103  
   1.104 +/* - NO_REVOKE tells libcurl to disable certificate revocation checks for those
   1.105 +   SSL backends where such behavior is present. */
   1.106 +#define CURLSSLOPT_NO_REVOKE (1<<1)
   1.107 +
   1.108  #ifndef CURL_NO_OLDIES /* define this to test if your app builds with all
   1.109                            the obsolete stuff removed! */
   1.110  
   1.111 @@ -814,9 +829,13 @@
   1.112     but 32 */
   1.113  #define CURLOPTTYPE_LONG          0
   1.114  #define CURLOPTTYPE_OBJECTPOINT   10000
   1.115 +#define CURLOPTTYPE_STRINGPOINT   10000
   1.116  #define CURLOPTTYPE_FUNCTIONPOINT 20000
   1.117  #define CURLOPTTYPE_OFF_T         30000
   1.118  
   1.119 +/* *STRINGPOINT is an alias for OBJECTPOINT to allow tools to extract the
   1.120 +   string options from the header file */
   1.121 +
   1.122  /* name is uppercase CURLOPT_<name>,
   1.123     type is one of the defined CURLOPTTYPE_<type>
   1.124     number is unique identifier */
   1.125 @@ -830,6 +849,7 @@
   1.126  /* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */
   1.127  #define LONG          CURLOPTTYPE_LONG
   1.128  #define OBJECTPOINT   CURLOPTTYPE_OBJECTPOINT
   1.129 +#define STRINGPOINT   CURLOPTTYPE_OBJECTPOINT
   1.130  #define FUNCTIONPOINT CURLOPTTYPE_FUNCTIONPOINT
   1.131  #define OFF_T         CURLOPTTYPE_OFF_T
   1.132  #define CINIT(name,type,number) CURLOPT_/**/name = type + number
   1.133 @@ -846,22 +866,22 @@
   1.134    CINIT(WRITEDATA, OBJECTPOINT, 1),
   1.135  
   1.136    /* The full URL to get/put */
   1.137 -  CINIT(URL, OBJECTPOINT, 2),
   1.138 +  CINIT(URL, STRINGPOINT, 2),
   1.139  
   1.140    /* Port number to connect to, if other than default. */
   1.141    CINIT(PORT, LONG, 3),
   1.142  
   1.143    /* Name of proxy to use. */
   1.144 -  CINIT(PROXY, OBJECTPOINT, 4),
   1.145 +  CINIT(PROXY, STRINGPOINT, 4),
   1.146  
   1.147    /* "user:password;options" to use when fetching. */
   1.148 -  CINIT(USERPWD, OBJECTPOINT, 5),
   1.149 +  CINIT(USERPWD, STRINGPOINT, 5),
   1.150  
   1.151    /* "user:password" to use with proxy. */
   1.152 -  CINIT(PROXYUSERPWD, OBJECTPOINT, 6),
   1.153 +  CINIT(PROXYUSERPWD, STRINGPOINT, 6),
   1.154  
   1.155    /* Range to get, specified as an ASCII string. */
   1.156 -  CINIT(RANGE, OBJECTPOINT, 7),
   1.157 +  CINIT(RANGE, STRINGPOINT, 7),
   1.158  
   1.159    /* not used */
   1.160  
   1.161 @@ -898,14 +918,14 @@
   1.162    CINIT(POSTFIELDS, OBJECTPOINT, 15),
   1.163  
   1.164    /* Set the referrer page (needed by some CGIs) */
   1.165 -  CINIT(REFERER, OBJECTPOINT, 16),
   1.166 +  CINIT(REFERER, STRINGPOINT, 16),
   1.167  
   1.168    /* Set the FTP PORT string (interface name, named or numerical IP address)
   1.169       Use i.e '-' to use default address. */
   1.170 -  CINIT(FTPPORT, OBJECTPOINT, 17),
   1.171 +  CINIT(FTPPORT, STRINGPOINT, 17),
   1.172  
   1.173    /* Set the User-Agent string (examined by some CGIs) */
   1.174 -  CINIT(USERAGENT, OBJECTPOINT, 18),
   1.175 +  CINIT(USERAGENT, STRINGPOINT, 18),
   1.176  
   1.177    /* If the download receives less than "low speed limit" bytes/second
   1.178     * during "low speed time" seconds, the operations is aborted.
   1.179 @@ -928,7 +948,7 @@
   1.180    CINIT(RESUME_FROM, LONG, 21),
   1.181  
   1.182    /* Set cookie in request: */
   1.183 -  CINIT(COOKIE, OBJECTPOINT, 22),
   1.184 +  CINIT(COOKIE, STRINGPOINT, 22),
   1.185  
   1.186    /* This points to a linked list of headers, struct curl_slist kind. This
   1.187       list is also used for RTSP (in spite of its name) */
   1.188 @@ -938,10 +958,10 @@
   1.189    CINIT(HTTPPOST, OBJECTPOINT, 24),
   1.190  
   1.191    /* name of the file keeping your private SSL-certificate */
   1.192 -  CINIT(SSLCERT, OBJECTPOINT, 25),
   1.193 +  CINIT(SSLCERT, STRINGPOINT, 25),
   1.194  
   1.195    /* password for the SSL or SSH private key */
   1.196 -  CINIT(KEYPASSWD, OBJECTPOINT, 26),
   1.197 +  CINIT(KEYPASSWD, STRINGPOINT, 26),
   1.198  
   1.199    /* send TYPE parameter? */
   1.200    CINIT(CRLF, LONG, 27),
   1.201 @@ -955,7 +975,7 @@
   1.202  
   1.203    /* point to a file to read the initial cookies from, also enables
   1.204       "cookie awareness" */
   1.205 -  CINIT(COOKIEFILE, OBJECTPOINT, 31),
   1.206 +  CINIT(COOKIEFILE, STRINGPOINT, 31),
   1.207  
   1.208    /* What version to specifically try to use.
   1.209       See CURL_SSLVERSION defines below. */
   1.210 @@ -974,9 +994,9 @@
   1.211       HTTP: DELETE, TRACE and others
   1.212       FTP: to use a different list command
   1.213       */
   1.214 -  CINIT(CUSTOMREQUEST, OBJECTPOINT, 36),
   1.215 -
   1.216 -  /* HTTP request, for odd commands like DELETE, TRACE and others */
   1.217 +  CINIT(CUSTOMREQUEST, STRINGPOINT, 36),
   1.218 +
   1.219 +  /* FILE handle to use instead of stderr */
   1.220    CINIT(STDERR, OBJECTPOINT, 37),
   1.221  
   1.222    /* 38 is not used */
   1.223 @@ -1033,19 +1053,19 @@
   1.224    CINIT(HTTPPROXYTUNNEL, LONG, 61),
   1.225  
   1.226    /* Set the interface string to use as outgoing network interface */
   1.227 -  CINIT(INTERFACE, OBJECTPOINT, 62),
   1.228 +  CINIT(INTERFACE, STRINGPOINT, 62),
   1.229  
   1.230    /* Set the krb4/5 security level, this also enables krb4/5 awareness.  This
   1.231     * is a string, 'clear', 'safe', 'confidential' or 'private'.  If the string
   1.232     * is set but doesn't match one of these, 'private' will be used.  */
   1.233 -  CINIT(KRBLEVEL, OBJECTPOINT, 63),
   1.234 +  CINIT(KRBLEVEL, STRINGPOINT, 63),
   1.235  
   1.236    /* Set if we should verify the peer in ssl handshake, set 1 to verify. */
   1.237    CINIT(SSL_VERIFYPEER, LONG, 64),
   1.238  
   1.239    /* The CApath or CAfile used to validate the peer certificate
   1.240       this option is used only if SSL_VERIFYPEER is true */
   1.241 -  CINIT(CAINFO, OBJECTPOINT, 65),
   1.242 +  CINIT(CAINFO, STRINGPOINT, 65),
   1.243  
   1.244    /* 66 = OBSOLETE */
   1.245    /* 67 = OBSOLETE */
   1.246 @@ -1079,10 +1099,10 @@
   1.247  
   1.248    /* Set to a file name that contains random data for libcurl to use to
   1.249       seed the random engine when doing SSL connects. */
   1.250 -  CINIT(RANDOM_FILE, OBJECTPOINT, 76),
   1.251 +  CINIT(RANDOM_FILE, STRINGPOINT, 76),
   1.252  
   1.253    /* Set to the Entropy Gathering Daemon socket pathname */
   1.254 -  CINIT(EGDSOCKET, OBJECTPOINT, 77),
   1.255 +  CINIT(EGDSOCKET, STRINGPOINT, 77),
   1.256  
   1.257    /* Time-out connect operations after this amount of seconds, if connects are
   1.258       OK within this time, then fine... This only aborts the connect phase. */
   1.259 @@ -1104,10 +1124,10 @@
   1.260  
   1.261    /* Specify which file name to write all known cookies in after completed
   1.262       operation. Set file name to "-" (dash) to make it go to stdout. */
   1.263 -  CINIT(COOKIEJAR, OBJECTPOINT, 82),
   1.264 +  CINIT(COOKIEJAR, STRINGPOINT, 82),
   1.265  
   1.266    /* Specify which SSL ciphers to use */
   1.267 -  CINIT(SSL_CIPHER_LIST, OBJECTPOINT, 83),
   1.268 +  CINIT(SSL_CIPHER_LIST, STRINGPOINT, 83),
   1.269  
   1.270    /* Specify which HTTP version to use! This must be set to one of the
   1.271       CURL_HTTP_VERSION* enums set below. */
   1.272 @@ -1119,16 +1139,16 @@
   1.273    CINIT(FTP_USE_EPSV, LONG, 85),
   1.274  
   1.275    /* type of the file keeping your SSL-certificate ("DER", "PEM", "ENG") */
   1.276 -  CINIT(SSLCERTTYPE, OBJECTPOINT, 86),
   1.277 +  CINIT(SSLCERTTYPE, STRINGPOINT, 86),
   1.278  
   1.279    /* name of the file keeping your private SSL-key */
   1.280 -  CINIT(SSLKEY, OBJECTPOINT, 87),
   1.281 +  CINIT(SSLKEY, STRINGPOINT, 87),
   1.282  
   1.283    /* type of the file keeping your private SSL-key ("DER", "PEM", "ENG") */
   1.284 -  CINIT(SSLKEYTYPE, OBJECTPOINT, 88),
   1.285 +  CINIT(SSLKEYTYPE, STRINGPOINT, 88),
   1.286  
   1.287    /* crypto engine for the SSL-sub system */
   1.288 -  CINIT(SSLENGINE, OBJECTPOINT, 89),
   1.289 +  CINIT(SSLENGINE, STRINGPOINT, 89),
   1.290  
   1.291    /* set the crypto engine for the SSL-sub system as default
   1.292       the param has no meaning...
   1.293 @@ -1155,7 +1175,7 @@
   1.294  
   1.295    /* The CApath directory used to validate the peer certificate
   1.296       this option is used only if SSL_VERIFYPEER is true */
   1.297 -  CINIT(CAPATH, OBJECTPOINT, 97),
   1.298 +  CINIT(CAPATH, STRINGPOINT, 97),
   1.299  
   1.300    /* Instruct libcurl to use a smaller receive buffer */
   1.301    CINIT(BUFFERSIZE, LONG, 98),
   1.302 @@ -1175,7 +1195,7 @@
   1.303    /* Set the Accept-Encoding string. Use this to tell a server you would like
   1.304       the response to be compressed. Before 7.21.6, this was known as
   1.305       CURLOPT_ENCODING */
   1.306 -  CINIT(ACCEPT_ENCODING, OBJECTPOINT, 102),
   1.307 +  CINIT(ACCEPT_ENCODING, STRINGPOINT, 102),
   1.308  
   1.309    /* Set pointer to private data */
   1.310    CINIT(PRIVATE, OBJECTPOINT, 103),
   1.311 @@ -1256,7 +1276,7 @@
   1.312       to parse (using the CURLOPT_NETRC option). If not set, libcurl will do
   1.313       a poor attempt to find the user's home directory and check for a .netrc
   1.314       file in there. */
   1.315 -  CINIT(NETRC_FILE, OBJECTPOINT, 118),
   1.316 +  CINIT(NETRC_FILE, STRINGPOINT, 118),
   1.317  
   1.318    /* Enable SSL/TLS for FTP, pick one of:
   1.319       CURLUSESSL_TRY     - try using SSL, proceed anyway otherwise
   1.320 @@ -1299,10 +1319,10 @@
   1.321  
   1.322    /* zero terminated string for pass on to the FTP server when asked for
   1.323       "account" info */
   1.324 -  CINIT(FTP_ACCOUNT, OBJECTPOINT, 134),
   1.325 -
   1.326 -  /* feed cookies into cookie engine */
   1.327 -  CINIT(COOKIELIST, OBJECTPOINT, 135),
   1.328 +  CINIT(FTP_ACCOUNT, STRINGPOINT, 134),
   1.329 +
   1.330 +  /* feed cookie into cookie engine */
   1.331 +  CINIT(COOKIELIST, STRINGPOINT, 135),
   1.332  
   1.333    /* ignore Content-Length */
   1.334    CINIT(IGNORE_CONTENT_LENGTH, LONG, 136),
   1.335 @@ -1348,7 +1368,7 @@
   1.336    CINIT(MAX_RECV_SPEED_LARGE, OFF_T, 146),
   1.337  
   1.338    /* Pointer to command string to send if USER/PASS fails. */
   1.339 -  CINIT(FTP_ALTERNATIVE_TO_USER, OBJECTPOINT, 147),
   1.340 +  CINIT(FTP_ALTERNATIVE_TO_USER, STRINGPOINT, 147),
   1.341  
   1.342    /* callback function for setting socket options */
   1.343    CINIT(SOCKOPTFUNCTION, FUNCTIONPOINT, 148),
   1.344 @@ -1362,8 +1382,8 @@
   1.345    CINIT(SSH_AUTH_TYPES, LONG, 151),
   1.346  
   1.347    /* Used by scp/sftp to do public/private key authentication */
   1.348 -  CINIT(SSH_PUBLIC_KEYFILE, OBJECTPOINT, 152),
   1.349 -  CINIT(SSH_PRIVATE_KEYFILE, OBJECTPOINT, 153),
   1.350 +  CINIT(SSH_PUBLIC_KEYFILE, STRINGPOINT, 152),
   1.351 +  CINIT(SSH_PRIVATE_KEYFILE, STRINGPOINT, 153),
   1.352  
   1.353    /* Send CCC (Clear Command Channel) after authentication */
   1.354    CINIT(FTP_SSL_CCC, LONG, 154),
   1.355 @@ -1387,7 +1407,7 @@
   1.356    CINIT(POSTREDIR, LONG, 161),
   1.357  
   1.358    /* used by scp/sftp to verify the host's public key */
   1.359 -  CINIT(SSH_HOST_PUBLIC_KEY_MD5, OBJECTPOINT, 162),
   1.360 +  CINIT(SSH_HOST_PUBLIC_KEY_MD5, STRINGPOINT, 162),
   1.361  
   1.362    /* Callback function for opening socket (instead of socket(2)). Optionally,
   1.363       callback is able change the address or refuse to connect returning
   1.364 @@ -1407,10 +1427,10 @@
   1.365    CINIT(SEEKDATA, OBJECTPOINT, 168),
   1.366  
   1.367    /* CRL file */
   1.368 -  CINIT(CRLFILE, OBJECTPOINT, 169),
   1.369 +  CINIT(CRLFILE, STRINGPOINT, 169),
   1.370  
   1.371    /* Issuer certificate */
   1.372 -  CINIT(ISSUERCERT, OBJECTPOINT, 170),
   1.373 +  CINIT(ISSUERCERT, STRINGPOINT, 170),
   1.374  
   1.375    /* (IPv6) Address scope */
   1.376    CINIT(ADDRESS_SCOPE, LONG, 171),
   1.377 @@ -1420,12 +1440,12 @@
   1.378    CINIT(CERTINFO, LONG, 172),
   1.379  
   1.380    /* "name" and "pwd" to use when fetching. */
   1.381 -  CINIT(USERNAME, OBJECTPOINT, 173),
   1.382 -  CINIT(PASSWORD, OBJECTPOINT, 174),
   1.383 +  CINIT(USERNAME, STRINGPOINT, 173),
   1.384 +  CINIT(PASSWORD, STRINGPOINT, 174),
   1.385  
   1.386      /* "name" and "pwd" to use with Proxy when fetching. */
   1.387 -  CINIT(PROXYUSERNAME, OBJECTPOINT, 175),
   1.388 -  CINIT(PROXYPASSWORD, OBJECTPOINT, 176),
   1.389 +  CINIT(PROXYUSERNAME, STRINGPOINT, 175),
   1.390 +  CINIT(PROXYPASSWORD, STRINGPOINT, 176),
   1.391  
   1.392    /* Comma separated list of hostnames defining no-proxy zones. These should
   1.393       match both hostnames directly, and hostnames within a domain. For
   1.394 @@ -1434,13 +1454,13 @@
   1.395       implementations of this, .local.com will be considered to be the same as
   1.396       local.com. A single * is the only valid wildcard, and effectively
   1.397       disables the use of proxy. */
   1.398 -  CINIT(NOPROXY, OBJECTPOINT, 177),
   1.399 +  CINIT(NOPROXY, STRINGPOINT, 177),
   1.400  
   1.401    /* block size for TFTP transfers */
   1.402    CINIT(TFTP_BLKSIZE, LONG, 178),
   1.403  
   1.404    /* Socks Service */
   1.405 -  CINIT(SOCKS5_GSSAPI_SERVICE, OBJECTPOINT, 179),
   1.406 +  CINIT(SOCKS5_GSSAPI_SERVICE, STRINGPOINT, 179),
   1.407  
   1.408    /* Socks Service */
   1.409    CINIT(SOCKS5_GSSAPI_NEC, LONG, 180),
   1.410 @@ -1458,7 +1478,7 @@
   1.411    CINIT(REDIR_PROTOCOLS, LONG, 182),
   1.412  
   1.413    /* set the SSH knownhost file name to use */
   1.414 -  CINIT(SSH_KNOWNHOSTS, OBJECTPOINT, 183),
   1.415 +  CINIT(SSH_KNOWNHOSTS, STRINGPOINT, 183),
   1.416  
   1.417    /* set the SSH host key callback, must point to a curl_sshkeycallback
   1.418       function */
   1.419 @@ -1468,9 +1488,9 @@
   1.420    CINIT(SSH_KEYDATA, OBJECTPOINT, 185),
   1.421  
   1.422    /* set the SMTP mail originator */
   1.423 -  CINIT(MAIL_FROM, OBJECTPOINT, 186),
   1.424 -
   1.425 -  /* set the SMTP mail receiver(s) */
   1.426 +  CINIT(MAIL_FROM, STRINGPOINT, 186),
   1.427 +
   1.428 +  /* set the list of SMTP mail receiver(s) */
   1.429    CINIT(MAIL_RCPT, OBJECTPOINT, 187),
   1.430  
   1.431    /* FTP: send PRET before PASV */
   1.432 @@ -1480,13 +1500,13 @@
   1.433    CINIT(RTSP_REQUEST, LONG, 189),
   1.434  
   1.435    /* The RTSP session identifier */
   1.436 -  CINIT(RTSP_SESSION_ID, OBJECTPOINT, 190),
   1.437 +  CINIT(RTSP_SESSION_ID, STRINGPOINT, 190),
   1.438  
   1.439    /* The RTSP stream URI */
   1.440 -  CINIT(RTSP_STREAM_URI, OBJECTPOINT, 191),
   1.441 +  CINIT(RTSP_STREAM_URI, STRINGPOINT, 191),
   1.442  
   1.443    /* The Transport: header to use in RTSP requests */
   1.444 -  CINIT(RTSP_TRANSPORT, OBJECTPOINT, 192),
   1.445 +  CINIT(RTSP_TRANSPORT, STRINGPOINT, 192),
   1.446  
   1.447    /* Manually initialize the client RTSP CSeq for this handle */
   1.448    CINIT(RTSP_CLIENT_CSEQ, LONG, 193),
   1.449 @@ -1524,13 +1544,13 @@
   1.450    CINIT(RESOLVE, OBJECTPOINT, 203),
   1.451  
   1.452    /* Set a username for authenticated TLS */
   1.453 -  CINIT(TLSAUTH_USERNAME, OBJECTPOINT, 204),
   1.454 +  CINIT(TLSAUTH_USERNAME, STRINGPOINT, 204),
   1.455  
   1.456    /* Set a password for authenticated TLS */
   1.457 -  CINIT(TLSAUTH_PASSWORD, OBJECTPOINT, 205),
   1.458 +  CINIT(TLSAUTH_PASSWORD, STRINGPOINT, 205),
   1.459  
   1.460    /* Set authentication type for authenticated TLS */
   1.461 -  CINIT(TLSAUTH_TYPE, OBJECTPOINT, 206),
   1.462 +  CINIT(TLSAUTH_TYPE, STRINGPOINT, 206),
   1.463  
   1.464    /* Set to 1 to enable the "TE:" header in HTTP requests to ask for
   1.465       compressed transfer-encoded responses. Set to 0 to disable the use of TE:
   1.466 @@ -1553,7 +1573,7 @@
   1.467    CINIT(GSSAPI_DELEGATION, LONG, 210),
   1.468  
   1.469    /* Set the name servers to use for DNS resolution */
   1.470 -  CINIT(DNS_SERVERS, OBJECTPOINT, 211),
   1.471 +  CINIT(DNS_SERVERS, STRINGPOINT, 211),
   1.472  
   1.473    /* Time-out accept operations (currently for FTP only) after this amount
   1.474       of miliseconds. */
   1.475 @@ -1570,7 +1590,7 @@
   1.476    CINIT(SSL_OPTIONS, LONG, 216),
   1.477  
   1.478    /* Set the SMTP auth originator */
   1.479 -  CINIT(MAIL_AUTH, OBJECTPOINT, 217),
   1.480 +  CINIT(MAIL_AUTH, STRINGPOINT, 217),
   1.481  
   1.482    /* Enable/disable SASL initial response */
   1.483    CINIT(SASL_IR, LONG, 218),
   1.484 @@ -1581,23 +1601,23 @@
   1.485    CINIT(XFERINFOFUNCTION, FUNCTIONPOINT, 219),
   1.486  
   1.487    /* The XOAUTH2 bearer token */
   1.488 -  CINIT(XOAUTH2_BEARER, OBJECTPOINT, 220),
   1.489 +  CINIT(XOAUTH2_BEARER, STRINGPOINT, 220),
   1.490  
   1.491    /* Set the interface string to use as outgoing network
   1.492     * interface for DNS requests.
   1.493     * Only supported by the c-ares DNS backend */
   1.494 -  CINIT(DNS_INTERFACE, OBJECTPOINT, 221),
   1.495 +  CINIT(DNS_INTERFACE, STRINGPOINT, 221),
   1.496  
   1.497    /* Set the local IPv4 address to use for outgoing DNS requests.
   1.498     * Only supported by the c-ares DNS backend */
   1.499 -  CINIT(DNS_LOCAL_IP4, OBJECTPOINT, 222),
   1.500 +  CINIT(DNS_LOCAL_IP4, STRINGPOINT, 222),
   1.501  
   1.502    /* Set the local IPv4 address to use for outgoing DNS requests.
   1.503     * Only supported by the c-ares DNS backend */
   1.504 -  CINIT(DNS_LOCAL_IP6, OBJECTPOINT, 223),
   1.505 +  CINIT(DNS_LOCAL_IP6, STRINGPOINT, 223),
   1.506  
   1.507    /* Set authentication options directly */
   1.508 -  CINIT(LOGIN_OPTIONS, OBJECTPOINT, 224),
   1.509 +  CINIT(LOGIN_OPTIONS, STRINGPOINT, 224),
   1.510  
   1.511    /* Enable/disable TLS NPN extension (http2 over ssl might fail without) */
   1.512    CINIT(SSL_ENABLE_NPN, LONG, 225),
   1.513 @@ -1618,10 +1638,10 @@
   1.514  
   1.515    /* The public key in DER form used to validate the peer public key
   1.516       this option is used only if SSL_VERIFYPEER is true */
   1.517 -  CINIT(PINNEDPUBLICKEY, OBJECTPOINT, 230),
   1.518 +  CINIT(PINNEDPUBLICKEY, STRINGPOINT, 230),
   1.519  
   1.520    /* Path to Unix domain socket */
   1.521 -  CINIT(UNIX_SOCKET_PATH, OBJECTPOINT, 231),
   1.522 +  CINIT(UNIX_SOCKET_PATH, STRINGPOINT, 231),
   1.523  
   1.524    /* Set if we should verify the certificate status. */
   1.525    CINIT(SSL_VERIFYSTATUS, LONG, 232),
   1.526 @@ -1633,14 +1653,29 @@
   1.527    CINIT(PATH_AS_IS, LONG, 234),
   1.528  
   1.529    /* Proxy Service Name */
   1.530 -  CINIT(PROXY_SERVICE_NAME, OBJECTPOINT, 235),
   1.531 +  CINIT(PROXY_SERVICE_NAME, STRINGPOINT, 235),
   1.532  
   1.533    /* Service Name */
   1.534 -  CINIT(SERVICE_NAME, OBJECTPOINT, 236),
   1.535 +  CINIT(SERVICE_NAME, STRINGPOINT, 236),
   1.536  
   1.537    /* Wait/don't wait for pipe/mutex to clarify */
   1.538    CINIT(PIPEWAIT, LONG, 237),
   1.539  
   1.540 +  /* Set the protocol used when curl is given a URL without a protocol */
   1.541 +  CINIT(DEFAULT_PROTOCOL, STRINGPOINT, 238),
   1.542 +
   1.543 +  /* Set stream weight, 1 - 256 (default is 16) */
   1.544 +  CINIT(STREAM_WEIGHT, LONG, 239),
   1.545 +
   1.546 +  /* Set stream dependency on another CURL handle */
   1.547 +  CINIT(STREAM_DEPENDS, OBJECTPOINT, 240),
   1.548 +
   1.549 +  /* Set E-xclusive stream dependency on another CURL handle */
   1.550 +  CINIT(STREAM_DEPENDS_E, OBJECTPOINT, 241),
   1.551 +
   1.552 +  /* Do not send any tftp option requests to the server */
   1.553 +  CINIT(TFTP_NO_OPTIONS, LONG, 242),
   1.554 +
   1.555    CURLOPT_LASTENTRY /* the last unused */
   1.556  } CURLoption;
   1.557  
   1.558 @@ -1690,7 +1725,8 @@
   1.559                               for us! */
   1.560    CURL_HTTP_VERSION_1_0,  /* please use HTTP 1.0 in the request */
   1.561    CURL_HTTP_VERSION_1_1,  /* please use HTTP 1.1 in the request */
   1.562 -  CURL_HTTP_VERSION_2_0,  /* please use HTTP 2.0 in the request */
   1.563 +  CURL_HTTP_VERSION_2_0,  /* please use HTTP 2 in the request */
   1.564 +  CURL_HTTP_VERSION_2TLS, /* use version 2 for HTTPS, version 1.1 for HTTP */
   1.565  
   1.566    CURL_HTTP_VERSION_LAST /* *ILLEGAL* http version */
   1.567  };
   1.568 @@ -1815,6 +1851,7 @@
   1.569    CFINIT(OBSOLETE2),
   1.570  
   1.571    CFINIT(STREAM),
   1.572 +  CFINIT(CONTENTLEN), /* added in 7.46.0, provide a curl_off_t length */
   1.573  
   1.574    CURLFORM_LASTENTRY /* the last unused */
   1.575  } CURLformoption;
   1.576 @@ -2069,12 +2106,13 @@
   1.577    CURLSSLBACKEND_CYASSL = 7,
   1.578    CURLSSLBACKEND_SCHANNEL = 8,
   1.579    CURLSSLBACKEND_DARWINSSL = 9,
   1.580 -  CURLSSLBACKEND_AXTLS = 10
   1.581 +  CURLSSLBACKEND_AXTLS = 10,
   1.582 +  CURLSSLBACKEND_MBEDTLS = 11
   1.583  } curl_sslbackend;
   1.584  
   1.585  /* Information about the SSL library used and the respective internal SSL
   1.586     handle, which can be used to obtain further information regarding the
   1.587 -   connection. Asked for with CURLINFO_TLS_SESSION. */
   1.588 +   connection. Asked for with CURLINFO_TLS_SSL_PTR or CURLINFO_TLS_SESSION. */
   1.589  struct curl_tlssessioninfo {
   1.590    curl_sslbackend backend;
   1.591    void *internals;
   1.592 @@ -2084,6 +2122,7 @@
   1.593  #define CURLINFO_LONG     0x200000
   1.594  #define CURLINFO_DOUBLE   0x300000
   1.595  #define CURLINFO_SLIST    0x400000
   1.596 +#define CURLINFO_SOCKET   0x500000
   1.597  #define CURLINFO_MASK     0x0fffff
   1.598  #define CURLINFO_TYPEMASK 0xf00000
   1.599  
   1.600 @@ -2132,9 +2171,11 @@
   1.601    CURLINFO_LOCAL_IP         = CURLINFO_STRING + 41,
   1.602    CURLINFO_LOCAL_PORT       = CURLINFO_LONG   + 42,
   1.603    CURLINFO_TLS_SESSION      = CURLINFO_SLIST  + 43,
   1.604 +  CURLINFO_ACTIVESOCKET     = CURLINFO_SOCKET + 44,
   1.605 +  CURLINFO_TLS_SSL_PTR      = CURLINFO_SLIST  + 45,
   1.606    /* Fill in new entries below here! */
   1.607  
   1.608 -  CURLINFO_LASTONE          = 43
   1.609 +  CURLINFO_LASTONE          = 45
   1.610  } CURLINFO;
   1.611  
   1.612  /* CURLINFO_RESPONSE_CODE is the new name for the option previously known as
   1.613 @@ -2294,6 +2335,8 @@
   1.614  #define CURL_VERSION_GSSAPI       (1<<17) /* Built against a GSS-API library */
   1.615  #define CURL_VERSION_KERBEROS5    (1<<18) /* Kerberos V5 auth is supported */
   1.616  #define CURL_VERSION_UNIX_SOCKETS (1<<19) /* Unix domain sockets support */
   1.617 +#define CURL_VERSION_PSL          (1<<20) /* Mozilla's Public Suffix List, used
   1.618 +                                             for cookie domain verification */
   1.619  
   1.620   /*
   1.621   * NAME curl_version_info()