From a028644bd64ef9d77d72ea117e8063a0fd36b6a4 Mon Sep 17 00:00:00 2001 From: Sergey Yakubov <sergey.yakubov@desy.de> Date: Tue, 30 Jan 2018 22:31:21 +0100 Subject: [PATCH] use exteranal libcurl --- 3d_party/libcurl/include/curl/curl.h | 2751 ----------------- 3d_party/libcurl/include/curl/curlver.h | 77 - 3d_party/libcurl/include/curl/easy.h | 102 - 3d_party/libcurl/include/curl/mprintf.h | 50 - 3d_party/libcurl/include/curl/multi.h | 439 --- 3d_party/libcurl/include/curl/stdcheaders.h | 33 - 3d_party/libcurl/include/curl/system.h | 473 --- 3d_party/libcurl/include/curl/typecheck-gcc.h | 683 ---- 3d_party/libcurl/install.cmd | 19 + 3d_party/libcurl/install.sh | 4 +- 3d_party/libcurl/lib/libcurl.a | Bin 708778 -> 0 bytes 3d_party/libcurl/lib/libcurl.la | 41 - 3d_party/libcurl/lib/pkgconfig/libcurl.pc | 39 - CMakeLists.txt | 9 +- .../read_file_content/read_file_content.cpp | 2 +- .../curl_http_client_get/CMakeLists.txt | 1 + .../curl_httpclient_get.cpp | 13 +- worker/CMakeLists.txt | 6 + worker/api/cpp/CMakeLists.txt | 8 +- worker/api/cpp/include/worker/data_broker.h | 1 + worker/api/cpp/src/curl_http_client.cpp | 79 +- worker/api/cpp/src/curl_http_client.h | 3 +- worker/api/cpp/src/folder_data_broker.cpp | 2 +- worker/api/cpp/src/folder_data_broker.h | 3 +- worker/api/cpp/src/http_client.cpp | 23 + worker/api/cpp/src/http_client.h | 70 +- worker/api/cpp/src/server_data_broker.cpp | 9 +- worker/api/cpp/unittests/MockHttpClient.h | 7 +- .../api/cpp/unittests/test_server_broker.cpp | 40 +- .../folder_to_db/src/folder_db_importer.cpp | 2 +- .../folder_to_db/src/folder_db_importer.h | 3 +- .../unittests/test_folder_to_db.cpp | 2 +- 32 files changed, 230 insertions(+), 4764 deletions(-) delete mode 100644 3d_party/libcurl/include/curl/curl.h delete mode 100644 3d_party/libcurl/include/curl/curlver.h delete mode 100644 3d_party/libcurl/include/curl/easy.h delete mode 100644 3d_party/libcurl/include/curl/mprintf.h delete mode 100644 3d_party/libcurl/include/curl/multi.h delete mode 100644 3d_party/libcurl/include/curl/stdcheaders.h delete mode 100644 3d_party/libcurl/include/curl/system.h delete mode 100644 3d_party/libcurl/include/curl/typecheck-gcc.h create mode 100644 3d_party/libcurl/install.cmd delete mode 100644 3d_party/libcurl/lib/libcurl.a delete mode 100755 3d_party/libcurl/lib/libcurl.la delete mode 100644 3d_party/libcurl/lib/pkgconfig/libcurl.pc create mode 100644 worker/CMakeLists.txt create mode 100644 worker/api/cpp/src/http_client.cpp diff --git a/3d_party/libcurl/include/curl/curl.h b/3d_party/libcurl/include/curl/curl.h deleted file mode 100644 index 7680acd18..000000000 --- a/3d_party/libcurl/include/curl/curl.h +++ /dev/null @@ -1,2751 +0,0 @@ -#ifndef __CURL_CURL_H -#define __CURL_CURL_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at https://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ - -/* - * If you have libcurl problems, all docs and details are found here: - * https://curl.haxx.se/libcurl/ - * - * curl-library mailing list subscription and unsubscription web interface: - * https://cool.haxx.se/mailman/listinfo/curl-library/ - */ - -#ifdef CURL_NO_OLDIES -#define CURL_STRICTER -#endif - -#include "curlver.h" /* libcurl version defines */ -#include "system.h" /* determine things run-time */ - -/* - * Define WIN32 when build target is Win32 API - */ - -#if (defined(_WIN32) || defined(__WIN32__)) && \ - !defined(WIN32) && !defined(__SYMBIAN32__) -#define WIN32 -#endif - -#include <stdio.h> -#include <limits.h> - -#if defined(__FreeBSD__) && (__FreeBSD__ >= 2) -/* Needed for __FreeBSD_version symbol definition */ -#include <osreldate.h> -#endif - -/* The include stuff here below is mainly for time_t! */ -#include <sys/types.h> -#include <time.h> - -#if defined(WIN32) && !defined(_WIN32_WCE) && !defined(__CYGWIN__) -#if !(defined(_WINSOCKAPI_) || defined(_WINSOCK_H) || \ - defined(__LWIP_OPT_H__) || defined(LWIP_HDR_OPT_H)) -/* The check above prevents the winsock2 inclusion if winsock.h already was - included, since they can't co-exist without problems */ -#include <winsock2.h> -#include <ws2tcpip.h> -#endif -#endif - -/* HP-UX systems version 9, 10 and 11 lack sys/select.h and so does oldish - libc5-based Linux systems. Only include it on systems that are known to - require it! */ -#if defined(_AIX) || defined(__NOVELL_LIBC__) || defined(__NetBSD__) || \ - defined(__minix) || defined(__SYMBIAN32__) || defined(__INTEGRITY) || \ - defined(ANDROID) || defined(__ANDROID__) || defined(__OpenBSD__) || \ - defined(__CYGWIN__) || \ - (defined(__FreeBSD_version) && (__FreeBSD_version < 800000)) -#include <sys/select.h> -#endif - -#if !defined(WIN32) && !defined(_WIN32_WCE) -#include <sys/socket.h> -#endif - -#if !defined(WIN32) && !defined(__WATCOMC__) && !defined(__VXWORKS__) -#include <sys/time.h> -#endif - -#ifdef __BEOS__ -#include <support/SupportDefs.h> -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#if defined(BUILDING_LIBCURL) || defined(CURL_STRICTER) -typedef struct Curl_easy CURL; -typedef struct Curl_share CURLSH; -#else -typedef void CURL; -typedef void CURLSH; -#endif - -/* - * libcurl external API function linkage decorations. - */ - -#ifdef CURL_STATICLIB -# define CURL_EXTERN -#elif defined(WIN32) || defined(_WIN32) || defined(__SYMBIAN32__) -# if defined(BUILDING_LIBCURL) -# define CURL_EXTERN __declspec(dllexport) -# else -# define CURL_EXTERN __declspec(dllimport) -# endif -#elif defined(BUILDING_LIBCURL) && defined(CURL_HIDDEN_SYMBOLS) -# define CURL_EXTERN CURL_EXTERN_SYMBOL -#else -# define CURL_EXTERN -#endif - -#ifndef curl_socket_typedef -/* socket typedef */ -#if defined(WIN32) && !defined(__LWIP_OPT_H__) && !defined(LWIP_HDR_OPT_H) -typedef SOCKET curl_socket_t; -#define CURL_SOCKET_BAD INVALID_SOCKET -#else -typedef int curl_socket_t; -#define CURL_SOCKET_BAD -1 -#endif -#define curl_socket_typedef -#endif /* curl_socket_typedef */ - -/* enum for the different supported SSL backends */ -typedef enum { - CURLSSLBACKEND_NONE = 0, - CURLSSLBACKEND_OPENSSL = 1, - CURLSSLBACKEND_GNUTLS = 2, - CURLSSLBACKEND_NSS = 3, - CURLSSLBACKEND_OBSOLETE4 = 4, /* Was QSOSSL. */ - CURLSSLBACKEND_GSKIT = 5, - CURLSSLBACKEND_POLARSSL = 6, - CURLSSLBACKEND_WOLFSSL = 7, - CURLSSLBACKEND_SCHANNEL = 8, - CURLSSLBACKEND_DARWINSSL = 9, - CURLSSLBACKEND_AXTLS = 10, - CURLSSLBACKEND_MBEDTLS = 11 -} curl_sslbackend; - -/* aliases for library clones and renames */ -#define CURLSSLBACKEND_LIBRESSL CURLSSLBACKEND_OPENSSL -#define CURLSSLBACKEND_BORINGSSL CURLSSLBACKEND_OPENSSL -#define CURLSSLBACKEND_CYASSL CURLSSLBACKEND_WOLFSSL - -struct curl_httppost { - struct curl_httppost *next; /* next entry in the list */ - char *name; /* pointer to allocated name */ - long namelength; /* length of name length */ - char *contents; /* pointer to allocated data contents */ - long contentslength; /* length of contents field, see also - CURL_HTTPPOST_LARGE */ - char *buffer; /* pointer to allocated buffer contents */ - long bufferlength; /* length of buffer field */ - char *contenttype; /* Content-Type */ - struct curl_slist *contentheader; /* list of extra headers for this form */ - struct curl_httppost *more; /* if one field name has more than one - file, this link should link to following - files */ - long flags; /* as defined below */ - -/* specified content is a file name */ -#define CURL_HTTPPOST_FILENAME (1<<0) -/* specified content is a file name */ -#define CURL_HTTPPOST_READFILE (1<<1) -/* name is only stored pointer do not free in formfree */ -#define CURL_HTTPPOST_PTRNAME (1<<2) -/* contents is only stored pointer do not free in formfree */ -#define CURL_HTTPPOST_PTRCONTENTS (1<<3) -/* upload file from buffer */ -#define CURL_HTTPPOST_BUFFER (1<<4) -/* upload file from pointer contents */ -#define CURL_HTTPPOST_PTRBUFFER (1<<5) -/* upload file contents by using the regular read callback to get the data and - pass the given pointer as custom pointer */ -#define CURL_HTTPPOST_CALLBACK (1<<6) -/* use size in 'contentlen', added in 7.46.0 */ -#define CURL_HTTPPOST_LARGE (1<<7) - - char *showfilename; /* The file name to show. If not set, the - actual file name will be used (if this - is a file part) */ - void *userp; /* custom pointer used for - HTTPPOST_CALLBACK posts */ - curl_off_t contentlen; /* alternative length of contents - field. Used if CURL_HTTPPOST_LARGE is - set. Added in 7.46.0 */ -}; - -/* This is the CURLOPT_PROGRESSFUNCTION callback proto. It is now considered - deprecated but was the only choice up until 7.31.0 */ -typedef int (*curl_progress_callback)(void *clientp, - double dltotal, - double dlnow, - double ultotal, - double ulnow); - -/* This is the CURLOPT_XFERINFOFUNCTION callback proto. It was introduced in - 7.32.0, it avoids floating point and provides more detailed information. */ -typedef int (*curl_xferinfo_callback)(void *clientp, - curl_off_t dltotal, - curl_off_t dlnow, - curl_off_t ultotal, - curl_off_t ulnow); - -#ifndef CURL_MAX_READ_SIZE - /* The maximum receive buffer size configurable via CURLOPT_BUFFERSIZE. */ -#define CURL_MAX_READ_SIZE 524288 -#endif - -#ifndef CURL_MAX_WRITE_SIZE - /* Tests have proven that 20K is a very bad buffer size for uploads on - Windows, while 16K for some odd reason performed a lot better. - We do the ifndef check to allow this value to easier be changed at build - time for those who feel adventurous. The practical minimum is about - 400 bytes since libcurl uses a buffer of this size as a scratch area - (unrelated to network send operations). */ -#define CURL_MAX_WRITE_SIZE 16384 -#endif - -#ifndef CURL_MAX_HTTP_HEADER -/* The only reason to have a max limit for this is to avoid the risk of a bad - server feeding libcurl with a never-ending header that will cause reallocs - infinitely */ -#define CURL_MAX_HTTP_HEADER (100*1024) -#endif - -/* This is a magic return code for the write callback that, when returned, - will signal libcurl to pause receiving on the current transfer. */ -#define CURL_WRITEFUNC_PAUSE 0x10000001 - -typedef size_t (*curl_write_callback)(char *buffer, - size_t size, - size_t nitems, - void *outstream); - - - -/* enumeration of file types */ -typedef enum { - CURLFILETYPE_FILE = 0, - CURLFILETYPE_DIRECTORY, - CURLFILETYPE_SYMLINK, - CURLFILETYPE_DEVICE_BLOCK, - CURLFILETYPE_DEVICE_CHAR, - CURLFILETYPE_NAMEDPIPE, - CURLFILETYPE_SOCKET, - CURLFILETYPE_DOOR, /* is possible only on Sun Solaris now */ - - CURLFILETYPE_UNKNOWN /* should never occur */ -} curlfiletype; - -#define CURLFINFOFLAG_KNOWN_FILENAME (1<<0) -#define CURLFINFOFLAG_KNOWN_FILETYPE (1<<1) -#define CURLFINFOFLAG_KNOWN_TIME (1<<2) -#define CURLFINFOFLAG_KNOWN_PERM (1<<3) -#define CURLFINFOFLAG_KNOWN_UID (1<<4) -#define CURLFINFOFLAG_KNOWN_GID (1<<5) -#define CURLFINFOFLAG_KNOWN_SIZE (1<<6) -#define CURLFINFOFLAG_KNOWN_HLINKCOUNT (1<<7) - -/* Content of this structure depends on information which is known and is - achievable (e.g. by FTP LIST parsing). Please see the url_easy_setopt(3) man - page for callbacks returning this structure -- some fields are mandatory, - some others are optional. The FLAG field has special meaning. */ -struct curl_fileinfo { - char *filename; - curlfiletype filetype; - time_t time; - unsigned int perm; - int uid; - int gid; - curl_off_t size; - long int hardlinks; - - struct { - /* If some of these fields is not NULL, it is a pointer to b_data. */ - char *time; - char *perm; - char *user; - char *group; - char *target; /* pointer to the target filename of a symlink */ - } strings; - - unsigned int flags; - - /* used internally */ - char *b_data; - size_t b_size; - size_t b_used; -}; - -/* return codes for CURLOPT_CHUNK_BGN_FUNCTION */ -#define CURL_CHUNK_BGN_FUNC_OK 0 -#define CURL_CHUNK_BGN_FUNC_FAIL 1 /* tell the lib to end the task */ -#define CURL_CHUNK_BGN_FUNC_SKIP 2 /* skip this chunk over */ - -/* if splitting of data transfer is enabled, this callback is called before - download of an individual chunk started. Note that parameter "remains" works - only for FTP wildcard downloading (for now), otherwise is not used */ -typedef long (*curl_chunk_bgn_callback)(const void *transfer_info, - void *ptr, - int remains); - -/* return codes for CURLOPT_CHUNK_END_FUNCTION */ -#define CURL_CHUNK_END_FUNC_OK 0 -#define CURL_CHUNK_END_FUNC_FAIL 1 /* tell the lib to end the task */ - -/* If splitting of data transfer is enabled this callback is called after - download of an individual chunk finished. - Note! After this callback was set then it have to be called FOR ALL chunks. - Even if downloading of this chunk was skipped in CHUNK_BGN_FUNC. - This is the reason why we don't need "transfer_info" parameter in this - callback and we are not interested in "remains" parameter too. */ -typedef long (*curl_chunk_end_callback)(void *ptr); - -/* return codes for FNMATCHFUNCTION */ -#define CURL_FNMATCHFUNC_MATCH 0 /* string corresponds to the pattern */ -#define CURL_FNMATCHFUNC_NOMATCH 1 /* pattern doesn't match the string */ -#define CURL_FNMATCHFUNC_FAIL 2 /* an error occurred */ - -/* callback type for wildcard downloading pattern matching. If the - string matches the pattern, return CURL_FNMATCHFUNC_MATCH value, etc. */ -typedef int (*curl_fnmatch_callback)(void *ptr, - const char *pattern, - const char *string); - -/* These are the return codes for the seek callbacks */ -#define CURL_SEEKFUNC_OK 0 -#define CURL_SEEKFUNC_FAIL 1 /* fail the entire transfer */ -#define CURL_SEEKFUNC_CANTSEEK 2 /* tell libcurl seeking can't be done, so - libcurl might try other means instead */ -typedef int (*curl_seek_callback)(void *instream, - curl_off_t offset, - int origin); /* 'whence' */ - -/* This is a return code for the read callback that, when returned, will - signal libcurl to immediately abort the current transfer. */ -#define CURL_READFUNC_ABORT 0x10000000 -/* This is a return code for the read callback that, when returned, will - signal libcurl to pause sending data on the current transfer. */ -#define CURL_READFUNC_PAUSE 0x10000001 - -typedef size_t (*curl_read_callback)(char *buffer, - size_t size, - size_t nitems, - void *instream); - -typedef enum { - CURLSOCKTYPE_IPCXN, /* socket created for a specific IP connection */ - CURLSOCKTYPE_ACCEPT, /* socket created by accept() call */ - CURLSOCKTYPE_LAST /* never use */ -} curlsocktype; - -/* The return code from the sockopt_callback can signal information back - to libcurl: */ -#define CURL_SOCKOPT_OK 0 -#define CURL_SOCKOPT_ERROR 1 /* causes libcurl to abort and return - CURLE_ABORTED_BY_CALLBACK */ -#define CURL_SOCKOPT_ALREADY_CONNECTED 2 - -typedef int (*curl_sockopt_callback)(void *clientp, - curl_socket_t curlfd, - curlsocktype purpose); - -struct curl_sockaddr { - int family; - int socktype; - int protocol; - unsigned int addrlen; /* addrlen was a socklen_t type before 7.18.0 but it - turned really ugly and painful on the systems that - lack this type */ - struct sockaddr addr; -}; - -typedef curl_socket_t -(*curl_opensocket_callback)(void *clientp, - curlsocktype purpose, - struct curl_sockaddr *address); - -typedef int -(*curl_closesocket_callback)(void *clientp, curl_socket_t item); - -typedef enum { - CURLIOE_OK, /* I/O operation successful */ - CURLIOE_UNKNOWNCMD, /* command was unknown to callback */ - CURLIOE_FAILRESTART, /* failed to restart the read */ - CURLIOE_LAST /* never use */ -} curlioerr; - -typedef enum { - CURLIOCMD_NOP, /* no operation */ - CURLIOCMD_RESTARTREAD, /* restart the read stream from start */ - CURLIOCMD_LAST /* never use */ -} curliocmd; - -typedef curlioerr (*curl_ioctl_callback)(CURL *handle, - int cmd, - void *clientp); - -#ifndef CURL_DID_MEMORY_FUNC_TYPEDEFS -/* - * The following typedef's are signatures of malloc, free, realloc, strdup and - * calloc respectively. Function pointers of these types can be passed to the - * curl_global_init_mem() function to set user defined memory management - * callback routines. - */ -typedef void *(*curl_malloc_callback)(size_t size); -typedef void (*curl_free_callback)(void *ptr); -typedef void *(*curl_realloc_callback)(void *ptr, size_t size); -typedef char *(*curl_strdup_callback)(const char *str); -typedef void *(*curl_calloc_callback)(size_t nmemb, size_t size); - -#define CURL_DID_MEMORY_FUNC_TYPEDEFS -#endif - -/* the kind of data that is passed to information_callback*/ -typedef enum { - CURLINFO_TEXT = 0, - CURLINFO_HEADER_IN, /* 1 */ - CURLINFO_HEADER_OUT, /* 2 */ - CURLINFO_DATA_IN, /* 3 */ - CURLINFO_DATA_OUT, /* 4 */ - CURLINFO_SSL_DATA_IN, /* 5 */ - CURLINFO_SSL_DATA_OUT, /* 6 */ - CURLINFO_END -} curl_infotype; - -typedef int (*curl_debug_callback) - (CURL *handle, /* the handle/transfer this concerns */ - curl_infotype type, /* what kind of data */ - char *data, /* points to the data */ - size_t size, /* size of the data pointed to */ - void *userptr); /* whatever the user please */ - -/* All possible error codes from all sorts of curl functions. Future versions - may return other values, stay prepared. - - Always add new return codes last. Never *EVER* remove any. The return - codes must remain the same! - */ - -typedef enum { - CURLE_OK = 0, - CURLE_UNSUPPORTED_PROTOCOL, /* 1 */ - CURLE_FAILED_INIT, /* 2 */ - CURLE_URL_MALFORMAT, /* 3 */ - CURLE_NOT_BUILT_IN, /* 4 - [was obsoleted in August 2007 for - 7.17.0, reused in April 2011 for 7.21.5] */ - CURLE_COULDNT_RESOLVE_PROXY, /* 5 */ - CURLE_COULDNT_RESOLVE_HOST, /* 6 */ - CURLE_COULDNT_CONNECT, /* 7 */ - CURLE_WEIRD_SERVER_REPLY, /* 8 */ - CURLE_REMOTE_ACCESS_DENIED, /* 9 a service was denied by the server - due to lack of access - when login fails - this is not returned. */ - CURLE_FTP_ACCEPT_FAILED, /* 10 - [was obsoleted in April 2006 for - 7.15.4, reused in Dec 2011 for 7.24.0]*/ - CURLE_FTP_WEIRD_PASS_REPLY, /* 11 */ - CURLE_FTP_ACCEPT_TIMEOUT, /* 12 - timeout occurred accepting server - [was obsoleted in August 2007 for 7.17.0, - reused in Dec 2011 for 7.24.0]*/ - CURLE_FTP_WEIRD_PASV_REPLY, /* 13 */ - CURLE_FTP_WEIRD_227_FORMAT, /* 14 */ - CURLE_FTP_CANT_GET_HOST, /* 15 */ - CURLE_HTTP2, /* 16 - A problem in the http2 framing layer. - [was obsoleted in August 2007 for 7.17.0, - reused in July 2014 for 7.38.0] */ - CURLE_FTP_COULDNT_SET_TYPE, /* 17 */ - CURLE_PARTIAL_FILE, /* 18 */ - CURLE_FTP_COULDNT_RETR_FILE, /* 19 */ - CURLE_OBSOLETE20, /* 20 - NOT USED */ - CURLE_QUOTE_ERROR, /* 21 - quote command failure */ - CURLE_HTTP_RETURNED_ERROR, /* 22 */ - CURLE_WRITE_ERROR, /* 23 */ - CURLE_OBSOLETE24, /* 24 - NOT USED */ - CURLE_UPLOAD_FAILED, /* 25 - failed upload "command" */ - CURLE_READ_ERROR, /* 26 - couldn't open/read from file */ - CURLE_OUT_OF_MEMORY, /* 27 */ - /* Note: CURLE_OUT_OF_MEMORY may sometimes indicate a conversion error - instead of a memory allocation error if CURL_DOES_CONVERSIONS - is defined - */ - CURLE_OPERATION_TIMEDOUT, /* 28 - the timeout time was reached */ - CURLE_OBSOLETE29, /* 29 - NOT USED */ - CURLE_FTP_PORT_FAILED, /* 30 - FTP PORT operation failed */ - CURLE_FTP_COULDNT_USE_REST, /* 31 - the REST command failed */ - CURLE_OBSOLETE32, /* 32 - NOT USED */ - CURLE_RANGE_ERROR, /* 33 - RANGE "command" didn't work */ - CURLE_HTTP_POST_ERROR, /* 34 */ - CURLE_SSL_CONNECT_ERROR, /* 35 - wrong when connecting with SSL */ - CURLE_BAD_DOWNLOAD_RESUME, /* 36 - couldn't resume download */ - CURLE_FILE_COULDNT_READ_FILE, /* 37 */ - CURLE_LDAP_CANNOT_BIND, /* 38 */ - CURLE_LDAP_SEARCH_FAILED, /* 39 */ - CURLE_OBSOLETE40, /* 40 - NOT USED */ - CURLE_FUNCTION_NOT_FOUND, /* 41 - NOT USED starting with 7.53.0 */ - CURLE_ABORTED_BY_CALLBACK, /* 42 */ - CURLE_BAD_FUNCTION_ARGUMENT, /* 43 */ - CURLE_OBSOLETE44, /* 44 - NOT USED */ - CURLE_INTERFACE_FAILED, /* 45 - CURLOPT_INTERFACE failed */ - CURLE_OBSOLETE46, /* 46 - NOT USED */ - CURLE_TOO_MANY_REDIRECTS, /* 47 - catch endless re-direct loops */ - CURLE_UNKNOWN_OPTION, /* 48 - User specified an unknown option */ - CURLE_TELNET_OPTION_SYNTAX, /* 49 - Malformed telnet option */ - CURLE_OBSOLETE50, /* 50 - NOT USED */ - CURLE_PEER_FAILED_VERIFICATION, /* 51 - peer's certificate or fingerprint - wasn't verified fine */ - CURLE_GOT_NOTHING, /* 52 - when this is a specific error */ - CURLE_SSL_ENGINE_NOTFOUND, /* 53 - SSL crypto engine not found */ - CURLE_SSL_ENGINE_SETFAILED, /* 54 - can not set SSL crypto engine as - default */ - CURLE_SEND_ERROR, /* 55 - failed sending network data */ - CURLE_RECV_ERROR, /* 56 - failure in receiving network data */ - CURLE_OBSOLETE57, /* 57 - NOT IN USE */ - CURLE_SSL_CERTPROBLEM, /* 58 - problem with the local certificate */ - CURLE_SSL_CIPHER, /* 59 - couldn't use specified cipher */ - CURLE_SSL_CACERT, /* 60 - problem with the CA cert (path?) */ - CURLE_BAD_CONTENT_ENCODING, /* 61 - Unrecognized/bad encoding */ - CURLE_LDAP_INVALID_URL, /* 62 - Invalid LDAP URL */ - CURLE_FILESIZE_EXCEEDED, /* 63 - Maximum file size exceeded */ - CURLE_USE_SSL_FAILED, /* 64 - Requested FTP SSL level failed */ - CURLE_SEND_FAIL_REWIND, /* 65 - Sending the data requires a rewind - that failed */ - CURLE_SSL_ENGINE_INITFAILED, /* 66 - failed to initialise ENGINE */ - CURLE_LOGIN_DENIED, /* 67 - user, password or similar was not - accepted and we failed to login */ - CURLE_TFTP_NOTFOUND, /* 68 - file not found on server */ - CURLE_TFTP_PERM, /* 69 - permission problem on server */ - CURLE_REMOTE_DISK_FULL, /* 70 - out of disk space on server */ - CURLE_TFTP_ILLEGAL, /* 71 - Illegal TFTP operation */ - CURLE_TFTP_UNKNOWNID, /* 72 - Unknown transfer ID */ - CURLE_REMOTE_FILE_EXISTS, /* 73 - File already exists */ - CURLE_TFTP_NOSUCHUSER, /* 74 - No such user */ - CURLE_CONV_FAILED, /* 75 - conversion failed */ - CURLE_CONV_REQD, /* 76 - caller must register conversion - callbacks using curl_easy_setopt options - CURLOPT_CONV_FROM_NETWORK_FUNCTION, - CURLOPT_CONV_TO_NETWORK_FUNCTION, and - CURLOPT_CONV_FROM_UTF8_FUNCTION */ - CURLE_SSL_CACERT_BADFILE, /* 77 - could not load CACERT file, missing - or wrong format */ - CURLE_REMOTE_FILE_NOT_FOUND, /* 78 - remote file not found */ - CURLE_SSH, /* 79 - error from the SSH layer, somewhat - generic so the error message will be of - interest when this has happened */ - - CURLE_SSL_SHUTDOWN_FAILED, /* 80 - Failed to shut down the SSL - connection */ - CURLE_AGAIN, /* 81 - socket is not ready for send/recv, - wait till it's ready and try again (Added - in 7.18.2) */ - CURLE_SSL_CRL_BADFILE, /* 82 - could not load CRL file, missing or - wrong format (Added in 7.19.0) */ - CURLE_SSL_ISSUER_ERROR, /* 83 - Issuer check failed. (Added in - 7.19.0) */ - CURLE_FTP_PRET_FAILED, /* 84 - a PRET command failed */ - CURLE_RTSP_CSEQ_ERROR, /* 85 - mismatch of RTSP CSeq numbers */ - CURLE_RTSP_SESSION_ERROR, /* 86 - mismatch of RTSP Session Ids */ - CURLE_FTP_BAD_FILE_LIST, /* 87 - unable to parse FTP file list */ - CURLE_CHUNK_FAILED, /* 88 - chunk callback reported error */ - CURLE_NO_CONNECTION_AVAILABLE, /* 89 - No connection available, the - session will be queued */ - CURLE_SSL_PINNEDPUBKEYNOTMATCH, /* 90 - specified pinned public key did not - match */ - CURLE_SSL_INVALIDCERTSTATUS, /* 91 - invalid certificate status */ - CURLE_HTTP2_STREAM, /* 92 - stream error in HTTP/2 framing layer - */ - CURL_LAST /* never use! */ -} CURLcode; - -#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all - the obsolete stuff removed! */ - -/* Previously obsolete error code re-used in 7.38.0 */ -#define CURLE_OBSOLETE16 CURLE_HTTP2 - -/* Previously obsolete error codes re-used in 7.24.0 */ -#define CURLE_OBSOLETE10 CURLE_FTP_ACCEPT_FAILED -#define CURLE_OBSOLETE12 CURLE_FTP_ACCEPT_TIMEOUT - -/* compatibility with older names */ -#define CURLOPT_ENCODING CURLOPT_ACCEPT_ENCODING -#define CURLE_FTP_WEIRD_SERVER_REPLY CURLE_WEIRD_SERVER_REPLY - -/* The following were added in 7.21.5, April 2011 */ -#define CURLE_UNKNOWN_TELNET_OPTION CURLE_UNKNOWN_OPTION - -/* The following were added in 7.17.1 */ -/* These are scheduled to disappear by 2009 */ -#define CURLE_SSL_PEER_CERTIFICATE CURLE_PEER_FAILED_VERIFICATION - -/* The following were added in 7.17.0 */ -/* These are scheduled to disappear by 2009 */ -#define CURLE_OBSOLETE CURLE_OBSOLETE50 /* no one should be using this! */ -#define CURLE_BAD_PASSWORD_ENTERED CURLE_OBSOLETE46 -#define CURLE_BAD_CALLING_ORDER CURLE_OBSOLETE44 -#define CURLE_FTP_USER_PASSWORD_INCORRECT CURLE_OBSOLETE10 -#define CURLE_FTP_CANT_RECONNECT CURLE_OBSOLETE16 -#define CURLE_FTP_COULDNT_GET_SIZE CURLE_OBSOLETE32 -#define CURLE_FTP_COULDNT_SET_ASCII CURLE_OBSOLETE29 -#define CURLE_FTP_WEIRD_USER_REPLY CURLE_OBSOLETE12 -#define CURLE_FTP_WRITE_ERROR CURLE_OBSOLETE20 -#define CURLE_LIBRARY_NOT_FOUND CURLE_OBSOLETE40 -#define CURLE_MALFORMAT_USER CURLE_OBSOLETE24 -#define CURLE_SHARE_IN_USE CURLE_OBSOLETE57 -#define CURLE_URL_MALFORMAT_USER CURLE_NOT_BUILT_IN - -#define CURLE_FTP_ACCESS_DENIED CURLE_REMOTE_ACCESS_DENIED -#define CURLE_FTP_COULDNT_SET_BINARY CURLE_FTP_COULDNT_SET_TYPE -#define CURLE_FTP_QUOTE_ERROR CURLE_QUOTE_ERROR -#define CURLE_TFTP_DISKFULL CURLE_REMOTE_DISK_FULL -#define CURLE_TFTP_EXISTS CURLE_REMOTE_FILE_EXISTS -#define CURLE_HTTP_RANGE_ERROR CURLE_RANGE_ERROR -#define CURLE_FTP_SSL_FAILED CURLE_USE_SSL_FAILED - -/* The following were added earlier */ - -#define CURLE_OPERATION_TIMEOUTED CURLE_OPERATION_TIMEDOUT - -#define CURLE_HTTP_NOT_FOUND CURLE_HTTP_RETURNED_ERROR -#define CURLE_HTTP_PORT_FAILED CURLE_INTERFACE_FAILED -#define CURLE_FTP_COULDNT_STOR_FILE CURLE_UPLOAD_FAILED - -#define CURLE_FTP_PARTIAL_FILE CURLE_PARTIAL_FILE -#define CURLE_FTP_BAD_DOWNLOAD_RESUME CURLE_BAD_DOWNLOAD_RESUME - -/* This was the error code 50 in 7.7.3 and a few earlier versions, this - is no longer used by libcurl but is instead #defined here only to not - make programs break */ -#define CURLE_ALREADY_COMPLETE 99999 - -/* Provide defines for really old option names */ -#define CURLOPT_FILE CURLOPT_WRITEDATA /* name changed in 7.9.7 */ -#define CURLOPT_INFILE CURLOPT_READDATA /* name changed in 7.9.7 */ -#define CURLOPT_WRITEHEADER CURLOPT_HEADERDATA - -/* Since long deprecated options with no code in the lib that does anything - with them. */ -#define CURLOPT_WRITEINFO CURLOPT_OBSOLETE40 -#define CURLOPT_CLOSEPOLICY CURLOPT_OBSOLETE72 - -#endif /*!CURL_NO_OLDIES*/ - -/* This prototype applies to all conversion callbacks */ -typedef CURLcode (*curl_conv_callback)(char *buffer, size_t length); - -typedef CURLcode (*curl_ssl_ctx_callback)(CURL *curl, /* easy handle */ - void *ssl_ctx, /* actually an - OpenSSL SSL_CTX */ - void *userptr); - -typedef enum { - CURLPROXY_HTTP = 0, /* added in 7.10, new in 7.19.4 default is to use - CONNECT HTTP/1.1 */ - CURLPROXY_HTTP_1_0 = 1, /* added in 7.19.4, force to use CONNECT - HTTP/1.0 */ - CURLPROXY_HTTPS = 2, /* added in 7.52.0 */ - CURLPROXY_SOCKS4 = 4, /* support added in 7.15.2, enum existed already - in 7.10 */ - CURLPROXY_SOCKS5 = 5, /* added in 7.10 */ - CURLPROXY_SOCKS4A = 6, /* added in 7.18.0 */ - CURLPROXY_SOCKS5_HOSTNAME = 7 /* Use the SOCKS5 protocol but pass along the - host name rather than the IP address. added - in 7.18.0 */ -} curl_proxytype; /* this enum was added in 7.10 */ - -/* - * Bitmasks for CURLOPT_HTTPAUTH and CURLOPT_PROXYAUTH options: - * - * CURLAUTH_NONE - No HTTP authentication - * CURLAUTH_BASIC - HTTP Basic authentication (default) - * CURLAUTH_DIGEST - HTTP Digest authentication - * CURLAUTH_NEGOTIATE - HTTP Negotiate (SPNEGO) authentication - * CURLAUTH_GSSNEGOTIATE - Alias for CURLAUTH_NEGOTIATE (deprecated) - * CURLAUTH_NTLM - HTTP NTLM authentication - * CURLAUTH_DIGEST_IE - HTTP Digest authentication with IE flavour - * CURLAUTH_NTLM_WB - HTTP NTLM authentication delegated to winbind helper - * CURLAUTH_ONLY - Use together with a single other type to force no - * authentication or just that single type - * CURLAUTH_ANY - All fine types set - * CURLAUTH_ANYSAFE - All fine types except Basic - */ - -#define CURLAUTH_NONE ((unsigned long)0) -#define CURLAUTH_BASIC (((unsigned long)1)<<0) -#define CURLAUTH_DIGEST (((unsigned long)1)<<1) -#define CURLAUTH_NEGOTIATE (((unsigned long)1)<<2) -/* Deprecated since the advent of CURLAUTH_NEGOTIATE */ -#define CURLAUTH_GSSNEGOTIATE CURLAUTH_NEGOTIATE -/* Used for CURLOPT_SOCKS5_AUTH to stay terminologically correct */ -#define CURLAUTH_GSSAPI CURLAUTH_NEGOTIATE -#define CURLAUTH_NTLM (((unsigned long)1)<<3) -#define CURLAUTH_DIGEST_IE (((unsigned long)1)<<4) -#define CURLAUTH_NTLM_WB (((unsigned long)1)<<5) -#define CURLAUTH_ONLY (((unsigned long)1)<<31) -#define CURLAUTH_ANY (~CURLAUTH_DIGEST_IE) -#define CURLAUTH_ANYSAFE (~(CURLAUTH_BASIC|CURLAUTH_DIGEST_IE)) - -#define CURLSSH_AUTH_ANY ~0 /* all types supported by the server */ -#define CURLSSH_AUTH_NONE 0 /* none allowed, silly but complete */ -#define CURLSSH_AUTH_PUBLICKEY (1<<0) /* public/private key files */ -#define CURLSSH_AUTH_PASSWORD (1<<1) /* password */ -#define CURLSSH_AUTH_HOST (1<<2) /* host key files */ -#define CURLSSH_AUTH_KEYBOARD (1<<3) /* keyboard interactive */ -#define CURLSSH_AUTH_AGENT (1<<4) /* agent (ssh-agent, pageant...) */ -#define CURLSSH_AUTH_GSSAPI (1<<5) /* gssapi (kerberos, ...) */ -#define CURLSSH_AUTH_DEFAULT CURLSSH_AUTH_ANY - -#define CURLGSSAPI_DELEGATION_NONE 0 /* no delegation (default) */ -#define CURLGSSAPI_DELEGATION_POLICY_FLAG (1<<0) /* if permitted by policy */ -#define CURLGSSAPI_DELEGATION_FLAG (1<<1) /* delegate always */ - -#define CURL_ERROR_SIZE 256 - -enum curl_khtype { - CURLKHTYPE_UNKNOWN, - CURLKHTYPE_RSA1, - CURLKHTYPE_RSA, - CURLKHTYPE_DSS, - CURLKHTYPE_ECDSA, - CURLKHTYPE_ED25519 -}; - -struct curl_khkey { - const char *key; /* points to a zero-terminated string encoded with base64 - if len is zero, otherwise to the "raw" data */ - size_t len; - enum curl_khtype keytype; -}; - -/* this is the set of return values expected from the curl_sshkeycallback - callback */ -enum curl_khstat { - CURLKHSTAT_FINE_ADD_TO_FILE, - CURLKHSTAT_FINE, - CURLKHSTAT_REJECT, /* reject the connection, return an error */ - CURLKHSTAT_DEFER, /* do not accept it, but we can't answer right now so - this causes a CURLE_DEFER error but otherwise the - connection will be left intact etc */ - CURLKHSTAT_LAST /* not for use, only a marker for last-in-list */ -}; - -/* this is the set of status codes pass in to the callback */ -enum curl_khmatch { - CURLKHMATCH_OK, /* match */ - CURLKHMATCH_MISMATCH, /* host found, key mismatch! */ - CURLKHMATCH_MISSING, /* no matching host/key found */ - CURLKHMATCH_LAST /* not for use, only a marker for last-in-list */ -}; - -typedef int - (*curl_sshkeycallback) (CURL *easy, /* easy handle */ - const struct curl_khkey *knownkey, /* known */ - const struct curl_khkey *foundkey, /* found */ - enum curl_khmatch, /* libcurl's view on the keys */ - void *clientp); /* custom pointer passed from app */ - -/* parameter for the CURLOPT_USE_SSL option */ -typedef enum { - CURLUSESSL_NONE, /* do not attempt to use SSL */ - CURLUSESSL_TRY, /* try using SSL, proceed anyway otherwise */ - CURLUSESSL_CONTROL, /* SSL for the control connection or fail */ - CURLUSESSL_ALL, /* SSL for all communication or fail */ - CURLUSESSL_LAST /* not an option, never use */ -} curl_usessl; - -/* Definition of bits for the CURLOPT_SSL_OPTIONS argument: */ - -/* - ALLOW_BEAST tells libcurl to allow the BEAST SSL vulnerability in the - name of improving interoperability with older servers. Some SSL libraries - have introduced work-arounds for this flaw but those work-arounds sometimes - make the SSL communication fail. To regain functionality with those broken - servers, a user can this way allow the vulnerability back. */ -#define CURLSSLOPT_ALLOW_BEAST (1<<0) - -/* - NO_REVOKE tells libcurl to disable certificate revocation checks for those - SSL backends where such behavior is present. */ -#define CURLSSLOPT_NO_REVOKE (1<<1) - -#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all - the obsolete stuff removed! */ - -/* Backwards compatibility with older names */ -/* These are scheduled to disappear by 2009 */ - -#define CURLFTPSSL_NONE CURLUSESSL_NONE -#define CURLFTPSSL_TRY CURLUSESSL_TRY -#define CURLFTPSSL_CONTROL CURLUSESSL_CONTROL -#define CURLFTPSSL_ALL CURLUSESSL_ALL -#define CURLFTPSSL_LAST CURLUSESSL_LAST -#define curl_ftpssl curl_usessl -#endif /*!CURL_NO_OLDIES*/ - -/* parameter for the CURLOPT_FTP_SSL_CCC option */ -typedef enum { - CURLFTPSSL_CCC_NONE, /* do not send CCC */ - CURLFTPSSL_CCC_PASSIVE, /* Let the server initiate the shutdown */ - CURLFTPSSL_CCC_ACTIVE, /* Initiate the shutdown */ - CURLFTPSSL_CCC_LAST /* not an option, never use */ -} curl_ftpccc; - -/* parameter for the CURLOPT_FTPSSLAUTH option */ -typedef enum { - CURLFTPAUTH_DEFAULT, /* let libcurl decide */ - CURLFTPAUTH_SSL, /* use "AUTH SSL" */ - CURLFTPAUTH_TLS, /* use "AUTH TLS" */ - CURLFTPAUTH_LAST /* not an option, never use */ -} curl_ftpauth; - -/* parameter for the CURLOPT_FTP_CREATE_MISSING_DIRS option */ -typedef enum { - CURLFTP_CREATE_DIR_NONE, /* do NOT create missing dirs! */ - CURLFTP_CREATE_DIR, /* (FTP/SFTP) if CWD fails, try MKD and then CWD - again if MKD succeeded, for SFTP this does - similar magic */ - CURLFTP_CREATE_DIR_RETRY, /* (FTP only) if CWD fails, try MKD and then CWD - again even if MKD failed! */ - CURLFTP_CREATE_DIR_LAST /* not an option, never use */ -} curl_ftpcreatedir; - -/* parameter for the CURLOPT_FTP_FILEMETHOD option */ -typedef enum { - CURLFTPMETHOD_DEFAULT, /* let libcurl pick */ - CURLFTPMETHOD_MULTICWD, /* single CWD operation for each path part */ - CURLFTPMETHOD_NOCWD, /* no CWD at all */ - CURLFTPMETHOD_SINGLECWD, /* one CWD to full dir, then work on file */ - CURLFTPMETHOD_LAST /* not an option, never use */ -} curl_ftpmethod; - -/* bitmask defines for CURLOPT_HEADEROPT */ -#define CURLHEADER_UNIFIED 0 -#define CURLHEADER_SEPARATE (1<<0) - -/* CURLPROTO_ defines are for the CURLOPT_*PROTOCOLS options */ -#define CURLPROTO_HTTP (1<<0) -#define CURLPROTO_HTTPS (1<<1) -#define CURLPROTO_FTP (1<<2) -#define CURLPROTO_FTPS (1<<3) -#define CURLPROTO_SCP (1<<4) -#define CURLPROTO_SFTP (1<<5) -#define CURLPROTO_TELNET (1<<6) -#define CURLPROTO_LDAP (1<<7) -#define CURLPROTO_LDAPS (1<<8) -#define CURLPROTO_DICT (1<<9) -#define CURLPROTO_FILE (1<<10) -#define CURLPROTO_TFTP (1<<11) -#define CURLPROTO_IMAP (1<<12) -#define CURLPROTO_IMAPS (1<<13) -#define CURLPROTO_POP3 (1<<14) -#define CURLPROTO_POP3S (1<<15) -#define CURLPROTO_SMTP (1<<16) -#define CURLPROTO_SMTPS (1<<17) -#define CURLPROTO_RTSP (1<<18) -#define CURLPROTO_RTMP (1<<19) -#define CURLPROTO_RTMPT (1<<20) -#define CURLPROTO_RTMPE (1<<21) -#define CURLPROTO_RTMPTE (1<<22) -#define CURLPROTO_RTMPS (1<<23) -#define CURLPROTO_RTMPTS (1<<24) -#define CURLPROTO_GOPHER (1<<25) -#define CURLPROTO_SMB (1<<26) -#define CURLPROTO_SMBS (1<<27) -#define CURLPROTO_ALL (~0) /* enable everything */ - -/* long may be 32 or 64 bits, but we should never depend on anything else - but 32 */ -#define CURLOPTTYPE_LONG 0 -#define CURLOPTTYPE_OBJECTPOINT 10000 -#define CURLOPTTYPE_STRINGPOINT 10000 -#define CURLOPTTYPE_FUNCTIONPOINT 20000 -#define CURLOPTTYPE_OFF_T 30000 - -/* *STRINGPOINT is an alias for OBJECTPOINT to allow tools to extract the - string options from the header file */ - -/* name is uppercase CURLOPT_<name>, - type is one of the defined CURLOPTTYPE_<type> - number is unique identifier */ -#ifdef CINIT -#undef CINIT -#endif - -#ifdef CURL_ISOCPP -#define CINIT(na,t,nu) CURLOPT_ ## na = CURLOPTTYPE_ ## t + nu -#else -/* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */ -#define LONG CURLOPTTYPE_LONG -#define OBJECTPOINT CURLOPTTYPE_OBJECTPOINT -#define STRINGPOINT CURLOPTTYPE_OBJECTPOINT -#define FUNCTIONPOINT CURLOPTTYPE_FUNCTIONPOINT -#define OFF_T CURLOPTTYPE_OFF_T -#define CINIT(name,type,number) CURLOPT_/**/name = type + number -#endif - -/* - * This macro-mania below setups the CURLOPT_[what] enum, to be used with - * curl_easy_setopt(). The first argument in the CINIT() macro is the [what] - * word. - */ - -typedef enum { - /* This is the FILE * or void * the regular output should be written to. */ - CINIT(WRITEDATA, OBJECTPOINT, 1), - - /* The full URL to get/put */ - CINIT(URL, STRINGPOINT, 2), - - /* Port number to connect to, if other than default. */ - CINIT(PORT, LONG, 3), - - /* Name of proxy to use. */ - CINIT(PROXY, STRINGPOINT, 4), - - /* "user:password;options" to use when fetching. */ - CINIT(USERPWD, STRINGPOINT, 5), - - /* "user:password" to use with proxy. */ - CINIT(PROXYUSERPWD, STRINGPOINT, 6), - - /* Range to get, specified as an ASCII string. */ - CINIT(RANGE, STRINGPOINT, 7), - - /* not used */ - - /* Specified file stream to upload from (use as input): */ - CINIT(READDATA, OBJECTPOINT, 9), - - /* Buffer to receive error messages in, must be at least CURL_ERROR_SIZE - * bytes big. */ - CINIT(ERRORBUFFER, OBJECTPOINT, 10), - - /* Function that will be called to store the output (instead of fwrite). The - * parameters will use fwrite() syntax, make sure to follow them. */ - CINIT(WRITEFUNCTION, FUNCTIONPOINT, 11), - - /* Function that will be called to read the input (instead of fread). The - * parameters will use fread() syntax, make sure to follow them. */ - CINIT(READFUNCTION, FUNCTIONPOINT, 12), - - /* Time-out the read operation after this amount of seconds */ - CINIT(TIMEOUT, LONG, 13), - - /* If the CURLOPT_INFILE is used, this can be used to inform libcurl about - * how large the file being sent really is. That allows better error - * checking and better verifies that the upload was successful. -1 means - * unknown size. - * - * For large file support, there is also a _LARGE version of the key - * which takes an off_t type, allowing platforms with larger off_t - * sizes to handle larger files. See below for INFILESIZE_LARGE. - */ - CINIT(INFILESIZE, LONG, 14), - - /* POST static input fields. */ - CINIT(POSTFIELDS, OBJECTPOINT, 15), - - /* Set the referrer page (needed by some CGIs) */ - CINIT(REFERER, STRINGPOINT, 16), - - /* Set the FTP PORT string (interface name, named or numerical IP address) - Use i.e '-' to use default address. */ - CINIT(FTPPORT, STRINGPOINT, 17), - - /* Set the User-Agent string (examined by some CGIs) */ - CINIT(USERAGENT, STRINGPOINT, 18), - - /* If the download receives less than "low speed limit" bytes/second - * during "low speed time" seconds, the operations is aborted. - * You could i.e if you have a pretty high speed connection, abort if - * it is less than 2000 bytes/sec during 20 seconds. - */ - - /* Set the "low speed limit" */ - CINIT(LOW_SPEED_LIMIT, LONG, 19), - - /* Set the "low speed time" */ - CINIT(LOW_SPEED_TIME, LONG, 20), - - /* Set the continuation offset. - * - * Note there is also a _LARGE version of this key which uses - * off_t types, allowing for large file offsets on platforms which - * use larger-than-32-bit off_t's. Look below for RESUME_FROM_LARGE. - */ - CINIT(RESUME_FROM, LONG, 21), - - /* Set cookie in request: */ - CINIT(COOKIE, STRINGPOINT, 22), - - /* This points to a linked list of headers, struct curl_slist kind. This - list is also used for RTSP (in spite of its name) */ - CINIT(HTTPHEADER, OBJECTPOINT, 23), - - /* This points to a linked list of post entries, struct curl_httppost */ - CINIT(HTTPPOST, OBJECTPOINT, 24), - - /* name of the file keeping your private SSL-certificate */ - CINIT(SSLCERT, STRINGPOINT, 25), - - /* password for the SSL or SSH private key */ - CINIT(KEYPASSWD, STRINGPOINT, 26), - - /* send TYPE parameter? */ - CINIT(CRLF, LONG, 27), - - /* send linked-list of QUOTE commands */ - CINIT(QUOTE, OBJECTPOINT, 28), - - /* send FILE * or void * to store headers to, if you use a callback it - is simply passed to the callback unmodified */ - CINIT(HEADERDATA, OBJECTPOINT, 29), - - /* point to a file to read the initial cookies from, also enables - "cookie awareness" */ - CINIT(COOKIEFILE, STRINGPOINT, 31), - - /* What version to specifically try to use. - See CURL_SSLVERSION defines below. */ - CINIT(SSLVERSION, LONG, 32), - - /* What kind of HTTP time condition to use, see defines */ - CINIT(TIMECONDITION, LONG, 33), - - /* Time to use with the above condition. Specified in number of seconds - since 1 Jan 1970 */ - CINIT(TIMEVALUE, LONG, 34), - - /* 35 = OBSOLETE */ - - /* Custom request, for customizing the get command like - HTTP: DELETE, TRACE and others - FTP: to use a different list command - */ - CINIT(CUSTOMREQUEST, STRINGPOINT, 36), - - /* FILE handle to use instead of stderr */ - CINIT(STDERR, OBJECTPOINT, 37), - - /* 38 is not used */ - - /* send linked-list of post-transfer QUOTE commands */ - CINIT(POSTQUOTE, OBJECTPOINT, 39), - - CINIT(OBSOLETE40, OBJECTPOINT, 40), /* OBSOLETE, do not use! */ - - CINIT(VERBOSE, LONG, 41), /* talk a lot */ - CINIT(HEADER, LONG, 42), /* throw the header out too */ - CINIT(NOPROGRESS, LONG, 43), /* shut off the progress meter */ - CINIT(NOBODY, LONG, 44), /* use HEAD to get http document */ - CINIT(FAILONERROR, LONG, 45), /* no output on http error codes >= 400 */ - CINIT(UPLOAD, LONG, 46), /* this is an upload */ - CINIT(POST, LONG, 47), /* HTTP POST method */ - CINIT(DIRLISTONLY, LONG, 48), /* bare names when listing directories */ - - CINIT(APPEND, LONG, 50), /* Append instead of overwrite on upload! */ - - /* Specify whether to read the user+password from the .netrc or the URL. - * This must be one of the CURL_NETRC_* enums below. */ - CINIT(NETRC, LONG, 51), - - CINIT(FOLLOWLOCATION, LONG, 52), /* use Location: Luke! */ - - CINIT(TRANSFERTEXT, LONG, 53), /* transfer data in text/ASCII format */ - CINIT(PUT, LONG, 54), /* HTTP PUT */ - - /* 55 = OBSOLETE */ - - /* DEPRECATED - * Function that will be called instead of the internal progress display - * function. This function should be defined as the curl_progress_callback - * prototype defines. */ - CINIT(PROGRESSFUNCTION, FUNCTIONPOINT, 56), - - /* Data passed to the CURLOPT_PROGRESSFUNCTION and CURLOPT_XFERINFOFUNCTION - callbacks */ - CINIT(PROGRESSDATA, OBJECTPOINT, 57), -#define CURLOPT_XFERINFODATA CURLOPT_PROGRESSDATA - - /* We want the referrer field set automatically when following locations */ - CINIT(AUTOREFERER, LONG, 58), - - /* Port of the proxy, can be set in the proxy string as well with: - "[host]:[port]" */ - CINIT(PROXYPORT, LONG, 59), - - /* size of the POST input data, if strlen() is not good to use */ - CINIT(POSTFIELDSIZE, LONG, 60), - - /* tunnel non-http operations through a HTTP proxy */ - CINIT(HTTPPROXYTUNNEL, LONG, 61), - - /* Set the interface string to use as outgoing network interface */ - CINIT(INTERFACE, STRINGPOINT, 62), - - /* Set the krb4/5 security level, this also enables krb4/5 awareness. This - * is a string, 'clear', 'safe', 'confidential' or 'private'. If the string - * is set but doesn't match one of these, 'private' will be used. */ - CINIT(KRBLEVEL, STRINGPOINT, 63), - - /* Set if we should verify the peer in ssl handshake, set 1 to verify. */ - CINIT(SSL_VERIFYPEER, LONG, 64), - - /* The CApath or CAfile used to validate the peer certificate - this option is used only if SSL_VERIFYPEER is true */ - CINIT(CAINFO, STRINGPOINT, 65), - - /* 66 = OBSOLETE */ - /* 67 = OBSOLETE */ - - /* Maximum number of http redirects to follow */ - CINIT(MAXREDIRS, LONG, 68), - - /* Pass a long set to 1 to get the date of the requested document (if - possible)! Pass a zero to shut it off. */ - CINIT(FILETIME, LONG, 69), - - /* This points to a linked list of telnet options */ - CINIT(TELNETOPTIONS, OBJECTPOINT, 70), - - /* Max amount of cached alive connections */ - CINIT(MAXCONNECTS, LONG, 71), - - CINIT(OBSOLETE72, LONG, 72), /* OBSOLETE, do not use! */ - - /* 73 = OBSOLETE */ - - /* Set to explicitly use a new connection for the upcoming transfer. - Do not use this unless you're absolutely sure of this, as it makes the - operation slower and is less friendly for the network. */ - CINIT(FRESH_CONNECT, LONG, 74), - - /* Set to explicitly forbid the upcoming transfer's connection to be re-used - when done. Do not use this unless you're absolutely sure of this, as it - makes the operation slower and is less friendly for the network. */ - CINIT(FORBID_REUSE, LONG, 75), - - /* Set to a file name that contains random data for libcurl to use to - seed the random engine when doing SSL connects. */ - CINIT(RANDOM_FILE, STRINGPOINT, 76), - - /* Set to the Entropy Gathering Daemon socket pathname */ - CINIT(EGDSOCKET, STRINGPOINT, 77), - - /* Time-out connect operations after this amount of seconds, if connects are - OK within this time, then fine... This only aborts the connect phase. */ - CINIT(CONNECTTIMEOUT, LONG, 78), - - /* Function that will be called to store headers (instead of fwrite). The - * parameters will use fwrite() syntax, make sure to follow them. */ - CINIT(HEADERFUNCTION, FUNCTIONPOINT, 79), - - /* Set this to force the HTTP request to get back to GET. Only really usable - if POST, PUT or a custom request have been used first. - */ - CINIT(HTTPGET, LONG, 80), - - /* Set if we should verify the Common name from the peer certificate in ssl - * handshake, set 1 to check existence, 2 to ensure that it matches the - * provided hostname. */ - CINIT(SSL_VERIFYHOST, LONG, 81), - - /* Specify which file name to write all known cookies in after completed - operation. Set file name to "-" (dash) to make it go to stdout. */ - CINIT(COOKIEJAR, STRINGPOINT, 82), - - /* Specify which SSL ciphers to use */ - CINIT(SSL_CIPHER_LIST, STRINGPOINT, 83), - - /* Specify which HTTP version to use! This must be set to one of the - CURL_HTTP_VERSION* enums set below. */ - CINIT(HTTP_VERSION, LONG, 84), - - /* Specifically switch on or off the FTP engine's use of the EPSV command. By - default, that one will always be attempted before the more traditional - PASV command. */ - CINIT(FTP_USE_EPSV, LONG, 85), - - /* type of the file keeping your SSL-certificate ("DER", "PEM", "ENG") */ - CINIT(SSLCERTTYPE, STRINGPOINT, 86), - - /* name of the file keeping your private SSL-key */ - CINIT(SSLKEY, STRINGPOINT, 87), - - /* type of the file keeping your private SSL-key ("DER", "PEM", "ENG") */ - CINIT(SSLKEYTYPE, STRINGPOINT, 88), - - /* crypto engine for the SSL-sub system */ - CINIT(SSLENGINE, STRINGPOINT, 89), - - /* set the crypto engine for the SSL-sub system as default - the param has no meaning... - */ - CINIT(SSLENGINE_DEFAULT, LONG, 90), - - /* Non-zero value means to use the global dns cache */ - CINIT(DNS_USE_GLOBAL_CACHE, LONG, 91), /* DEPRECATED, do not use! */ - - /* DNS cache timeout */ - CINIT(DNS_CACHE_TIMEOUT, LONG, 92), - - /* send linked-list of pre-transfer QUOTE commands */ - CINIT(PREQUOTE, OBJECTPOINT, 93), - - /* set the debug function */ - CINIT(DEBUGFUNCTION, FUNCTIONPOINT, 94), - - /* set the data for the debug function */ - CINIT(DEBUGDATA, OBJECTPOINT, 95), - - /* mark this as start of a cookie session */ - CINIT(COOKIESESSION, LONG, 96), - - /* The CApath directory used to validate the peer certificate - this option is used only if SSL_VERIFYPEER is true */ - CINIT(CAPATH, STRINGPOINT, 97), - - /* Instruct libcurl to use a smaller receive buffer */ - CINIT(BUFFERSIZE, LONG, 98), - - /* Instruct libcurl to not use any signal/alarm handlers, even when using - timeouts. This option is useful for multi-threaded applications. - See libcurl-the-guide for more background information. */ - CINIT(NOSIGNAL, LONG, 99), - - /* Provide a CURLShare for mutexing non-ts data */ - CINIT(SHARE, OBJECTPOINT, 100), - - /* indicates type of proxy. accepted values are CURLPROXY_HTTP (default), - CURLPROXY_HTTPS, CURLPROXY_SOCKS4, CURLPROXY_SOCKS4A and - CURLPROXY_SOCKS5. */ - CINIT(PROXYTYPE, LONG, 101), - - /* Set the Accept-Encoding string. Use this to tell a server you would like - the response to be compressed. Before 7.21.6, this was known as - CURLOPT_ENCODING */ - CINIT(ACCEPT_ENCODING, STRINGPOINT, 102), - - /* Set pointer to private data */ - CINIT(PRIVATE, OBJECTPOINT, 103), - - /* Set aliases for HTTP 200 in the HTTP Response header */ - CINIT(HTTP200ALIASES, OBJECTPOINT, 104), - - /* Continue to send authentication (user+password) when following locations, - even when hostname changed. This can potentially send off the name - and password to whatever host the server decides. */ - CINIT(UNRESTRICTED_AUTH, LONG, 105), - - /* Specifically switch on or off the FTP engine's use of the EPRT command ( - it also disables the LPRT attempt). By default, those ones will always be - attempted before the good old traditional PORT command. */ - CINIT(FTP_USE_EPRT, LONG, 106), - - /* Set this to a bitmask value to enable the particular authentications - methods you like. Use this in combination with CURLOPT_USERPWD. - Note that setting multiple bits may cause extra network round-trips. */ - CINIT(HTTPAUTH, LONG, 107), - - /* Set the ssl context callback function, currently only for OpenSSL ssl_ctx - in second argument. The function must be matching the - curl_ssl_ctx_callback proto. */ - CINIT(SSL_CTX_FUNCTION, FUNCTIONPOINT, 108), - - /* Set the userdata for the ssl context callback function's third - argument */ - CINIT(SSL_CTX_DATA, OBJECTPOINT, 109), - - /* FTP Option that causes missing dirs to be created on the remote server. - In 7.19.4 we introduced the convenience enums for this option using the - CURLFTP_CREATE_DIR prefix. - */ - CINIT(FTP_CREATE_MISSING_DIRS, LONG, 110), - - /* Set this to a bitmask value to enable the particular authentications - methods you like. Use this in combination with CURLOPT_PROXYUSERPWD. - Note that setting multiple bits may cause extra network round-trips. */ - CINIT(PROXYAUTH, LONG, 111), - - /* FTP option that changes the timeout, in seconds, associated with - getting a response. This is different from transfer timeout time and - essentially places a demand on the FTP server to acknowledge commands - in a timely manner. */ - CINIT(FTP_RESPONSE_TIMEOUT, LONG, 112), -#define CURLOPT_SERVER_RESPONSE_TIMEOUT CURLOPT_FTP_RESPONSE_TIMEOUT - - /* Set this option to one of the CURL_IPRESOLVE_* defines (see below) to - tell libcurl to resolve names to those IP versions only. This only has - affect on systems with support for more than one, i.e IPv4 _and_ IPv6. */ - CINIT(IPRESOLVE, LONG, 113), - - /* Set this option to limit the size of a file that will be downloaded from - an HTTP or FTP server. - - Note there is also _LARGE version which adds large file support for - platforms which have larger off_t sizes. See MAXFILESIZE_LARGE below. */ - CINIT(MAXFILESIZE, LONG, 114), - - /* See the comment for INFILESIZE above, but in short, specifies - * the size of the file being uploaded. -1 means unknown. - */ - CINIT(INFILESIZE_LARGE, OFF_T, 115), - - /* Sets the continuation offset. There is also a LONG version of this; - * look above for RESUME_FROM. - */ - CINIT(RESUME_FROM_LARGE, OFF_T, 116), - - /* Sets the maximum size of data that will be downloaded from - * an HTTP or FTP server. See MAXFILESIZE above for the LONG version. - */ - CINIT(MAXFILESIZE_LARGE, OFF_T, 117), - - /* Set this option to the file name of your .netrc file you want libcurl - to parse (using the CURLOPT_NETRC option). If not set, libcurl will do - a poor attempt to find the user's home directory and check for a .netrc - file in there. */ - CINIT(NETRC_FILE, STRINGPOINT, 118), - - /* Enable SSL/TLS for FTP, pick one of: - CURLUSESSL_TRY - try using SSL, proceed anyway otherwise - CURLUSESSL_CONTROL - SSL for the control connection or fail - CURLUSESSL_ALL - SSL for all communication or fail - */ - CINIT(USE_SSL, LONG, 119), - - /* The _LARGE version of the standard POSTFIELDSIZE option */ - CINIT(POSTFIELDSIZE_LARGE, OFF_T, 120), - - /* Enable/disable the TCP Nagle algorithm */ - CINIT(TCP_NODELAY, LONG, 121), - - /* 122 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ - /* 123 OBSOLETE. Gone in 7.16.0 */ - /* 124 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ - /* 125 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ - /* 126 OBSOLETE, used in 7.12.3. Gone in 7.13.0 */ - /* 127 OBSOLETE. Gone in 7.16.0 */ - /* 128 OBSOLETE. Gone in 7.16.0 */ - - /* When FTP over SSL/TLS is selected (with CURLOPT_USE_SSL), this option - can be used to change libcurl's default action which is to first try - "AUTH SSL" and then "AUTH TLS" in this order, and proceed when a OK - response has been received. - - Available parameters are: - CURLFTPAUTH_DEFAULT - let libcurl decide - CURLFTPAUTH_SSL - try "AUTH SSL" first, then TLS - CURLFTPAUTH_TLS - try "AUTH TLS" first, then SSL - */ - CINIT(FTPSSLAUTH, LONG, 129), - - CINIT(IOCTLFUNCTION, FUNCTIONPOINT, 130), - CINIT(IOCTLDATA, OBJECTPOINT, 131), - - /* 132 OBSOLETE. Gone in 7.16.0 */ - /* 133 OBSOLETE. Gone in 7.16.0 */ - - /* zero terminated string for pass on to the FTP server when asked for - "account" info */ - CINIT(FTP_ACCOUNT, STRINGPOINT, 134), - - /* feed cookie into cookie engine */ - CINIT(COOKIELIST, STRINGPOINT, 135), - - /* ignore Content-Length */ - CINIT(IGNORE_CONTENT_LENGTH, LONG, 136), - - /* Set to non-zero to skip the IP address received in a 227 PASV FTP server - response. Typically used for FTP-SSL purposes but is not restricted to - that. libcurl will then instead use the same IP address it used for the - control connection. */ - CINIT(FTP_SKIP_PASV_IP, LONG, 137), - - /* Select "file method" to use when doing FTP, see the curl_ftpmethod - above. */ - CINIT(FTP_FILEMETHOD, LONG, 138), - - /* Local port number to bind the socket to */ - CINIT(LOCALPORT, LONG, 139), - - /* Number of ports to try, including the first one set with LOCALPORT. - Thus, setting it to 1 will make no additional attempts but the first. - */ - CINIT(LOCALPORTRANGE, LONG, 140), - - /* no transfer, set up connection and let application use the socket by - extracting it with CURLINFO_LASTSOCKET */ - CINIT(CONNECT_ONLY, LONG, 141), - - /* Function that will be called to convert from the - network encoding (instead of using the iconv calls in libcurl) */ - CINIT(CONV_FROM_NETWORK_FUNCTION, FUNCTIONPOINT, 142), - - /* Function that will be called to convert to the - network encoding (instead of using the iconv calls in libcurl) */ - CINIT(CONV_TO_NETWORK_FUNCTION, FUNCTIONPOINT, 143), - - /* Function that will be called to convert from UTF8 - (instead of using the iconv calls in libcurl) - Note that this is used only for SSL certificate processing */ - CINIT(CONV_FROM_UTF8_FUNCTION, FUNCTIONPOINT, 144), - - /* if the connection proceeds too quickly then need to slow it down */ - /* limit-rate: maximum number of bytes per second to send or receive */ - CINIT(MAX_SEND_SPEED_LARGE, OFF_T, 145), - CINIT(MAX_RECV_SPEED_LARGE, OFF_T, 146), - - /* Pointer to command string to send if USER/PASS fails. */ - CINIT(FTP_ALTERNATIVE_TO_USER, STRINGPOINT, 147), - - /* callback function for setting socket options */ - CINIT(SOCKOPTFUNCTION, FUNCTIONPOINT, 148), - CINIT(SOCKOPTDATA, OBJECTPOINT, 149), - - /* set to 0 to disable session ID re-use for this transfer, default is - enabled (== 1) */ - CINIT(SSL_SESSIONID_CACHE, LONG, 150), - - /* allowed SSH authentication methods */ - CINIT(SSH_AUTH_TYPES, LONG, 151), - - /* Used by scp/sftp to do public/private key authentication */ - CINIT(SSH_PUBLIC_KEYFILE, STRINGPOINT, 152), - CINIT(SSH_PRIVATE_KEYFILE, STRINGPOINT, 153), - - /* Send CCC (Clear Command Channel) after authentication */ - CINIT(FTP_SSL_CCC, LONG, 154), - - /* Same as TIMEOUT and CONNECTTIMEOUT, but with ms resolution */ - CINIT(TIMEOUT_MS, LONG, 155), - CINIT(CONNECTTIMEOUT_MS, LONG, 156), - - /* set to zero to disable the libcurl's decoding and thus pass the raw body - data to the application even when it is encoded/compressed */ - CINIT(HTTP_TRANSFER_DECODING, LONG, 157), - CINIT(HTTP_CONTENT_DECODING, LONG, 158), - - /* Permission used when creating new files and directories on the remote - server for protocols that support it, SFTP/SCP/FILE */ - CINIT(NEW_FILE_PERMS, LONG, 159), - CINIT(NEW_DIRECTORY_PERMS, LONG, 160), - - /* Set the behaviour of POST when redirecting. Values must be set to one - of CURL_REDIR* defines below. This used to be called CURLOPT_POST301 */ - CINIT(POSTREDIR, LONG, 161), - - /* used by scp/sftp to verify the host's public key */ - CINIT(SSH_HOST_PUBLIC_KEY_MD5, STRINGPOINT, 162), - - /* Callback function for opening socket (instead of socket(2)). Optionally, - callback is able change the address or refuse to connect returning - CURL_SOCKET_BAD. The callback should have type - curl_opensocket_callback */ - CINIT(OPENSOCKETFUNCTION, FUNCTIONPOINT, 163), - CINIT(OPENSOCKETDATA, OBJECTPOINT, 164), - - /* POST volatile input fields. */ - CINIT(COPYPOSTFIELDS, OBJECTPOINT, 165), - - /* set transfer mode (;type=<a|i>) when doing FTP via an HTTP proxy */ - CINIT(PROXY_TRANSFER_MODE, LONG, 166), - - /* Callback function for seeking in the input stream */ - CINIT(SEEKFUNCTION, FUNCTIONPOINT, 167), - CINIT(SEEKDATA, OBJECTPOINT, 168), - - /* CRL file */ - CINIT(CRLFILE, STRINGPOINT, 169), - - /* Issuer certificate */ - CINIT(ISSUERCERT, STRINGPOINT, 170), - - /* (IPv6) Address scope */ - CINIT(ADDRESS_SCOPE, LONG, 171), - - /* Collect certificate chain info and allow it to get retrievable with - CURLINFO_CERTINFO after the transfer is complete. */ - CINIT(CERTINFO, LONG, 172), - - /* "name" and "pwd" to use when fetching. */ - CINIT(USERNAME, STRINGPOINT, 173), - CINIT(PASSWORD, STRINGPOINT, 174), - - /* "name" and "pwd" to use with Proxy when fetching. */ - CINIT(PROXYUSERNAME, STRINGPOINT, 175), - CINIT(PROXYPASSWORD, STRINGPOINT, 176), - - /* Comma separated list of hostnames defining no-proxy zones. These should - match both hostnames directly, and hostnames within a domain. For - example, local.com will match local.com and www.local.com, but NOT - notlocal.com or www.notlocal.com. For compatibility with other - implementations of this, .local.com will be considered to be the same as - local.com. A single * is the only valid wildcard, and effectively - disables the use of proxy. */ - CINIT(NOPROXY, STRINGPOINT, 177), - - /* block size for TFTP transfers */ - CINIT(TFTP_BLKSIZE, LONG, 178), - - /* Socks Service */ - CINIT(SOCKS5_GSSAPI_SERVICE, STRINGPOINT, 179), /* DEPRECATED, do not use! */ - - /* Socks Service */ - CINIT(SOCKS5_GSSAPI_NEC, LONG, 180), - - /* set the bitmask for the protocols that are allowed to be used for the - transfer, which thus helps the app which takes URLs from users or other - external inputs and want to restrict what protocol(s) to deal - with. Defaults to CURLPROTO_ALL. */ - CINIT(PROTOCOLS, LONG, 181), - - /* set the bitmask for the protocols that libcurl is allowed to follow to, - as a subset of the CURLOPT_PROTOCOLS ones. That means the protocol needs - to be set in both bitmasks to be allowed to get redirected to. Defaults - to all protocols except FILE and SCP. */ - CINIT(REDIR_PROTOCOLS, LONG, 182), - - /* set the SSH knownhost file name to use */ - CINIT(SSH_KNOWNHOSTS, STRINGPOINT, 183), - - /* set the SSH host key callback, must point to a curl_sshkeycallback - function */ - CINIT(SSH_KEYFUNCTION, FUNCTIONPOINT, 184), - - /* set the SSH host key callback custom pointer */ - CINIT(SSH_KEYDATA, OBJECTPOINT, 185), - - /* set the SMTP mail originator */ - CINIT(MAIL_FROM, STRINGPOINT, 186), - - /* set the list of SMTP mail receiver(s) */ - CINIT(MAIL_RCPT, OBJECTPOINT, 187), - - /* FTP: send PRET before PASV */ - CINIT(FTP_USE_PRET, LONG, 188), - - /* RTSP request method (OPTIONS, SETUP, PLAY, etc...) */ - CINIT(RTSP_REQUEST, LONG, 189), - - /* The RTSP session identifier */ - CINIT(RTSP_SESSION_ID, STRINGPOINT, 190), - - /* The RTSP stream URI */ - CINIT(RTSP_STREAM_URI, STRINGPOINT, 191), - - /* The Transport: header to use in RTSP requests */ - CINIT(RTSP_TRANSPORT, STRINGPOINT, 192), - - /* Manually initialize the client RTSP CSeq for this handle */ - CINIT(RTSP_CLIENT_CSEQ, LONG, 193), - - /* Manually initialize the server RTSP CSeq for this handle */ - CINIT(RTSP_SERVER_CSEQ, LONG, 194), - - /* The stream to pass to INTERLEAVEFUNCTION. */ - CINIT(INTERLEAVEDATA, OBJECTPOINT, 195), - - /* Let the application define a custom write method for RTP data */ - CINIT(INTERLEAVEFUNCTION, FUNCTIONPOINT, 196), - - /* Turn on wildcard matching */ - CINIT(WILDCARDMATCH, LONG, 197), - - /* Directory matching callback called before downloading of an - individual file (chunk) started */ - CINIT(CHUNK_BGN_FUNCTION, FUNCTIONPOINT, 198), - - /* Directory matching callback called after the file (chunk) - was downloaded, or skipped */ - CINIT(CHUNK_END_FUNCTION, FUNCTIONPOINT, 199), - - /* Change match (fnmatch-like) callback for wildcard matching */ - CINIT(FNMATCH_FUNCTION, FUNCTIONPOINT, 200), - - /* Let the application define custom chunk data pointer */ - CINIT(CHUNK_DATA, OBJECTPOINT, 201), - - /* FNMATCH_FUNCTION user pointer */ - CINIT(FNMATCH_DATA, OBJECTPOINT, 202), - - /* send linked-list of name:port:address sets */ - CINIT(RESOLVE, OBJECTPOINT, 203), - - /* Set a username for authenticated TLS */ - CINIT(TLSAUTH_USERNAME, STRINGPOINT, 204), - - /* Set a password for authenticated TLS */ - CINIT(TLSAUTH_PASSWORD, STRINGPOINT, 205), - - /* Set authentication type for authenticated TLS */ - CINIT(TLSAUTH_TYPE, STRINGPOINT, 206), - - /* Set to 1 to enable the "TE:" header in HTTP requests to ask for - compressed transfer-encoded responses. Set to 0 to disable the use of TE: - in outgoing requests. The current default is 0, but it might change in a - future libcurl release. - - libcurl will ask for the compressed methods it knows of, and if that - isn't any, it will not ask for transfer-encoding at all even if this - option is set to 1. - - */ - CINIT(TRANSFER_ENCODING, LONG, 207), - - /* Callback function for closing socket (instead of close(2)). The callback - should have type curl_closesocket_callback */ - CINIT(CLOSESOCKETFUNCTION, FUNCTIONPOINT, 208), - CINIT(CLOSESOCKETDATA, OBJECTPOINT, 209), - - /* allow GSSAPI credential delegation */ - CINIT(GSSAPI_DELEGATION, LONG, 210), - - /* Set the name servers to use for DNS resolution */ - CINIT(DNS_SERVERS, STRINGPOINT, 211), - - /* Time-out accept operations (currently for FTP only) after this amount - of milliseconds. */ - CINIT(ACCEPTTIMEOUT_MS, LONG, 212), - - /* Set TCP keepalive */ - CINIT(TCP_KEEPALIVE, LONG, 213), - - /* non-universal keepalive knobs (Linux, AIX, HP-UX, more) */ - CINIT(TCP_KEEPIDLE, LONG, 214), - CINIT(TCP_KEEPINTVL, LONG, 215), - - /* Enable/disable specific SSL features with a bitmask, see CURLSSLOPT_* */ - CINIT(SSL_OPTIONS, LONG, 216), - - /* Set the SMTP auth originator */ - CINIT(MAIL_AUTH, STRINGPOINT, 217), - - /* Enable/disable SASL initial response */ - CINIT(SASL_IR, LONG, 218), - - /* Function that will be called instead of the internal progress display - * function. This function should be defined as the curl_xferinfo_callback - * prototype defines. (Deprecates CURLOPT_PROGRESSFUNCTION) */ - CINIT(XFERINFOFUNCTION, FUNCTIONPOINT, 219), - - /* The XOAUTH2 bearer token */ - CINIT(XOAUTH2_BEARER, STRINGPOINT, 220), - - /* Set the interface string to use as outgoing network - * interface for DNS requests. - * Only supported by the c-ares DNS backend */ - CINIT(DNS_INTERFACE, STRINGPOINT, 221), - - /* Set the local IPv4 address to use for outgoing DNS requests. - * Only supported by the c-ares DNS backend */ - CINIT(DNS_LOCAL_IP4, STRINGPOINT, 222), - - /* Set the local IPv4 address to use for outgoing DNS requests. - * Only supported by the c-ares DNS backend */ - CINIT(DNS_LOCAL_IP6, STRINGPOINT, 223), - - /* Set authentication options directly */ - CINIT(LOGIN_OPTIONS, STRINGPOINT, 224), - - /* Enable/disable TLS NPN extension (http2 over ssl might fail without) */ - CINIT(SSL_ENABLE_NPN, LONG, 225), - - /* Enable/disable TLS ALPN extension (http2 over ssl might fail without) */ - CINIT(SSL_ENABLE_ALPN, LONG, 226), - - /* Time to wait for a response to a HTTP request containing an - * Expect: 100-continue header before sending the data anyway. */ - CINIT(EXPECT_100_TIMEOUT_MS, LONG, 227), - - /* This points to a linked list of headers used for proxy requests only, - struct curl_slist kind */ - CINIT(PROXYHEADER, OBJECTPOINT, 228), - - /* Pass in a bitmask of "header options" */ - CINIT(HEADEROPT, LONG, 229), - - /* The public key in DER form used to validate the peer public key - this option is used only if SSL_VERIFYPEER is true */ - CINIT(PINNEDPUBLICKEY, STRINGPOINT, 230), - - /* Path to Unix domain socket */ - CINIT(UNIX_SOCKET_PATH, STRINGPOINT, 231), - - /* Set if we should verify the certificate status. */ - CINIT(SSL_VERIFYSTATUS, LONG, 232), - - /* Set if we should enable TLS false start. */ - CINIT(SSL_FALSESTART, LONG, 233), - - /* Do not squash dot-dot sequences */ - CINIT(PATH_AS_IS, LONG, 234), - - /* Proxy Service Name */ - CINIT(PROXY_SERVICE_NAME, STRINGPOINT, 235), - - /* Service Name */ - CINIT(SERVICE_NAME, STRINGPOINT, 236), - - /* Wait/don't wait for pipe/mutex to clarify */ - CINIT(PIPEWAIT, LONG, 237), - - /* Set the protocol used when curl is given a URL without a protocol */ - CINIT(DEFAULT_PROTOCOL, STRINGPOINT, 238), - - /* Set stream weight, 1 - 256 (default is 16) */ - CINIT(STREAM_WEIGHT, LONG, 239), - - /* Set stream dependency on another CURL handle */ - CINIT(STREAM_DEPENDS, OBJECTPOINT, 240), - - /* Set E-xclusive stream dependency on another CURL handle */ - CINIT(STREAM_DEPENDS_E, OBJECTPOINT, 241), - - /* Do not send any tftp option requests to the server */ - CINIT(TFTP_NO_OPTIONS, LONG, 242), - - /* Linked-list of host:port:connect-to-host:connect-to-port, - overrides the URL's host:port (only for the network layer) */ - CINIT(CONNECT_TO, OBJECTPOINT, 243), - - /* Set TCP Fast Open */ - CINIT(TCP_FASTOPEN, LONG, 244), - - /* Continue to send data if the server responds early with an - * HTTP status code >= 300 */ - CINIT(KEEP_SENDING_ON_ERROR, LONG, 245), - - /* The CApath or CAfile used to validate the proxy certificate - this option is used only if PROXY_SSL_VERIFYPEER is true */ - CINIT(PROXY_CAINFO, STRINGPOINT, 246), - - /* The CApath directory used to validate the proxy certificate - this option is used only if PROXY_SSL_VERIFYPEER is true */ - CINIT(PROXY_CAPATH, STRINGPOINT, 247), - - /* Set if we should verify the proxy in ssl handshake, - set 1 to verify. */ - CINIT(PROXY_SSL_VERIFYPEER, LONG, 248), - - /* Set if we should verify the Common name from the proxy certificate in ssl - * handshake, set 1 to check existence, 2 to ensure that it matches - * the provided hostname. */ - CINIT(PROXY_SSL_VERIFYHOST, LONG, 249), - - /* What version to specifically try to use for proxy. - See CURL_SSLVERSION defines below. */ - CINIT(PROXY_SSLVERSION, LONG, 250), - - /* Set a username for authenticated TLS for proxy */ - CINIT(PROXY_TLSAUTH_USERNAME, STRINGPOINT, 251), - - /* Set a password for authenticated TLS for proxy */ - CINIT(PROXY_TLSAUTH_PASSWORD, STRINGPOINT, 252), - - /* Set authentication type for authenticated TLS for proxy */ - CINIT(PROXY_TLSAUTH_TYPE, STRINGPOINT, 253), - - /* name of the file keeping your private SSL-certificate for proxy */ - CINIT(PROXY_SSLCERT, STRINGPOINT, 254), - - /* type of the file keeping your SSL-certificate ("DER", "PEM", "ENG") for - proxy */ - CINIT(PROXY_SSLCERTTYPE, STRINGPOINT, 255), - - /* name of the file keeping your private SSL-key for proxy */ - CINIT(PROXY_SSLKEY, STRINGPOINT, 256), - - /* type of the file keeping your private SSL-key ("DER", "PEM", "ENG") for - proxy */ - CINIT(PROXY_SSLKEYTYPE, STRINGPOINT, 257), - - /* password for the SSL private key for proxy */ - CINIT(PROXY_KEYPASSWD, STRINGPOINT, 258), - - /* Specify which SSL ciphers to use for proxy */ - CINIT(PROXY_SSL_CIPHER_LIST, STRINGPOINT, 259), - - /* CRL file for proxy */ - CINIT(PROXY_CRLFILE, STRINGPOINT, 260), - - /* Enable/disable specific SSL features with a bitmask for proxy, see - CURLSSLOPT_* */ - CINIT(PROXY_SSL_OPTIONS, LONG, 261), - - /* Name of pre proxy to use. */ - CINIT(PRE_PROXY, STRINGPOINT, 262), - - /* The public key in DER form used to validate the proxy public key - this option is used only if PROXY_SSL_VERIFYPEER is true */ - CINIT(PROXY_PINNEDPUBLICKEY, STRINGPOINT, 263), - - /* Path to an abstract Unix domain socket */ - CINIT(ABSTRACT_UNIX_SOCKET, STRINGPOINT, 264), - - /* Suppress proxy CONNECT response headers from user callbacks */ - CINIT(SUPPRESS_CONNECT_HEADERS, LONG, 265), - - /* The request target, instead of extracted from the URL */ - CINIT(REQUEST_TARGET, STRINGPOINT, 266), - - /* bitmask of allowed auth methods for connections to SOCKS5 proxies */ - CINIT(SOCKS5_AUTH, LONG, 267), - - /* Enable/disable SSH compression */ - CINIT(SSH_COMPRESSION, LONG, 268), - - /* Post MIME data. */ - CINIT(MIMEPOST, OBJECTPOINT, 269), - - CURLOPT_LASTENTRY /* the last unused */ -} CURLoption; - -#ifndef CURL_NO_OLDIES /* define this to test if your app builds with all - the obsolete stuff removed! */ - -/* Backwards compatibility with older names */ -/* These are scheduled to disappear by 2011 */ - -/* This was added in version 7.19.1 */ -#define CURLOPT_POST301 CURLOPT_POSTREDIR - -/* These are scheduled to disappear by 2009 */ - -/* The following were added in 7.17.0 */ -#define CURLOPT_SSLKEYPASSWD CURLOPT_KEYPASSWD -#define CURLOPT_FTPAPPEND CURLOPT_APPEND -#define CURLOPT_FTPLISTONLY CURLOPT_DIRLISTONLY -#define CURLOPT_FTP_SSL CURLOPT_USE_SSL - -/* The following were added earlier */ - -#define CURLOPT_SSLCERTPASSWD CURLOPT_KEYPASSWD -#define CURLOPT_KRB4LEVEL CURLOPT_KRBLEVEL - -#else -/* This is set if CURL_NO_OLDIES is defined at compile-time */ -#undef CURLOPT_DNS_USE_GLOBAL_CACHE /* soon obsolete */ -#endif - - - /* Below here follows defines for the CURLOPT_IPRESOLVE option. If a host - name resolves addresses using more than one IP protocol version, this - option might be handy to force libcurl to use a specific IP version. */ -#define CURL_IPRESOLVE_WHATEVER 0 /* default, resolves addresses to all IP - versions that your system allows */ -#define CURL_IPRESOLVE_V4 1 /* resolve to IPv4 addresses */ -#define CURL_IPRESOLVE_V6 2 /* resolve to IPv6 addresses */ - - /* three convenient "aliases" that follow the name scheme better */ -#define CURLOPT_RTSPHEADER CURLOPT_HTTPHEADER - - /* These enums are for use with the CURLOPT_HTTP_VERSION option. */ -enum { - CURL_HTTP_VERSION_NONE, /* setting this means we don't care, and that we'd - like the library to choose the best possible - for us! */ - CURL_HTTP_VERSION_1_0, /* please use HTTP 1.0 in the request */ - CURL_HTTP_VERSION_1_1, /* please use HTTP 1.1 in the request */ - CURL_HTTP_VERSION_2_0, /* please use HTTP 2 in the request */ - CURL_HTTP_VERSION_2TLS, /* use version 2 for HTTPS, version 1.1 for HTTP */ - CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE, /* please use HTTP 2 without HTTP/1.1 - Upgrade */ - - CURL_HTTP_VERSION_LAST /* *ILLEGAL* http version */ -}; - -/* Convenience definition simple because the name of the version is HTTP/2 and - not 2.0. The 2_0 version of the enum name was set while the version was - still planned to be 2.0 and we stick to it for compatibility. */ -#define CURL_HTTP_VERSION_2 CURL_HTTP_VERSION_2_0 - -/* - * Public API enums for RTSP requests - */ -enum { - CURL_RTSPREQ_NONE, /* first in list */ - CURL_RTSPREQ_OPTIONS, - CURL_RTSPREQ_DESCRIBE, - CURL_RTSPREQ_ANNOUNCE, - CURL_RTSPREQ_SETUP, - CURL_RTSPREQ_PLAY, - CURL_RTSPREQ_PAUSE, - CURL_RTSPREQ_TEARDOWN, - CURL_RTSPREQ_GET_PARAMETER, - CURL_RTSPREQ_SET_PARAMETER, - CURL_RTSPREQ_RECORD, - CURL_RTSPREQ_RECEIVE, - CURL_RTSPREQ_LAST /* last in list */ -}; - - /* These enums are for use with the CURLOPT_NETRC option. */ -enum CURL_NETRC_OPTION { - CURL_NETRC_IGNORED, /* The .netrc will never be read. - * This is the default. */ - CURL_NETRC_OPTIONAL, /* A user:password in the URL will be preferred - * to one in the .netrc. */ - CURL_NETRC_REQUIRED, /* A user:password in the URL will be ignored. - * Unless one is set programmatically, the .netrc - * will be queried. */ - CURL_NETRC_LAST -}; - -enum { - CURL_SSLVERSION_DEFAULT, - CURL_SSLVERSION_TLSv1, /* TLS 1.x */ - CURL_SSLVERSION_SSLv2, - CURL_SSLVERSION_SSLv3, - CURL_SSLVERSION_TLSv1_0, - CURL_SSLVERSION_TLSv1_1, - CURL_SSLVERSION_TLSv1_2, - CURL_SSLVERSION_TLSv1_3, - - CURL_SSLVERSION_LAST /* never use, keep last */ -}; - -enum { - CURL_SSLVERSION_MAX_NONE = 0, - CURL_SSLVERSION_MAX_DEFAULT = (CURL_SSLVERSION_TLSv1 << 16), - CURL_SSLVERSION_MAX_TLSv1_0 = (CURL_SSLVERSION_TLSv1_0 << 16), - CURL_SSLVERSION_MAX_TLSv1_1 = (CURL_SSLVERSION_TLSv1_1 << 16), - CURL_SSLVERSION_MAX_TLSv1_2 = (CURL_SSLVERSION_TLSv1_2 << 16), - CURL_SSLVERSION_MAX_TLSv1_3 = (CURL_SSLVERSION_TLSv1_3 << 16), - - /* never use, keep last */ - CURL_SSLVERSION_MAX_LAST = (CURL_SSLVERSION_LAST << 16) -}; - -enum CURL_TLSAUTH { - CURL_TLSAUTH_NONE, - CURL_TLSAUTH_SRP, - CURL_TLSAUTH_LAST /* never use, keep last */ -}; - -/* symbols to use with CURLOPT_POSTREDIR. - CURL_REDIR_POST_301, CURL_REDIR_POST_302 and CURL_REDIR_POST_303 - can be bitwise ORed so that CURL_REDIR_POST_301 | CURL_REDIR_POST_302 - | CURL_REDIR_POST_303 == CURL_REDIR_POST_ALL */ - -#define CURL_REDIR_GET_ALL 0 -#define CURL_REDIR_POST_301 1 -#define CURL_REDIR_POST_302 2 -#define CURL_REDIR_POST_303 4 -#define CURL_REDIR_POST_ALL \ - (CURL_REDIR_POST_301|CURL_REDIR_POST_302|CURL_REDIR_POST_303) - -typedef enum { - CURL_TIMECOND_NONE, - - CURL_TIMECOND_IFMODSINCE, - CURL_TIMECOND_IFUNMODSINCE, - CURL_TIMECOND_LASTMOD, - - CURL_TIMECOND_LAST -} curl_TimeCond; - -/* Special size_t value signaling a zero-terminated string. */ -#define CURL_ZERO_TERMINATED ((size_t) -1) - -/* curl_strequal() and curl_strnequal() are subject for removal in a future - release */ -CURL_EXTERN int curl_strequal(const char *s1, const char *s2); -CURL_EXTERN int curl_strnequal(const char *s1, const char *s2, size_t n); - -/* Mime/form handling support. */ -typedef struct curl_mime_s curl_mime; /* Mime context. */ -typedef struct curl_mimepart_s curl_mimepart; /* Mime part context. */ - -/* - * NAME curl_mime_init() - * - * DESCRIPTION - * - * Create a mime context and return its handle. The easy parameter is the - * target handle. - */ -CURL_EXTERN curl_mime *curl_mime_init(CURL *easy); - -/* - * NAME curl_mime_free() - * - * DESCRIPTION - * - * release a mime handle and its substructures. - */ -CURL_EXTERN void curl_mime_free(curl_mime *mime); - -/* - * NAME curl_mime_addpart() - * - * DESCRIPTION - * - * Append a new empty part to the given mime context and return a handle to - * the created part. - */ -CURL_EXTERN curl_mimepart *curl_mime_addpart(curl_mime *mime); - -/* - * NAME curl_mime_name() - * - * DESCRIPTION - * - * Set mime/form part name. - */ -CURL_EXTERN CURLcode curl_mime_name(curl_mimepart *part, const char *name); - -/* - * NAME curl_mime_filename() - * - * DESCRIPTION - * - * Set mime part remote file name. - */ -CURL_EXTERN CURLcode curl_mime_filename(curl_mimepart *part, - const char *filename); - -/* - * NAME curl_mime_type() - * - * DESCRIPTION - * - * Set mime part type. - */ -CURL_EXTERN CURLcode curl_mime_type(curl_mimepart *part, const char *mimetype); - -/* - * NAME curl_mime_encoder() - * - * DESCRIPTION - * - * Set mime data transfer encoder. - */ -CURL_EXTERN CURLcode curl_mime_encoder(curl_mimepart *part, - const char *encoding); - -/* - * NAME curl_mime_data() - * - * DESCRIPTION - * - * Set mime part data source from memory data, - */ -CURL_EXTERN CURLcode curl_mime_data(curl_mimepart *part, - const char *data, size_t datasize); - -/* - * NAME curl_mime_filedata() - * - * DESCRIPTION - * - * Set mime part data source from named file. - */ -CURL_EXTERN CURLcode curl_mime_filedata(curl_mimepart *part, - const char *filename); - -/* - * NAME curl_mime_data_cb() - * - * DESCRIPTION - * - * Set mime part data source from callback function. - */ -CURL_EXTERN CURLcode curl_mime_data_cb(curl_mimepart *part, - curl_off_t datasize, - curl_read_callback readfunc, - curl_seek_callback seekfunc, - curl_free_callback freefunc, - void *arg); - -/* - * NAME curl_mime_subparts() - * - * DESCRIPTION - * - * Set mime part data source from subparts. - */ -CURL_EXTERN CURLcode curl_mime_subparts(curl_mimepart *part, - curl_mime *subparts); -/* - * NAME curl_mime_headers() - * - * DESCRIPTION - * - * Set mime part headers. - */ -CURL_EXTERN CURLcode curl_mime_headers(curl_mimepart *part, - struct curl_slist *headers, - int take_ownership); - -/* Old form API. */ -/* name is uppercase CURLFORM_<name> */ -#ifdef CFINIT -#undef CFINIT -#endif - -#ifdef CURL_ISOCPP -#define CFINIT(name) CURLFORM_ ## name -#else -/* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */ -#define CFINIT(name) CURLFORM_/**/name -#endif - -typedef enum { - CFINIT(NOTHING), /********* the first one is unused ************/ - - /* */ - CFINIT(COPYNAME), - CFINIT(PTRNAME), - CFINIT(NAMELENGTH), - CFINIT(COPYCONTENTS), - CFINIT(PTRCONTENTS), - CFINIT(CONTENTSLENGTH), - CFINIT(FILECONTENT), - CFINIT(ARRAY), - CFINIT(OBSOLETE), - CFINIT(FILE), - - CFINIT(BUFFER), - CFINIT(BUFFERPTR), - CFINIT(BUFFERLENGTH), - - CFINIT(CONTENTTYPE), - CFINIT(CONTENTHEADER), - CFINIT(FILENAME), - CFINIT(END), - CFINIT(OBSOLETE2), - - CFINIT(STREAM), - CFINIT(CONTENTLEN), /* added in 7.46.0, provide a curl_off_t length */ - - CURLFORM_LASTENTRY /* the last unused */ -} CURLformoption; - -#undef CFINIT /* done */ - -/* structure to be used as parameter for CURLFORM_ARRAY */ -struct curl_forms { - CURLformoption option; - const char *value; -}; - -/* use this for multipart formpost building */ -/* Returns code for curl_formadd() - * - * Returns: - * CURL_FORMADD_OK on success - * CURL_FORMADD_MEMORY if the FormInfo allocation fails - * CURL_FORMADD_OPTION_TWICE if one option is given twice for one Form - * CURL_FORMADD_NULL if a null pointer was given for a char - * CURL_FORMADD_MEMORY if the allocation of a FormInfo struct failed - * CURL_FORMADD_UNKNOWN_OPTION if an unknown option was used - * CURL_FORMADD_INCOMPLETE if the some FormInfo is not complete (or error) - * CURL_FORMADD_MEMORY if a curl_httppost struct cannot be allocated - * CURL_FORMADD_MEMORY if some allocation for string copying failed. - * CURL_FORMADD_ILLEGAL_ARRAY if an illegal option is used in an array - * - ***************************************************************************/ -typedef enum { - CURL_FORMADD_OK, /* first, no error */ - - CURL_FORMADD_MEMORY, - CURL_FORMADD_OPTION_TWICE, - CURL_FORMADD_NULL, - CURL_FORMADD_UNKNOWN_OPTION, - CURL_FORMADD_INCOMPLETE, - CURL_FORMADD_ILLEGAL_ARRAY, - CURL_FORMADD_DISABLED, /* libcurl was built with this disabled */ - - CURL_FORMADD_LAST /* last */ -} CURLFORMcode; - -/* - * NAME curl_formadd() - * - * DESCRIPTION - * - * Pretty advanced function for building multi-part formposts. Each invoke - * adds one part that together construct a full post. Then use - * CURLOPT_HTTPPOST to send it off to libcurl. - */ -CURL_EXTERN CURLFORMcode curl_formadd(struct curl_httppost **httppost, - struct curl_httppost **last_post, - ...); - -/* - * callback function for curl_formget() - * The void *arg pointer will be the one passed as second argument to - * curl_formget(). - * The character buffer passed to it must not be freed. - * Should return the buffer length passed to it as the argument "len" on - * success. - */ -typedef size_t (*curl_formget_callback)(void *arg, const char *buf, - size_t len); - -/* - * NAME curl_formget() - * - * DESCRIPTION - * - * Serialize a curl_httppost struct built with curl_formadd(). - * Accepts a void pointer as second argument which will be passed to - * the curl_formget_callback function. - * Returns 0 on success. - */ -CURL_EXTERN int curl_formget(struct curl_httppost *form, void *arg, - curl_formget_callback append); -/* - * NAME curl_formfree() - * - * DESCRIPTION - * - * Free a multipart formpost previously built with curl_formadd(). - */ -CURL_EXTERN void curl_formfree(struct curl_httppost *form); - -/* - * NAME curl_getenv() - * - * DESCRIPTION - * - * Returns a malloc()'ed string that MUST be curl_free()ed after usage is - * complete. DEPRECATED - see lib/README.curlx - */ -CURL_EXTERN char *curl_getenv(const char *variable); - -/* - * NAME curl_version() - * - * DESCRIPTION - * - * Returns a static ascii string of the libcurl version. - */ -CURL_EXTERN char *curl_version(void); - -/* - * NAME curl_easy_escape() - * - * DESCRIPTION - * - * Escapes URL strings (converts all letters consider illegal in URLs to their - * %XX versions). This function returns a new allocated string or NULL if an - * error occurred. - */ -CURL_EXTERN char *curl_easy_escape(CURL *handle, - const char *string, - int length); - -/* the previous version: */ -CURL_EXTERN char *curl_escape(const char *string, - int length); - - -/* - * NAME curl_easy_unescape() - * - * DESCRIPTION - * - * Unescapes URL encoding in strings (converts all %XX codes to their 8bit - * versions). This function returns a new allocated string or NULL if an error - * occurred. - * Conversion Note: On non-ASCII platforms the ASCII %XX codes are - * converted into the host encoding. - */ -CURL_EXTERN char *curl_easy_unescape(CURL *handle, - const char *string, - int length, - int *outlength); - -/* the previous version */ -CURL_EXTERN char *curl_unescape(const char *string, - int length); - -/* - * NAME curl_free() - * - * DESCRIPTION - * - * Provided for de-allocation in the same translation unit that did the - * allocation. Added in libcurl 7.10 - */ -CURL_EXTERN void curl_free(void *p); - -/* - * NAME curl_global_init() - * - * DESCRIPTION - * - * curl_global_init() should be invoked exactly once for each application that - * uses libcurl and before any call of other libcurl functions. - * - * This function is not thread-safe! - */ -CURL_EXTERN CURLcode curl_global_init(long flags); - -/* - * NAME curl_global_init_mem() - * - * DESCRIPTION - * - * curl_global_init() or curl_global_init_mem() should be invoked exactly once - * for each application that uses libcurl. This function can be used to - * initialize libcurl and set user defined memory management callback - * functions. Users can implement memory management routines to check for - * memory leaks, check for mis-use of the curl library etc. User registered - * callback routines with be invoked by this library instead of the system - * memory management routines like malloc, free etc. - */ -CURL_EXTERN CURLcode curl_global_init_mem(long flags, - curl_malloc_callback m, - curl_free_callback f, - curl_realloc_callback r, - curl_strdup_callback s, - curl_calloc_callback c); - -/* - * NAME curl_global_cleanup() - * - * DESCRIPTION - * - * curl_global_cleanup() should be invoked exactly once for each application - * that uses libcurl - */ -CURL_EXTERN void curl_global_cleanup(void); - -/* linked-list structure for the CURLOPT_QUOTE option (and other) */ -struct curl_slist { - char *data; - struct curl_slist *next; -}; - -/* - * NAME curl_global_sslset() - * - * DESCRIPTION - * - * When built with multiple SSL backends, curl_global_sslset() allows to - * choose one. This function can only be called once, and it must be called - * *before* curl_global_init(). - * - * The backend can be identified by the id (e.g. CURLSSLBACKEND_OPENSSL). The - * backend can also be specified via the name parameter (passing -1 as id). - * If both id and name are specified, the name will be ignored. If neither id - * nor name are specified, the function will fail with - * CURLSSLSET_UNKNOWN_BACKEND and set the "avail" pointer to the - * NULL-terminated list of available backends. - * - * Upon success, the function returns CURLSSLSET_OK. - * - * If the specified SSL backend is not available, the function returns - * CURLSSLSET_UNKNOWN_BACKEND and sets the "avail" pointer to a NULL-terminated - * list of available SSL backends. - * - * The SSL backend can be set only once. If it has already been set, a - * subsequent attempt to change it will result in a CURLSSLSET_TOO_LATE. - */ - -typedef struct { - curl_sslbackend id; - const char *name; -} curl_ssl_backend; - -typedef enum { - CURLSSLSET_OK = 0, - CURLSSLSET_UNKNOWN_BACKEND, - CURLSSLSET_TOO_LATE, - CURLSSLSET_NO_BACKENDS /* libcurl was built without any SSL support */ -} CURLsslset; - -CURL_EXTERN CURLsslset curl_global_sslset(curl_sslbackend id, const char *name, - const curl_ssl_backend ***avail); - -/* - * NAME curl_slist_append() - * - * DESCRIPTION - * - * Appends a string to a linked list. If no list exists, it will be created - * first. Returns the new list, after appending. - */ -CURL_EXTERN struct curl_slist *curl_slist_append(struct curl_slist *, - const char *); - -/* - * NAME curl_slist_free_all() - * - * DESCRIPTION - * - * free a previously built curl_slist. - */ -CURL_EXTERN void curl_slist_free_all(struct curl_slist *); - -/* - * NAME curl_getdate() - * - * DESCRIPTION - * - * Returns the time, in seconds since 1 Jan 1970 of the time string given in - * the first argument. The time argument in the second parameter is unused - * and should be set to NULL. - */ -CURL_EXTERN time_t curl_getdate(const char *p, const time_t *unused); - -/* info about the certificate chain, only for OpenSSL builds. Asked - for with CURLOPT_CERTINFO / CURLINFO_CERTINFO */ -struct curl_certinfo { - int num_of_certs; /* number of certificates with information */ - struct curl_slist **certinfo; /* for each index in this array, there's a - linked list with textual information in the - format "name: value" */ -}; - -/* Information about the SSL library used and the respective internal SSL - handle, which can be used to obtain further information regarding the - connection. Asked for with CURLINFO_TLS_SSL_PTR or CURLINFO_TLS_SESSION. */ -struct curl_tlssessioninfo { - curl_sslbackend backend; - void *internals; -}; - -#define CURLINFO_STRING 0x100000 -#define CURLINFO_LONG 0x200000 -#define CURLINFO_DOUBLE 0x300000 -#define CURLINFO_SLIST 0x400000 -#define CURLINFO_PTR 0x400000 /* same as SLIST */ -#define CURLINFO_SOCKET 0x500000 -#define CURLINFO_OFF_T 0x600000 -#define CURLINFO_MASK 0x0fffff -#define CURLINFO_TYPEMASK 0xf00000 - -typedef enum { - CURLINFO_NONE, /* first, never use this */ - CURLINFO_EFFECTIVE_URL = CURLINFO_STRING + 1, - CURLINFO_RESPONSE_CODE = CURLINFO_LONG + 2, - CURLINFO_TOTAL_TIME = CURLINFO_DOUBLE + 3, - CURLINFO_NAMELOOKUP_TIME = CURLINFO_DOUBLE + 4, - CURLINFO_CONNECT_TIME = CURLINFO_DOUBLE + 5, - CURLINFO_PRETRANSFER_TIME = CURLINFO_DOUBLE + 6, - CURLINFO_SIZE_UPLOAD = CURLINFO_DOUBLE + 7, - CURLINFO_SIZE_UPLOAD_T = CURLINFO_OFF_T + 7, - CURLINFO_SIZE_DOWNLOAD = CURLINFO_DOUBLE + 8, - CURLINFO_SIZE_DOWNLOAD_T = CURLINFO_OFF_T + 8, - CURLINFO_SPEED_DOWNLOAD = CURLINFO_DOUBLE + 9, - CURLINFO_SPEED_DOWNLOAD_T = CURLINFO_OFF_T + 9, - CURLINFO_SPEED_UPLOAD = CURLINFO_DOUBLE + 10, - CURLINFO_SPEED_UPLOAD_T = CURLINFO_OFF_T + 10, - CURLINFO_HEADER_SIZE = CURLINFO_LONG + 11, - CURLINFO_REQUEST_SIZE = CURLINFO_LONG + 12, - CURLINFO_SSL_VERIFYRESULT = CURLINFO_LONG + 13, - CURLINFO_FILETIME = CURLINFO_LONG + 14, - CURLINFO_CONTENT_LENGTH_DOWNLOAD = CURLINFO_DOUBLE + 15, - CURLINFO_CONTENT_LENGTH_DOWNLOAD_T = CURLINFO_OFF_T + 15, - CURLINFO_CONTENT_LENGTH_UPLOAD = CURLINFO_DOUBLE + 16, - CURLINFO_CONTENT_LENGTH_UPLOAD_T = CURLINFO_OFF_T + 16, - CURLINFO_STARTTRANSFER_TIME = CURLINFO_DOUBLE + 17, - CURLINFO_CONTENT_TYPE = CURLINFO_STRING + 18, - CURLINFO_REDIRECT_TIME = CURLINFO_DOUBLE + 19, - CURLINFO_REDIRECT_COUNT = CURLINFO_LONG + 20, - CURLINFO_PRIVATE = CURLINFO_STRING + 21, - CURLINFO_HTTP_CONNECTCODE = CURLINFO_LONG + 22, - CURLINFO_HTTPAUTH_AVAIL = CURLINFO_LONG + 23, - CURLINFO_PROXYAUTH_AVAIL = CURLINFO_LONG + 24, - CURLINFO_OS_ERRNO = CURLINFO_LONG + 25, - CURLINFO_NUM_CONNECTS = CURLINFO_LONG + 26, - CURLINFO_SSL_ENGINES = CURLINFO_SLIST + 27, - CURLINFO_COOKIELIST = CURLINFO_SLIST + 28, - CURLINFO_LASTSOCKET = CURLINFO_LONG + 29, - CURLINFO_FTP_ENTRY_PATH = CURLINFO_STRING + 30, - CURLINFO_REDIRECT_URL = CURLINFO_STRING + 31, - CURLINFO_PRIMARY_IP = CURLINFO_STRING + 32, - CURLINFO_APPCONNECT_TIME = CURLINFO_DOUBLE + 33, - CURLINFO_CERTINFO = CURLINFO_PTR + 34, - CURLINFO_CONDITION_UNMET = CURLINFO_LONG + 35, - CURLINFO_RTSP_SESSION_ID = CURLINFO_STRING + 36, - CURLINFO_RTSP_CLIENT_CSEQ = CURLINFO_LONG + 37, - CURLINFO_RTSP_SERVER_CSEQ = CURLINFO_LONG + 38, - CURLINFO_RTSP_CSEQ_RECV = CURLINFO_LONG + 39, - CURLINFO_PRIMARY_PORT = CURLINFO_LONG + 40, - CURLINFO_LOCAL_IP = CURLINFO_STRING + 41, - CURLINFO_LOCAL_PORT = CURLINFO_LONG + 42, - CURLINFO_TLS_SESSION = CURLINFO_PTR + 43, - CURLINFO_ACTIVESOCKET = CURLINFO_SOCKET + 44, - CURLINFO_TLS_SSL_PTR = CURLINFO_PTR + 45, - CURLINFO_HTTP_VERSION = CURLINFO_LONG + 46, - CURLINFO_PROXY_SSL_VERIFYRESULT = CURLINFO_LONG + 47, - CURLINFO_PROTOCOL = CURLINFO_LONG + 48, - CURLINFO_SCHEME = CURLINFO_STRING + 49, - /* Fill in new entries below here! */ - - CURLINFO_LASTONE = 49 -} CURLINFO; - -/* CURLINFO_RESPONSE_CODE is the new name for the option previously known as - CURLINFO_HTTP_CODE */ -#define CURLINFO_HTTP_CODE CURLINFO_RESPONSE_CODE - -typedef enum { - CURLCLOSEPOLICY_NONE, /* first, never use this */ - - CURLCLOSEPOLICY_OLDEST, - CURLCLOSEPOLICY_LEAST_RECENTLY_USED, - CURLCLOSEPOLICY_LEAST_TRAFFIC, - CURLCLOSEPOLICY_SLOWEST, - CURLCLOSEPOLICY_CALLBACK, - - CURLCLOSEPOLICY_LAST /* last, never use this */ -} curl_closepolicy; - -#define CURL_GLOBAL_SSL (1<<0) /* no purpose since since 7.57.0 */ -#define CURL_GLOBAL_WIN32 (1<<1) -#define CURL_GLOBAL_ALL (CURL_GLOBAL_SSL|CURL_GLOBAL_WIN32) -#define CURL_GLOBAL_NOTHING 0 -#define CURL_GLOBAL_DEFAULT CURL_GLOBAL_ALL -#define CURL_GLOBAL_ACK_EINTR (1<<2) - - -/***************************************************************************** - * Setup defines, protos etc for the sharing stuff. - */ - -/* Different data locks for a single share */ -typedef enum { - CURL_LOCK_DATA_NONE = 0, - /* CURL_LOCK_DATA_SHARE is used internally to say that - * the locking is just made to change the internal state of the share - * itself. - */ - CURL_LOCK_DATA_SHARE, - CURL_LOCK_DATA_COOKIE, - CURL_LOCK_DATA_DNS, - CURL_LOCK_DATA_SSL_SESSION, - CURL_LOCK_DATA_CONNECT, - CURL_LOCK_DATA_LAST -} curl_lock_data; - -/* Different lock access types */ -typedef enum { - CURL_LOCK_ACCESS_NONE = 0, /* unspecified action */ - CURL_LOCK_ACCESS_SHARED = 1, /* for read perhaps */ - CURL_LOCK_ACCESS_SINGLE = 2, /* for write perhaps */ - CURL_LOCK_ACCESS_LAST /* never use */ -} curl_lock_access; - -typedef void (*curl_lock_function)(CURL *handle, - curl_lock_data data, - curl_lock_access locktype, - void *userptr); -typedef void (*curl_unlock_function)(CURL *handle, - curl_lock_data data, - void *userptr); - - -typedef enum { - CURLSHE_OK, /* all is fine */ - CURLSHE_BAD_OPTION, /* 1 */ - CURLSHE_IN_USE, /* 2 */ - CURLSHE_INVALID, /* 3 */ - CURLSHE_NOMEM, /* 4 out of memory */ - CURLSHE_NOT_BUILT_IN, /* 5 feature not present in lib */ - CURLSHE_LAST /* never use */ -} CURLSHcode; - -typedef enum { - CURLSHOPT_NONE, /* don't use */ - CURLSHOPT_SHARE, /* specify a data type to share */ - CURLSHOPT_UNSHARE, /* specify which data type to stop sharing */ - CURLSHOPT_LOCKFUNC, /* pass in a 'curl_lock_function' pointer */ - CURLSHOPT_UNLOCKFUNC, /* pass in a 'curl_unlock_function' pointer */ - CURLSHOPT_USERDATA, /* pass in a user data pointer used in the lock/unlock - callback functions */ - CURLSHOPT_LAST /* never use */ -} CURLSHoption; - -CURL_EXTERN CURLSH *curl_share_init(void); -CURL_EXTERN CURLSHcode curl_share_setopt(CURLSH *, CURLSHoption option, ...); -CURL_EXTERN CURLSHcode curl_share_cleanup(CURLSH *); - -/**************************************************************************** - * Structures for querying information about the curl library at runtime. - */ - -typedef enum { - CURLVERSION_FIRST, - CURLVERSION_SECOND, - CURLVERSION_THIRD, - CURLVERSION_FOURTH, - CURLVERSION_FIFTH, - CURLVERSION_LAST /* never actually use this */ -} CURLversion; - -/* The 'CURLVERSION_NOW' is the symbolic name meant to be used by - basically all programs ever that want to get version information. It is - meant to be a built-in version number for what kind of struct the caller - expects. If the struct ever changes, we redefine the NOW to another enum - from above. */ -#define CURLVERSION_NOW CURLVERSION_FIFTH - -typedef struct { - CURLversion age; /* age of the returned struct */ - const char *version; /* LIBCURL_VERSION */ - unsigned int version_num; /* LIBCURL_VERSION_NUM */ - const char *host; /* OS/host/cpu/machine when configured */ - int features; /* bitmask, see defines below */ - const char *ssl_version; /* human readable string */ - long ssl_version_num; /* not used anymore, always 0 */ - const char *libz_version; /* human readable string */ - /* protocols is terminated by an entry with a NULL protoname */ - const char * const *protocols; - - /* The fields below this were added in CURLVERSION_SECOND */ - const char *ares; - int ares_num; - - /* This field was added in CURLVERSION_THIRD */ - const char *libidn; - - /* These field were added in CURLVERSION_FOURTH */ - - /* Same as '_libiconv_version' if built with HAVE_ICONV */ - int iconv_ver_num; - - const char *libssh_version; /* human readable string */ - - /* These fields were added in CURLVERSION_FIFTH */ - - unsigned int brotli_ver_num; /* Numeric Brotli version - (MAJOR << 24) | (MINOR << 12) | PATCH */ - const char *brotli_version; /* human readable string. */ - -} curl_version_info_data; - -#define CURL_VERSION_IPV6 (1<<0) /* IPv6-enabled */ -#define CURL_VERSION_KERBEROS4 (1<<1) /* Kerberos V4 auth is supported - (deprecated) */ -#define CURL_VERSION_SSL (1<<2) /* SSL options are present */ -#define CURL_VERSION_LIBZ (1<<3) /* libz features are present */ -#define CURL_VERSION_NTLM (1<<4) /* NTLM auth is supported */ -#define CURL_VERSION_GSSNEGOTIATE (1<<5) /* Negotiate auth is supported - (deprecated) */ -#define CURL_VERSION_DEBUG (1<<6) /* Built with debug capabilities */ -#define CURL_VERSION_ASYNCHDNS (1<<7) /* Asynchronous DNS resolves */ -#define CURL_VERSION_SPNEGO (1<<8) /* SPNEGO auth is supported */ -#define CURL_VERSION_LARGEFILE (1<<9) /* Supports files larger than 2GB */ -#define CURL_VERSION_IDN (1<<10) /* Internationized Domain Names are - supported */ -#define CURL_VERSION_SSPI (1<<11) /* Built against Windows SSPI */ -#define CURL_VERSION_CONV (1<<12) /* Character conversions supported */ -#define CURL_VERSION_CURLDEBUG (1<<13) /* Debug memory tracking supported */ -#define CURL_VERSION_TLSAUTH_SRP (1<<14) /* TLS-SRP auth is supported */ -#define CURL_VERSION_NTLM_WB (1<<15) /* NTLM delegation to winbind helper - is supported */ -#define CURL_VERSION_HTTP2 (1<<16) /* HTTP2 support built-in */ -#define CURL_VERSION_GSSAPI (1<<17) /* Built against a GSS-API library */ -#define CURL_VERSION_KERBEROS5 (1<<18) /* Kerberos V5 auth is supported */ -#define CURL_VERSION_UNIX_SOCKETS (1<<19) /* Unix domain sockets support */ -#define CURL_VERSION_PSL (1<<20) /* Mozilla's Public Suffix List, used - for cookie domain verification */ -#define CURL_VERSION_HTTPS_PROXY (1<<21) /* HTTPS-proxy support built-in */ -#define CURL_VERSION_MULTI_SSL (1<<22) /* Multiple SSL backends available */ -#define CURL_VERSION_BROTLI (1<<23) /* Brotli features are present. */ - - /* - * NAME curl_version_info() - * - * DESCRIPTION - * - * This function returns a pointer to a static copy of the version info - * struct. See above. - */ -CURL_EXTERN curl_version_info_data *curl_version_info(CURLversion); - -/* - * NAME curl_easy_strerror() - * - * DESCRIPTION - * - * The curl_easy_strerror function may be used to turn a CURLcode value - * into the equivalent human readable error string. This is useful - * for printing meaningful error messages. - */ -CURL_EXTERN const char *curl_easy_strerror(CURLcode); - -/* - * NAME curl_share_strerror() - * - * DESCRIPTION - * - * The curl_share_strerror function may be used to turn a CURLSHcode value - * into the equivalent human readable error string. This is useful - * for printing meaningful error messages. - */ -CURL_EXTERN const char *curl_share_strerror(CURLSHcode); - -/* - * NAME curl_easy_pause() - * - * DESCRIPTION - * - * The curl_easy_pause function pauses or unpauses transfers. Select the new - * state by setting the bitmask, use the convenience defines below. - * - */ -CURL_EXTERN CURLcode curl_easy_pause(CURL *handle, int bitmask); - -#define CURLPAUSE_RECV (1<<0) -#define CURLPAUSE_RECV_CONT (0) - -#define CURLPAUSE_SEND (1<<2) -#define CURLPAUSE_SEND_CONT (0) - -#define CURLPAUSE_ALL (CURLPAUSE_RECV|CURLPAUSE_SEND) -#define CURLPAUSE_CONT (CURLPAUSE_RECV_CONT|CURLPAUSE_SEND_CONT) - -#ifdef __cplusplus -} -#endif - -/* unfortunately, the easy.h and multi.h include files need options and info - stuff before they can be included! */ -#include "easy.h" /* nothing in curl is fun without the easy stuff */ -#include "multi.h" - -/* the typechecker doesn't work in C++ (yet) */ -#if defined(__GNUC__) && defined(__GNUC_MINOR__) && \ - ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) && \ - !defined(__cplusplus) && !defined(CURL_DISABLE_TYPECHECK) -#include "typecheck-gcc.h" -#else -#if defined(__STDC__) && (__STDC__ >= 1) -/* This preprocessor magic that replaces a call with the exact same call is - only done to make sure application authors pass exactly three arguments - to these functions. */ -#define curl_easy_setopt(handle,opt,param) curl_easy_setopt(handle,opt,param) -#define curl_easy_getinfo(handle,info,arg) curl_easy_getinfo(handle,info,arg) -#define curl_share_setopt(share,opt,param) curl_share_setopt(share,opt,param) -#define curl_multi_setopt(handle,opt,param) curl_multi_setopt(handle,opt,param) -#endif /* __STDC__ >= 1 */ -#endif /* gcc >= 4.3 && !__cplusplus */ - -#endif /* __CURL_CURL_H */ diff --git a/3d_party/libcurl/include/curl/curlver.h b/3d_party/libcurl/include/curl/curlver.h deleted file mode 100644 index 6d93cc118..000000000 --- a/3d_party/libcurl/include/curl/curlver.h +++ /dev/null @@ -1,77 +0,0 @@ -#ifndef __CURL_CURLVER_H -#define __CURL_CURLVER_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at https://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ - -/* This header file contains nothing but libcurl version info, generated by - a script at release-time. This was made its own header file in 7.11.2 */ - -/* This is the global package copyright */ -#define LIBCURL_COPYRIGHT "1996 - 2017 Daniel Stenberg, <daniel@haxx.se>." - -/* This is the version number of the libcurl package from which this header - file origins: */ -#define LIBCURL_VERSION "7.58.0" - -/* The numeric version number is also available "in parts" by using these - defines: */ -#define LIBCURL_VERSION_MAJOR 7 -#define LIBCURL_VERSION_MINOR 58 -#define LIBCURL_VERSION_PATCH 0 - -/* This is the numeric version of the libcurl version number, meant for easier - parsing and comparions by programs. The LIBCURL_VERSION_NUM define will - always follow this syntax: - - 0xXXYYZZ - - Where XX, YY and ZZ are the main version, release and patch numbers in - hexadecimal (using 8 bits each). All three numbers are always represented - using two digits. 1.2 would appear as "0x010200" while version 9.11.7 - appears as "0x090b07". - - This 6-digit (24 bits) hexadecimal number does not show pre-release number, - and it is always a greater number in a more recent release. It makes - comparisons with greater than and less than work. - - Note: This define is the full hex number and _does not_ use the - CURL_VERSION_BITS() macro since curl's own configure script greps for it - and needs it to contain the full number. -*/ -#define LIBCURL_VERSION_NUM 0x073a00 - -/* - * This is the date and time when the full source package was created. The - * timestamp is not stored in git, as the timestamp is properly set in the - * tarballs by the maketgz script. - * - * The format of the date follows this template: - * - * "2007-11-23" - */ -#define LIBCURL_TIMESTAMP "2018-01-24" - -#define CURL_VERSION_BITS(x,y,z) ((x)<<16|(y)<<8|z) -#define CURL_AT_LEAST_VERSION(x,y,z) \ - (LIBCURL_VERSION_NUM >= CURL_VERSION_BITS(x, y, z)) - -#endif /* __CURL_CURLVER_H */ diff --git a/3d_party/libcurl/include/curl/easy.h b/3d_party/libcurl/include/curl/easy.h deleted file mode 100644 index 752c5049f..000000000 --- a/3d_party/libcurl/include/curl/easy.h +++ /dev/null @@ -1,102 +0,0 @@ -#ifndef __CURL_EASY_H -#define __CURL_EASY_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at https://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#ifdef __cplusplus -extern "C" { -#endif - -CURL_EXTERN CURL *curl_easy_init(void); -CURL_EXTERN CURLcode curl_easy_setopt(CURL *curl, CURLoption option, ...); -CURL_EXTERN CURLcode curl_easy_perform(CURL *curl); -CURL_EXTERN void curl_easy_cleanup(CURL *curl); - -/* - * NAME curl_easy_getinfo() - * - * DESCRIPTION - * - * Request internal information from the curl session with this function. The - * third argument MUST be a pointer to a long, a pointer to a char * or a - * pointer to a double (as the documentation describes elsewhere). The data - * pointed to will be filled in accordingly and can be relied upon only if the - * function returns CURLE_OK. This function is intended to get used *AFTER* a - * performed transfer, all results from this function are undefined until the - * transfer is completed. - */ -CURL_EXTERN CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ...); - - -/* - * NAME curl_easy_duphandle() - * - * DESCRIPTION - * - * Creates a new curl session handle with the same options set for the handle - * passed in. Duplicating a handle could only be a matter of cloning data and - * options, internal state info and things like persistent connections cannot - * be transferred. It is useful in multithreaded applications when you can run - * curl_easy_duphandle() for each new thread to avoid a series of identical - * curl_easy_setopt() invokes in every thread. - */ -CURL_EXTERN CURL *curl_easy_duphandle(CURL *curl); - -/* - * NAME curl_easy_reset() - * - * DESCRIPTION - * - * Re-initializes a CURL handle to the default values. This puts back the - * handle to the same state as it was in when it was just created. - * - * It does keep: live connections, the Session ID cache, the DNS cache and the - * cookies. - */ -CURL_EXTERN void curl_easy_reset(CURL *curl); - -/* - * NAME curl_easy_recv() - * - * DESCRIPTION - * - * Receives data from the connected socket. Use after successful - * curl_easy_perform() with CURLOPT_CONNECT_ONLY option. - */ -CURL_EXTERN CURLcode curl_easy_recv(CURL *curl, void *buffer, size_t buflen, - size_t *n); - -/* - * NAME curl_easy_send() - * - * DESCRIPTION - * - * Sends data over the connected socket. Use after successful - * curl_easy_perform() with CURLOPT_CONNECT_ONLY option. - */ -CURL_EXTERN CURLcode curl_easy_send(CURL *curl, const void *buffer, - size_t buflen, size_t *n); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/3d_party/libcurl/include/curl/mprintf.h b/3d_party/libcurl/include/curl/mprintf.h deleted file mode 100644 index e20f546e1..000000000 --- a/3d_party/libcurl/include/curl/mprintf.h +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef __CURL_MPRINTF_H -#define __CURL_MPRINTF_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at https://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ - -#include <stdarg.h> -#include <stdio.h> /* needed for FILE */ -#include "curl.h" /* for CURL_EXTERN */ - -#ifdef __cplusplus -extern "C" { -#endif - -CURL_EXTERN int curl_mprintf(const char *format, ...); -CURL_EXTERN int curl_mfprintf(FILE *fd, const char *format, ...); -CURL_EXTERN int curl_msprintf(char *buffer, const char *format, ...); -CURL_EXTERN int curl_msnprintf(char *buffer, size_t maxlength, - const char *format, ...); -CURL_EXTERN int curl_mvprintf(const char *format, va_list args); -CURL_EXTERN int curl_mvfprintf(FILE *fd, const char *format, va_list args); -CURL_EXTERN int curl_mvsprintf(char *buffer, const char *format, va_list args); -CURL_EXTERN int curl_mvsnprintf(char *buffer, size_t maxlength, - const char *format, va_list args); -CURL_EXTERN char *curl_maprintf(const char *format, ...); -CURL_EXTERN char *curl_mvaprintf(const char *format, va_list args); - -#ifdef __cplusplus -} -#endif - -#endif /* __CURL_MPRINTF_H */ diff --git a/3d_party/libcurl/include/curl/multi.h b/3d_party/libcurl/include/curl/multi.h deleted file mode 100644 index 911c91dd1..000000000 --- a/3d_party/libcurl/include/curl/multi.h +++ /dev/null @@ -1,439 +0,0 @@ -#ifndef __CURL_MULTI_H -#define __CURL_MULTI_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at https://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -/* - This is an "external" header file. Don't give away any internals here! - - GOALS - - o Enable a "pull" interface. The application that uses libcurl decides where - and when to ask libcurl to get/send data. - - o Enable multiple simultaneous transfers in the same thread without making it - complicated for the application. - - o Enable the application to select() on its own file descriptors and curl's - file descriptors simultaneous easily. - -*/ - -/* - * This header file should not really need to include "curl.h" since curl.h - * itself includes this file and we expect user applications to do #include - * <curl/curl.h> without the need for especially including multi.h. - * - * For some reason we added this include here at one point, and rather than to - * break existing (wrongly written) libcurl applications, we leave it as-is - * but with this warning attached. - */ -#include "curl.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#if defined(BUILDING_LIBCURL) || defined(CURL_STRICTER) -typedef struct Curl_multi CURLM; -#else -typedef void CURLM; -#endif - -typedef enum { - CURLM_CALL_MULTI_PERFORM = -1, /* please call curl_multi_perform() or - curl_multi_socket*() soon */ - CURLM_OK, - CURLM_BAD_HANDLE, /* the passed-in handle is not a valid CURLM handle */ - CURLM_BAD_EASY_HANDLE, /* an easy handle was not good/valid */ - CURLM_OUT_OF_MEMORY, /* if you ever get this, you're in deep sh*t */ - CURLM_INTERNAL_ERROR, /* this is a libcurl bug */ - CURLM_BAD_SOCKET, /* the passed in socket argument did not match */ - CURLM_UNKNOWN_OPTION, /* curl_multi_setopt() with unsupported option */ - CURLM_ADDED_ALREADY, /* an easy handle already added to a multi handle was - attempted to get added - again */ - CURLM_LAST -} CURLMcode; - -/* just to make code nicer when using curl_multi_socket() you can now check - for CURLM_CALL_MULTI_SOCKET too in the same style it works for - curl_multi_perform() and CURLM_CALL_MULTI_PERFORM */ -#define CURLM_CALL_MULTI_SOCKET CURLM_CALL_MULTI_PERFORM - -/* bitmask bits for CURLMOPT_PIPELINING */ -#define CURLPIPE_NOTHING 0L -#define CURLPIPE_HTTP1 1L -#define CURLPIPE_MULTIPLEX 2L - -typedef enum { - CURLMSG_NONE, /* first, not used */ - CURLMSG_DONE, /* This easy handle has completed. 'result' contains - the CURLcode of the transfer */ - CURLMSG_LAST /* last, not used */ -} CURLMSG; - -struct CURLMsg { - CURLMSG msg; /* what this message means */ - CURL *easy_handle; /* the handle it concerns */ - union { - void *whatever; /* message-specific data */ - CURLcode result; /* return code for transfer */ - } data; -}; -typedef struct CURLMsg CURLMsg; - -/* Based on poll(2) structure and values. - * We don't use pollfd and POLL* constants explicitly - * to cover platforms without poll(). */ -#define CURL_WAIT_POLLIN 0x0001 -#define CURL_WAIT_POLLPRI 0x0002 -#define CURL_WAIT_POLLOUT 0x0004 - -struct curl_waitfd { - curl_socket_t fd; - short events; - short revents; /* not supported yet */ -}; - -/* - * Name: curl_multi_init() - * - * Desc: inititalize multi-style curl usage - * - * Returns: a new CURLM handle to use in all 'curl_multi' functions. - */ -CURL_EXTERN CURLM *curl_multi_init(void); - -/* - * Name: curl_multi_add_handle() - * - * Desc: add a standard curl handle to the multi stack - * - * Returns: CURLMcode type, general multi error code. - */ -CURL_EXTERN CURLMcode curl_multi_add_handle(CURLM *multi_handle, - CURL *curl_handle); - - /* - * Name: curl_multi_remove_handle() - * - * Desc: removes a curl handle from the multi stack again - * - * Returns: CURLMcode type, general multi error code. - */ -CURL_EXTERN CURLMcode curl_multi_remove_handle(CURLM *multi_handle, - CURL *curl_handle); - - /* - * Name: curl_multi_fdset() - * - * Desc: Ask curl for its fd_set sets. The app can use these to select() or - * poll() on. We want curl_multi_perform() called as soon as one of - * them are ready. - * - * Returns: CURLMcode type, general multi error code. - */ -CURL_EXTERN CURLMcode curl_multi_fdset(CURLM *multi_handle, - fd_set *read_fd_set, - fd_set *write_fd_set, - fd_set *exc_fd_set, - int *max_fd); - -/* - * Name: curl_multi_wait() - * - * Desc: Poll on all fds within a CURLM set as well as any - * additional fds passed to the function. - * - * Returns: CURLMcode type, general multi error code. - */ -CURL_EXTERN CURLMcode curl_multi_wait(CURLM *multi_handle, - struct curl_waitfd extra_fds[], - unsigned int extra_nfds, - int timeout_ms, - int *ret); - - /* - * Name: curl_multi_perform() - * - * Desc: When the app thinks there's data available for curl it calls this - * function to read/write whatever there is right now. This returns - * as soon as the reads and writes are done. This function does not - * require that there actually is data available for reading or that - * data can be written, it can be called just in case. It returns - * the number of handles that still transfer data in the second - * argument's integer-pointer. - * - * Returns: CURLMcode type, general multi error code. *NOTE* that this only - * returns errors etc regarding the whole multi stack. There might - * still have occurred problems on invidual transfers even when this - * returns OK. - */ -CURL_EXTERN CURLMcode curl_multi_perform(CURLM *multi_handle, - int *running_handles); - - /* - * Name: curl_multi_cleanup() - * - * Desc: Cleans up and removes a whole multi stack. It does not free or - * touch any individual easy handles in any way. We need to define - * in what state those handles will be if this function is called - * in the middle of a transfer. - * - * Returns: CURLMcode type, general multi error code. - */ -CURL_EXTERN CURLMcode curl_multi_cleanup(CURLM *multi_handle); - -/* - * Name: curl_multi_info_read() - * - * Desc: Ask the multi handle if there's any messages/informationals from - * the individual transfers. Messages include informationals such as - * error code from the transfer or just the fact that a transfer is - * completed. More details on these should be written down as well. - * - * Repeated calls to this function will return a new struct each - * time, until a special "end of msgs" struct is returned as a signal - * that there is no more to get at this point. - * - * The data the returned pointer points to will not survive calling - * curl_multi_cleanup(). - * - * The 'CURLMsg' struct is meant to be very simple and only contain - * very basic information. If more involved information is wanted, - * we will provide the particular "transfer handle" in that struct - * and that should/could/would be used in subsequent - * curl_easy_getinfo() calls (or similar). The point being that we - * must never expose complex structs to applications, as then we'll - * undoubtably get backwards compatibility problems in the future. - * - * Returns: A pointer to a filled-in struct, or NULL if it failed or ran out - * of structs. It also writes the number of messages left in the - * queue (after this read) in the integer the second argument points - * to. - */ -CURL_EXTERN CURLMsg *curl_multi_info_read(CURLM *multi_handle, - int *msgs_in_queue); - -/* - * Name: curl_multi_strerror() - * - * Desc: The curl_multi_strerror function may be used to turn a CURLMcode - * value into the equivalent human readable error string. This is - * useful for printing meaningful error messages. - * - * Returns: A pointer to a zero-terminated error message. - */ -CURL_EXTERN const char *curl_multi_strerror(CURLMcode); - -/* - * Name: curl_multi_socket() and - * curl_multi_socket_all() - * - * Desc: An alternative version of curl_multi_perform() that allows the - * application to pass in one of the file descriptors that have been - * detected to have "action" on them and let libcurl perform. - * See man page for details. - */ -#define CURL_POLL_NONE 0 -#define CURL_POLL_IN 1 -#define CURL_POLL_OUT 2 -#define CURL_POLL_INOUT 3 -#define CURL_POLL_REMOVE 4 - -#define CURL_SOCKET_TIMEOUT CURL_SOCKET_BAD - -#define CURL_CSELECT_IN 0x01 -#define CURL_CSELECT_OUT 0x02 -#define CURL_CSELECT_ERR 0x04 - -typedef int (*curl_socket_callback)(CURL *easy, /* easy handle */ - curl_socket_t s, /* socket */ - int what, /* see above */ - void *userp, /* private callback - pointer */ - void *socketp); /* private socket - pointer */ -/* - * Name: curl_multi_timer_callback - * - * Desc: Called by libcurl whenever the library detects a change in the - * maximum number of milliseconds the app is allowed to wait before - * curl_multi_socket() or curl_multi_perform() must be called - * (to allow libcurl's timed events to take place). - * - * Returns: The callback should return zero. - */ -typedef int (*curl_multi_timer_callback)(CURLM *multi, /* multi handle */ - long timeout_ms, /* see above */ - void *userp); /* private callback - pointer */ - -CURL_EXTERN CURLMcode curl_multi_socket(CURLM *multi_handle, curl_socket_t s, - int *running_handles); - -CURL_EXTERN CURLMcode curl_multi_socket_action(CURLM *multi_handle, - curl_socket_t s, - int ev_bitmask, - int *running_handles); - -CURL_EXTERN CURLMcode curl_multi_socket_all(CURLM *multi_handle, - int *running_handles); - -#ifndef CURL_ALLOW_OLD_MULTI_SOCKET -/* This macro below was added in 7.16.3 to push users who recompile to use - the new curl_multi_socket_action() instead of the old curl_multi_socket() -*/ -#define curl_multi_socket(x,y,z) curl_multi_socket_action(x,y,0,z) -#endif - -/* - * Name: curl_multi_timeout() - * - * Desc: Returns the maximum number of milliseconds the app is allowed to - * wait before curl_multi_socket() or curl_multi_perform() must be - * called (to allow libcurl's timed events to take place). - * - * Returns: CURLM error code. - */ -CURL_EXTERN CURLMcode curl_multi_timeout(CURLM *multi_handle, - long *milliseconds); - -#undef CINIT /* re-using the same name as in curl.h */ - -#ifdef CURL_ISOCPP -#define CINIT(name,type,num) CURLMOPT_ ## name = CURLOPTTYPE_ ## type + num -#else -/* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */ -#define LONG CURLOPTTYPE_LONG -#define OBJECTPOINT CURLOPTTYPE_OBJECTPOINT -#define FUNCTIONPOINT CURLOPTTYPE_FUNCTIONPOINT -#define OFF_T CURLOPTTYPE_OFF_T -#define CINIT(name,type,number) CURLMOPT_/**/name = type + number -#endif - -typedef enum { - /* This is the socket callback function pointer */ - CINIT(SOCKETFUNCTION, FUNCTIONPOINT, 1), - - /* This is the argument passed to the socket callback */ - CINIT(SOCKETDATA, OBJECTPOINT, 2), - - /* set to 1 to enable pipelining for this multi handle */ - CINIT(PIPELINING, LONG, 3), - - /* This is the timer callback function pointer */ - CINIT(TIMERFUNCTION, FUNCTIONPOINT, 4), - - /* This is the argument passed to the timer callback */ - CINIT(TIMERDATA, OBJECTPOINT, 5), - - /* maximum number of entries in the connection cache */ - CINIT(MAXCONNECTS, LONG, 6), - - /* maximum number of (pipelining) connections to one host */ - CINIT(MAX_HOST_CONNECTIONS, LONG, 7), - - /* maximum number of requests in a pipeline */ - CINIT(MAX_PIPELINE_LENGTH, LONG, 8), - - /* a connection with a content-length longer than this - will not be considered for pipelining */ - CINIT(CONTENT_LENGTH_PENALTY_SIZE, OFF_T, 9), - - /* a connection with a chunk length longer than this - will not be considered for pipelining */ - CINIT(CHUNK_LENGTH_PENALTY_SIZE, OFF_T, 10), - - /* a list of site names(+port) that are blacklisted from - pipelining */ - CINIT(PIPELINING_SITE_BL, OBJECTPOINT, 11), - - /* a list of server types that are blacklisted from - pipelining */ - CINIT(PIPELINING_SERVER_BL, OBJECTPOINT, 12), - - /* maximum number of open connections in total */ - CINIT(MAX_TOTAL_CONNECTIONS, LONG, 13), - - /* This is the server push callback function pointer */ - CINIT(PUSHFUNCTION, FUNCTIONPOINT, 14), - - /* This is the argument passed to the server push callback */ - CINIT(PUSHDATA, OBJECTPOINT, 15), - - CURLMOPT_LASTENTRY /* the last unused */ -} CURLMoption; - - -/* - * Name: curl_multi_setopt() - * - * Desc: Sets options for the multi handle. - * - * Returns: CURLM error code. - */ -CURL_EXTERN CURLMcode curl_multi_setopt(CURLM *multi_handle, - CURLMoption option, ...); - - -/* - * Name: curl_multi_assign() - * - * Desc: This function sets an association in the multi handle between the - * given socket and a private pointer of the application. This is - * (only) useful for curl_multi_socket uses. - * - * Returns: CURLM error code. - */ -CURL_EXTERN CURLMcode curl_multi_assign(CURLM *multi_handle, - curl_socket_t sockfd, void *sockp); - - -/* - * Name: curl_push_callback - * - * Desc: This callback gets called when a new stream is being pushed by the - * server. It approves or denies the new stream. - * - * Returns: CURL_PUSH_OK or CURL_PUSH_DENY. - */ -#define CURL_PUSH_OK 0 -#define CURL_PUSH_DENY 1 - -struct curl_pushheaders; /* forward declaration only */ - -CURL_EXTERN char *curl_pushheader_bynum(struct curl_pushheaders *h, - size_t num); -CURL_EXTERN char *curl_pushheader_byname(struct curl_pushheaders *h, - const char *name); - -typedef int (*curl_push_callback)(CURL *parent, - CURL *easy, - size_t num_headers, - struct curl_pushheaders *headers, - void *userp); - -#ifdef __cplusplus -} /* end of extern "C" */ -#endif - -#endif diff --git a/3d_party/libcurl/include/curl/stdcheaders.h b/3d_party/libcurl/include/curl/stdcheaders.h deleted file mode 100644 index 027b6f421..000000000 --- a/3d_party/libcurl/include/curl/stdcheaders.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef __STDC_HEADERS_H -#define __STDC_HEADERS_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at https://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ - -#include <sys/types.h> - -size_t fread(void *, size_t, size_t, FILE *); -size_t fwrite(const void *, size_t, size_t, FILE *); - -int strcasecmp(const char *, const char *); -int strncasecmp(const char *, const char *, size_t); - -#endif /* __STDC_HEADERS_H */ diff --git a/3d_party/libcurl/include/curl/system.h b/3d_party/libcurl/include/curl/system.h deleted file mode 100644 index 07bbd9ca9..000000000 --- a/3d_party/libcurl/include/curl/system.h +++ /dev/null @@ -1,473 +0,0 @@ -#ifndef __CURL_SYSTEM_H -#define __CURL_SYSTEM_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at https://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ - -/* - * Try to keep one section per platform, compiler and architecture, otherwise, - * if an existing section is reused for a different one and later on the - * original is adjusted, probably the piggybacking one can be adversely - * changed. - * - * In order to differentiate between platforms/compilers/architectures use - * only compiler built in predefined preprocessor symbols. - * - * curl_off_t - * ---------- - * - * For any given platform/compiler curl_off_t must be typedef'ed to a 64-bit - * wide signed integral data type. The width of this data type must remain - * constant and independent of any possible large file support settings. - * - * As an exception to the above, curl_off_t shall be typedef'ed to a 32-bit - * wide signed integral data type if there is no 64-bit type. - * - * As a general rule, curl_off_t shall not be mapped to off_t. This rule shall - * only be violated if off_t is the only 64-bit data type available and the - * size of off_t is independent of large file support settings. Keep your - * build on the safe side avoiding an off_t gating. If you have a 64-bit - * off_t then take for sure that another 64-bit data type exists, dig deeper - * and you will find it. - * - */ - -#if defined(__DJGPP__) || defined(__GO32__) -# if defined(__DJGPP__) && (__DJGPP__ > 1) -# define CURL_TYPEOF_CURL_OFF_T long long -# define CURL_FORMAT_CURL_OFF_T "lld" -# define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_SUFFIX_CURL_OFF_T LL -# define CURL_SUFFIX_CURL_OFF_TU ULL -# else -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# endif -# define CURL_TYPEOF_CURL_SOCKLEN_T int - -#elif defined(__SALFORDC__) -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# define CURL_TYPEOF_CURL_SOCKLEN_T int - -#elif defined(__BORLANDC__) -# if (__BORLANDC__ < 0x520) -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# else -# define CURL_TYPEOF_CURL_OFF_T __int64 -# define CURL_FORMAT_CURL_OFF_T "I64d" -# define CURL_FORMAT_CURL_OFF_TU "I64u" -# define CURL_SUFFIX_CURL_OFF_T i64 -# define CURL_SUFFIX_CURL_OFF_TU ui64 -# endif -# define CURL_TYPEOF_CURL_SOCKLEN_T int - -#elif defined(__TURBOC__) -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# define CURL_TYPEOF_CURL_SOCKLEN_T int - -#elif defined(__WATCOMC__) -# if defined(__386__) -# define CURL_TYPEOF_CURL_OFF_T __int64 -# define CURL_FORMAT_CURL_OFF_T "I64d" -# define CURL_FORMAT_CURL_OFF_TU "I64u" -# define CURL_SUFFIX_CURL_OFF_T i64 -# define CURL_SUFFIX_CURL_OFF_TU ui64 -# else -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# endif -# define CURL_TYPEOF_CURL_SOCKLEN_T int - -#elif defined(__POCC__) -# if (__POCC__ < 280) -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# elif defined(_MSC_VER) -# define CURL_TYPEOF_CURL_OFF_T __int64 -# define CURL_FORMAT_CURL_OFF_T "I64d" -# define CURL_FORMAT_CURL_OFF_TU "I64u" -# define CURL_SUFFIX_CURL_OFF_T i64 -# define CURL_SUFFIX_CURL_OFF_TU ui64 -# else -# define CURL_TYPEOF_CURL_OFF_T long long -# define CURL_FORMAT_CURL_OFF_T "lld" -# define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_SUFFIX_CURL_OFF_T LL -# define CURL_SUFFIX_CURL_OFF_TU ULL -# endif -# define CURL_TYPEOF_CURL_SOCKLEN_T int - -#elif defined(__LCC__) -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# define CURL_TYPEOF_CURL_SOCKLEN_T int - -#elif defined(__SYMBIAN32__) -# if defined(__EABI__) /* Treat all ARM compilers equally */ -# define CURL_TYPEOF_CURL_OFF_T long long -# define CURL_FORMAT_CURL_OFF_T "lld" -# define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_SUFFIX_CURL_OFF_T LL -# define CURL_SUFFIX_CURL_OFF_TU ULL -# elif defined(__CW32__) -# pragma longlong on -# define CURL_TYPEOF_CURL_OFF_T long long -# define CURL_FORMAT_CURL_OFF_T "lld" -# define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_SUFFIX_CURL_OFF_T LL -# define CURL_SUFFIX_CURL_OFF_TU ULL -# elif defined(__VC32__) -# define CURL_TYPEOF_CURL_OFF_T __int64 -# define CURL_FORMAT_CURL_OFF_T "lld" -# define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_SUFFIX_CURL_OFF_T LL -# define CURL_SUFFIX_CURL_OFF_TU ULL -# endif -# define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int - -#elif defined(__MWERKS__) -# define CURL_TYPEOF_CURL_OFF_T long long -# define CURL_FORMAT_CURL_OFF_T "lld" -# define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_SUFFIX_CURL_OFF_T LL -# define CURL_SUFFIX_CURL_OFF_TU ULL -# define CURL_TYPEOF_CURL_SOCKLEN_T int - -#elif defined(_WIN32_WCE) -# define CURL_TYPEOF_CURL_OFF_T __int64 -# define CURL_FORMAT_CURL_OFF_T "I64d" -# define CURL_FORMAT_CURL_OFF_TU "I64u" -# define CURL_SUFFIX_CURL_OFF_T i64 -# define CURL_SUFFIX_CURL_OFF_TU ui64 -# define CURL_TYPEOF_CURL_SOCKLEN_T int - -#elif defined(__MINGW32__) -# define CURL_TYPEOF_CURL_OFF_T long long -# define CURL_FORMAT_CURL_OFF_T "I64d" -# define CURL_FORMAT_CURL_OFF_TU "I64u" -# define CURL_SUFFIX_CURL_OFF_T LL -# define CURL_SUFFIX_CURL_OFF_TU ULL -# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t -# define CURL_PULL_SYS_TYPES_H 1 -# define CURL_PULL_WS2TCPIP_H 1 - -#elif defined(__VMS) -# if defined(__VAX) -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# else -# define CURL_TYPEOF_CURL_OFF_T long long -# define CURL_FORMAT_CURL_OFF_T "lld" -# define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_SUFFIX_CURL_OFF_T LL -# define CURL_SUFFIX_CURL_OFF_TU ULL -# endif -# define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int - -#elif defined(__OS400__) -# if defined(__ILEC400__) -# define CURL_TYPEOF_CURL_OFF_T long long -# define CURL_FORMAT_CURL_OFF_T "lld" -# define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_SUFFIX_CURL_OFF_T LL -# define CURL_SUFFIX_CURL_OFF_TU ULL -# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t -# define CURL_PULL_SYS_TYPES_H 1 -# define CURL_PULL_SYS_SOCKET_H 1 -# endif - -#elif defined(__MVS__) -# if defined(__IBMC__) || defined(__IBMCPP__) -# if defined(_ILP32) -# elif defined(_LP64) -# endif -# if defined(_LONG_LONG) -# define CURL_TYPEOF_CURL_OFF_T long long -# define CURL_FORMAT_CURL_OFF_T "lld" -# define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_SUFFIX_CURL_OFF_T LL -# define CURL_SUFFIX_CURL_OFF_TU ULL -# elif defined(_LP64) -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# else -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# endif -# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t -# define CURL_PULL_SYS_TYPES_H 1 -# define CURL_PULL_SYS_SOCKET_H 1 -# endif - -#elif defined(__370__) -# if defined(__IBMC__) || defined(__IBMCPP__) -# if defined(_ILP32) -# elif defined(_LP64) -# endif -# if defined(_LONG_LONG) -# define CURL_TYPEOF_CURL_OFF_T long long -# define CURL_FORMAT_CURL_OFF_T "lld" -# define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_SUFFIX_CURL_OFF_T LL -# define CURL_SUFFIX_CURL_OFF_TU ULL -# elif defined(_LP64) -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# else -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# endif -# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t -# define CURL_PULL_SYS_TYPES_H 1 -# define CURL_PULL_SYS_SOCKET_H 1 -# endif - -#elif defined(TPF) -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# define CURL_TYPEOF_CURL_SOCKLEN_T int - -#elif defined(__TINYC__) /* also known as tcc */ - -# define CURL_TYPEOF_CURL_OFF_T long long -# define CURL_FORMAT_CURL_OFF_T "lld" -# define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_SUFFIX_CURL_OFF_T LL -# define CURL_SUFFIX_CURL_OFF_TU ULL -# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t -# define CURL_PULL_SYS_TYPES_H 1 -# define CURL_PULL_SYS_SOCKET_H 1 - -#elif defined(__SUNPRO_C) /* Oracle Solaris Studio */ -# if !defined(__LP64) && (defined(__ILP32) || \ - defined(__i386) || defined(__sparcv8)) -# define CURL_TYPEOF_CURL_OFF_T long long -# define CURL_FORMAT_CURL_OFF_T "lld" -# define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_SUFFIX_CURL_OFF_T LL -# define CURL_SUFFIX_CURL_OFF_TU ULL -# elif defined(__LP64) || \ - defined(__amd64) || defined(__sparcv9) -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# endif -# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t -# define CURL_PULL_SYS_TYPES_H 1 -# define CURL_PULL_SYS_SOCKET_H 1 - -/* ===================================== */ -/* KEEP MSVC THE PENULTIMATE ENTRY */ -/* ===================================== */ - -#elif defined(_MSC_VER) -# if (_MSC_VER >= 900) && (_INTEGRAL_MAX_BITS >= 64) -# define CURL_TYPEOF_CURL_OFF_T __int64 -# define CURL_FORMAT_CURL_OFF_T "I64d" -# define CURL_FORMAT_CURL_OFF_TU "I64u" -# define CURL_SUFFIX_CURL_OFF_T i64 -# define CURL_SUFFIX_CURL_OFF_TU ui64 -# else -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# endif -# define CURL_TYPEOF_CURL_SOCKLEN_T int - -/* ===================================== */ -/* KEEP GENERIC GCC THE LAST ENTRY */ -/* ===================================== */ - -#elif defined(__GNUC__) -# if !defined(__LP64__) && \ - (defined(__ILP32__) || defined(__i386__) || defined(__hppa__) || \ - defined(__ppc__) || defined(__powerpc__) || defined(__arm__) || \ - defined(__sparc__) || defined(__mips__) || defined(__sh__) || \ - defined(__XTENSA__) || \ - (defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 4) || \ - (defined(__LONG_MAX__) && __LONG_MAX__ == 2147483647L)) -# define CURL_TYPEOF_CURL_OFF_T long long -# define CURL_FORMAT_CURL_OFF_T "lld" -# define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_SUFFIX_CURL_OFF_T LL -# define CURL_SUFFIX_CURL_OFF_TU ULL -# elif defined(__LP64__) || \ - defined(__x86_64__) || defined(__ppc64__) || defined(__sparc64__) || \ - (defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 8) || \ - (defined(__LONG_MAX__) && __LONG_MAX__ == 9223372036854775807L) -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# endif -# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t -# define CURL_PULL_SYS_TYPES_H 1 -# define CURL_PULL_SYS_SOCKET_H 1 - -#else -/* generic "safe guess" on old 32 bit style */ -# define CURL_TYPEOF_CURL_OFF_T long -# define CURL_FORMAT_CURL_OFF_T "ld" -# define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_SUFFIX_CURL_OFF_T L -# define CURL_SUFFIX_CURL_OFF_TU UL -# define CURL_TYPEOF_CURL_SOCKLEN_T int -#endif - -#ifdef _AIX -/* AIX needs <sys/poll.h> */ -#define CURL_PULL_SYS_POLL_H -#endif - - -/* CURL_PULL_WS2TCPIP_H is defined above when inclusion of header file */ -/* ws2tcpip.h is required here to properly make type definitions below. */ -#ifdef CURL_PULL_WS2TCPIP_H -# include <winsock2.h> -# include <windows.h> -# include <ws2tcpip.h> -#endif - -/* CURL_PULL_SYS_TYPES_H is defined above when inclusion of header file */ -/* sys/types.h is required here to properly make type definitions below. */ -#ifdef CURL_PULL_SYS_TYPES_H -# include <sys/types.h> -#endif - -/* CURL_PULL_SYS_SOCKET_H is defined above when inclusion of header file */ -/* sys/socket.h is required here to properly make type definitions below. */ -#ifdef CURL_PULL_SYS_SOCKET_H -# include <sys/socket.h> -#endif - -/* CURL_PULL_SYS_POLL_H is defined above when inclusion of header file */ -/* sys/poll.h is required here to properly make type definitions below. */ -#ifdef CURL_PULL_SYS_POLL_H -# include <sys/poll.h> -#endif - -/* Data type definition of curl_socklen_t. */ -#ifdef CURL_TYPEOF_CURL_SOCKLEN_T - typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t; -#endif - -/* Data type definition of curl_off_t. */ - -#ifdef CURL_TYPEOF_CURL_OFF_T - typedef CURL_TYPEOF_CURL_OFF_T curl_off_t; -#endif - -/* - * CURL_ISOCPP and CURL_OFF_T_C definitions are done here in order to allow - * these to be visible and exported by the external libcurl interface API, - * while also making them visible to the library internals, simply including - * curl_setup.h, without actually needing to include curl.h internally. - * If some day this section would grow big enough, all this should be moved - * to its own header file. - */ - -/* - * Figure out if we can use the ## preprocessor operator, which is supported - * by ISO/ANSI C and C++. Some compilers support it without setting __STDC__ - * or __cplusplus so we need to carefully check for them too. - */ - -#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) || \ - defined(__HP_aCC) || defined(__BORLANDC__) || defined(__LCC__) || \ - defined(__POCC__) || defined(__SALFORDC__) || defined(__HIGHC__) || \ - defined(__ILEC400__) - /* This compiler is believed to have an ISO compatible preprocessor */ -#define CURL_ISOCPP -#else - /* This compiler is believed NOT to have an ISO compatible preprocessor */ -#undef CURL_ISOCPP -#endif - -/* - * Macros for minimum-width signed and unsigned curl_off_t integer constants. - */ - -#if defined(__BORLANDC__) && (__BORLANDC__ == 0x0551) -# define __CURL_OFF_T_C_HLPR2(x) x -# define __CURL_OFF_T_C_HLPR1(x) __CURL_OFF_T_C_HLPR2(x) -# define CURL_OFF_T_C(Val) __CURL_OFF_T_C_HLPR1(Val) ## \ - __CURL_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_T) -# define CURL_OFF_TU_C(Val) __CURL_OFF_T_C_HLPR1(Val) ## \ - __CURL_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_TU) -#else -# ifdef CURL_ISOCPP -# define __CURL_OFF_T_C_HLPR2(Val,Suffix) Val ## Suffix -# else -# define __CURL_OFF_T_C_HLPR2(Val,Suffix) Val/**/Suffix -# endif -# define __CURL_OFF_T_C_HLPR1(Val,Suffix) __CURL_OFF_T_C_HLPR2(Val,Suffix) -# define CURL_OFF_T_C(Val) __CURL_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_T) -# define CURL_OFF_TU_C(Val) __CURL_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_TU) -#endif - -#endif /* __CURL_SYSTEM_H */ diff --git a/3d_party/libcurl/include/curl/typecheck-gcc.h b/3d_party/libcurl/include/curl/typecheck-gcc.h deleted file mode 100644 index 10c74c764..000000000 --- a/3d_party/libcurl/include/curl/typecheck-gcc.h +++ /dev/null @@ -1,683 +0,0 @@ -#ifndef __CURL_TYPECHECK_GCC_H -#define __CURL_TYPECHECK_GCC_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at https://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ - -/* wraps curl_easy_setopt() with typechecking */ - -/* To add a new kind of warning, add an - * if(_curl_is_sometype_option(_curl_opt)) - * if(!_curl_is_sometype(value)) - * _curl_easy_setopt_err_sometype(); - * block and define _curl_is_sometype_option, _curl_is_sometype and - * _curl_easy_setopt_err_sometype below - * - * NOTE: We use two nested 'if' statements here instead of the && operator, in - * order to work around gcc bug #32061. It affects only gcc 4.3.x/4.4.x - * when compiling with -Wlogical-op. - * - * To add an option that uses the same type as an existing option, you'll just - * need to extend the appropriate _curl_*_option macro - */ -#define curl_easy_setopt(handle, option, value) \ -__extension__ ({ \ - __typeof__(option) _curl_opt = option; \ - if(__builtin_constant_p(_curl_opt)) { \ - if(_curl_is_long_option(_curl_opt)) \ - if(!_curl_is_long(value)) \ - _curl_easy_setopt_err_long(); \ - if(_curl_is_off_t_option(_curl_opt)) \ - if(!_curl_is_off_t(value)) \ - _curl_easy_setopt_err_curl_off_t(); \ - if(_curl_is_string_option(_curl_opt)) \ - if(!_curl_is_string(value)) \ - _curl_easy_setopt_err_string(); \ - if(_curl_is_write_cb_option(_curl_opt)) \ - if(!_curl_is_write_cb(value)) \ - _curl_easy_setopt_err_write_callback(); \ - if((_curl_opt) == CURLOPT_READFUNCTION) \ - if(!_curl_is_read_cb(value)) \ - _curl_easy_setopt_err_read_cb(); \ - if((_curl_opt) == CURLOPT_IOCTLFUNCTION) \ - if(!_curl_is_ioctl_cb(value)) \ - _curl_easy_setopt_err_ioctl_cb(); \ - if((_curl_opt) == CURLOPT_SOCKOPTFUNCTION) \ - if(!_curl_is_sockopt_cb(value)) \ - _curl_easy_setopt_err_sockopt_cb(); \ - if((_curl_opt) == CURLOPT_OPENSOCKETFUNCTION) \ - if(!_curl_is_opensocket_cb(value)) \ - _curl_easy_setopt_err_opensocket_cb(); \ - if((_curl_opt) == CURLOPT_PROGRESSFUNCTION) \ - if(!_curl_is_progress_cb(value)) \ - _curl_easy_setopt_err_progress_cb(); \ - if((_curl_opt) == CURLOPT_DEBUGFUNCTION) \ - if(!_curl_is_debug_cb(value)) \ - _curl_easy_setopt_err_debug_cb(); \ - if((_curl_opt) == CURLOPT_SSL_CTX_FUNCTION) \ - if(!_curl_is_ssl_ctx_cb(value)) \ - _curl_easy_setopt_err_ssl_ctx_cb(); \ - if(_curl_is_conv_cb_option(_curl_opt)) \ - if(!_curl_is_conv_cb(value)) \ - _curl_easy_setopt_err_conv_cb(); \ - if((_curl_opt) == CURLOPT_SEEKFUNCTION) \ - if(!_curl_is_seek_cb(value)) \ - _curl_easy_setopt_err_seek_cb(); \ - if(_curl_is_cb_data_option(_curl_opt)) \ - if(!_curl_is_cb_data(value)) \ - _curl_easy_setopt_err_cb_data(); \ - if((_curl_opt) == CURLOPT_ERRORBUFFER) \ - if(!_curl_is_error_buffer(value)) \ - _curl_easy_setopt_err_error_buffer(); \ - if((_curl_opt) == CURLOPT_STDERR) \ - if(!_curl_is_FILE(value)) \ - _curl_easy_setopt_err_FILE(); \ - if(_curl_is_postfields_option(_curl_opt)) \ - if(!_curl_is_postfields(value)) \ - _curl_easy_setopt_err_postfields(); \ - if((_curl_opt) == CURLOPT_HTTPPOST) \ - if(!_curl_is_arr((value), struct curl_httppost)) \ - _curl_easy_setopt_err_curl_httpost(); \ - if((_curl_opt) == CURLOPT_MIMEPOST) \ - if(!_curl_is_ptr((value), curl_mime)) \ - _curl_easy_setopt_err_curl_mimepost(); \ - if(_curl_is_slist_option(_curl_opt)) \ - if(!_curl_is_arr((value), struct curl_slist)) \ - _curl_easy_setopt_err_curl_slist(); \ - if((_curl_opt) == CURLOPT_SHARE) \ - if(!_curl_is_ptr((value), CURLSH)) \ - _curl_easy_setopt_err_CURLSH(); \ - } \ - curl_easy_setopt(handle, _curl_opt, value); \ -}) - -/* wraps curl_easy_getinfo() with typechecking */ -/* FIXME: don't allow const pointers */ -#define curl_easy_getinfo(handle, info, arg) \ -__extension__ ({ \ - __typeof__(info) _curl_info = info; \ - if(__builtin_constant_p(_curl_info)) { \ - if(_curl_is_string_info(_curl_info)) \ - if(!_curl_is_arr((arg), char *)) \ - _curl_easy_getinfo_err_string(); \ - if(_curl_is_long_info(_curl_info)) \ - if(!_curl_is_arr((arg), long)) \ - _curl_easy_getinfo_err_long(); \ - if(_curl_is_double_info(_curl_info)) \ - if(!_curl_is_arr((arg), double)) \ - _curl_easy_getinfo_err_double(); \ - if(_curl_is_slist_info(_curl_info)) \ - if(!_curl_is_arr((arg), struct curl_slist *)) \ - _curl_easy_getinfo_err_curl_slist(); \ - if(_curl_is_tlssessioninfo_info(_curl_info)) \ - if(!_curl_is_arr((arg), struct curl_tlssessioninfo *)) \ - _curl_easy_getinfo_err_curl_tlssesssioninfo(); \ - if(_curl_is_certinfo_info(_curl_info)) \ - if(!_curl_is_arr((arg), struct curl_certinfo *)) \ - _curl_easy_getinfo_err_curl_certinfo(); \ - if(_curl_is_socket_info(_curl_info)) \ - if(!_curl_is_arr((arg), curl_socket_t)) \ - _curl_easy_getinfo_err_curl_socket(); \ - if(_curl_is_off_t_info(_curl_info)) \ - if(!_curl_is_arr((arg), curl_off_t)) \ - _curl_easy_getinfo_err_curl_off_t(); \ - } \ - curl_easy_getinfo(handle, _curl_info, arg); \ -}) - -/* TODO: typechecking for curl_share_setopt() and curl_multi_setopt(), - * for now just make sure that the functions are called with three - * arguments - */ -#define curl_share_setopt(share,opt,param) curl_share_setopt(share,opt,param) -#define curl_multi_setopt(handle,opt,param) curl_multi_setopt(handle,opt,param) - - -/* the actual warnings, triggered by calling the _curl_easy_setopt_err* - * functions */ - -/* To define a new warning, use _CURL_WARNING(identifier, "message") */ -#define _CURL_WARNING(id, message) \ - static void __attribute__((__warning__(message))) \ - __attribute__((__unused__)) __attribute__((__noinline__)) \ - id(void) { __asm__(""); } - -_CURL_WARNING(_curl_easy_setopt_err_long, - "curl_easy_setopt expects a long argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_curl_off_t, - "curl_easy_setopt expects a curl_off_t argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_string, - "curl_easy_setopt expects a " - "string ('char *' or char[]) argument for this option" - ) -_CURL_WARNING(_curl_easy_setopt_err_write_callback, - "curl_easy_setopt expects a curl_write_callback argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_read_cb, - "curl_easy_setopt expects a curl_read_callback argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_ioctl_cb, - "curl_easy_setopt expects a curl_ioctl_callback argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_sockopt_cb, - "curl_easy_setopt expects a curl_sockopt_callback argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_opensocket_cb, - "curl_easy_setopt expects a " - "curl_opensocket_callback argument for this option" - ) -_CURL_WARNING(_curl_easy_setopt_err_progress_cb, - "curl_easy_setopt expects a curl_progress_callback argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_debug_cb, - "curl_easy_setopt expects a curl_debug_callback argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_ssl_ctx_cb, - "curl_easy_setopt expects a curl_ssl_ctx_callback argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_conv_cb, - "curl_easy_setopt expects a curl_conv_callback argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_seek_cb, - "curl_easy_setopt expects a curl_seek_callback argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_cb_data, - "curl_easy_setopt expects a " - "private data pointer as argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_error_buffer, - "curl_easy_setopt expects a " - "char buffer of CURL_ERROR_SIZE as argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_FILE, - "curl_easy_setopt expects a 'FILE *' argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_postfields, - "curl_easy_setopt expects a 'void *' or 'char *' argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_curl_httpost, - "curl_easy_setopt expects a 'struct curl_httppost *' " - "argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_curl_mimepost, - "curl_easy_setopt expects a 'curl_mime *' " - "argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_curl_slist, - "curl_easy_setopt expects a 'struct curl_slist *' argument for this option") -_CURL_WARNING(_curl_easy_setopt_err_CURLSH, - "curl_easy_setopt expects a CURLSH* argument for this option") - -_CURL_WARNING(_curl_easy_getinfo_err_string, - "curl_easy_getinfo expects a pointer to 'char *' for this info") -_CURL_WARNING(_curl_easy_getinfo_err_long, - "curl_easy_getinfo expects a pointer to long for this info") -_CURL_WARNING(_curl_easy_getinfo_err_double, - "curl_easy_getinfo expects a pointer to double for this info") -_CURL_WARNING(_curl_easy_getinfo_err_curl_slist, - "curl_easy_getinfo expects a pointer to 'struct curl_slist *' for this info") -_CURL_WARNING(_curl_easy_getinfo_err_curl_tlssesssioninfo, - "curl_easy_getinfo expects a pointer to " - "'struct curl_tlssessioninfo *' for this info") -_CURL_WARNING(_curl_easy_getinfo_err_curl_certinfo, - "curl_easy_getinfo expects a pointer to " - "'struct curl_certinfo *' for this info") -_CURL_WARNING(_curl_easy_getinfo_err_curl_socket, - "curl_easy_getinfo expects a pointer to curl_socket_t for this info") -_CURL_WARNING(_curl_easy_getinfo_err_curl_off_t, - "curl_easy_getinfo expects a pointer to curl_off_t for this info") - -/* groups of curl_easy_setops options that take the same type of argument */ - -/* To add a new option to one of the groups, just add - * (option) == CURLOPT_SOMETHING - * to the or-expression. If the option takes a long or curl_off_t, you don't - * have to do anything - */ - -/* evaluates to true if option takes a long argument */ -#define _curl_is_long_option(option) \ - (0 < (option) && (option) < CURLOPTTYPE_OBJECTPOINT) - -#define _curl_is_off_t_option(option) \ - ((option) > CURLOPTTYPE_OFF_T) - -/* evaluates to true if option takes a char* argument */ -#define _curl_is_string_option(option) \ - ((option) == CURLOPT_ABSTRACT_UNIX_SOCKET || \ - (option) == CURLOPT_ACCEPT_ENCODING || \ - (option) == CURLOPT_CAINFO || \ - (option) == CURLOPT_CAPATH || \ - (option) == CURLOPT_COOKIE || \ - (option) == CURLOPT_COOKIEFILE || \ - (option) == CURLOPT_COOKIEJAR || \ - (option) == CURLOPT_COOKIELIST || \ - (option) == CURLOPT_CRLFILE || \ - (option) == CURLOPT_CUSTOMREQUEST || \ - (option) == CURLOPT_DEFAULT_PROTOCOL || \ - (option) == CURLOPT_DNS_INTERFACE || \ - (option) == CURLOPT_DNS_LOCAL_IP4 || \ - (option) == CURLOPT_DNS_LOCAL_IP6 || \ - (option) == CURLOPT_DNS_SERVERS || \ - (option) == CURLOPT_EGDSOCKET || \ - (option) == CURLOPT_FTPPORT || \ - (option) == CURLOPT_FTP_ACCOUNT || \ - (option) == CURLOPT_FTP_ALTERNATIVE_TO_USER || \ - (option) == CURLOPT_INTERFACE || \ - (option) == CURLOPT_ISSUERCERT || \ - (option) == CURLOPT_KEYPASSWD || \ - (option) == CURLOPT_KRBLEVEL || \ - (option) == CURLOPT_LOGIN_OPTIONS || \ - (option) == CURLOPT_MAIL_AUTH || \ - (option) == CURLOPT_MAIL_FROM || \ - (option) == CURLOPT_NETRC_FILE || \ - (option) == CURLOPT_NOPROXY || \ - (option) == CURLOPT_PASSWORD || \ - (option) == CURLOPT_PINNEDPUBLICKEY || \ - (option) == CURLOPT_PRE_PROXY || \ - (option) == CURLOPT_PROXY || \ - (option) == CURLOPT_PROXYPASSWORD || \ - (option) == CURLOPT_PROXYUSERNAME || \ - (option) == CURLOPT_PROXYUSERPWD || \ - (option) == CURLOPT_PROXY_CAINFO || \ - (option) == CURLOPT_PROXY_CAPATH || \ - (option) == CURLOPT_PROXY_CRLFILE || \ - (option) == CURLOPT_PROXY_KEYPASSWD || \ - (option) == CURLOPT_PROXY_PINNEDPUBLICKEY || \ - (option) == CURLOPT_PROXY_SERVICE_NAME || \ - (option) == CURLOPT_PROXY_SSLCERT || \ - (option) == CURLOPT_PROXY_SSLCERTTYPE || \ - (option) == CURLOPT_PROXY_SSLKEY || \ - (option) == CURLOPT_PROXY_SSLKEYTYPE || \ - (option) == CURLOPT_PROXY_SSL_CIPHER_LIST || \ - (option) == CURLOPT_PROXY_TLSAUTH_PASSWORD || \ - (option) == CURLOPT_PROXY_TLSAUTH_USERNAME || \ - (option) == CURLOPT_PROXY_TLSAUTH_TYPE || \ - (option) == CURLOPT_RANDOM_FILE || \ - (option) == CURLOPT_RANGE || \ - (option) == CURLOPT_REFERER || \ - (option) == CURLOPT_RTSP_SESSION_ID || \ - (option) == CURLOPT_RTSP_STREAM_URI || \ - (option) == CURLOPT_RTSP_TRANSPORT || \ - (option) == CURLOPT_SERVICE_NAME || \ - (option) == CURLOPT_SOCKS5_GSSAPI_SERVICE || \ - (option) == CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 || \ - (option) == CURLOPT_SSH_KNOWNHOSTS || \ - (option) == CURLOPT_SSH_PRIVATE_KEYFILE || \ - (option) == CURLOPT_SSH_PUBLIC_KEYFILE || \ - (option) == CURLOPT_SSLCERT || \ - (option) == CURLOPT_SSLCERTTYPE || \ - (option) == CURLOPT_SSLENGINE || \ - (option) == CURLOPT_SSLKEY || \ - (option) == CURLOPT_SSLKEYTYPE || \ - (option) == CURLOPT_SSL_CIPHER_LIST || \ - (option) == CURLOPT_TLSAUTH_PASSWORD || \ - (option) == CURLOPT_TLSAUTH_TYPE || \ - (option) == CURLOPT_TLSAUTH_USERNAME || \ - (option) == CURLOPT_UNIX_SOCKET_PATH || \ - (option) == CURLOPT_URL || \ - (option) == CURLOPT_USERAGENT || \ - (option) == CURLOPT_USERNAME || \ - (option) == CURLOPT_USERPWD || \ - (option) == CURLOPT_XOAUTH2_BEARER || \ - 0) - -/* evaluates to true if option takes a curl_write_callback argument */ -#define _curl_is_write_cb_option(option) \ - ((option) == CURLOPT_HEADERFUNCTION || \ - (option) == CURLOPT_WRITEFUNCTION) - -/* evaluates to true if option takes a curl_conv_callback argument */ -#define _curl_is_conv_cb_option(option) \ - ((option) == CURLOPT_CONV_TO_NETWORK_FUNCTION || \ - (option) == CURLOPT_CONV_FROM_NETWORK_FUNCTION || \ - (option) == CURLOPT_CONV_FROM_UTF8_FUNCTION) - -/* evaluates to true if option takes a data argument to pass to a callback */ -#define _curl_is_cb_data_option(option) \ - ((option) == CURLOPT_CHUNK_DATA || \ - (option) == CURLOPT_CLOSESOCKETDATA || \ - (option) == CURLOPT_DEBUGDATA || \ - (option) == CURLOPT_FNMATCH_DATA || \ - (option) == CURLOPT_HEADERDATA || \ - (option) == CURLOPT_INTERLEAVEDATA || \ - (option) == CURLOPT_IOCTLDATA || \ - (option) == CURLOPT_OPENSOCKETDATA || \ - (option) == CURLOPT_PRIVATE || \ - (option) == CURLOPT_PROGRESSDATA || \ - (option) == CURLOPT_READDATA || \ - (option) == CURLOPT_SEEKDATA || \ - (option) == CURLOPT_SOCKOPTDATA || \ - (option) == CURLOPT_SSH_KEYDATA || \ - (option) == CURLOPT_SSL_CTX_DATA || \ - (option) == CURLOPT_WRITEDATA || \ - 0) - -/* evaluates to true if option takes a POST data argument (void* or char*) */ -#define _curl_is_postfields_option(option) \ - ((option) == CURLOPT_POSTFIELDS || \ - (option) == CURLOPT_COPYPOSTFIELDS || \ - 0) - -/* evaluates to true if option takes a struct curl_slist * argument */ -#define _curl_is_slist_option(option) \ - ((option) == CURLOPT_HTTP200ALIASES || \ - (option) == CURLOPT_HTTPHEADER || \ - (option) == CURLOPT_MAIL_RCPT || \ - (option) == CURLOPT_POSTQUOTE || \ - (option) == CURLOPT_PREQUOTE || \ - (option) == CURLOPT_PROXYHEADER || \ - (option) == CURLOPT_QUOTE || \ - (option) == CURLOPT_RESOLVE || \ - (option) == CURLOPT_TELNETOPTIONS || \ - 0) - -/* groups of curl_easy_getinfo infos that take the same type of argument */ - -/* evaluates to true if info expects a pointer to char * argument */ -#define _curl_is_string_info(info) \ - (CURLINFO_STRING < (info) && (info) < CURLINFO_LONG) - -/* evaluates to true if info expects a pointer to long argument */ -#define _curl_is_long_info(info) \ - (CURLINFO_LONG < (info) && (info) < CURLINFO_DOUBLE) - -/* evaluates to true if info expects a pointer to double argument */ -#define _curl_is_double_info(info) \ - (CURLINFO_DOUBLE < (info) && (info) < CURLINFO_SLIST) - -/* true if info expects a pointer to struct curl_slist * argument */ -#define _curl_is_slist_info(info) \ - (((info) == CURLINFO_SSL_ENGINES) || ((info) == CURLINFO_COOKIELIST)) - -/* true if info expects a pointer to struct curl_tlssessioninfo * argument */ -#define _curl_is_tlssessioninfo_info(info) \ - (((info) == CURLINFO_TLS_SSL_PTR) || ((info) == CURLINFO_TLS_SESSION)) - -/* true if info expects a pointer to struct curl_certinfo * argument */ -#define _curl_is_certinfo_info(info) ((info) == CURLINFO_CERTINFO) - -/* true if info expects a pointer to struct curl_socket_t argument */ -#define _curl_is_socket_info(info) \ - (CURLINFO_SOCKET < (info) && (info) < CURLINFO_OFF_T) - -/* true if info expects a pointer to curl_off_t argument */ -#define _curl_is_off_t_info(info) \ - (CURLINFO_OFF_T < (info)) - - -/* typecheck helpers -- check whether given expression has requested type*/ - -/* For pointers, you can use the _curl_is_ptr/_curl_is_arr macros, - * otherwise define a new macro. Search for __builtin_types_compatible_p - * in the GCC manual. - * NOTE: these macros MUST NOT EVALUATE their arguments! The argument is - * the actual expression passed to the curl_easy_setopt macro. This - * means that you can only apply the sizeof and __typeof__ operators, no - * == or whatsoever. - */ - -/* XXX: should evaluate to true iff expr is a pointer */ -#define _curl_is_any_ptr(expr) \ - (sizeof(expr) == sizeof(void *)) - -/* evaluates to true if expr is NULL */ -/* XXX: must not evaluate expr, so this check is not accurate */ -#define _curl_is_NULL(expr) \ - (__builtin_types_compatible_p(__typeof__(expr), __typeof__(NULL))) - -/* evaluates to true if expr is type*, const type* or NULL */ -#define _curl_is_ptr(expr, type) \ - (_curl_is_NULL(expr) || \ - __builtin_types_compatible_p(__typeof__(expr), type *) || \ - __builtin_types_compatible_p(__typeof__(expr), const type *)) - -/* evaluates to true if expr is one of type[], type*, NULL or const type* */ -#define _curl_is_arr(expr, type) \ - (_curl_is_ptr((expr), type) || \ - __builtin_types_compatible_p(__typeof__(expr), type [])) - -/* evaluates to true if expr is a string */ -#define _curl_is_string(expr) \ - (_curl_is_arr((expr), char) || \ - _curl_is_arr((expr), signed char) || \ - _curl_is_arr((expr), unsigned char)) - -/* evaluates to true if expr is a long (no matter the signedness) - * XXX: for now, int is also accepted (and therefore short and char, which - * are promoted to int when passed to a variadic function) */ -#define _curl_is_long(expr) \ - (__builtin_types_compatible_p(__typeof__(expr), long) || \ - __builtin_types_compatible_p(__typeof__(expr), signed long) || \ - __builtin_types_compatible_p(__typeof__(expr), unsigned long) || \ - __builtin_types_compatible_p(__typeof__(expr), int) || \ - __builtin_types_compatible_p(__typeof__(expr), signed int) || \ - __builtin_types_compatible_p(__typeof__(expr), unsigned int) || \ - __builtin_types_compatible_p(__typeof__(expr), short) || \ - __builtin_types_compatible_p(__typeof__(expr), signed short) || \ - __builtin_types_compatible_p(__typeof__(expr), unsigned short) || \ - __builtin_types_compatible_p(__typeof__(expr), char) || \ - __builtin_types_compatible_p(__typeof__(expr), signed char) || \ - __builtin_types_compatible_p(__typeof__(expr), unsigned char)) - -/* evaluates to true if expr is of type curl_off_t */ -#define _curl_is_off_t(expr) \ - (__builtin_types_compatible_p(__typeof__(expr), curl_off_t)) - -/* evaluates to true if expr is abuffer suitable for CURLOPT_ERRORBUFFER */ -/* XXX: also check size of an char[] array? */ -#define _curl_is_error_buffer(expr) \ - (_curl_is_NULL(expr) || \ - __builtin_types_compatible_p(__typeof__(expr), char *) || \ - __builtin_types_compatible_p(__typeof__(expr), char[])) - -/* evaluates to true if expr is of type (const) void* or (const) FILE* */ -#if 0 -#define _curl_is_cb_data(expr) \ - (_curl_is_ptr((expr), void) || \ - _curl_is_ptr((expr), FILE)) -#else /* be less strict */ -#define _curl_is_cb_data(expr) \ - _curl_is_any_ptr(expr) -#endif - -/* evaluates to true if expr is of type FILE* */ -#define _curl_is_FILE(expr) \ - (_curl_is_NULL(expr) || \ - (__builtin_types_compatible_p(__typeof__(expr), FILE *))) - -/* evaluates to true if expr can be passed as POST data (void* or char*) */ -#define _curl_is_postfields(expr) \ - (_curl_is_ptr((expr), void) || \ - _curl_is_arr((expr), char)) - -/* FIXME: the whole callback checking is messy... - * The idea is to tolerate char vs. void and const vs. not const - * pointers in arguments at least - */ -/* helper: __builtin_types_compatible_p distinguishes between functions and - * function pointers, hide it */ -#define _curl_callback_compatible(func, type) \ - (__builtin_types_compatible_p(__typeof__(func), type) || \ - __builtin_types_compatible_p(__typeof__(func) *, type)) - -/* evaluates to true if expr is of type curl_read_callback or "similar" */ -#define _curl_is_read_cb(expr) \ - (_curl_is_NULL(expr) || \ - _curl_callback_compatible((expr), __typeof__(fread) *) || \ - _curl_callback_compatible((expr), curl_read_callback) || \ - _curl_callback_compatible((expr), _curl_read_callback1) || \ - _curl_callback_compatible((expr), _curl_read_callback2) || \ - _curl_callback_compatible((expr), _curl_read_callback3) || \ - _curl_callback_compatible((expr), _curl_read_callback4) || \ - _curl_callback_compatible((expr), _curl_read_callback5) || \ - _curl_callback_compatible((expr), _curl_read_callback6)) -typedef size_t (*_curl_read_callback1)(char *, size_t, size_t, void *); -typedef size_t (*_curl_read_callback2)(char *, size_t, size_t, const void *); -typedef size_t (*_curl_read_callback3)(char *, size_t, size_t, FILE *); -typedef size_t (*_curl_read_callback4)(void *, size_t, size_t, void *); -typedef size_t (*_curl_read_callback5)(void *, size_t, size_t, const void *); -typedef size_t (*_curl_read_callback6)(void *, size_t, size_t, FILE *); - -/* evaluates to true if expr is of type curl_write_callback or "similar" */ -#define _curl_is_write_cb(expr) \ - (_curl_is_read_cb(expr) || \ - _curl_callback_compatible((expr), __typeof__(fwrite) *) || \ - _curl_callback_compatible((expr), curl_write_callback) || \ - _curl_callback_compatible((expr), _curl_write_callback1) || \ - _curl_callback_compatible((expr), _curl_write_callback2) || \ - _curl_callback_compatible((expr), _curl_write_callback3) || \ - _curl_callback_compatible((expr), _curl_write_callback4) || \ - _curl_callback_compatible((expr), _curl_write_callback5) || \ - _curl_callback_compatible((expr), _curl_write_callback6)) -typedef size_t (*_curl_write_callback1)(const char *, size_t, size_t, void *); -typedef size_t (*_curl_write_callback2)(const char *, size_t, size_t, - const void *); -typedef size_t (*_curl_write_callback3)(const char *, size_t, size_t, FILE *); -typedef size_t (*_curl_write_callback4)(const void *, size_t, size_t, void *); -typedef size_t (*_curl_write_callback5)(const void *, size_t, size_t, - const void *); -typedef size_t (*_curl_write_callback6)(const void *, size_t, size_t, FILE *); - -/* evaluates to true if expr is of type curl_ioctl_callback or "similar" */ -#define _curl_is_ioctl_cb(expr) \ - (_curl_is_NULL(expr) || \ - _curl_callback_compatible((expr), curl_ioctl_callback) || \ - _curl_callback_compatible((expr), _curl_ioctl_callback1) || \ - _curl_callback_compatible((expr), _curl_ioctl_callback2) || \ - _curl_callback_compatible((expr), _curl_ioctl_callback3) || \ - _curl_callback_compatible((expr), _curl_ioctl_callback4)) -typedef curlioerr (*_curl_ioctl_callback1)(CURL *, int, void *); -typedef curlioerr (*_curl_ioctl_callback2)(CURL *, int, const void *); -typedef curlioerr (*_curl_ioctl_callback3)(CURL *, curliocmd, void *); -typedef curlioerr (*_curl_ioctl_callback4)(CURL *, curliocmd, const void *); - -/* evaluates to true if expr is of type curl_sockopt_callback or "similar" */ -#define _curl_is_sockopt_cb(expr) \ - (_curl_is_NULL(expr) || \ - _curl_callback_compatible((expr), curl_sockopt_callback) || \ - _curl_callback_compatible((expr), _curl_sockopt_callback1) || \ - _curl_callback_compatible((expr), _curl_sockopt_callback2)) -typedef int (*_curl_sockopt_callback1)(void *, curl_socket_t, curlsocktype); -typedef int (*_curl_sockopt_callback2)(const void *, curl_socket_t, - curlsocktype); - -/* evaluates to true if expr is of type curl_opensocket_callback or - "similar" */ -#define _curl_is_opensocket_cb(expr) \ - (_curl_is_NULL(expr) || \ - _curl_callback_compatible((expr), curl_opensocket_callback) || \ - _curl_callback_compatible((expr), _curl_opensocket_callback1) || \ - _curl_callback_compatible((expr), _curl_opensocket_callback2) || \ - _curl_callback_compatible((expr), _curl_opensocket_callback3) || \ - _curl_callback_compatible((expr), _curl_opensocket_callback4)) -typedef curl_socket_t (*_curl_opensocket_callback1) - (void *, curlsocktype, struct curl_sockaddr *); -typedef curl_socket_t (*_curl_opensocket_callback2) - (void *, curlsocktype, const struct curl_sockaddr *); -typedef curl_socket_t (*_curl_opensocket_callback3) - (const void *, curlsocktype, struct curl_sockaddr *); -typedef curl_socket_t (*_curl_opensocket_callback4) - (const void *, curlsocktype, const struct curl_sockaddr *); - -/* evaluates to true if expr is of type curl_progress_callback or "similar" */ -#define _curl_is_progress_cb(expr) \ - (_curl_is_NULL(expr) || \ - _curl_callback_compatible((expr), curl_progress_callback) || \ - _curl_callback_compatible((expr), _curl_progress_callback1) || \ - _curl_callback_compatible((expr), _curl_progress_callback2)) -typedef int (*_curl_progress_callback1)(void *, - double, double, double, double); -typedef int (*_curl_progress_callback2)(const void *, - double, double, double, double); - -/* evaluates to true if expr is of type curl_debug_callback or "similar" */ -#define _curl_is_debug_cb(expr) \ - (_curl_is_NULL(expr) || \ - _curl_callback_compatible((expr), curl_debug_callback) || \ - _curl_callback_compatible((expr), _curl_debug_callback1) || \ - _curl_callback_compatible((expr), _curl_debug_callback2) || \ - _curl_callback_compatible((expr), _curl_debug_callback3) || \ - _curl_callback_compatible((expr), _curl_debug_callback4) || \ - _curl_callback_compatible((expr), _curl_debug_callback5) || \ - _curl_callback_compatible((expr), _curl_debug_callback6) || \ - _curl_callback_compatible((expr), _curl_debug_callback7) || \ - _curl_callback_compatible((expr), _curl_debug_callback8)) -typedef int (*_curl_debug_callback1) (CURL *, - curl_infotype, char *, size_t, void *); -typedef int (*_curl_debug_callback2) (CURL *, - curl_infotype, char *, size_t, const void *); -typedef int (*_curl_debug_callback3) (CURL *, - curl_infotype, const char *, size_t, void *); -typedef int (*_curl_debug_callback4) (CURL *, - curl_infotype, const char *, size_t, const void *); -typedef int (*_curl_debug_callback5) (CURL *, - curl_infotype, unsigned char *, size_t, void *); -typedef int (*_curl_debug_callback6) (CURL *, - curl_infotype, unsigned char *, size_t, const void *); -typedef int (*_curl_debug_callback7) (CURL *, - curl_infotype, const unsigned char *, size_t, void *); -typedef int (*_curl_debug_callback8) (CURL *, - curl_infotype, const unsigned char *, size_t, const void *); - -/* evaluates to true if expr is of type curl_ssl_ctx_callback or "similar" */ -/* this is getting even messier... */ -#define _curl_is_ssl_ctx_cb(expr) \ - (_curl_is_NULL(expr) || \ - _curl_callback_compatible((expr), curl_ssl_ctx_callback) || \ - _curl_callback_compatible((expr), _curl_ssl_ctx_callback1) || \ - _curl_callback_compatible((expr), _curl_ssl_ctx_callback2) || \ - _curl_callback_compatible((expr), _curl_ssl_ctx_callback3) || \ - _curl_callback_compatible((expr), _curl_ssl_ctx_callback4) || \ - _curl_callback_compatible((expr), _curl_ssl_ctx_callback5) || \ - _curl_callback_compatible((expr), _curl_ssl_ctx_callback6) || \ - _curl_callback_compatible((expr), _curl_ssl_ctx_callback7) || \ - _curl_callback_compatible((expr), _curl_ssl_ctx_callback8)) -typedef CURLcode (*_curl_ssl_ctx_callback1)(CURL *, void *, void *); -typedef CURLcode (*_curl_ssl_ctx_callback2)(CURL *, void *, const void *); -typedef CURLcode (*_curl_ssl_ctx_callback3)(CURL *, const void *, void *); -typedef CURLcode (*_curl_ssl_ctx_callback4)(CURL *, const void *, - const void *); -#ifdef HEADER_SSL_H -/* hack: if we included OpenSSL's ssl.h, we know about SSL_CTX - * this will of course break if we're included before OpenSSL headers... - */ -typedef CURLcode (*_curl_ssl_ctx_callback5)(CURL *, SSL_CTX, void *); -typedef CURLcode (*_curl_ssl_ctx_callback6)(CURL *, SSL_CTX, const void *); -typedef CURLcode (*_curl_ssl_ctx_callback7)(CURL *, const SSL_CTX, void *); -typedef CURLcode (*_curl_ssl_ctx_callback8)(CURL *, const SSL_CTX, - const void *); -#else -typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback5; -typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback6; -typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback7; -typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback8; -#endif - -/* evaluates to true if expr is of type curl_conv_callback or "similar" */ -#define _curl_is_conv_cb(expr) \ - (_curl_is_NULL(expr) || \ - _curl_callback_compatible((expr), curl_conv_callback) || \ - _curl_callback_compatible((expr), _curl_conv_callback1) || \ - _curl_callback_compatible((expr), _curl_conv_callback2) || \ - _curl_callback_compatible((expr), _curl_conv_callback3) || \ - _curl_callback_compatible((expr), _curl_conv_callback4)) -typedef CURLcode (*_curl_conv_callback1)(char *, size_t length); -typedef CURLcode (*_curl_conv_callback2)(const char *, size_t length); -typedef CURLcode (*_curl_conv_callback3)(void *, size_t length); -typedef CURLcode (*_curl_conv_callback4)(const void *, size_t length); - -/* evaluates to true if expr is of type curl_seek_callback or "similar" */ -#define _curl_is_seek_cb(expr) \ - (_curl_is_NULL(expr) || \ - _curl_callback_compatible((expr), curl_seek_callback) || \ - _curl_callback_compatible((expr), _curl_seek_callback1) || \ - _curl_callback_compatible((expr), _curl_seek_callback2)) -typedef CURLcode (*_curl_seek_callback1)(void *, curl_off_t, int); -typedef CURLcode (*_curl_seek_callback2)(const void *, curl_off_t, int); - - -#endif /* __CURL_TYPECHECK_GCC_H */ diff --git a/3d_party/libcurl/install.cmd b/3d_party/libcurl/install.cmd new file mode 100644 index 000000000..decf998cc --- /dev/null +++ b/3d_party/libcurl/install.cmd @@ -0,0 +1,19 @@ +:: download and untar libcurl sources to dir +:: https://curl.haxx.se/download/curl-7.58.0.tar.gz + +:: set directory with libcurl sources +SET dir=c:\tmp\curl-7.58.0 +:: set directory where libcurl should be installed +SET install_dir=c:\Curl + +set mypath=%cd% +cd /d %dir%\winbuild + +call "c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvars32.bat" +nmake.exe /f Makefile.vc mode=static VC=14 MACHINE=X86 RTLIBCFG=static + +xcopy /isvy %dir%\builds\libcurl-vc14-X86-release-static-ipv6-sspi-winssl\include %install_dir%\include +xcopy /isvy %dir%\builds\libcurl-vc14-X86-release-static-ipv6-sspi-winssl\lib %install_dir%\lib +rename %install_dir%\lib\libcurl_a.lib libcurl.lib + + diff --git a/3d_party/libcurl/install.sh b/3d_party/libcurl/install.sh index a19f541c3..9b39b43b4 100755 --- a/3d_party/libcurl/install.sh +++ b/3d_party/libcurl/install.sh @@ -5,8 +5,8 @@ wget https://curl.haxx.se/download/curl-7.58.0.tar.gz tar xzf curl-7.58.0.tar.gz cd curl-7.58.0 ./configure --without-ssl --disable-shared --disable-manual --disable-ares --disable-cookies \ ---disable-crypto-auth --disable-ipv6 --disable-proxy --disable-unix-sockets --disable-verbose \ --disable-versioned-symbols --without-libidn --without-librtmp --without-zlib --disable-ldap \ +--disable-crypto-auth --disable-ipv6 --disable-proxy --disable-unix-sockets \ +--without-libidn --without-librtmp --without-zlib --disable-ldap \ --disable-libcurl-option --prefix=`pwd`/../ make make install diff --git a/3d_party/libcurl/lib/libcurl.a b/3d_party/libcurl/lib/libcurl.a deleted file mode 100644 index 5f880f96565721f5f20b51e3d7229d5cc96c0790..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 708778 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	{a_42PVaFf2?z%MZP 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%0DBlg59q;OPNM3N`d)?p6Y#2gh-?5X- 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⁣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� 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 AasU7T diff --git a/3d_party/libcurl/lib/libcurl.la b/3d_party/libcurl/lib/libcurl.la deleted file mode 100755 index d3fb7ba06..000000000 --- a/3d_party/libcurl/lib/libcurl.la +++ /dev/null @@ -1,41 +0,0 @@ -# libcurl.la - a libtool library file -# Generated by libtool (GNU libtool) 2.4.6 Debian-2.4.6-2 -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# The name that we can dlopen(3). -dlname='' - -# Names of this library. -library_names='' - -# The name of the static archive. -old_library='libcurl.a' - -# Linker flags that cannot go in dependency_libs. -inherited_linker_flags=' -pthread' - -# Libraries that this one depends upon. -dependency_libs='' - -# Names of additional weak libraries provided by this library -weak_library_names='' - -# Version information for libcurl. -current=9 -age=5 -revision=0 - -# Is this an already installed library? -installed=yes - -# Should we warn about portability when linking against -modules? -shouldnotlink=no - -# Files to dlopen/dlpreopen -dlopen='' -dlpreopen='' - -# Directory that this library needs to be installed in: -libdir='/home/yakubov/projects/hidra2/3d_party/libcurl/curl-7.58.0/../lib' diff --git a/3d_party/libcurl/lib/pkgconfig/libcurl.pc b/3d_party/libcurl/lib/pkgconfig/libcurl.pc deleted file mode 100644 index 2d26b94d3..000000000 --- a/3d_party/libcurl/lib/pkgconfig/libcurl.pc +++ /dev/null @@ -1,39 +0,0 @@ -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. -# -# This software is licensed as described in the file COPYING, which -# you should have received as part of this distribution. The terms -# are also available at https://curl.haxx.se/docs/copyright.html. -# -# You may opt to use, copy, modify, merge, publish, distribute and/or sell -# copies of the Software, and permit persons to whom the Software is -# furnished to do so, under the terms of the COPYING file. -# -# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -# KIND, either express or implied. -# -########################################################################### - -# This should most probably benefit from getting a "Requires:" field added -# dynamically by configure. -# -prefix=/home/yakubov/projects/hidra2/3d_party/libcurl/curl-7.58.0/.. -exec_prefix=${prefix} -libdir=${exec_prefix}/lib -includedir=${prefix}/include -supported_protocols="DICT FILE FTP GOPHER HTTP IMAP POP3 RTSP SMTP TELNET TFTP" -supported_features="AsynchDNS" - -Name: libcurl -URL: https://curl.haxx.se/ -Description: Library to transfer files with ftp, http, etc. -Version: 7.58.0 -Libs: -L${libdir} -lcurl -Libs.private: -Cflags: -I${includedir} -DCURL_STATICLIB diff --git a/CMakeLists.txt b/CMakeLists.txt index f6103b1d2..0c6f1f44b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,9 +3,9 @@ project(HIDRA2) set(CMAKE_CXX_STANDARD 11) IF(WIN32) set(CMAKE_CXX_FLAGS_DEBUG "/MTd") - add_definitions(-DCURL_STATICLIB) ELSEIF(CMAKE_C_COMPILER_ID STREQUAL "GNU") SET( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libgcc -static-libstdc++") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") ENDIF(WIN32) option(BUILD_TESTS "Uses googletest to build tests" OFF) @@ -28,12 +28,9 @@ endif() add_subdirectory(common/cpp) add_subdirectory(producer/api) -add_subdirectory(worker/api/cpp) -if(BUILD_WORKER_TOOLS) - set (BUILD_MONGODB ON) - add_subdirectory(worker/tools) -endif() +add_subdirectory(worker) + IF(UNIX) add_subdirectory(receiver) diff --git a/tests/system_io/read_file_content/read_file_content.cpp b/tests/system_io/read_file_content/read_file_content.cpp index 7853299e7..9d19970f3 100644 --- a/tests/system_io/read_file_content/read_file_content.cpp +++ b/tests/system_io/read_file_content/read_file_content.cpp @@ -25,7 +25,7 @@ int main(int argc, char* argv[]) { result = "notfound"; break; case IOErrors::kNoError: - for(int i = 0; i < expect.size(); i++) + for(unsigned int i = 0; i < expect.size(); i++) result += data[i]; break; case IOErrors::kPermissionDenied: diff --git a/tests/worker/curl_http_client_get/CMakeLists.txt b/tests/worker/curl_http_client_get/CMakeLists.txt index d0a7f912d..e233d8a78 100644 --- a/tests/worker/curl_http_client_get/CMakeLists.txt +++ b/tests/worker/curl_http_client_get/CMakeLists.txt @@ -21,4 +21,5 @@ target_link_libraries(${TARGET_NAME} test_common hidra2-worker) #add_test_setup_cleanup(${TARGET_NAME}) add_integration_test(${TARGET_NAME} get_google "google.com moved 302") add_integration_test(${TARGET_NAME} get_badaddress "google.com/badaddress found 404") +add_integration_test(${TARGET_NAME} get_badaddress2 "111 clienterror 404") diff --git a/tests/worker/curl_http_client_get/curl_httpclient_get.cpp b/tests/worker/curl_http_client_get/curl_httpclient_get.cpp index 299a668ed..1eb59073a 100644 --- a/tests/worker/curl_http_client_get/curl_httpclient_get.cpp +++ b/tests/worker/curl_http_client_get/curl_httpclient_get.cpp @@ -35,12 +35,17 @@ int main(int argc, char* argv[]) { auto broker = hidra2::DataBrokerFactory::CreateServerBroker(args.uri, "", &err); auto server_broker = static_cast<hidra2::ServerDataBroker*>(broker.get()); - int code; - auto responce = server_broker->httpclient__->Get(args.uri,&code, &err); + hidra2::HttpCode code; + auto responce = server_broker->httpclient__->Get(args.uri, &code, &err); - std::cout << "Server responce code:\n" << code << std::endl; - std::cout << "Server responce:\n" << responce << std::endl; + if (err != WorkerErrorCode::kOK) { + M_AssertEq("clienterror", args.answer); + M_AssertContains(responce, "Could"); + return 0; + } M_AssertContains(responce, args.answer); + M_AssertEq(static_cast<int>(code), args.code); + return 0; } diff --git a/worker/CMakeLists.txt b/worker/CMakeLists.txt new file mode 100644 index 000000000..1efde9d4b --- /dev/null +++ b/worker/CMakeLists.txt @@ -0,0 +1,6 @@ +add_subdirectory(api/cpp) + +if(BUILD_WORKER_TOOLS) + set (BUILD_MONGODB ON) + add_subdirectory(tools) +endif() diff --git a/worker/api/cpp/CMakeLists.txt b/worker/api/cpp/CMakeLists.txt index 5ea869b54..be94ff79e 100644 --- a/worker/api/cpp/CMakeLists.txt +++ b/worker/api/cpp/CMakeLists.txt @@ -2,6 +2,7 @@ set(TARGET_NAME hidra2-worker) set(SOURCE_FILES src/data_broker.cpp + src/http_client.cpp src/folder_data_broker.cpp src/server_data_broker.cpp src/broker_helpers.cpp @@ -14,7 +15,7 @@ set(SOURCE_FILES add_library(${TARGET_NAME} STATIC ${SOURCE_FILES} $<TARGET_OBJECTS:system_io> $<TARGET_OBJECTS:data_structs>) -set (CMAKE_PREFIX_PATH ${CMAKE_SOURCE_DIR}/3d_party/libcurl) +set (CMAKE_PREFIX_PATH "${LIBCURL_DIR}") find_package (CURL REQUIRED) message (STATUS "Found cURL libraries: ${CURL_LIBRARIES}") message (STATUS "cURL include: ${CURL_INCLUDE_DIRS}") @@ -24,7 +25,7 @@ target_include_directories(${TARGET_NAME} PUBLIC include ${HIDRA2_CXX_COMMON_INC ${CURL_INCLUDE_DIRS}) IF(WIN32) - set(LIBCURL "/MTd") + target_compile_definitions(${TARGET_NAME} PUBLIC -DCURL_STATICLIB) ELSE() SET( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libgcc -static-libstdc++") ENDIF(WIN32) @@ -33,9 +34,6 @@ ENDIF(WIN32) target_link_libraries(${TARGET_NAME} ${CURL_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) - - - ################################ # Testing ################################ diff --git a/worker/api/cpp/include/worker/data_broker.h b/worker/api/cpp/include/worker/data_broker.h index 38b2f1a5b..27e9435f1 100644 --- a/worker/api/cpp/include/worker/data_broker.h +++ b/worker/api/cpp/include/worker/data_broker.h @@ -19,6 +19,7 @@ enum class WorkerErrorCode { kPermissionDenied, kNoData, kWrongInput, + kInternalError, kUnknownIOError }; diff --git a/worker/api/cpp/src/curl_http_client.cpp b/worker/api/cpp/src/curl_http_client.cpp index 0f8dbe91b..4a90c2e76 100644 --- a/worker/api/cpp/src/curl_http_client.cpp +++ b/worker/api/cpp/src/curl_http_client.cpp @@ -1,6 +1,7 @@ #include "curl_http_client.h" #include "curl/curl.h" +#include <cstring> namespace hidra2 { @@ -19,40 +20,64 @@ CurlHttpClientInstance::~CurlHttpClientInstance() { curl_global_cleanup(); } -size_t curl_write( void *ptr, size_t size, size_t nmemb, void *buffer) -{ - auto strbuf=(std::string*)buffer; - strbuf->append((char*)ptr, size*nmemb); - return size*nmemb; +size_t curl_write( void* ptr, size_t size, size_t nmemb, void* buffer) { + auto strbuf = (std::string*)buffer; + strbuf->append((char*)ptr, size * nmemb); + return size * nmemb; } -std::string CurlHttpClient::Get(const std::string& uri, int* responce_code, WorkerErrorCode* err) const { - auto curl = curl_easy_init(); - std::string buffer; - if(curl) { - curl_easy_setopt(curl, CURLOPT_URL, uri.c_str()); - curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, curl_write); - curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buffer); - - auto res = curl_easy_perform(curl); - long http_code = 0; - curl_easy_getinfo (curl, CURLINFO_RESPONSE_CODE, &http_code); - if (responce_code) { - *responce_code = http_code; - } - - /* Check for errors */ - if(res != CURLE_OK) - fprintf(stderr, "curl_easy_perform() failed: %s\n", - curl_easy_strerror(res)); - curl_easy_cleanup(curl); +void SetCurlOptions(CURL* curl, const std::string& uri, char* errbuf, std::string* buffer) { + errbuf[0] = 0; + curl_easy_setopt(curl, CURLOPT_URL, uri.c_str()); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, curl_write); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, buffer); + curl_easy_setopt(curl, CURLOPT_FAILONERROR, 0L); + curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf); + +} + +HttpCode GetResponceCode(CURL* curl) { + long http_code = 0; + curl_easy_getinfo (curl, CURLINFO_RESPONSE_CODE, &http_code); + return static_cast<HttpCode>(http_code); +} + +std::string GetCurlError(CURL* curl, CURLcode res, const char* errbuf) { + if (strlen(errbuf) > 0) { + return errbuf; + } else { + return curl_easy_strerror(res); } +} - return buffer; +WorkerErrorCode ProcessCurlResponce(CURL* curl, CURLcode res, const char* errbuf, + std::string* buffer, HttpCode* responce_code) { + if(res == CURLE_OK) { + *responce_code = GetResponceCode(curl); + return WorkerErrorCode::kOK; + } else { + *buffer = GetCurlError(curl, res, errbuf); + return WorkerErrorCode::kErrorReadingSource; + } } +std::string CurlHttpClient::Get(const std::string& uri, HttpCode* responce_code, WorkerErrorCode* err) const noexcept { + auto curl = curl_easy_init(); + if (!curl) { + *err = WorkerErrorCode::kInternalError; + return ""; + } + + std::string buffer; + char errbuf[CURL_ERROR_SIZE]; + SetCurlOptions(curl, uri, errbuf, &buffer); + + auto res = curl_easy_perform(curl); -CurlHttpClient::CurlHttpClient() { + *err = ProcessCurlResponce(curl, res, errbuf, &buffer, responce_code); + curl_easy_cleanup(curl); + + return buffer; } diff --git a/worker/api/cpp/src/curl_http_client.h b/worker/api/cpp/src/curl_http_client.h index 78042988a..fda98c830 100644 --- a/worker/api/cpp/src/curl_http_client.h +++ b/worker/api/cpp/src/curl_http_client.h @@ -9,8 +9,7 @@ namespace hidra2 { class CurlHttpClient final : public HttpClient { public: - CurlHttpClient(); - std::string Get(const std::string& uri, int* responce_code, WorkerErrorCode* err) const override; + std::string Get(const std::string& uri, HttpCode* responce_code, WorkerErrorCode* err) const noexcept override; }; diff --git a/worker/api/cpp/src/folder_data_broker.cpp b/worker/api/cpp/src/folder_data_broker.cpp index bc0801dfe..9c460c421 100644 --- a/worker/api/cpp/src/folder_data_broker.cpp +++ b/worker/api/cpp/src/folder_data_broker.cpp @@ -6,7 +6,7 @@ namespace hidra2 { FolderDataBroker::FolderDataBroker(const std::string& source_name) : - base_path_{source_name}, io__{new hidra2::SystemIO}, is_connected_{false}, + io__{new hidra2::SystemIO}, base_path_{source_name}, is_connected_{false}, current_file_{ -1} { } diff --git a/worker/api/cpp/src/folder_data_broker.h b/worker/api/cpp/src/folder_data_broker.h index ad8ca6b06..2bcdcfbe5 100644 --- a/worker/api/cpp/src/folder_data_broker.h +++ b/worker/api/cpp/src/folder_data_broker.h @@ -19,13 +19,12 @@ class FolderDataBroker final : public hidra2::DataBroker { std::unique_ptr<hidra2::IO> io__; // modified in testings to mock system calls,otherwise do not touch private: + std::string base_path_; bool is_connected_; int current_file_; - std::string base_path_; FileInfos filelist_; WorkerErrorCode CanGetData(FileInfo* info, FileData* data, int nfile) const noexcept; std::mutex mutex_; - }; } diff --git a/worker/api/cpp/src/http_client.cpp b/worker/api/cpp/src/http_client.cpp new file mode 100644 index 000000000..1a61473fa --- /dev/null +++ b/worker/api/cpp/src/http_client.cpp @@ -0,0 +1,23 @@ +#include "http_client.h" + +namespace hidra2 { + +WorkerErrorCode HttpCodeToWorkerError(const HttpCode& code) { + switch (code) { + case HttpCode::OK: + return WorkerErrorCode::kOK; + case HttpCode::BadRequest: + return WorkerErrorCode::kWrongInput; + case HttpCode::InternalServerError: + return WorkerErrorCode::kErrorReadingSource; + case HttpCode::NoContent: + return WorkerErrorCode::kNoData; + case HttpCode::NotFound: + return WorkerErrorCode::kSourceNotFound; + default: + return WorkerErrorCode::kErrorReadingSource; + } + +} + +} diff --git a/worker/api/cpp/src/http_client.h b/worker/api/cpp/src/http_client.h index c1a727e45..5fb53c5fb 100644 --- a/worker/api/cpp/src/http_client.h +++ b/worker/api/cpp/src/http_client.h @@ -5,11 +5,79 @@ namespace hidra2 { +enum class HttpCode; + class HttpClient { public: - virtual std::string Get(const std::string& uri, int* responce_code, WorkerErrorCode* err) const = 0; + virtual std::string Get(const std::string& uri, HttpCode* responce_code, WorkerErrorCode* err) const noexcept = 0; }; +WorkerErrorCode HttpCodeToWorkerError(const HttpCode& code); + +enum class HttpCode : int { + Continue = 100, + SwitchingProtocols = 101, + Processing = 102, + + OK = 200, + Created = 201, + Accepted = 202, + NonAuthoritativeInformation = 203, + NoContent = 204, + ResetContent = 205, + PartialContent = 206, + MultiStatus = 207, + IMUsed = 226, + + MultipleChoices = 300, + MovedPermanently = 301, + Found = 302, + SeeOther = 303, + NotModified = 304, + UseProxy = 305, + TemporaryRedirect = 307, + PermanentRedirect = 308, + + BadRequest = 400, + Unauthorized = 401, + PaymentRequired = 402, + Forbidden = 403, + NotFound = 404, + MethodNotAllowed = 405, + NotAcceptable = 406, + ProxyAuthenticationRequired = 407, + RequestTimeout = 408, + Conflict = 409, + Gone = 410, + LengthRequired = 411, + PreconditionFailed = 412, + PayloadTooLarge = 413, + URITooLong = 414, + UnsupportedMediaType = 415, + RangeNotSatisfiable = 416, + ExpectationFailed = 417, + ImATeapot = 418, + UnprocessableEntity = 422, + Locked = 423, + FailedDependency = 424, + UpgradeRequired = 426, + PreconditionRequired = 428, + TooManyRequests = 429, + RequestHeaderFieldsTooLarge = 431, + UnavailableForLegalReasons = 451, + + InternalServerError = 500, + NotImplemented = 501, + BadGateway = 502, + ServiceUnavailable = 503, + GatewayTimeout = 504, + HTTPVersionNotSupported = 505, + VariantAlsoNegotiates = 506, + InsufficientStorage = 507, + NetworkAuthenticationRequired = 511 +}; + + } #endif //HIDRA2_HTTP_CLIENT_H diff --git a/worker/api/cpp/src/server_data_broker.cpp b/worker/api/cpp/src/server_data_broker.cpp index ef7b7bd94..b8110aced 100644 --- a/worker/api/cpp/src/server_data_broker.cpp +++ b/worker/api/cpp/src/server_data_broker.cpp @@ -18,10 +18,17 @@ WorkerErrorCode ServerDataBroker::Connect() { WorkerErrorCode ServerDataBroker::GetFileInfoFromServer(FileInfo* info, const std::string& operation) { std::string full_uri = server_uri_ + "/database/" + source_name_ + "/" + operation; WorkerErrorCode err; - auto responce = httpclient__->Get(full_uri, nullptr, &err); + HttpCode code; + auto responce = httpclient__->Get(full_uri, &code, &err); if (err != WorkerErrorCode::kOK) { return err; } + + err = HttpCodeToWorkerError(code); + if (err != WorkerErrorCode::kOK) { + return err; + } + if (!info->SetFromJson(responce)) { return WorkerErrorCode::kErrorReadingSource; } diff --git a/worker/api/cpp/unittests/MockHttpClient.h b/worker/api/cpp/unittests/MockHttpClient.h index 6afde9e97..06ff805aa 100644 --- a/worker/api/cpp/unittests/MockHttpClient.h +++ b/worker/api/cpp/unittests/MockHttpClient.h @@ -11,8 +11,11 @@ namespace hidra2 { class MockHttpClient : public HttpClient { public: - MOCK_CONST_METHOD3(Get, - std::string(const std::string& uri, int* code, WorkerErrorCode* err)); + std::string Get(const std::string& uri, HttpCode* code, WorkerErrorCode* err) const noexcept override { + return Get_t(uri, code, err); + } + MOCK_CONST_METHOD3(Get_t, + std::string(const std::string& uri, HttpCode* code, WorkerErrorCode* err)); }; diff --git a/worker/api/cpp/unittests/test_server_broker.cpp b/worker/api/cpp/unittests/test_server_broker.cpp index b2b541e38..f093c2a33 100644 --- a/worker/api/cpp/unittests/test_server_broker.cpp +++ b/worker/api/cpp/unittests/test_server_broker.cpp @@ -19,6 +19,7 @@ using hidra2::FileInfo; using hidra2::FileData; using hidra2::MockIO; using hidra2::MockHttpClient; +using hidra2::HttpCode; using ::testing::AtLeast; using ::testing::Eq; @@ -60,6 +61,14 @@ class ServerDataBrokerTests : public Test { data_broker->io__.release(); data_broker->httpclient__.release(); } + void MockGet(const std::string& responce) { + EXPECT_CALL(mock_http_client, Get_t(_, _, _)).WillOnce(DoAll( + SetArgPointee<1>(HttpCode::OK), + SetArgPointee<2>(WorkerErrorCode::kOK), + Return(responce) + )); + } + }; TEST_F(ServerDataBrokerTests, CanConnect) { @@ -72,16 +81,19 @@ TEST_F(ServerDataBrokerTests, GetNextReturnsErrorOnWrongInput) { ASSERT_THAT(return_code, Eq(WorkerErrorCode::kWrongInput)); } + TEST_F(ServerDataBrokerTests, GetNextUsesCorrectUri) { - EXPECT_CALL(mock_http_client, Get("test/database/dbname/next", _, _)).WillOnce(DoAll( + EXPECT_CALL(mock_http_client, Get_t("test/database/dbname/next", _, _)).WillOnce(DoAll( + SetArgPointee<1>(HttpCode::OK), SetArgPointee<2>(WorkerErrorCode::kOK), Return(""))); data_broker->GetNext(&info, nullptr); } TEST_F(ServerDataBrokerTests, GetNextReturnsErrorFromHttpClient) { - EXPECT_CALL(mock_http_client, Get(_, _, _)).WillOnce(DoAll( - SetArgPointee<2>(WorkerErrorCode::kSourceNotFound), + EXPECT_CALL(mock_http_client, Get_t(_, _, _)).WillOnce(DoAll( + SetArgPointee<1>(HttpCode::NotFound), + SetArgPointee<2>(WorkerErrorCode::kOK), Return(""))); auto err = data_broker->GetNext(&info, nullptr); @@ -103,9 +115,8 @@ FileInfo CreateFI() { TEST_F(ServerDataBrokerTests, GetNextReturnsFileInfo) { auto to_send = CreateFI(); auto json = to_send.Json(); - EXPECT_CALL(mock_http_client, Get(_, _, _)).WillOnce(DoAll( - SetArgPointee<2>(WorkerErrorCode::kOK), - Return(json))); + + MockGet(json); auto err = data_broker->GetNext(&info, nullptr); @@ -120,11 +131,7 @@ TEST_F(ServerDataBrokerTests, GetNextReturnsFileInfo) { TEST_F(ServerDataBrokerTests, GetNextReturnsParseError) { - EXPECT_CALL(mock_http_client, Get(_, _, _)).WillOnce(DoAll( - SetArgPointee<2>(WorkerErrorCode::kOK), - Return("blabla") - )); - + MockGet("error_responce"); auto err = data_broker->GetNext(&info, nullptr); ASSERT_THAT(err, Eq(WorkerErrorCode::kErrorReadingSource)); @@ -132,11 +139,9 @@ TEST_F(ServerDataBrokerTests, GetNextReturnsParseError) { TEST_F(ServerDataBrokerTests, GetNextReturnsIfNoDtataNeeded) { - EXPECT_CALL(mock_http_client, Get(_, _, _)).WillOnce(DoAll( - SetArgPointee<2>(WorkerErrorCode::kOK), - Return("blabla"))); - + MockGet("error_responce"); EXPECT_CALL( mock_io, GetDataFromFile_t(_, _, _)).Times(0); + data_broker->GetNext(&info, nullptr); } @@ -145,10 +150,7 @@ TEST_F(ServerDataBrokerTests, GetNextCallsReadFromFile) { auto to_send = CreateFI(); auto json = to_send.Json(); - EXPECT_CALL(mock_http_client, Get(_, _, _)).WillOnce(DoAll( - SetArgPointee<2>(WorkerErrorCode::kOK), - Return(json))); - + MockGet(json); EXPECT_CALL(mock_io, GetDataFromFile_t("relative_path/base_name", 100, _)). WillOnce(DoAll(SetArgPointee<2>(IOErrors::kReadError), testing::Return(nullptr))); diff --git a/worker/tools/folder_to_db/src/folder_db_importer.cpp b/worker/tools/folder_to_db/src/folder_db_importer.cpp index 7fa9199a4..f3499fab3 100644 --- a/worker/tools/folder_to_db/src/folder_db_importer.cpp +++ b/worker/tools/folder_to_db/src/folder_db_importer.cpp @@ -138,7 +138,7 @@ FolderToDbImportError FolderToDbImporter::ImportFilelist(const FileInfos& file_l auto split_parameters = ComputeSplitParameters(file_list, n_tasks_); std::vector<std::future<FolderToDbImportError>>res; - for (auto i = 0; i < n_tasks_; i++) { + for (unsigned int i = 0; i < n_tasks_; i++) { ProcessNextChunk(file_list, &res, &split_parameters); } diff --git a/worker/tools/folder_to_db/src/folder_db_importer.h b/worker/tools/folder_to_db/src/folder_db_importer.h index 49bf1d09e..fc807c7b3 100644 --- a/worker/tools/folder_to_db/src/folder_db_importer.h +++ b/worker/tools/folder_to_db/src/folder_db_importer.h @@ -45,9 +45,10 @@ class FolderToDbImporter { unsigned int SetNParallelTasks(unsigned int ntasks, bool async = true); void IgnoreDuplicates(bool ignore_duplicates = true); + std::unique_ptr<hidra2::IO> io__; // modified in testings to mock system calls,otherwise do not touch std::unique_ptr<hidra2::DatabaseFactory> db_factory__; // modified in testings to mock system calls,otherwise do not touch - std::unique_ptr<hidra2::IO> io__; // modified in testings to mock system calls,otherwise do not touch + private: bool ignore_duplicates_{false}; unsigned int n_tasks_{1}; diff --git a/worker/tools/folder_to_db/unittests/test_folder_to_db.cpp b/worker/tools/folder_to_db/unittests/test_folder_to_db.cpp index 11d3896fa..980a622c1 100644 --- a/worker/tools/folder_to_db/unittests/test_folder_to_db.cpp +++ b/worker/tools/folder_to_db/unittests/test_folder_to_db.cpp @@ -98,7 +98,7 @@ class MockDatabaseFactory : public DatabaseFactory { return std::unique_ptr<Database> {db[n++]}; } ~MockDatabaseFactory() { - for (int i = n; i < db.size(); i++) { + for (unsigned int i = n; i < db.size(); i++) { delete db[i]; } } -- GitLab