Mercurial > projects > dynamin
view dynamin/c/curl.d @ 55:c138461bf845
Add focusing and other changes that are related
like descendantAdded/Removed events, Window.activated event, and updating List.
Window.state was also added, even though focusing does not depend on it.
author | Jordan Miner <jminer7@gmail.com> |
---|---|
date | Sat, 08 Aug 2009 15:42:27 -0500 |
parents | aa4efef0f0b1 |
children |
line wrap: on
line source
module dynamin.c.curl; /* * A largely complete binding to the cURL library version 7.15. */ version(build) { pragma(link, curl); } extern(C): alias void CURL; CURL* curl_easy_init(); CURLcode curl_easy_setopt(CURL* curl, CURLoption option, ...); CURLcode curl_easy_perform(CURL* curl); void curl_easy_cleanup(CURL* curl); CURLcode curl_easy_getinfo(CURL* curl, CURLINFO info, ...); CURL* curl_easy_duphandle(CURL* curl); void curl_easy_reset(CURL* curl); const int HTTPPOST_FILENAME = 1 << 0; const int HTTPPOST_READFILE = 1 << 1; const int HTTPPOST_PTRNAME = 1 << 2; const int HTTPPOST_PTRCONTENTS = 1 << 3; const int HTTPPOST_BUFFER = 1 << 4; const int HTTPPOST_PTRBUFFER = 1 << 5; struct curl_httppost { curl_httppost* next; char* name; int namelength; char* contents; int contentslength; char* buffer; int bufferlength; char* contenttype; curl_slist* contentheader; curl_httppost* more; int flags; char* showfilename; } alias int function( void* clientp, double dltotal, double dlnow, double ultotal, double ulnow) curl_progress_callback; const int CURL_MAX_WRITE_SIZE = 16384; alias size_t function( char* buffer, size_t size, size_t nitems, void* outstream) curl_write_callback; const int CURL_READFUNC_ABORT = 0x10000000; alias size_t function( char* buffer, size_t size, size_t nitems, void* instream) curl_read_callback; alias int curlioerr; enum { CURLIOE_OK, CURLIOE_UNKNOWNCMD, CURLIOE_FAILRESTART, CURLIOE_LAST } alias int curliocmd; enum { CURLIOCMD_NOP, CURLIOCMD_RESTARTREAD, CURLIOCMD_LAST } alias curlioerr function( CURL* handle, int cmd, void* clientp) curl_ioctl_callback; alias void* function(size_t size) curl_malloc_callback; alias void function(void* ptr) curl_free_callback; alias void* function(void* ptr, size_t size) curl_realloc_callback; alias char* function(char* str) curl_strdup_callback; alias void* function(size_t nmemb, size_t size) curl_calloc_callback; alias int curl_infotype; enum { CURLINFO_TEXT = 0, CURLINFO_HEADER_IN, CURLINFO_HEADER_OUT, CURLINFO_DATA_IN, CURLINFO_DATA_OUT, CURLINFO_SSL_DATA_IN, CURLINFO_SSL_DATA_OUT, CURLINFO_END } alias int function( CURL* handle, curl_infotype type, char* data, size_t size, void* userptr) curl_debug_callback; alias int CURLcode; enum { CURLE_OK = 0, CURLE_UNSUPPORTED_PROTOCOL, CURLE_FAILED_INIT, CURLE_URL_MALFORMAT, CURLE_URL_MALFORMAT_USER, CURLE_COULDNT_RESOLVE_PROXY, CURLE_COULDNT_RESOLVE_HOST, CURLE_COULDNT_CONNECT, CURLE_FTP_WEIRD_SERVER_REPLY, CURLE_FTP_ACCESS_DENIED, CURLE_FTP_USER_PASSWORD_INCORRECT, CURLE_FTP_WEIRD_PASS_REPLY, CURLE_FTP_WEIRD_USER_REPLY, CURLE_FTP_WEIRD_PASV_REPLY, CURLE_FTP_WEIRD_227_FORMAT, CURLE_FTP_CANT_GET_HOST, CURLE_FTP_CANT_RECONNECT, CURLE_FTP_COULDNT_SET_BINARY, CURLE_PARTIAL_FILE, CURLE_FTP_COULDNT_RETR_FILE, CURLE_FTP_WRITE_ERROR, CURLE_FTP_QUOTE_ERROR, CURLE_HTTP_RETURNED_ERROR, CURLE_WRITE_ERROR, CURLE_MALFORMAT_USER, CURLE_FTP_COULDNT_STOR_FILE, CURLE_READ_ERROR, CURLE_OUT_OF_MEMORY, CURLE_OPERATION_TIMEOUTED, CURLE_FTP_COULDNT_SET_ASCII, CURLE_FTP_PORT_FAILED, CURLE_FTP_COULDNT_USE_REST, CURLE_FTP_COULDNT_GET_SIZE, CURLE_HTTP_RANGE_ERROR, CURLE_HTTP_POST_ERROR, CURLE_SSL_CONNECT_ERROR, CURLE_BAD_DOWNLOAD_RESUME, CURLE_FILE_COULDNT_READ_FILE, CURLE_LDAP_CANNOT_BIND, CURLE_LDAP_SEARCH_FAILED, CURLE_LIBRARY_NOT_FOUND, CURLE_FUNCTION_NOT_FOUND, CURLE_ABORTED_BY_CALLBACK, CURLE_BAD_FUNCTION_ARGUMENT, CURLE_BAD_CALLING_ORDER, CURLE_INTERFACE_FAILED, CURLE_BAD_PASSWORD_ENTERED, CURLE_TOO_MANY_REDIRECTS , CURLE_UNKNOWN_TELNET_OPTION, CURLE_TELNET_OPTION_SYNTAX , CURLE_OBSOLETE, CURLE_SSL_PEER_CERTIFICATE, CURLE_GOT_NOTHING, CURLE_SSL_ENGINE_NOTFOUND, CURLE_SSL_ENGINE_SETFAILED, CURLE_SEND_ERROR, CURLE_RECV_ERROR, CURLE_SHARE_IN_USE, CURLE_SSL_CERTPROBLEM, CURLE_SSL_CIPHER, CURLE_SSL_CACERT, CURLE_BAD_CONTENT_ENCODING, CURLE_LDAP_INVALID_URL, CURLE_FILESIZE_EXCEEDED, CURLE_FTP_SSL_FAILED, CURLE_SEND_FAIL_REWIND, CURLE_SSL_ENGINE_INITFAILED, CURLE_LOGIN_DENIED, CURLE_TFTP_NOTFOUND, CURLE_TFTP_PERM, CURLE_TFTP_DISKFULL, CURLE_TFTP_ILLEGAL, CURLE_TFTP_UNKNOWNID, CURLE_TFTP_EXISTS, CURLE_TFTP_NOSUCHUSER, CURLE_CONV_FAILED, CURLE_CONV_REQD, CURL_LAST } alias CURLcode function(char* buffer, size_t length) curl_conv_callback; alias CURLcode function( CURL* curl, void* ssl_ctx, void* userptr) curl_ssl_ctx_callback; alias int curl_proxytype; enum { CURLPROXY_HTTP = 0, CURLPROXY_SOCKS4 = 4, CURLPROXY_SOCKS5 = 5 } const int CURLAUTH_NONE = 0; const int CURLAUTH_BASIC = 1 << 0; const int CURLAUTH_DIGEST = 1 << 1; const int CURLAUTH_GSSNEGOTIATE = 1 << 2; const int CURLAUTH_NTLM = 1 << 3; const int CURLAUTH_ANY = ~0; const int CURLAUTH_ANYSAFE = ~CURLAUTH_BASIC; alias int curl_ftpssl; enum { CURLFTPSSL_NONE, CURLFTPSSL_TRY, CURLFTPSSL_CONTROL, CURLFTPSSL_ALL, CURLFTPSSL_LAST } alias int curl_ftpauth; enum { CURLFTPAUTH_DEFAULT, CURLFTPAUTH_SSL, CURLFTPAUTH_TLS, CURLFTPAUTH_LAST } alias int curl_ftpmethod; enum { CURLFTPMETHOD_DEFAULT, CURLFTPMETHOD_MULTICWD, CURLFTPMETHOD_NOCWD, CURLFTPMETHOD_SINGLECWD, CURLFTPMETHOD_LAST } const int CURLOPTTYPE_LONG = 0; // usually 32 bits const int CURLOPTTYPE_OBJECTPOINT = 10000; // a pointer const int CURLOPTTYPE_FUNCTIONPOINT = 20000; // a function pointer const int CURLOPTTYPE_OFF_T = 30000; // usually 64 bits alias int CURLoption; enum { CURLOPT_FILE = CURLOPTTYPE_OBJECTPOINT + 1, CURLOPT_URL = CURLOPTTYPE_OBJECTPOINT + 2, CURLOPT_PORT = CURLOPTTYPE_LONG + 3, CURLOPT_PROXY = CURLOPTTYPE_OBJECTPOINT + 4, CURLOPT_USERPWD = CURLOPTTYPE_OBJECTPOINT + 5, CURLOPT_PROXYUSERPWD = CURLOPTTYPE_OBJECTPOINT + 6, CURLOPT_RANGE = CURLOPTTYPE_OBJECTPOINT + 7, CURLOPT_INFILE = CURLOPTTYPE_OBJECTPOINT + 9, CURLOPT_ERRORBUFFER = CURLOPTTYPE_OBJECTPOINT + 10, CURLOPT_WRITEFUNCTION = CURLOPTTYPE_FUNCTIONPOINT + 11, CURLOPT_READFUNCTION = CURLOPTTYPE_FUNCTIONPOINT + 12, CURLOPT_TIMEOUT = CURLOPTTYPE_LONG + 13, CURLOPT_INFILESIZE = CURLOPTTYPE_LONG + 14, CURLOPT_POSTFIELDS = CURLOPTTYPE_OBJECTPOINT + 15, CURLOPT_REFERER = CURLOPTTYPE_OBJECTPOINT + 16, CURLOPT_FTPPORT = CURLOPTTYPE_OBJECTPOINT + 17, CURLOPT_USERAGENT = CURLOPTTYPE_OBJECTPOINT + 18, CURLOPT_LOW_SPEED_LIMIT = CURLOPTTYPE_LONG + 19, CURLOPT_LOW_SPEED_TIME = CURLOPTTYPE_LONG + 20, CURLOPT_RESUME_FROM = CURLOPTTYPE_LONG + 21, CURLOPT_COOKIE = CURLOPTTYPE_OBJECTPOINT + 22, CURLOPT_HTTPHEADER = CURLOPTTYPE_OBJECTPOINT + 23, CURLOPT_HTTPPOST = CURLOPTTYPE_OBJECTPOINT + 24, CURLOPT_SSLCERT = CURLOPTTYPE_OBJECTPOINT + 25, CURLOPT_SSLCERTPASSWD = CURLOPTTYPE_OBJECTPOINT + 26, CURLOPT_SSLKEYPASSWD = CURLOPTTYPE_OBJECTPOINT + 26, CURLOPT_CRLF = CURLOPTTYPE_LONG + 27, CURLOPT_QUOTE = CURLOPTTYPE_OBJECTPOINT + 28, CURLOPT_WRITEHEADER = CURLOPTTYPE_OBJECTPOINT + 29, CURLOPT_COOKIEFILE = CURLOPTTYPE_OBJECTPOINT + 31, CURLOPT_SSLVERSION = CURLOPTTYPE_LONG + 32, CURLOPT_TIMECONDITION = CURLOPTTYPE_LONG + 33, CURLOPT_TIMEVALUE = CURLOPTTYPE_LONG + 34, CURLOPT_CUSTOMREQUEST = CURLOPTTYPE_OBJECTPOINT + 36, CURLOPT_STDERR = CURLOPTTYPE_OBJECTPOINT + 37, CURLOPT_POSTQUOTE = CURLOPTTYPE_OBJECTPOINT + 39, CURLOPT_WRITEINFO = CURLOPTTYPE_OBJECTPOINT + 40, CURLOPT_VERBOSE = CURLOPTTYPE_LONG + 41, CURLOPT_HEADER = CURLOPTTYPE_LONG + 42, CURLOPT_NOPROGRESS = CURLOPTTYPE_LONG + 43, CURLOPT_NOBODY = CURLOPTTYPE_LONG + 44, CURLOPT_FAILONERROR = CURLOPTTYPE_LONG + 45, CURLOPT_UPLOAD = CURLOPTTYPE_LONG + 46, CURLOPT_POST = CURLOPTTYPE_LONG + 47, CURLOPT_FTPLISTONLY = CURLOPTTYPE_LONG + 48, CURLOPT_FTPAPPEND = CURLOPTTYPE_LONG + 50, CURLOPT_NETRC = CURLOPTTYPE_LONG + 51, CURLOPT_FOLLOWLOCATION = CURLOPTTYPE_LONG + 52, CURLOPT_TRANSFERTEXT = CURLOPTTYPE_LONG + 53, CURLOPT_PUT = CURLOPTTYPE_LONG + 54, CURLOPT_PROGRESSFUNCTION = CURLOPTTYPE_FUNCTIONPOINT + 56, CURLOPT_PROGRESSDATA = CURLOPTTYPE_OBJECTPOINT + 57, CURLOPT_AUTOREFERER = CURLOPTTYPE_LONG + 58, CURLOPT_PROXYPORT = CURLOPTTYPE_LONG + 59, CURLOPT_POSTFIELDSIZE = CURLOPTTYPE_LONG + 60, CURLOPT_HTTPPROXYTUNNEL = CURLOPTTYPE_LONG + 61, CURLOPT_INTERFACE = CURLOPTTYPE_OBJECTPOINT + 62, CURLOPT_KRB4LEVEL = CURLOPTTYPE_OBJECTPOINT + 63, CURLOPT_SSL_VERIFYPEER = CURLOPTTYPE_LONG + 64, CURLOPT_CAINFO = CURLOPTTYPE_OBJECTPOINT + 65, CURLOPT_MAXREDIRS = CURLOPTTYPE_LONG + 68, CURLOPT_FILETIME = CURLOPTTYPE_LONG + 69, CURLOPT_TELNETOPTIONS = CURLOPTTYPE_OBJECTPOINT + 70, CURLOPT_MAXCONNECTS = CURLOPTTYPE_LONG + 71, CURLOPT_CLOSEPOLICY = CURLOPTTYPE_LONG + 72, CURLOPT_FRESH_CONNECT = CURLOPTTYPE_LONG + 74, CURLOPT_FORBID_REUSE = CURLOPTTYPE_LONG + 75, CURLOPT_RANDOM_FILE = CURLOPTTYPE_OBJECTPOINT + 76, CURLOPT_EGDSOCKET = CURLOPTTYPE_OBJECTPOINT + 77, CURLOPT_CONNECTTIMEOUT = CURLOPTTYPE_LONG + 78, CURLOPT_HEADERFUNCTION = CURLOPTTYPE_FUNCTIONPOINT + 79, CURLOPT_HTTPGET = CURLOPTTYPE_LONG + 80, CURLOPT_SSL_VERIFYHOST = CURLOPTTYPE_LONG + 81, CURLOPT_COOKIEJAR = CURLOPTTYPE_OBJECTPOINT + 82, CURLOPT_SSL_CIPHER_LIST = CURLOPTTYPE_OBJECTPOINT + 83, CURLOPT_HTTP_VERSION = CURLOPTTYPE_LONG + 84, CURLOPT_FTP_USE_EPSV = CURLOPTTYPE_LONG + 85, CURLOPT_SSLCERTTYPE = CURLOPTTYPE_OBJECTPOINT + 86, CURLOPT_SSLKEY = CURLOPTTYPE_OBJECTPOINT + 87, CURLOPT_SSLKEYTYPE = CURLOPTTYPE_OBJECTPOINT + 88, CURLOPT_SSLENGINE = CURLOPTTYPE_OBJECTPOINT + 89, CURLOPT_SSLENGINE_DEFAULT = CURLOPTTYPE_LONG + 90, CURLOPT_DNS_USE_GLOBAL_CACHE = CURLOPTTYPE_LONG + 91, CURLOPT_DNS_CACHE_TIMEOUT = CURLOPTTYPE_LONG + 92, CURLOPT_PREQUOTE = CURLOPTTYPE_OBJECTPOINT + 93, CURLOPT_DEBUGFUNCTION = CURLOPTTYPE_FUNCTIONPOINT + 94, CURLOPT_DEBUGDATA = CURLOPTTYPE_OBJECTPOINT + 95, CURLOPT_COOKIESESSION = CURLOPTTYPE_LONG + 96, CURLOPT_CAPATH = CURLOPTTYPE_OBJECTPOINT + 97, CURLOPT_BUFFERSIZE = CURLOPTTYPE_LONG + 98, CURLOPT_NOSIGNAL = CURLOPTTYPE_LONG + 99, CURLOPT_SHARE = CURLOPTTYPE_OBJECTPOINT + 100, CURLOPT_PROXYTYPE = CURLOPTTYPE_LONG + 101, CURLOPT_ENCODING = CURLOPTTYPE_OBJECTPOINT + 102, CURLOPT_PRIVATE = CURLOPTTYPE_OBJECTPOINT + 103, CURLOPT_HTTP200ALIASES = CURLOPTTYPE_OBJECTPOINT + 104, CURLOPT_UNRESTRICTED_AUTH = CURLOPTTYPE_LONG + 105, CURLOPT_FTP_USE_EPRT = CURLOPTTYPE_LONG + 106, CURLOPT_HTTPAUTH = CURLOPTTYPE_LONG + 107, CURLOPT_SSL_CTX_FUNCTION = CURLOPTTYPE_FUNCTIONPOINT + 108, CURLOPT_SSL_CTX_DATA = CURLOPTTYPE_OBJECTPOINT + 109, CURLOPT_FTP_CREATE_MISSING_DIRS = CURLOPTTYPE_LONG + 110, CURLOPT_PROXYAUTH = CURLOPTTYPE_LONG + 111, CURLOPT_FTP_RESPONSE_TIMEOUT = CURLOPTTYPE_LONG + 112, CURLOPT_IPRESOLVE = CURLOPTTYPE_LONG + 113, CURLOPT_MAXFILESIZE = CURLOPTTYPE_LONG + 114, CURLOPT_INFILESIZE_LARGE = CURLOPTTYPE_OFF_T + 115, CURLOPT_RESUME_FROM_LARGE = CURLOPTTYPE_OFF_T + 116, CURLOPT_MAXFILESIZE_LARGE = CURLOPTTYPE_OFF_T + 117, CURLOPT_NETRC_FILE = CURLOPTTYPE_OBJECTPOINT + 118, CURLOPT_FTP_SSL = CURLOPTTYPE_LONG + 119, CURLOPT_POSTFIELDSIZE_LARGE = CURLOPTTYPE_OFF_T + 120, CURLOPT_TCP_NODELAY = CURLOPTTYPE_LONG + 121, CURLOPT_SOURCE_USERPWD = CURLOPTTYPE_OBJECTPOINT + 123, CURLOPT_SOURCE_PREQUOTE = CURLOPTTYPE_OBJECTPOINT + 127, CURLOPT_SOURCE_POSTQUOTE = CURLOPTTYPE_OBJECTPOINT + 128, CURLOPT_FTPSSLAUTH = CURLOPTTYPE_LONG + 129, CURLOPT_IOCTLFUNCTION = CURLOPTTYPE_FUNCTIONPOINT + 130, CURLOPT_IOCTLDATA = CURLOPTTYPE_OBJECTPOINT + 131, CURLOPT_SOURCE_URL = CURLOPTTYPE_OBJECTPOINT + 132, CURLOPT_SOURCE_QUOTE = CURLOPTTYPE_OBJECTPOINT + 133, CURLOPT_FTP_ACCOUNT = CURLOPTTYPE_OBJECTPOINT + 134, CURLOPT_COOKIELIST = CURLOPTTYPE_OBJECTPOINT + 135, CURLOPT_IGNORE_CONTENT_LENGTH = CURLOPTTYPE_LONG + 136, CURLOPT_FTP_SKIP_PASV_IP = CURLOPTTYPE_LONG + 137, CURLOPT_FTP_FILEMETHOD = CURLOPTTYPE_LONG + 138, CURLOPT_LOCALPORT = CURLOPTTYPE_LONG + 139, CURLOPT_LOCALPORTRANGE = CURLOPTTYPE_LONG + 140, CURLOPT_CONNECT_ONLY = CURLOPTTYPE_LONG + 141, CURLOPT_CONV_FROM_NETWORK_FUNCTION = CURLOPTTYPE_FUNCTIONPOINT + 142, CURLOPT_CONV_TO_NETWORK_FUNCTION = CURLOPTTYPE_FUNCTIONPOINT + 143, CURLOPT_CONV_FROM_UTF8_FUNCTION = CURLOPTTYPE_FUNCTIONPOINT + 144, CURLOPT_MAX_SEND_SPEED_LARGE = CURLOPTTYPE_OFF_T + 145, CURLOPT_MAX_RECV_SPEED_LARGE = CURLOPTTYPE_OFF_T + 146, CURLOPT_FTP_ALTERNATIVE_TO_USER = CURLOPTTYPE_OBJECTPOINT + 147, CURLOPT_LASTENTRY } const int CURL_IPRESOLVE_WHATEVER = 0; const int CURL_IPRESOLVE_V4 = 1; const int CURL_IPRESOLVE_V6 = 2; const int CURLOPT_WRITEDATA = CURLOPT_FILE; const int CURLOPT_READDATA = CURLOPT_INFILE; const int CURLOPT_HEADERDATA = CURLOPT_WRITEHEADER; enum { CURL_HTTP_VERSION_NONE, CURL_HTTP_VERSION_1_0, CURL_HTTP_VERSION_1_1, CURL_HTTP_VERSION_LAST } enum { CURL_NETRC_IGNORED, CURL_NETRC_OPTIONAL, CURL_NETRC_REQUIRED, CURL_NETRC_LAST } enum { CURL_SSLVERSION_DEFAULT, CURL_SSLVERSION_TLSv1, CURL_SSLVERSION_SSLv2, CURL_SSLVERSION_SSLv3, CURL_SSLVERSION_LAST } enum { CURL_TIMECOND_NONE, CURL_TIMECOND_IFMODSINCE, CURL_TIMECOND_IFUNMODSINCE, CURL_TIMECOND_LASTMOD, CURL_TIMECOND_LAST } alias int CURLformoption; enum { CURLFORM_NOTHING, CURLFORM_COPYNAME, CURLFORM_PTRNAME, CURLFORM_NAMELENGTH, CURLFORM_COPYCONTENTS, CURLFORM_PTRCONTENTS, CURLFORM_CONTENTSLENGTH, CURLFORM_FILECONTENT, CURLFORM_ARRAY, CURLFORM_OBSOLETE, CURLFORM_FILE, CURLFORM_BUFFER, CURLFORM_BUFFERPTR, CURLFORM_BUFFERLENGTH, CURLFORM_CONTENTTYPE, CURLFORM_CONTENTHEADER, CURLFORM_FILENAME, CURLFORM_END, CURLFORM_OBSOLETE2, CURLFORM_LASTENTRY } struct curl_forms { CURLformoption option; char* value; } alias int CURLFORMcode; enum { CURL_FORMADD_OK, CURL_FORMADD_MEMORY, CURL_FORMADD_OPTION_TWICE, CURL_FORMADD_NULL, CURL_FORMADD_UNKNOWN_OPTION, CURL_FORMADD_INCOMPLETE, CURL_FORMADD_ILLEGAL_ARRAY, CURL_FORMADD_DISABLED, CURL_FORMADD_LAST } CURLFORMcode curl_formadd( curl_httppost** httppost, curl_httppost** last_post, ...); alias size_t function(void* arg, char* buf, size_t len) curl_formget_callback; int curl_formget(curl_httppost* form, void* arg, curl_formget_callback append); void curl_formfree(curl_httppost* form); char* curl_getenv(char* variable); char* curl_version(); char* curl_easy_escape(CURL* handle, char* string, int length); char* curl_easy_unescape( CURL* handle, char* string, int length, int* outlength); void curl_free(void* p); CURLcode curl_global_init(int flags); CURLcode curl_global_init_mem( int flags, curl_malloc_callback m, curl_free_callback f, curl_realloc_callback r, curl_strdup_callback s, curl_calloc_callback c); void curl_global_cleanup(); struct curl_slist { char* data; curl_slist* next; } curl_slist* curl_slist_append(curl_slist*, char*); void curl_slist_free_all(curl_slist*); size_t curl_getdate(char* p, size_t* unused); const int CURLINFO_STRING = 0x100000; const int CURLINFO_LONG = 0x200000; const int CURLINFO_DOUBLE = 0x300000; const int CURLINFO_SLIST = 0x400000; const int CURLINFO_MASK = 0x0fffff; const int CURLINFO_TYPEMASK = 0xf00000; alias int CURLINFO; enum { CURLINFO_NONE, 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_DOWNLOAD = CURLINFO_DOUBLE + 8, CURLINFO_SPEED_DOWNLOAD = CURLINFO_DOUBLE + 9, CURLINFO_SPEED_UPLOAD = CURLINFO_DOUBLE + 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_UPLOAD = CURLINFO_DOUBLE + 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_LASTONE = 30 } alias int curl_closepolicy; enum { CURLCLOSEPOLICY_NONE, CURLCLOSEPOLICY_OLDEST, CURLCLOSEPOLICY_LEAST_RECENTLY_USED, CURLCLOSEPOLICY_LEAST_TRAFFIC, CURLCLOSEPOLICY_SLOWEST, CURLCLOSEPOLICY_CALLBACK, CURLCLOSEPOLICY_LAST } const int CURL_GLOBAL_SSL = 1 << 0; const int CURL_GLOBAL_WIN32 = 1 << 1; const int CURL_GLOBAL_ALL = CURL_GLOBAL_SSL | CURL_GLOBAL_WIN32; const int CURL_GLOBAL_NOTHING = 0; const int CURL_GLOBAL_DEFAULT = CURL_GLOBAL_ALL; //{{{ share alias int curl_lock_data; enum { CURL_LOCK_DATA_NONE = 0, 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 } alias int curl_lock_access; enum { CURL_LOCK_ACCESS_NONE = 0, CURL_LOCK_ACCESS_SHARED = 1, CURL_LOCK_ACCESS_SINGLE = 2, CURL_LOCK_ACCESS_LAST } alias void function( CURL* handle, curl_lock_data data, curl_lock_access locktype, void* userptr) curl_lock_function; alias void function( CURL* handle, curl_lock_data data, void* userptr) curl_unlock_function; alias void CURLSH; alias int CURLSHcode; enum { CURLSHE_OK, CURLSHE_BAD_OPTION, CURLSHE_IN_USE, CURLSHE_INVALID, CURLSHE_NOMEM, CURLSHE_LAST } alias int CURLSHoption; enum { CURLSHOPT_NONE, CURLSHOPT_SHARE, CURLSHOPT_UNSHARE, CURLSHOPT_LOCKFUNC, CURLSHOPT_UNLOCKFUNC, CURLSHOPT_USERDATA, CURLSHOPT_LAST } CURLSH* curl_share_init(); CURLSHcode curl_share_setopt(CURLSH*, CURLSHoption option, ...); CURLSHcode curl_share_cleanup(CURLSH*); char* curl_share_strerror(CURLSHcode); //}}} //{{{ version alias int CURLversion; enum { CURLVERSION_FIRST, CURLVERSION_SECOND, CURLVERSION_THIRD, CURLVERSION_LAST } const int CURLVERSION_NOW = CURLVERSION_THIRD; struct curl_version_info_data { CURLversion age; char* version_str; uint version_num; char* host; int features; char* ssl_version; int ssl_version_num; char* libz_version; char** protocols; char* ares; int ares_num; char* libidn; int iconv_ver_num; } const int CURL_VERSION_IPV6 = 1 << 0; const int CURL_VERSION_KERBEROS4 = 1 << 1; const int CURL_VERSION_SSL = 1 << 2; const int CURL_VERSION_LIBZ = 1 << 3; const int CURL_VERSION_NTLM = 1 << 4; const int CURL_VERSION_GSSNEGOTIATE = 1 << 5; const int CURL_VERSION_DEBUG = 1 << 6; const int CURL_VERSION_ASYNCHDNS = 1 << 7; const int CURL_VERSION_SPNEGO = 1 << 8; const int CURL_VERSION_LARGEFILE = 1 << 9; const int CURL_VERSION_IDN = 1 << 10; const int CURL_VERSION_SSPI = 1 << 11; const int CURL_VERSION_CONV = 1 << 12; curl_version_info_data* curl_version_info(CURLversion); char* curl_easy_strerror(CURLcode); //}}}