package vendor:curl
Index
Types (117)
- CURL
- CURLM
- CURLSH
- CURLU
- Hcode
- INFO
- MSG
- MULTI_NOTIFY
- Mcode
- Minfo
- Moption
- Msg
- NETRC_OPTION
- SHcode
- SHoption
- STScode
- TLSAUTH
- TimeCond
- UFlag
- UFlags
- UPart
- Ucode
- blob
- blob_flag
- blob_flags
- calloc_callback
- certinfo
- chunk_bgn_callback
- chunk_end_callback
- closepolicy
- closesocket_callback
- code
- conv_callback
- curl_notify_function
- debug_callback
- easyoption
- easyoptionflag
- easyoptionflags
- easytype
- fileinfo
- filetype
- finfoflag
- finfoflags
- fnmatch_callback
- formget_callback
- free_callback
- ftpauth
- ftpccc
- ftpcreatedir
- ftpmethod
- header
- header_origin_bit
- header_origin_bits
- hstsentry
- hstsread_callback
- hstswrite_callback
- httppost
- httppost_flag
- httppost_flags
- index
- infotype
- iocmd
- ioctl_callback
- ioerr
- khkey
- khmatch
- khstat
- khtype
- lock_access
- lock_data
- lock_function
- malloc_callback
- mime
- mimepart
- multi_timer_callback
- off_t
- opensocket_callback
- option
- platform_fd_set
- platform_sockaddr
- prereq_callback
- progress_callback
- proxycode
- proxytype
- push_callback
- pushheaders
- read_callback
- realloc_callback
- resolver_start_callback
- seek_callback
- slist
- sockaddr
- socket_callback
- socket_t
- socklen_t
- sockopt_callback
- socktype
- sshhostkeycallback
- sshkeycallback
- ssl_backend
- ssl_ctx_callback
- sslbackend
- ssls_export_cb
- sslset
- strdup_callback
- tlssessioninfo
- trailer_callback
- unlock_function
- usessl
- version_enum
- version_info_data
- waitfd
- write_callback
- ws_flag
- ws_flags
- ws_frame
- xferinfo_callback
Constants (309)
- ALTSVC_H1
- ALTSVC_H2
- ALTSVC_H3
- ALTSVC_READONLYFILE
- AUTH_ANY
- AUTH_ANYSAFE
- AUTH_AWS_SIGV4
- AUTH_BASIC
- AUTH_BEARER
- AUTH_DIGEST
- AUTH_DIGEST_IE
- AUTH_GSSAPI
- AUTH_GSSNEGOTIATE
- AUTH_NEGOTIATE
- AUTH_NONE
- AUTH_NTLM
- AUTH_ONLY
- BLOB_COPY
- BLOB_NOCOPY
- CHUNK_BGN_FUNC_FAIL
- CHUNK_BGN_FUNC_OK
- CHUNK_BGN_FUNC_SKIP
- CHUNK_END_FUNC_FAIL
- CHUNK_END_FUNC_OK
- COPYRIGHT
- CSELECT_ERR
- CSELECT_IN
- CSELECT_OUT
- ERROR_SIZE
- FINFOFLAG_KNOWN_FILENAME
- FINFOFLAG_KNOWN_FILETYPE
- FINFOFLAG_KNOWN_GID
- FINFOFLAG_KNOWN_HLINKCOUNT
- FINFOFLAG_KNOWN_PERM
- FINFOFLAG_KNOWN_SIZE
- FINFOFLAG_KNOWN_TIME
- FINFOFLAG_KNOWN_UID
- FNMATCHFUNC_FAIL
- FNMATCHFUNC_MATCH
- FNMATCHFUNC_NOMATCH
- FOLLOW_ALL
- FOLLOW_FIRSTONLY
- FOLLOW_OBEYCODE
- GLOBAL_ACK_EINTR
- GLOBAL_ALL
- GLOBAL_DEFAULT
- GLOBAL_NOTHING
- GLOBAL_SSL
- GLOBAL_WIN32
- GSSAPI_DELEGATION_FLAG
- GSSAPI_DELEGATION_NONE
- GSSAPI_DELEGATION_POLICY_FLAG
- HEADER_SEPARATE
- HEADER_UNIFIED
- HET_DEFAULT
- HSTS_ENABLE
- HSTS_READONLYFILE
- HTTPPOST_BUFFER
- HTTPPOST_CALLBACK
- HTTPPOST_FILENAME
- HTTPPOST_LARGE
- HTTPPOST_PTRBUFFER
- HTTPPOST_PTRCONTENTS
- HTTPPOST_PTRNAME
- HTTPPOST_READFILE
- HTTP_VERSION_1_0
- HTTP_VERSION_1_1
- HTTP_VERSION_2
- HTTP_VERSION_2TLS
- HTTP_VERSION_2_0
- HTTP_VERSION_2_PRIOR_KNOWLEDGE
- HTTP_VERSION_3
- HTTP_VERSION_3ONLY
- HTTP_VERSION_LAST
- HTTP_VERSION_NONE
- H_1XX
- H_CONNECT
- H_HEADER
- H_PSEUDO
- H_TRAILER
- INFO_DOUBLE
- INFO_LONG
- INFO_MASK
- INFO_OFF_T
- INFO_PTR
- INFO_SLIST
- INFO_SOCKET
- INFO_STRING
- INFO_TYPEMASK
- IPRESOLVE_V4
- IPRESOLVE_V6
- IPRESOLVE_WHATEVER
- MAX_HTTP_HEADER
- MAX_READ_SIZE
- MAX_WRITE_SIZE
- MIMEOPT_FORMESCAPE
- MNWC_CLEAR_CONNS
- MNWC_CLEAR_DNS
- NETRC_IGNORED
- NETRC_OPTIONAL
- NETRC_REQUIRED
- OPTTYPE_BLOB
- OPTTYPE_CBPOINT
- OPTTYPE_FUNCTIONPOINT
- OPTTYPE_LONG
- OPTTYPE_OBJECTPOINT
- OPTTYPE_OFF_T
- OPTTYPE_SLISTPOINT
- OPTTYPE_STRINGPOINT
- OPTTYPE_VALUES
- PAUSE_ALL
- PAUSE_CONT
- PAUSE_RECV
- PAUSE_RECV_CONT
- PAUSE_SEND
- PAUSE_SEND_CONT
- PIPE_HTTP1
- PIPE_MULTIPLEX
- PIPE_NOTHING
- POLL_IN
- POLL_INOUT
- POLL_NONE
- POLL_OUT
- POLL_REMOVE
- PREREQFUNC_ABORT
- PREREQFUNC_OK
- PROGRESSFUNC_CONTINUE
- PROTO_ALL
- PROTO_DICT
- PROTO_FILE
- PROTO_FTP
- PROTO_FTPS
- PROTO_GOPHER
- PROTO_GOPHERS
- PROTO_HTTP
- PROTO_HTTPS
- PROTO_IMAP
- PROTO_IMAPS
- PROTO_LDAP
- PROTO_LDAPS
- PROTO_MQTT
- PROTO_POP3
- PROTO_POP3S
- PROTO_RTMP
- PROTO_RTMPE
- PROTO_RTMPS
- PROTO_RTMPT
- PROTO_RTMPTE
- PROTO_RTMPTS
- PROTO_RTSP
- PROTO_SCP
- PROTO_SFTP
- PROTO_SMB
- PROTO_SMBS
- PROTO_SMTP
- PROTO_SMTPS
- PROTO_TELNET
- PROTO_TFTP
- PT_RTSPHEADER
- PUSH_DENY
- PUSH_ERROROUT
- PUSH_OK
- READFUNC_ABORT
- READFUNC_PAUSE
- REDIR_GET_ALL
- REDIR_POST_301
- REDIR_POST_302
- REDIR_POST_303
- REDIR_POST_ALL
- RTSPREQ_ANNOUNCE
- RTSPREQ_DESCRIBE
- RTSPREQ_GET_PARAMETER
- RTSPREQ_LAST
- RTSPREQ_NONE
- RTSPREQ_OPTIONS
- RTSPREQ_PAUSE
- RTSPREQ_PLAY
- RTSPREQ_RECEIVE
- RTSPREQ_RECORD
- RTSPREQ_SETUP
- RTSPREQ_SET_PARAMETER
- RTSPREQ_TEARDOWN
- SEEKFUNC_CANTSEEK
- SEEKFUNC_FAIL
- SEEKFUNC_OK
- SOCKET_BAD
- SOCKET_TIMEOUT
- SOCKOPT_ALREADY_CONNECTED
- SOCKOPT_ERROR
- SOCKOPT_OK
- SSH_AUTH_AGENT
- SSH_AUTH_ANY
- SSH_AUTH_DEFAULT
- SSH_AUTH_GSSAPI
- SSH_AUTH_HOST
- SSH_AUTH_KEYBOARD
- SSH_AUTH_NONE
- SSH_AUTH_PASSWORD
- SSH_AUTH_PUBLICKEY
- SSLOPT_ALLOW_BEAST
- SSLOPT_AUTO_CLIENT_CERT
- SSLOPT_EARLYDATA
- SSLOPT_NATIVE_CA
- SSLOPT_NO_PARTIALCHAIN
- SSLOPT_NO_REVOKE
- SSLOPT_REVOKE_BEST_EFFORT
- SSLVERSION_DEFAULT
- SSLVERSION_LAST
- SSLVERSION_MAX_DEFAULT
- SSLVERSION_MAX_LAST
- SSLVERSION_MAX_NONE
- SSLVERSION_MAX_TLSv1_0
- SSLVERSION_MAX_TLSv1_1
- SSLVERSION_MAX_TLSv1_2
- SSLVERSION_MAX_TLSv1_3
- SSLVERSION_SSLv2
- SSLVERSION_SSLv3
- SSLVERSION_TLSv1
- SSLVERSION_TLSv1_0
- SSLVERSION_TLSv1_1
- SSLVERSION_TLSv1_2
- SSLVERSION_TLSv1_3
- TIMECOND_IFMODSINCE
- TIMECOND_IFUNMODSINCE
- TIMECOND_LASTMOD
- TIMECOND_NONE
- TIMESTAMP
- TLSAUTH_NONE
- TLSAUTH_SRP
- TRAILERFUNC_ABORT
- TRAILERFUNC_OK
- ULFLAG_ANSWERED
- ULFLAG_DELETED
- ULFLAG_DRAFT
- ULFLAG_FLAGGED
- ULFLAG_SEEN
- UPKEEP_INTERVAL_DEFAULT
- USESSL_ALL
- USESSL_CONTROL
- USESSL_NONE
- USESSL_TRY
- U_ALLOW_SPACE
- U_APPENDQUERY
- U_DEFAULT_PORT
- U_DEFAULT_SCHEME
- U_DISALLOW_USER
- U_GET_EMPTY
- U_GUESS_SCHEME
- U_NON_SUPPORT_SCHEME
- U_NO_AUTHORITY
- U_NO_DEFAULT_PORT
- U_NO_GUESS_SCHEME
- U_PATH_AS_IS
- U_PUNY2IDN
- U_PUNYCODE
- U_URLDECODE
- U_URLENCODE
- VERSION
- VERSION_ALTSVC
- VERSION_ASYNCHDNS
- VERSION_BROTLI
- VERSION_CONV
- VERSION_CURLDEBUG
- VERSION_DEBUG
- VERSION_GSASL
- VERSION_GSSAPI
- VERSION_GSSNEGOTIATE
- VERSION_HSTS
- VERSION_HTTP2
- VERSION_HTTP3
- VERSION_HTTPS_PROXY
- VERSION_IDN
- VERSION_IPV6
- VERSION_KERBEROS4
- VERSION_KERBEROS5
- VERSION_LARGEFILE
- VERSION_LIBZ
- VERSION_MAJOR
- VERSION_MINOR
- VERSION_MULTI_SSL
- VERSION_NOW
- VERSION_NTLM
- VERSION_NTLM_WB
- VERSION_NUM
- VERSION_PATCH
- VERSION_PSL
- VERSION_SPNEGO
- VERSION_SSL
- VERSION_SSPI
- VERSION_THREADSAFE
- VERSION_TLSAUTH_SRP
- VERSION_UNICODE
- VERSION_UNIX_SOCKETS
- VERSION_ZSTD
- WAIT_POLLIN
- WAIT_POLLOUT
- WAIT_POLLPRI
- WRITEFUNC_ERROR
- WRITEFUNC_PAUSE
- WS_BINARY
- WS_CLOSE
- WS_CONT
- WS_NOAUTOPONG
- WS_OFFSET
- WS_PING
- WS_PONG
- WS_RAW_MODE
- WS_TEXT
- ZERO_TERMINATED
Variables (0)
This section is empty.
Procedures (85)
- easy_cleanup
- easy_duphandle
- easy_escape
- easy_getinfo
- easy_header
- easy_init
- easy_nextheader
- easy_option_by_id
- easy_option_by_name
- easy_option_next
- easy_pause
- easy_perform
- easy_recv
- easy_reset
- easy_send
- easy_setopt
- easy_ssls_export
- easy_ssls_import
- easy_strerror
- easy_unescape
- easy_upkeep
- escape
- free
- getdate
- getenv
- global_cleanup
- global_init
- global_init_mem
- global_sslset
- global_trace
- mime_addpart
- mime_data
- mime_data_cb
- mime_encoder
- mime_filedata
- mime_filename
- mime_free
- mime_headers
- mime_init
- mime_name
- mime_subparts
- mime_type
- multi_add_handle
- multi_assign
- multi_cleanup
- multi_fdset
- multi_get_handles
- multi_get_offt
- multi_info_read
- multi_init
- multi_notify_disable
- multi_notify_enable
- multi_perform
- multi_poll
- multi_remove_handle
- multi_setopt
- multi_socket_action
- multi_strerror
- multi_timeout
- multi_wait
- multi_waitfds
- multi_wakeup
- pushheader_byname
- pushheader_bynum
- share_cleanup
- share_init
- share_setopt
- share_strerror
- slist_append
- slist_free_all
- strequal
- strnequal
- unescape
- url
- url_cleanup
- url_dup
- url_get
- url_set
- url_strerror
- version
- version_info
- ws_meta
- ws_recv
- ws_send
- ws_start_frame
Procedure Groups (0)
This section is empty.
Types
Hcode ¶
Hcode :: enum i32 { E_OK, E_BADINDEX, // header exists but not with this index E_MISSING, // no such header exists E_NOHEADERS, // no headers at all exist (yet) E_NOREQUEST, // no request with this number was used E_OUT_OF_MEMORY, // out of memory while processing E_BAD_ARGUMENT, // a function argument was not okay E_NOT_BUILT_IN, // if API was disabled in the build }
Related Procedures With Returns
INFO ¶
INFO :: enum i32 { NONE, // first, never use this EFFECTIVE_URL = 1048577, RESPONSE_CODE = 2097154, TOTAL_TIME = 3145731, NAMELOOKUP_TIME = 3145732, CONNECT_TIME = 3145733, PRETRANSFER_TIME = 3145734, SIZE_UPLOAD_T = 6291463, SIZE_DOWNLOAD_T = 6291464, SPEED_DOWNLOAD_T = 6291465, SPEED_UPLOAD_T = 6291466, HEADER_SIZE = 2097163, REQUEST_SIZE = 2097164, SSL_VERIFYRESULT = 2097165, FILETIME = 2097166, FILETIME_T = 6291470, CONTENT_LENGTH_DOWNLOAD_T = 6291471, CONTENT_LENGTH_UPLOAD_T = 6291472, STARTTRANSFER_TIME = 3145745, CONTENT_TYPE = 1048594, REDIRECT_TIME = 3145747, REDIRECT_COUNT = 2097172, PRIVATE = 1048597, HTTP_CONNECTCODE = 2097174, HTTPAUTH_AVAIL = 2097175, PROXYAUTH_AVAIL = 2097176, OS_ERRNO = 2097177, NUM_CONNECTS = 2097178, SSL_ENGINES = 4194331, COOKIELIST = 4194332, FTP_ENTRY_PATH = 1048606, REDIRECT_URL = 1048607, PRIMARY_IP = 1048608, APPCONNECT_TIME = 3145761, CERTINFO = 4194338, CONDITION_UNMET = 2097187, RTSP_SESSION_ID = 1048612, RTSP_CLIENT_CSEQ = 2097189, RTSP_SERVER_CSEQ = 2097190, RTSP_CSEQ_RECV = 2097191, PRIMARY_PORT = 2097192, LOCAL_IP = 1048617, LOCAL_PORT = 2097194, ACTIVESOCKET = 5242924, TLS_SSL_PTR = 4194349, HTTP_VERSION = 2097198, PROXY_SSL_VERIFYRESULT = 2097199, SCHEME = 1048625, TOTAL_TIME_T = 6291506, NAMELOOKUP_TIME_T = 6291507, CONNECT_TIME_T = 6291508, PRETRANSFER_TIME_T = 6291509, STARTTRANSFER_TIME_T = 6291510, REDIRECT_TIME_T = 6291511, APPCONNECT_TIME_T = 6291512, RETRY_AFTER = 6291513, EFFECTIVE_METHOD = 1048634, PROXY_ERROR = 2097211, REFERER = 1048636, CAINFO = 1048637, CAPATH = 1048638, XFER_ID = 6291519, CONN_ID = 6291520, QUEUE_TIME_T = 6291521, USED_PROXY = 2097218, POSTTRANSFER_TIME_T = 6291523, EARLYDATA_SENT_T = 6291524, HTTPAUTH_USED = 2097221, PROXYAUTH_USED = 2097222, // CURLINFO_RESPONSE_CODE is the new name for the option previously known as // CURLINFO_HTTP_CODE HTTP_CODE = 2097154, }
Related Procedures With Parameters
MSG ¶
MSG :: enum i32 { NONE, // first, not used DONE, // This easy handle has completed. 'result' contains the CURLcode of the transfer }
MULTI_NOTIFY ¶
MULTI_NOTIFY :: enum u32 { INFO_READ = 0, EASY_DONE = 1, }
* Notifications dispatched by a multi handle, when enabled.
Related Procedures With Parameters
Mcode ¶
Mcode :: enum i32 { CALL_MULTI_PERFORM = -1, // please call curl_multi_perform() or curl_multi_socket*() soon OK, BAD_HANDLE, // the passed-in handle is not a valid CURLM handle BAD_EASY_HANDLE, // an easy handle was not good/valid OUT_OF_MEMORY, // if you ever get this, you are in deep sh*t INTERNAL_ERROR, // this is a libcurl bug BAD_SOCKET, // the passed in socket argument did not match UNKNOWN_OPTION, // curl_multi_setopt() with unsupported option ADDED_ALREADY, // an easy handle already added to a multi handle was attempted to get added - again RECURSIVE_API_CALL, // an api function was called from inside a callback WAKEUP_FAILURE, // wakeup is unavailable or failed BAD_FUNCTION_ARGUMENT, // function called with a bad parameter ABORTED_BY_CALLBACK, UNRECOVERABLE_POLL, CALL_MULTI_SOCKET = -1, }
Related Procedures With Parameters
Minfo ¶
Minfo :: enum i32 { // first, never use this NONE = 0, // The number of easy handles currently managed by the multi handle, // * e.g. have been added but not yet removed. XFERS_CURRENT = 1, // The number of easy handles running, e.g. not done and not queueing. XFERS_RUNNING = 2, // The number of easy handles waiting to start, e.g. for a connection // * to become available due to limits on parallelism, max connections // * or other factors. INFO_XFERS_PENDING = 3, // The number of easy handles finished, waiting for their results to // * be read via `curl_multi_info_read()`. XFERS_DONE = 4, // The total number of easy handles added to the multi handle, ever. XFERS_ADDED = 5, // the last unused LASTENTRY, }
Related Procedures With Parameters
Moption ¶
Moption :: enum i32 { // This is the socket callback function pointer SOCKETFUNCTION = 20001, // This is the argument passed to the socket callback SOCKETDATA = 10002, // set to 1 to enable pipelining for this multi handle PIPELINING = 3, // This is the timer callback function pointer TIMERFUNCTION = 20004, // This is the argument passed to the timer callback TIMERDATA = 10005, // maximum number of entries in the connection cache MAXCONNECTS = 6, // maximum number of (pipelining) connections to one host MAX_HOST_CONNECTIONS = 7, // maximum number of requests in a pipeline MAX_PIPELINE_LENGTH = 8, // a connection with a content-length longer than this // will not be considered for pipelining CONTENT_LENGTH_PENALTY_SIZE = 30009, // a connection with a chunk length longer than this // will not be considered for pipelining CHUNK_LENGTH_PENALTY_SIZE = 30010, // a list of site names(+port) that are blocked from pipelining PIPELINING_SITE_BL = 10011, // a list of server types that are blocked from pipelining PIPELINING_SERVER_BL = 10012, // maximum number of open connections in total MAX_TOTAL_CONNECTIONS = 13, // This is the server push callback function pointer PUSHFUNCTION = 20014, // This is the argument passed to the server push callback PUSHDATA = 10015, // maximum number of concurrent streams to support on a connection MAX_CONCURRENT_STREAMS = 16, // network has changed, adjust caches/connection reuse NETWORK_CHANGED = 17, // This is the notify callback function pointer NOTIFYFUNCTION = 20018, // This is the argument passed to the notify callback NOTIFYDATA = 10019, }
Related Procedures With Parameters
Msg ¶
Msg :: struct { msg: MSG, // what this message means easy_handle: ^CURL, // the handle it concerns data: struct #raw_union { whatever: rawptr, // message-specific data result: code, }, }
Related Procedures With Returns
NETRC_OPTION ¶
NETRC_OPTION :: enum i32 { // we set a single member here, just to make sure we still provide the enum, // but the values to use are defined above with L suffixes LAST = 3, }
SHcode ¶
SHcode :: enum i32 { OK, // all is fine BAD_OPTION, // 1 IN_USE, // 2 INVALID, // 3 NOMEM, // 4 out of memory NOT_BUILT_IN, // 5 feature not present in lib }
Related Procedures With Parameters
Related Procedures With Returns
SHoption ¶
SHoption :: enum i32 { NONE, // do not 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 }
Related Procedures With Parameters
TLSAUTH ¶
TLSAUTH :: enum i32 { // we set a single member here, just to make sure we still provide the enum, // but the values to use are defined above with L suffixes LAST = 2, }
TimeCond ¶
TimeCond :: enum i32 { // we set a single member here, just to make sure we still provide // the enum typedef, but the values to use are defined above with L // suffixes LAST = 4, }
UFlag ¶
UFlag :: enum u32 { DEFAULT_PORT = 0, // return default port number NO_DEFAULT_PORT = 1, // act as if no port number was set, if the port number matches the default for the scheme DEFAULT_SCHEME = 2, // return default scheme if missing NON_SUPPORT_SCHEME = 3, // allow non-supported scheme PATH_AS_IS = 4, // leave dot sequences DISALLOW_USER = 5, // no user+password allowed URLDECODE = 6, // URL decode on get URLENCODE = 7, // URL encode on set APPENDQUERY = 8, // append a form style part GUESS_SCHEME = 9, // legacy curl-style guessing NO_AUTHORITY = 10, // Allow empty authority when the scheme is unknown. ALLOW_SPACE = 11, // Allow spaces in the URL PUNYCODE = 12, // get the hostname in punycode PUNY2IDN = 13, // punycode => IDN conversion GET_EMPTY = 14, // allow empty queries and fragments when extracting the URL or the components NO_GUESS_SCHEME = 15, // for get, do not accept a guess }
UFlags ¶
Related Constants
UPart ¶
UPart :: enum i32 { URL, SCHEME, USER, PASSWORD, OPTIONS, HOST, PORT, PATH, QUERY, FRAGMENT, ZONEID, // added in 7.65.0 }
Ucode ¶
Ucode :: enum i32 { E_OK, E_BAD_HANDLE, // 1 E_BAD_PARTPOINTER, // 2 E_MALFORMED_INPUT, // 3 E_BAD_PORT_NUMBER, // 4 E_UNSUPPORTED_SCHEME, // 5 E_URLDECODE, // 6 E_OUT_OF_MEMORY, // 7 E_USER_NOT_ALLOWED, // 8 E_UNKNOWN_PART, // 9 E_NO_SCHEME, // 10 E_NO_USER, // 11 E_NO_PASSWORD, // 12 E_NO_OPTIONS, // 13 E_NO_HOST, // 14 E_NO_PORT, // 15 E_NO_QUERY, // 16 E_NO_FRAGMENT, // 17 E_NO_ZONEID, // 18 E_BAD_FILE_URL, // 19 E_BAD_FRAGMENT, // 20 E_BAD_HOSTNAME, // 21 E_BAD_IPV6, // 22 E_BAD_LOGIN, // 23 E_BAD_PASSWORD, // 24 E_BAD_PATH, // 25 E_BAD_QUERY, // 26 E_BAD_SCHEME, // 27 E_BAD_SLASHES, // 28 E_BAD_USER, // 29 E_LACKS_IDN, // 30 E_TOO_LARGE, // 31 }
the error codes for the URL API
Related Procedures With Parameters
blob ¶
blob :: struct { data: rawptr, len: uint, flags: blob_flags, }
blob_flag ¶
blob_flag :: enum u32 { COPY = 0, }
blob_flags ¶
Related Constants
calloc_callback ¶
Related Procedures With Parameters
certinfo ¶
certinfo :: struct { num_of_certs: i32, // number of certificates with information certinfo: ^^slist, }
info about the certificate chain, for SSL backends that support it. Asked for with CURLOPT_CERTINFO / CURLINFO_CERTINFO
chunk_bgn_callback ¶
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
chunk_end_callback ¶
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 do not need "transfer_info" parameter in this callback and we are not interested in "remains" parameter too.
closepolicy ¶
closepolicy :: enum i32 { NONE, // first, never use this CURLCLOSEPOLICY_OLDEST, CURLCLOSEPOLICY_LEAST_RECENTLY_USED, CURLCLOSEPOLICY_LEAST_TRAFFIC, CURLCLOSEPOLICY_SLOWEST, CURLCLOSEPOLICY_CALLBACK, }
code ¶
code :: enum i32 { E_OK = 0, E_UNSUPPORTED_PROTOCOL, // 1 E_FAILED_INIT, // 2 E_URL_MALFORMAT, // 3 E_NOT_BUILT_IN, // 4 - [was obsoleted in August 2007 for 7.17.0, reused in April 2011 for 7.21.5] E_COULDNT_RESOLVE_PROXY, // 5 E_COULDNT_RESOLVE_HOST, // 6 E_COULDNT_CONNECT, // 7 E_WEIRD_SERVER_REPLY, // 8 E_REMOTE_ACCESS_DENIED, // 9 a service was denied by the server due to lack of access - when login fails this is not returned. E_FTP_ACCEPT_FAILED, // 10 - [was obsoleted in April 2006 for 7.15.4, reused in Dec 2011 for 7.24.0] E_FTP_WEIRD_PASS_REPLY, // 11 E_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] E_FTP_WEIRD_PASV_REPLY, // 13 E_FTP_WEIRD_227_FORMAT, // 14 E_FTP_CANT_GET_HOST, // 15 E_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] E_FTP_COULDNT_SET_TYPE, // 17 E_PARTIAL_FILE, // 18 E_FTP_COULDNT_RETR_FILE, // 19 E_OBSOLETE20, // 20 - NOT USED E_QUOTE_ERROR, // 21 - quote command failure E_HTTP_RETURNED_ERROR, // 22 E_WRITE_ERROR, // 23 E_OBSOLETE24, // 24 - NOT USED E_UPLOAD_FAILED, // 25 - failed upload "command" E_READ_ERROR, // 26 - could not open/read from file E_OUT_OF_MEMORY, // 27 E_OPERATION_TIMEDOUT, // 28 - the timeout time was reached E_OBSOLETE29, // 29 - NOT USED E_FTP_PORT_FAILED, // 30 - FTP PORT operation failed E_FTP_COULDNT_USE_REST, // 31 - the REST command failed E_OBSOLETE32, // 32 - NOT USED E_RANGE_ERROR, // 33 - RANGE "command" did not work E_OBSOLETE34, // 34 E_SSL_CONNECT_ERROR, // 35 - wrong when connecting with SSL E_BAD_DOWNLOAD_RESUME, // 36 - could not resume download E_FILE_COULDNT_READ_FILE, // 37 E_LDAP_CANNOT_BIND, // 38 E_LDAP_SEARCH_FAILED, // 39 E_OBSOLETE40, // 40 - NOT USED E_OBSOLETE41, // 41 - NOT USED starting with 7.53.0 E_ABORTED_BY_CALLBACK, // 42 E_BAD_FUNCTION_ARGUMENT, // 43 E_OBSOLETE44, // 44 - NOT USED E_INTERFACE_FAILED, // 45 - CURLOPT_INTERFACE failed E_OBSOLETE46, // 46 - NOT USED E_TOO_MANY_REDIRECTS, // 47 - catch endless re-direct loops E_UNKNOWN_OPTION, // 48 - User specified an unknown option E_SETOPT_OPTION_SYNTAX, // 49 - Malformed setopt option E_OBSOLETE50, // 50 - NOT USED E_OBSOLETE51, // 51 - NOT USED E_GOT_NOTHING, // 52 - when this is a specific error E_SSL_ENGINE_NOTFOUND, // 53 - SSL crypto engine not found E_SSL_ENGINE_SETFAILED, // 54 - can not set SSL crypto engine as default E_SEND_ERROR, // 55 - failed sending network data E_RECV_ERROR, // 56 - failure in receiving network data E_OBSOLETE57, // 57 - NOT IN USE E_SSL_CERTPROBLEM, // 58 - problem with the local certificate E_SSL_CIPHER, // 59 - could not use specified cipher E_PEER_FAILED_VERIFICATION, // 60 - peer's certificate or fingerprint was not verified fine E_BAD_CONTENT_ENCODING, // 61 - Unrecognized/bad encoding E_OBSOLETE62, // 62 - NOT IN USE since 7.82.0 E_FILESIZE_EXCEEDED, // 63 - Maximum file size exceeded E_USE_SSL_FAILED, // 64 - Requested FTP SSL level failed E_SEND_FAIL_REWIND, // 65 - Sending the data requires a rewind that failed E_SSL_ENGINE_INITFAILED, // 66 - failed to initialise ENGINE E_LOGIN_DENIED, // 67 - user, password or similar was not accepted and we failed to login E_TFTP_NOTFOUND, // 68 - file not found on server E_TFTP_PERM, // 69 - permission problem on server E_REMOTE_DISK_FULL, // 70 - out of disk space on server E_TFTP_ILLEGAL, // 71 - Illegal TFTP operation E_TFTP_UNKNOWNID, // 72 - Unknown transfer ID E_REMOTE_FILE_EXISTS, // 73 - File already exists E_TFTP_NOSUCHUSER, // 74 - No such user E_OBSOLETE75, // 75 - NOT IN USE since 7.82.0 E_OBSOLETE76, // 76 - NOT IN USE since 7.82.0 E_SSL_CACERT_BADFILE, // 77 - could not load CACERT file, missing or wrong format E_REMOTE_FILE_NOT_FOUND, // 78 - remote file not found E_SSH, // 79 - error from the SSH layer, somewhat generic so the error message will be of interest when this has happened E_SSL_SHUTDOWN_FAILED, // 80 - Failed to shut down the SSL connection E_AGAIN, // 81 - socket is not ready for send/recv, wait till it is ready and try again (Added in 7.18.2) E_SSL_CRL_BADFILE, // 82 - could not load CRL file, missing or wrong format (Added in 7.19.0) E_SSL_ISSUER_ERROR, // 83 - Issuer check failed. (Added in 7.19.0) E_FTP_PRET_FAILED, // 84 - a PRET command failed E_RTSP_CSEQ_ERROR, // 85 - mismatch of RTSP CSeq numbers E_RTSP_SESSION_ERROR, // 86 - mismatch of RTSP Session Ids E_FTP_BAD_FILE_LIST, // 87 - unable to parse FTP file list E_CHUNK_FAILED, // 88 - chunk callback reported error E_NO_CONNECTION_AVAILABLE, // 89 - No connection available, the session will be queued E_SSL_PINNEDPUBKEYNOTMATCH, // 90 - specified pinned public key did not match E_SSL_INVALIDCERTSTATUS, // 91 - invalid certificate status E_HTTP2_STREAM, // 92 - stream error in HTTP/2 framing layer E_RECURSIVE_API_CALL, // 93 - an api function was called from inside a callback E_AUTH_ERROR, // 94 - an authentication function returned an error E_HTTP3, // 95 - An HTTP/3 layer problem E_QUIC_CONNECT_ERROR, // 96 - QUIC connection error E_PROXY, // 97 - proxy handshake error E_SSL_CLIENTCERT, // 98 - client-side certificate required E_UNRECOVERABLE_POLL, // 99 - poll/select returned fatal error E_TOO_LARGE, // 100 - a value/data met its maximum E_ECH_REQUIRED, // 101 - ECH tried but failed }
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!
Related Procedures With Parameters
Related Procedures With Returns
conv_callback ¶
This prototype applies to all conversion callbacks
curl_notify_function ¶
curl_notify_function :: proc "c" (multi_handle: ^CURLM, notification: MULTI_NOTIFY, easy: ^CURL, user_data: rawptr)
* Callback to install via CURLMOPT_NOTIFYFUNCTION.
easyoption ¶
easyoption :: struct { name: cstring, id: option, type: easytype, flags: easyoptionflags, }
The CURLOPTTYPE_* id ranges can still be used to figure out what type/size to use for curl_easy_setopt() for the given id
Related Procedures With Parameters
Related Procedures With Returns
easyoptionflag ¶
easyoptionflag :: enum u32 { // "alias" means it is provided for old programs to remain functional, we prefer another name ALIAS = 0, }
easyoptionflags ¶
easyoptionflags :: distinct bit_set[easyoptionflag; u32]
easytype ¶
easytype :: enum i32 { OT_LONG, // long (a range of values) OT_VALUES, // (a defined set or bitmask) OT_OFF_T, // curl_off_t (a range of values) OT_OBJECT, // pointer (void *) OT_STRING, // (char * to null-terminated buffer) OT_SLIST, // (struct curl_slist *) OT_CBPTR, // (void * passed as-is to a callback) OT_BLOB, // blob (struct curl_blob *) OT_FUNCTION, // function pointer }
fileinfo ¶
fileinfo :: struct { filename: cstring, filetype: filetype, time: libc.time_t, // always zero! perm: u32, uid: i32, gid: i32, size: i64, hardlinks: i32, strings: struct { // If some of these fields is not NULL, it is a pointer to b_data. time: cstring, perm: cstring, user: cstring, group: cstring, target: cstring, }, flags: finfoflags, // These are libcurl private struct fields. Previously used by libcurl, so // they must never be interfered with. b_data: [^]u8, b_size: uint, b_used: uint, }
Information about a single file, used when doing FTP wildcard matching
filetype ¶
filetype :: enum i32 { FILE = 0, DIRECTORY, SYMLINK, DEVICE_BLOCK, DEVICE_CHAR, NAMEDPIPE, SOCKET, DOOR, // is possible only on Sun Solaris now UNKNOWN, // should never occur }
enumeration of file types
finfoflag ¶
finfoflag :: enum u32 { KNOWN_FILENAME = 0, KNOWN_FILETYPE = 1, KNOWN_TIME = 2, KNOWN_PERM = 3, KNOWN_UID = 4, KNOWN_GID = 5, KNOWN_SIZE = 6, KNOWN_HLINKCOUNT = 7, }
finfoflags ¶
Related Constants
fnmatch_callback ¶
callback type for wildcard downloading pattern matching. If the string matches the pattern, return CURL_FNMATCHFUNC_MATCH value, etc.
formget_callback ¶
* 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.
ftpauth ¶
ftpauth :: enum i32 { DEFAULT, // let libcurl decide SSL, // use "AUTH SSL" TLS, // use "AUTH TLS" }
parameter for the CURLOPT_FTPSSLAUTH option
ftpccc ¶
ftpccc :: enum i32 { NONE, // do not send CCC PASSIVE, // Let the server initiate the shutdown ACTIVE, // Initiate the shutdown }
parameter for the CURLOPT_FTP_SSL_CCC option
ftpcreatedir ¶
ftpcreatedir :: enum i32 { DIR_NONE, // do NOT create missing dirs! DIR, // (FTP/SFTP) if CWD fails, try MKD and then CWD again if MKD succeeded, for SFTP this does similar magic _RETRY, // (FTP only) if CWD fails, try MKD and then CWD again even if MKD failed! }
parameter for the CURLOPT_FTP_CREATE_MISSING_DIRS option
ftpmethod ¶
ftpmethod :: enum i32 { DEFAULT, // let libcurl pick MULTICWD, // single CWD operation for each path part NOCWD, // no CWD at all SINGLECWD, // one CWD to full dir, then work on file }
parameter for the CURLOPT_FTP_FILEMETHOD option
header ¶
header :: struct { name: cstring, // this might not use the same case value: cstring, amount: uint, // number of headers using this name index: uint, // ... of this instance, 0 or higher origin: header_origin_bits, // see bits below anchor: rawptr, }
Related Procedures With Parameters
header_origin_bit ¶
header_origin_bit :: enum u32 { H_HEADER = 0, // plain server header H_TRAILER = 1, // trailers H_CONNECT = 2, // CONNECT headers H_1XX = 3, // 1xx headers H_PSEUDO = 4, // pseudo headers }
'origin' bits
header_origin_bits ¶
header_origin_bits :: distinct bit_set[header_origin_bit; u32]
Related Constants
httppost ¶
httppost :: struct { next: ^httppost, // next entry in the list name: cstring `fmt:"v,name"`, // pointer to allocated name namelength: i32, // length of name length contents: cstring, // pointer to allocated data contents contentslength: i32, // length of contents field, see also // CURL_HTTPPOST_LARGE buffer: [^]u8, // pointer to allocated buffer contents bufferlength: i32, // length of buffer field contenttype: cstring, // Content-Type contentheader: ^slist, // list of extra headers for this form more: ^httppost, // if one field name has more than one // file, this link should link to following // files flags: httppost_flags, // as defined below showfilename: cstring, // The filename to show. If not set, the // actual filename will be used (if this // is a file part) userp: rawptr, // custom pointer used for // HTTPPOST_CALLBACK posts contentlen: i64, }
httppost_flag ¶
httppost_flag :: enum i32 { // specified content is a filename FILENAME = 0, // specified content is a filename READFILE = 1, // name is only stored pointer do not free in formfree PTRNAME = 2, // contents is only stored pointer do not free in formfree PTRCONTENTS = 3, // upload file from buffer BUFFER = 4, // upload file from pointer contents PTRBUFFER = 5, // upload file contents by using the regular read callback to get the data and // pass the given pointer as custom pointer CALLBACK = 6, // use size in 'contentlen', added in 7.46.0 LARGE = 7, }
infotype ¶
infotype :: enum i32 { TEXT = 0, HEADER_IN, // 1 HEADER_OUT, // 2 DATA_IN, // 3 DATA_OUT, // 4 SSL_DATA_IN, // 5 SSL_DATA_OUT, // 6 END, }
the kind of data that is passed to information_callback
iocmd ¶
iocmd :: enum i32 { NOP, // no operation RESTARTREAD, // restart the read stream from start }
ioerr ¶
ioerr :: enum i32 { E_OK, // I/O operation successful E_UNKNOWNCMD, // command was unknown to callback E_FAILRESTART, // failed to restart the read }
khmatch ¶
khmatch :: enum i32 { OK, // match MISMATCH, // host found, key mismatch! MISSING, // no matching host/key found }
this is the set of status codes pass in to the callback
khstat ¶
khstat :: enum i32 { FINE_ADD_TO_FILE, FINE, REJECT, // reject the connection, return an error DEFER, // do not accept it, but we cannot answer right now. Causes a CURLE_PEER_FAILED_VERIFICATION error but the connection will be left intact etc FINE_REPLACE, // accept and replace the wrong key }
this is the set of return values expected from the curl_sshkeycallback callback
lock_access ¶
lock_access :: enum i32 { NONE = 0, // unspecified action SHARED = 1, // for read perhaps SINGLE = 2, // for write perhaps }
Different lock access types
lock_data ¶
lock_data :: enum i32 { 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. SHARE, COOKIE, DNS, SSL_SESSION, CONNECT, PSL, HSTS, }
Different data locks for a single share
lock_function ¶
lock_function :: proc "c" (handle: ^CURL, data: lock_data, locktype: lock_access, userptr: rawptr)
malloc_callback ¶
* 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.
Related Procedures With Parameters
mime ¶
mime :: struct {}
Mime/form handling support.
Related Procedures With Parameters
Related Procedures With Returns
mimepart ¶
mimepart :: struct {}
Mime part context.
Related Procedures With Parameters
Related Procedures With Returns
multi_timer_callback ¶
* 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.
option ¶
option :: enum i32 { // This is the FILE * or void * the regular output should be written to. WRITEDATA = 10001, // The full URL to get/put URL = 10002, // Port number to connect to, if other than default. PORT = 3, // Name of proxy to use. PROXY = 10004, // "user:password;options" to use when fetching. USERPWD = 10005, // "user:password" to use with proxy. PROXYUSERPWD = 10006, // Range to get, specified as an ASCII string. RANGE = 10007, // Specified file stream to upload from (use as input): READDATA = 10009, // Buffer to receive error messages in, must be at least CURL_ERROR_SIZE // * bytes big. ERRORBUFFER = 10010, // Function that will be called to store the output (instead of fwrite). The // * parameters will use fwrite() syntax, make sure to follow them. WRITEFUNCTION = 20011, // Function that will be called to read the input (instead of fread). The // * parameters will use fread() syntax, make sure to follow them. READFUNCTION = 20012, // Time-out the read operation after this amount of seconds TIMEOUT = 13, // If CURLOPT_READDATA 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. INFILESIZE = 14, // POST static input fields. POSTFIELDS = 10015, // Set the referrer page (needed by some CGIs) REFERER = 10016, // Set the FTP PORT string (interface name, named or numerical IP address) // Use i.e '-' to use default address. FTPPORT = 10017, // Set the User-Agent string (examined by some CGIs) USERAGENT = 10018, // Set the "low speed limit" LOW_SPEED_LIMIT = 19, // Set the "low speed time" LOW_SPEED_TIME = 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. RESUME_FROM = 21, // Set cookie in request: COOKIE = 10022, // This points to a linked list of headers, struct curl_slist kind. This // list is also used for RTSP (in spite of its name) HTTPHEADER = 10023, // name of the file keeping your private SSL-certificate SSLCERT = 10025, // password for the SSL or SSH private key KEYPASSWD = 10026, // send TYPE parameter? CRLF = 27, // send linked-list of QUOTE commands QUOTE = 10028, // send FILE * or void * to store headers to, if you use a callback it // is simply passed to the callback unmodified HEADERDATA = 10029, // point to a file to read the initial cookies from, also enables // "cookie awareness" COOKIEFILE = 10031, // What version to specifically try to use. // See CURL_SSLVERSION defines below. SSLVERSION = 32, // What kind of HTTP time condition to use, see defines TIMECONDITION = 33, // Time to use with the above condition. Specified in number of seconds // since 1 Jan 1970 TIMEVALUE = 34, // Custom request, for customizing the get command like // HTTP: DELETE, TRACE and others // FTP: to use a different list command CUSTOMREQUEST = 10036, // FILE handle to use instead of stderr STDERR = 10037, // send linked-list of post-transfer QUOTE commands POSTQUOTE = 10039, // talk a lot VERBOSE = 41, // throw the header out too HEADER = 42, // shut off the progress meter NOPROGRESS = 43, // use HEAD to get http document NOBODY = 44, // no output on http error codes >= 400 FAILONERROR = 45, // this is an upload UPLOAD = 46, // HTTP POST method POST = 47, // bare names when listing directories DIRLISTONLY = 48, // Append instead of overwrite on upload! APPEND = 50, // Specify whether to read the user+password from the .netrc or the URL. // * This must be one of the CURL_NETRC_* enums below. NETRC = 51, // use Location: Luke! FOLLOWLOCATION = 52, // transfer data in text/ASCII format TRANSFERTEXT = 53, // Data passed to the CURLOPT_PROGRESSFUNCTION and CURLOPT_XFERINFOFUNCTION // callbacks XFERINFODATA = 10057, PROGRESSDATA = 10057, // We want the referrer field set automatically when following locations AUTOREFERER = 58, // Port of the proxy, can be set in the proxy string as well with: // "[host]:[port]" PROXYPORT = 59, // size of the POST input data, if strlen() is not good to use POSTFIELDSIZE = 60, // tunnel non-http operations through an HTTP proxy HTTPPROXYTUNNEL = 61, // Set the interface string to use as outgoing network interface INTERFACE = 10062, // 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 does not match one of these, 'private' will be used. KRBLEVEL = 10063, // Set if we should verify the peer in ssl handshake, set 1 to verify. SSL_VERIFYPEER = 64, // The CApath or CAfile used to validate the peer certificate // this option is used only if SSL_VERIFYPEER is true CAINFO = 10065, // Maximum number of http redirects to follow MAXREDIRS = 68, // Pass a long set to 1 to get the date of the requested document (if // possible)! Pass a zero to shut it off. FILETIME = 69, // This points to a linked list of telnet options TELNETOPTIONS = 10070, // Max amount of cached alive connections MAXCONNECTS = 71, // Set to explicitly use a new connection for the upcoming transfer. // Do not use this unless you are absolutely sure of this, as it makes the // operation slower and is less friendly for the network. FRESH_CONNECT = 74, // Set to explicitly forbid the upcoming transfer's connection to be reused // when done. Do not use this unless you are absolutely sure of this, as it // makes the operation slower and is less friendly for the network. FORBID_REUSE = 75, // Time-out connect operations after this amount of seconds, if connects are // OK within this time, then fine... This only aborts the connect phase. CONNECTTIMEOUT = 78, // Function that will be called to store headers (instead of fwrite). The // * parameters will use fwrite() syntax, make sure to follow them. HEADERFUNCTION = 20079, // 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. HTTPGET = 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. SSL_VERIFYHOST = 81, // Specify which filename to write all known cookies in after completed // operation. Set filename to "-" (dash) to make it go to stdout. COOKIEJAR = 10082, // Specify which TLS 1.2 (1.1, 1.0) ciphers to use SSL_CIPHER_LIST = 10083, // Specify which HTTP version to use! This must be set to one of the // CURL_HTTP_VERSION* enums set below. HTTP_VERSION = 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. FTP_USE_EPSV = 85, // type of the file keeping your SSL-certificate ("DER", "PEM", "ENG") SSLCERTTYPE = 10086, // name of the file keeping your private SSL-key SSLKEY = 10087, // type of the file keeping your private SSL-key ("DER", "PEM", "ENG") SSLKEYTYPE = 10088, // crypto engine for the SSL-sub system SSLENGINE = 10089, // set the crypto engine for the SSL-sub system as default // the param has no meaning... SSLENGINE_DEFAULT = 90, // DNS cache timeout DNS_CACHE_TIMEOUT = 92, // send linked-list of pre-transfer QUOTE commands PREQUOTE = 10093, // set the debug function DEBUGFUNCTION = 20094, // set the data for the debug function DEBUGDATA = 10095, // mark this as start of a cookie session COOKIESESSION = 96, // The CApath directory used to validate the peer certificate // this option is used only if SSL_VERIFYPEER is true CAPATH = 10097, // Instruct libcurl to use a smaller receive buffer BUFFERSIZE = 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. NOSIGNAL = 99, // Provide a CURLShare for mutexing non-ts data SHARE = 10100, // indicates type of proxy. accepted values are CURLPROXY_HTTP (default), // CURLPROXY_HTTPS, CURLPROXY_SOCKS4, CURLPROXY_SOCKS4A and // CURLPROXY_SOCKS5. PROXYTYPE = 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 ACCEPT_ENCODING = 10102, // Set pointer to private data PRIVATE = 10103, // Set aliases for HTTP 200 in the HTTP Response header HTTP200ALIASES = 10104, // 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. UNRESTRICTED_AUTH = 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. FTP_USE_EPRT = 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. HTTPAUTH = 107, // Set the ssl context callback function, currently only for OpenSSL or // wolfSSL ssl_ctx, or mbedTLS mbedtls_ssl_config in the second argument. // The function must match the curl_ssl_ctx_callback prototype. SSL_CTX_FUNCTION = 20108, // Set the userdata for the ssl context callback function's third // argument SSL_CTX_DATA = 10109, // 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. FTP_CREATE_MISSING_DIRS = 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. PROXYAUTH = 111, // 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 server to acknowledge commands in a timely // manner. For FTP, SMTP, IMAP and POP3. SERVER_RESPONSE_TIMEOUT = 112, // Set this option to one of the CURL_IPRESOLVE_* defines (see below) to // tell libcurl to use those IP versions only. This only has effect on // systems with support for more than one, i.e IPv4 _and_ IPv6. IPRESOLVE = 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. MAXFILESIZE = 114, // See the comment for INFILESIZE above, but in short, specifies // * the size of the file being uploaded. -1 means unknown. INFILESIZE_LARGE = 30115, // Sets the continuation offset. There is also a CURLOPTTYPE_LONG version // * of this; look above for RESUME_FROM. RESUME_FROM_LARGE = 30116, // Sets the maximum size of data that will be downloaded from // * an HTTP or FTP server. See MAXFILESIZE above for the LONG version. MAXFILESIZE_LARGE = 30117, // Set this option to the filename 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. NETRC_FILE = 10118, // 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 USE_SSL = 119, // The _LARGE version of the standard POSTFIELDSIZE option POSTFIELDSIZE_LARGE = 30120, // Enable/disable the TCP Nagle algorithm TCP_NODELAY = 121, // 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 FTPSSLAUTH = 129, // null-terminated string for pass on to the FTP server when asked for // "account" info FTP_ACCOUNT = 10134, // feed cookie into cookie engine COOKIELIST = 10135, // ignore Content-Length IGNORE_CONTENT_LENGTH = 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. FTP_SKIP_PASV_IP = 137, // Select "file method" to use when doing FTP, see the curl_ftpmethod // above. FTP_FILEMETHOD = 138, // Local port number to bind the socket to LOCALPORT = 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. LOCALPORTRANGE = 140, // no transfer, set up connection and let application use the socket by // extracting it with CURLINFO_LASTSOCKET CONNECT_ONLY = 141, // if the connection proceeds too quickly then need to slow it down // limit-rate: maximum number of bytes per second to send or receive MAX_SEND_SPEED_LARGE = 30145, MAX_RECV_SPEED_LARGE = 30146, // Pointer to command string to send if USER/PASS fails. FTP_ALTERNATIVE_TO_USER = 10147, // callback function for setting socket options SOCKOPTFUNCTION = 20148, SOCKOPTDATA = 10149, // set to 0 to disable session ID reuse for this transfer, default is // enabled (== 1) SSL_SESSIONID_CACHE = 150, // allowed SSH authentication methods SSH_AUTH_TYPES = 151, // Used by scp/sftp to do public/private key authentication SSH_PUBLIC_KEYFILE = 10152, SSH_PRIVATE_KEYFILE = 10153, // Send CCC (Clear Command Channel) after authentication FTP_SSL_CCC = 154, // Same as TIMEOUT and CONNECTTIMEOUT, but with ms resolution TIMEOUT_MS = 155, CONNECTTIMEOUT_MS = 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 HTTP_TRANSFER_DECODING = 157, HTTP_CONTENT_DECODING = 158, // Permission used when creating new files and directories on the remote // server for protocols that support it, SFTP/SCP/FILE NEW_FILE_PERMS = 159, NEW_DIRECTORY_PERMS = 160, // Set the behavior of POST when redirecting. Values must be set to one // of CURL_REDIR* defines below. This used to be called CURLOPT_POST301 POSTREDIR = 161, // used by scp/sftp to verify the host's public key SSH_HOST_PUBLIC_KEY_MD5 = 10162, // 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 OPENSOCKETFUNCTION = 20163, OPENSOCKETDATA = 10164, // POST volatile input fields. COPYPOSTFIELDS = 10165, // set transfer mode (;type=<a|i>) when doing FTP via an HTTP proxy PROXY_TRANSFER_MODE = 166, // Callback function for seeking in the input stream SEEKFUNCTION = 20167, SEEKDATA = 10168, // CRL file CRLFILE = 10169, // Issuer certificate ISSUERCERT = 10170, // (IPv6) Address scope ADDRESS_SCOPE = 171, // Collect certificate chain info and allow it to get retrievable with // CURLINFO_CERTINFO after the transfer is complete. CERTINFO = 172, // "name" and "pwd" to use when fetching. USERNAME = 10173, PASSWORD = 10174, // "name" and "pwd" to use with Proxy when fetching. PROXYUSERNAME = 10175, PROXYPASSWORD = 10176, // 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. NOPROXY = 10177, // block size for TFTP transfers TFTP_BLKSIZE = 178, // Socks Service SOCKS5_GSSAPI_NEC = 180, // set the SSH knownhost filename to use SSH_KNOWNHOSTS = 10183, // set the SSH host key callback, must point to a curl_sshkeycallback // function SSH_KEYFUNCTION = 20184, // set the SSH host key callback custom pointer SSH_KEYDATA = 10185, // set the SMTP mail originator MAIL_FROM = 10186, // set the list of SMTP mail receiver(s) MAIL_RCPT = 10187, // FTP: send PRET before PASV FTP_USE_PRET = 188, // RTSP request method (OPTIONS, SETUP, PLAY, etc...) RTSP_REQUEST = 189, // The RTSP session identifier RTSP_SESSION_ID = 10190, // The RTSP stream URI RTSP_STREAM_URI = 10191, // The Transport: header to use in RTSP requests RTSP_TRANSPORT = 10192, // Manually initialize the client RTSP CSeq for this handle RTSP_CLIENT_CSEQ = 193, // Manually initialize the server RTSP CSeq for this handle RTSP_SERVER_CSEQ = 194, // The stream to pass to INTERLEAVEFUNCTION. INTERLEAVEDATA = 10195, // Let the application define a custom write method for RTP data INTERLEAVEFUNCTION = 20196, // Turn on wildcard matching WILDCARDMATCH = 197, // Directory matching callback called before downloading of an // individual file (chunk) started CHUNK_BGN_FUNCTION = 20198, // Directory matching callback called after the file (chunk) // was downloaded, or skipped CHUNK_END_FUNCTION = 20199, // Change match (fnmatch-like) callback for wildcard matching FNMATCH_FUNCTION = 20200, // Let the application define custom chunk data pointer CHUNK_DATA = 10201, // FNMATCH_FUNCTION user pointer FNMATCH_DATA = 10202, // send linked-list of name:port:address sets RESOLVE = 10203, // Set a username for authenticated TLS TLSAUTH_USERNAME = 10204, // Set a password for authenticated TLS TLSAUTH_PASSWORD = 10205, // Set authentication type for authenticated TLS TLSAUTH_TYPE = 10206, // 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 // is not any, it will not ask for transfer-encoding at all even if this // option is set to 1. TRANSFER_ENCODING = 207, // Callback function for closing socket (instead of close(2)). The callback // should have type curl_closesocket_callback CLOSESOCKETFUNCTION = 20208, CLOSESOCKETDATA = 10209, // allow GSSAPI credential delegation GSSAPI_DELEGATION = 210, // Set the name servers to use for DNS resolution. // * Only supported by the c-ares DNS backend DNS_SERVERS = 10211, // Time-out accept operations (currently for FTP only) after this amount // of milliseconds. ACCEPTTIMEOUT_MS = 212, // Set TCP keepalive TCP_KEEPALIVE = 213, // non-universal keepalive knobs (Linux, AIX, HP-UX, more) TCP_KEEPIDLE = 214, TCP_KEEPINTVL = 215, // Enable/disable specific SSL features with a bitmask, see CURLSSLOPT_* SSL_OPTIONS = 216, // Set the SMTP auth originator MAIL_AUTH = 10217, // Enable/disable SASL initial response SASL_IR = 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) XFERINFOFUNCTION = 20219, // The XOAUTH2 bearer token XOAUTH2_BEARER = 10220, // Set the interface string to use as outgoing network // * interface for DNS requests. // * Only supported by the c-ares DNS backend DNS_INTERFACE = 10221, // Set the local IPv4 address to use for outgoing DNS requests. // * Only supported by the c-ares DNS backend DNS_LOCAL_IP4 = 10222, // Set the local IPv6 address to use for outgoing DNS requests. // * Only supported by the c-ares DNS backend DNS_LOCAL_IP6 = 10223, // Set authentication options directly LOGIN_OPTIONS = 10224, // Enable/disable TLS ALPN extension (http2 over ssl might fail without) SSL_ENABLE_ALPN = 226, // Time to wait for a response to an HTTP request containing an // * Expect: 100-continue header before sending the data anyway. EXPECT_100_TIMEOUT_MS = 227, // This points to a linked list of headers used for proxy requests only, // struct curl_slist kind PROXYHEADER = 10228, // Pass in a bitmask of "header options" HEADEROPT = 229, // The public key in DER form used to validate the peer public key // this option is used only if SSL_VERIFYPEER is true PINNEDPUBLICKEY = 10230, // Path to Unix domain socket UNIX_SOCKET_PATH = 10231, // Set if we should verify the certificate status. SSL_VERIFYSTATUS = 232, // Do not squash dot-dot sequences PATH_AS_IS = 234, // Proxy Service Name PROXY_SERVICE_NAME = 10235, // Service Name SERVICE_NAME = 10236, // Wait/do not wait for pipe/mutex to clarify PIPEWAIT = 237, // Set the protocol used when curl is given a URL without a protocol DEFAULT_PROTOCOL = 10238, // Set stream weight, 1 - 256 (default is 16) STREAM_WEIGHT = 239, // Set stream dependency on another curl handle STREAM_DEPENDS = 10240, // Set E-xclusive stream dependency on another curl handle STREAM_DEPENDS_E = 10241, // Do not send any tftp option requests to the server TFTP_NO_OPTIONS = 242, // Linked-list of host:port:connect-to-host:connect-to-port, // overrides the URL's host:port (only for the network layer) CONNECT_TO = 10243, // Set TCP Fast Open TCP_FASTOPEN = 244, // Continue to send data if the server responds early with an // * HTTP status code >= 300 KEEP_SENDING_ON_ERROR = 245, // The CApath or CAfile used to validate the proxy certificate // this option is used only if PROXY_SSL_VERIFYPEER is true PROXY_CAINFO = 10246, // The CApath directory used to validate the proxy certificate // this option is used only if PROXY_SSL_VERIFYPEER is true PROXY_CAPATH = 10247, // Set if we should verify the proxy in ssl handshake, // set 1 to verify. PROXY_SSL_VERIFYPEER = 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. PROXY_SSL_VERIFYHOST = 249, // What version to specifically try to use for proxy. // See CURL_SSLVERSION defines below. PROXY_SSLVERSION = 250, // Set a username for authenticated TLS for proxy PROXY_TLSAUTH_USERNAME = 10251, // Set a password for authenticated TLS for proxy PROXY_TLSAUTH_PASSWORD = 10252, // Set authentication type for authenticated TLS for proxy PROXY_TLSAUTH_TYPE = 10253, // name of the file keeping your private SSL-certificate for proxy PROXY_SSLCERT = 10254, // type of the file keeping your SSL-certificate ("DER", "PEM", "ENG") for // proxy PROXY_SSLCERTTYPE = 10255, // name of the file keeping your private SSL-key for proxy PROXY_SSLKEY = 10256, // type of the file keeping your private SSL-key ("DER", "PEM", "ENG") for // proxy PROXY_SSLKEYTYPE = 10257, // password for the SSL private key for proxy PROXY_KEYPASSWD = 10258, // Specify which TLS 1.2 (1.1, 1.0) ciphers to use for proxy PROXY_SSL_CIPHER_LIST = 10259, // CRL file for proxy PROXY_CRLFILE = 10260, // Enable/disable specific SSL features with a bitmask for proxy, see // CURLSSLOPT_* PROXY_SSL_OPTIONS = 261, // Name of pre proxy to use. PRE_PROXY = 10262, // The public key in DER form used to validate the proxy public key // this option is used only if PROXY_SSL_VERIFYPEER is true PROXY_PINNEDPUBLICKEY = 10263, // Path to an abstract Unix domain socket ABSTRACT_UNIX_SOCKET = 10264, // Suppress proxy CONNECT response headers from user callbacks SUPPRESS_CONNECT_HEADERS = 265, // The request target, instead of extracted from the URL REQUEST_TARGET = 10266, // bitmask of allowed auth methods for connections to SOCKS5 proxies SOCKS5_AUTH = 267, // Enable/disable SSH compression SSH_COMPRESSION = 268, // Post MIME data. MIMEPOST = 10269, // Time to use with the CURLOPT_TIMECONDITION. Specified in number of // seconds since 1 Jan 1970. TIMEVALUE_LARGE = 30270, // Head start in milliseconds to give happy eyeballs. HAPPY_EYEBALLS_TIMEOUT_MS = 271, // Function that will be called before a resolver request is made RESOLVER_START_FUNCTION = 20272, // User data to pass to the resolver start callback. RESOLVER_START_DATA = 10273, // send HAProxy PROXY protocol header? HAPROXYPROTOCOL = 274, // shuffle addresses before use when DNS returns multiple DNS_SHUFFLE_ADDRESSES = 275, // Specify which TLS 1.3 ciphers suites to use TLS13_CIPHERS = 10276, PROXY_TLS13_CIPHERS = 10277, // Disallow specifying username/login in URL. DISALLOW_USERNAME_IN_URL = 278, // DNS-over-HTTPS URL DOH_URL = 10279, // Preferred buffer size to use for uploads UPLOAD_BUFFERSIZE = 280, // Time in ms between connection upkeep calls for long-lived connections. UPKEEP_INTERVAL_MS = 281, // Specify URL using CURL URL API. CURLU = 10282, // add trailing data just after no more data is available TRAILERFUNCTION = 20283, // pointer to be passed to HTTP_TRAILER_FUNCTION TRAILERDATA = 10284, // set this to 1L to allow HTTP/0.9 responses or 0L to disallow HTTP09_ALLOWED = 285, // alt-svc control bitmask ALTSVC_CTRL = 286, // alt-svc cache filename to possibly read from/write to ALTSVC = 10287, // maximum age (idle time) of a connection to consider it for reuse // * (in seconds) MAXAGE_CONN = 288, // SASL authorization identity SASL_AUTHZID = 10289, // allow RCPT TO command to fail for some recipients MAIL_RCPT_ALLOWFAILS = 290, // the private SSL-certificate as a "blob" SSLCERT_BLOB = 40291, SSLKEY_BLOB = 40292, PROXY_SSLCERT_BLOB = 40293, PROXY_SSLKEY_BLOB = 40294, ISSUERCERT_BLOB = 40295, // Issuer certificate for proxy PROXY_ISSUERCERT = 10296, PROXY_ISSUERCERT_BLOB = 40297, // the EC curves requested by the TLS client (RFC 8422, 5.1); // * OpenSSL support via 'set_groups'/'set_curves': // * https://docs.openssl.org/master/man3/SSL_CTX_set1_curves/ SSL_EC_CURVES = 10298, // HSTS bitmask HSTS_CTRL = 299, // HSTS filename HSTS = 10300, // HSTS read callback HSTSREADFUNCTION = 20301, HSTSREADDATA = 10302, // HSTS write callback HSTSWRITEFUNCTION = 20303, HSTSWRITEDATA = 10304, // Parameters for V4 signature AWS_SIGV4 = 10305, // Same as CURLOPT_SSL_VERIFYPEER but for DoH (DNS-over-HTTPS) servers. DOH_SSL_VERIFYPEER = 306, // Same as CURLOPT_SSL_VERIFYHOST but for DoH (DNS-over-HTTPS) servers. DOH_SSL_VERIFYHOST = 307, // Same as CURLOPT_SSL_VERIFYSTATUS but for DoH (DNS-over-HTTPS) servers. DOH_SSL_VERIFYSTATUS = 308, // The CA certificates as "blob" used to validate the peer certificate // this option is used only if SSL_VERIFYPEER is true CAINFO_BLOB = 40309, // The CA certificates as "blob" used to validate the proxy certificate // this option is used only if PROXY_SSL_VERIFYPEER is true PROXY_CAINFO_BLOB = 40310, // used by scp/sftp to verify the host's public key SSH_HOST_PUBLIC_KEY_SHA256 = 10311, // Function that will be called immediately before the initial request // is made on a connection (after any protocol negotiation step). PREREQFUNCTION = 20312, // Data passed to the CURLOPT_PREREQFUNCTION callback PREREQDATA = 10313, // maximum age (since creation) of a connection to consider it for reuse // * (in seconds) MAXLIFETIME_CONN = 314, // Set MIME option flags. MIME_OPTIONS = 315, // set the SSH host key callback, must point to a curl_sshkeycallback // function SSH_HOSTKEYFUNCTION = 20316, // set the SSH host key callback custom pointer SSH_HOSTKEYDATA = 10317, // specify which 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 // all built-in protocols. PROTOCOLS_STR = 10318, // specify which protocols that libcurl is allowed to follow directs to REDIR_PROTOCOLS_STR = 10319, // WebSockets options WS_OPTIONS = 320, // CA cache timeout CA_CACHE_TIMEOUT = 321, // Can leak things, gonna exit() soon QUICK_EXIT = 322, // set a specific client IP for HAProxy PROXY protocol header? HAPROXY_CLIENT_IP = 10323, // millisecond version SERVER_RESPONSE_TIMEOUT_MS = 324, // set ECH configuration ECH = 10325, // maximum number of keepalive probes (Linux, *BSD, macOS, etc.) TCP_KEEPCNT = 326, UPLOAD_FLAGS = 327, // set TLS supported signature algorithms SSL_SIGNATURE_ALGORITHMS = 10328, }
All CURLOPT_ values.
Related Procedures With Parameters
Related Constants
platform_sockaddr ¶
platform_sockaddr :: sys_windows.sockaddr
prereq_callback ¶
prereq_callback :: proc "c" (clientp: rawptr, conn_primary_ip: cstring, conn_local_ip: cstring, conn_primary_port: i32, conn_local_port: i32) -> i32
This is the CURLOPT_PREREQFUNCTION callback prototype.
progress_callback ¶
progress_callback :: proc "c" (clientp: rawptr, dltotal: f64, dlnow: f64, ultotal: f64, ulnow: f64) -> i32
This is the CURLOPT_PROGRESSFUNCTION callback prototype. It is now considered deprecated but was the only choice up until 7.31.0
proxycode ¶
proxycode :: enum i32 { OK, BAD_ADDRESS_TYPE, BAD_VERSION, CLOSED, GSSAPI, GSSAPI_PERMSG, GSSAPI_PROTECTION, IDENTD, IDENTD_DIFFER, LONG_HOSTNAME, LONG_PASSWD, LONG_USER, NO_AUTH, RECV_ADDRESS, RECV_AUTH, RECV_CONNECT, RECV_REQACK, REPLY_ADDRESS_TYPE_NOT_SUPPORTED, REPLY_COMMAND_NOT_SUPPORTED, REPLY_CONNECTION_REFUSED, REPLY_GENERAL_SERVER_FAILURE, REPLY_HOST_UNREACHABLE, REPLY_NETWORK_UNREACHABLE, REPLY_NOT_ALLOWED, REPLY_TTL_EXPIRED, REPLY_UNASSIGNED, REQUEST_FAILED, RESOLVE_HOST, SEND_AUTH, SEND_CONNECT, SEND_REQUEST, UNKNOWN_FAIL, UNKNOWN_MODE, USER_REJECTED, }
* Proxy error codes. Returned in CURLINFO_PROXY_ERROR if CURLE_PROXY was * return for the transfers.
proxytype ¶
proxytype :: enum i32 { HTTP = 0, // added in 7.10, new in 7.19.4 default is to use CONNECT HTTP/1.1 HTTP_1_0 = 1, // added in 7.19.4, force to use CONNECT HTTP/1.0 HTTPS = 2, // HTTPS but stick to HTTP/1 added in 7.52.0 HTTPS2 = 3, // HTTPS and attempt HTTP/2 added in 8.2.0 SOCKS4 = 4, // support added in 7.15.2, enum existed already in 7.10 SOCKS5 = 5, // added in 7.10 SOCKS4A = 6, // added in 7.18.0 SOCKS5_HOSTNAME = 7, // Use the SOCKS5 protocol but pass along the hostname rather than the IP address. added in 7.18.0 }
this enum was added in 7.10
read_callback ¶
Related Procedures With Parameters
realloc_callback ¶
Related Procedures With Parameters
resolver_start_callback ¶
resolver_start_callback :: proc "c" (resolver_state: rawptr, reserved: rawptr, userdata: rawptr) -> i32
This callback will be called when a new resolver request is made
slist ¶
linked-list structure for the CURLOPT_QUOTE option (and other)
Related Procedures With Parameters
socket_callback ¶
socket_callback :: proc "c" (easy: ^CURL, s: socket_t, what: i32, userp: rawptr, socketp: rawptr) -> i32
private socket pointer
socktype ¶
socktype :: enum i32 { IPCXN, // socket created for a specific IP connection ACCEPT, // socket created by accept() call LAST, // never use }
sshhostkeycallback ¶
return CURLE_OK to accept
sshkeycallback ¶
sshkeycallback :: proc "c" (easy: ^CURL, knownkey: ^khkey, foundkey: ^khkey, _: khmatch, clientp: rawptr) -> i32
custom pointer passed with
ssl_backend ¶
ssl_backend :: struct { id: sslbackend, name: cstring, }
* 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.
sslbackend ¶
sslbackend :: enum i32 { NONE = 0, OPENSSL = 1, GNUTLS = 2, NSS = 3, // CURL_DEPRECATED(8.3.0, "") OBSOLETE4 = 4, // Was QSOSSL. GSKIT = 5, // CURL_DEPRECATED(8.3.0, "") POLARSSL = 6, // CURL_DEPRECATED(7.69.0, "") WOLFSSL = 7, SCHANNEL = 8, SECURETRANSPORT = 9, // CURL_DEPRECATED(8.15.0, "") AXTLS = 10, // CURL_DEPRECATED(7.61.0, "") MBEDTLS = 11, MESALINK = 12, // CURL_DEPRECATED(7.82.0, "") BEARSSL = 13, // CURL_DEPRECATED(8.15.0, "") RUSTLS = 14, AWSLC = 1, BORINGSSL = 1, LIBRESSL = 1, }
Related Procedures With Parameters
ssls_export_cb ¶
ssls_export_cb :: proc "c" (handle: ^CURL, userptr: rawptr, session_key: cstring, shmac: [^]u8, shmac_len: uint, sdata: [^]u8, sdata_len: uint, valid_until: i64, ietf_tls_id: i32, alpn: cstring, earlydata_max: uint) -> code
This is the curl_ssls_export_cb callback prototype. It is passed to curl_easy_ssls_export() to extract SSL sessions/tickets.
Related Procedures With Parameters
sslset ¶
sslset :: enum i32 { OK = 0, UNKNOWN_BACKEND, TOO_LATE, NO_BACKENDS, // libcurl was built without any SSL support }
Related Procedures With Returns
strdup_callback ¶
Related Procedures With Parameters
tlssessioninfo ¶
tlssessioninfo :: struct { backend: sslbackend, internals: rawptr, }
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.
version_enum ¶
version_enum :: enum i32 { FIRST, // 7.10 SECOND, // 7.11.1 THIRD, // 7.12.0 FOURTH, // 7.16.1 FIFTH, // 7.57.0 SIXTH, // 7.66.0 SEVENTH, // 7.70.0 EIGHTH, // 7.72.0 NINTH, // 7.75.0 TENTH, // 7.77.0 ELEVENTH, // 7.87.0 TWELFTH, // 8.8.0 }
Related Procedures With Parameters
Related Constants
version_info_data ¶
version_info_data :: struct { age: version_enum, // age of the returned struct version: cstring, // LIBCURL_VERSION version_num: u32, // LIBCURL_VERSION_NUM host: cstring, // OS/host/cpu/machine when configured features: i32, // bitmask, see defines below ssl_version: cstring, // human readable string ssl_version_num: i32, // not used anymore, always 0 libz_version: cstring, // protocols is terminated by an entry with a NULL protoname protocols: [^]cstring, // The fields below this were added in CURLVERSION_SECOND ares: cstring, ares_num: i32, // This field was added in CURLVERSION_THIRD libidn: cstring, // Same as '_libiconv_version' if built with HAVE_ICONV iconv_ver_num: i32, libssh_version: cstring, // These fields were added in CURLVERSION_FIFTH brotli_ver_num: u32, // Numeric Brotli version // (MAJOR << 24) | (MINOR << 12) | PATCH brotli_version: cstring, // These fields were added in CURLVERSION_SIXTH nghttp2_ver_num: u32, // Numeric nghttp2 version // (MAJOR << 16) | (MINOR << 8) | PATCH nghttp2_version: cstring, // human readable string. quic_version: cstring, // These fields were added in CURLVERSION_SEVENTH cainfo: cstring, // the built-in default CURLOPT_CAINFO, might // be NULL capath: cstring, // These fields were added in CURLVERSION_EIGHTH zstd_ver_num: u32, // Numeric Zstd version // (MAJOR << 24) | (MINOR << 12) | PATCH zstd_version: cstring, // These fields were added in CURLVERSION_NINTH hyper_version: cstring, // These fields were added in CURLVERSION_TENTH gsasl_version: cstring, // These fields were added in CURLVERSION_ELEVENTH // feature_names is terminated by an entry with a NULL feature name feature_names: [^]cstring, // These fields were added in CURLVERSION_TWELFTH rtmp_version: cstring, }
Related Procedures With Returns
waitfd ¶
Related Procedures With Parameters
ws_flag ¶
ws_flag :: enum u32 { // flag bits TEXT = 0, BINARY = 1, CONT = 2, CLOSE = 3, PING = 4, OFFSET = 5, // flags for curl_ws_send() PONG = 6, }
ws_frame ¶
ws_frame :: struct { age: i32, // zero flags: ws_flags, // See the CURLWS_* defines offset: i64, // the offset of this data into the frame bytesleft: i64, // number of pending bytes left of the payload len: uint, }
Related Procedures With Returns
xferinfo_callback ¶
xferinfo_callback :: proc "c" (clientp: rawptr, dltotal: i64, dlnow: i64, ultotal: i64, ulnow: i64) -> i32
This is the CURLOPT_XFERINFOFUNCTION callback prototype. It was introduced in 7.32.0, avoids the use of floating point numbers and provides more detailed information.
Constants
ALTSVC_H1 ¶
ALTSVC_H1: int : 1 << 3
ALTSVC_H2 ¶
ALTSVC_H2: int : 1 << 4
ALTSVC_H3 ¶
ALTSVC_H3: int : 1 << 5
ALTSVC_READONLYFILE ¶
ALTSVC_READONLYFILE: int : 1 << 2
CURLALTSVC_* are bits for the CURLOPT_ALTSVC_CTRL option
AUTH_ANY ¶
AUTH_ANY: u32 : ~AUTH_DIGEST_IE
AUTH_ANYSAFE ¶
AUTH_ANYSAFE: u32 : ~(AUTH_BASIC | AUTH_DIGEST_IE)
AUTH_AWS_SIGV4 ¶
AUTH_AWS_SIGV4: u32 : ((c.ulong)(1)) << 7
AUTH_BASIC ¶
AUTH_BASIC: u32 : ((c.ulong)(1)) << 0
AUTH_BEARER ¶
AUTH_BEARER: u32 : ((c.ulong)(1)) << 6
AUTH_DIGEST ¶
AUTH_DIGEST: u32 : ((c.ulong)(1)) << 1
AUTH_DIGEST_IE ¶
AUTH_DIGEST_IE: u32 : ((c.ulong)(1)) << 4
AUTH_GSSAPI ¶
AUTH_GSSAPI: u32 : AUTH_NEGOTIATE
Used for CURLOPT_SOCKS5_AUTH to stay terminologically correct
AUTH_GSSNEGOTIATE ¶
AUTH_GSSNEGOTIATE: u32 : AUTH_NEGOTIATE
Deprecated since the advent of CURLAUTH_NEGOTIATE
AUTH_NEGOTIATE ¶
AUTH_NEGOTIATE: u32 : ((c.ulong)(1)) << 2
AUTH_NONE ¶
AUTH_NONE: u32 : (c.ulong)(0)
AUTH_NTLM ¶
AUTH_NTLM: u32 : ((c.ulong)(1)) << 3
AUTH_ONLY ¶
AUTH_ONLY: u32 : ((c.ulong)(1)) << 31
COPYRIGHT ¶
COPYRIGHT: string : "Daniel Stenberg, <daniel@haxx.se>."
This is the global package copyright
CSELECT_ERR ¶
CSELECT_ERR: int : 0x04
CSELECT_IN ¶
CSELECT_IN: int : 0x01
CSELECT_OUT ¶
CSELECT_OUT: int : 0x02
ERROR_SIZE ¶
ERROR_SIZE: int : 256
FINFOFLAG_KNOWN_FILENAME ¶
FINFOFLAG_KNOWN_FILENAME :: finfoflags{.KNOWN_FILENAME}
FINFOFLAG_KNOWN_FILETYPE ¶
FINFOFLAG_KNOWN_FILETYPE :: finfoflags{.KNOWN_FILETYPE}
FINFOFLAG_KNOWN_GID ¶
FINFOFLAG_KNOWN_GID :: finfoflags{.KNOWN_GID}
FINFOFLAG_KNOWN_HLINKCOUNT ¶
FINFOFLAG_KNOWN_HLINKCOUNT :: finfoflags{.KNOWN_HLINKCOUNT}
FINFOFLAG_KNOWN_PERM ¶
FINFOFLAG_KNOWN_PERM :: finfoflags{.KNOWN_PERM}
FINFOFLAG_KNOWN_SIZE ¶
FINFOFLAG_KNOWN_SIZE :: finfoflags{.KNOWN_SIZE}
FINFOFLAG_KNOWN_TIME ¶
FINFOFLAG_KNOWN_TIME :: finfoflags{.KNOWN_TIME}
FINFOFLAG_KNOWN_UID ¶
FINFOFLAG_KNOWN_UID :: finfoflags{.KNOWN_UID}
FOLLOW_FIRSTONLY ¶
FOLLOW_FIRSTONLY: int : 3
Only use the custom method in the first request, always reset in the next
FOLLOW_OBEYCODE ¶
FOLLOW_OBEYCODE: int : 2
Do not use the custom method in the follow-up request if the HTTP code instructs so (301, 302, 303).
GLOBAL_ACK_EINTR ¶
GLOBAL_ACK_EINTR: int : 1 << 2
GLOBAL_ALL ¶
GLOBAL_ALL: int : GLOBAL_SSL | GLOBAL_WIN32
GLOBAL_DEFAULT ¶
GLOBAL_DEFAULT: int : GLOBAL_ALL
GLOBAL_NOTHING ¶
GLOBAL_NOTHING: int : 0
GLOBAL_WIN32 ¶
GLOBAL_WIN32: int : 1 << 1
HEADER_SEPARATE ¶
HEADER_SEPARATE: int : 1 << 0
HET_DEFAULT ¶
HET_DEFAULT: int : 200
The default connection attempt delay in milliseconds for happy eyeballs. CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.3 and happy-eyeballs-timeout-ms.d document this value, keep them in sync.
HSTS_READONLYFILE ¶
HSTS_READONLYFILE: i32 : (c.long)(1 << 1)
HTTPPOST_BUFFER ¶
HTTPPOST_BUFFER :: httppost_flags{.BUFFER}
HTTPPOST_CALLBACK ¶
HTTPPOST_CALLBACK :: httppost_flags{.CALLBACK}
HTTPPOST_FILENAME ¶
HTTPPOST_FILENAME :: httppost_flags{.FILENAME}
HTTPPOST_LARGE ¶
HTTPPOST_LARGE :: httppost_flags{.LARGE}
HTTPPOST_PTRBUFFER ¶
HTTPPOST_PTRBUFFER :: httppost_flags{.PTRBUFFER}
HTTPPOST_PTRCONTENTS ¶
HTTPPOST_PTRCONTENTS :: httppost_flags{.PTRCONTENTS}
HTTPPOST_PTRNAME ¶
HTTPPOST_PTRNAME :: httppost_flags{.PTRNAME}
HTTPPOST_READFILE ¶
HTTPPOST_READFILE :: httppost_flags{.READFILE}
HTTP_VERSION_2 ¶
HTTP_VERSION_2: int : HTTP_VERSION_2_0
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.
HTTP_VERSION_2_PRIOR_KNOWLEDGE ¶
HTTP_VERSION_2_PRIOR_KNOWLEDGE: int : 5
please use HTTP 2 without HTTP/1.1 Upgrade
HTTP_VERSION_3 ¶
HTTP_VERSION_3: int : 30
Use HTTP/3, fallback to HTTP/2 or HTTP/1 if needed. For HTTPS only. For HTTP, this option makes libcurl return error.
HTTP_VERSION_3ONLY ¶
HTTP_VERSION_3ONLY: int : 31
Use HTTP/3 without fallback. For HTTPS only. For HTTP, this makes libcurl return error.
HTTP_VERSION_NONE ¶
HTTP_VERSION_NONE: int : 0
These constants are for use with the CURLOPT_HTTP_VERSION option.
INFO_DOUBLE ¶
INFO_DOUBLE: int : 0x300000
INFO_LONG ¶
INFO_LONG: int : 0x200000
INFO_MASK ¶
INFO_MASK: int : 0x0fffff
INFO_OFF_T ¶
INFO_OFF_T: int : 0x600000
INFO_SLIST ¶
INFO_SLIST: int : 0x400000
INFO_SOCKET ¶
INFO_SOCKET: int : 0x500000
INFO_STRING ¶
INFO_STRING: int : 0x100000
INFO_TYPEMASK ¶
INFO_TYPEMASK: int : 0xf00000
IPRESOLVE_WHATEVER ¶
IPRESOLVE_WHATEVER: int : 0
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.
MAX_HTTP_HEADER ¶
MAX_HTTP_HEADER: int : 100 * 1024
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
MAX_WRITE_SIZE ¶
MAX_WRITE_SIZE: int : 16384
Tests have proven that 20K is a 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).
MIMEOPT_FORMESCAPE ¶
MIMEOPT_FORMESCAPE: int : 1 << 0
CURLMIMEOPT_ defines are for the CURLOPT_MIME_OPTIONS option.
MNWC_CLEAR_CONNS ¶
MNWC_CLEAR_CONNS: int : 1 << 0
CURLMNWC_CLEAR_CONNS tells libcurl to prevent further reuse of existing connections. Connections that are idle will be closed. Ongoing transfers will continue with the connection they have.
MNWC_CLEAR_DNS ¶
MNWC_CLEAR_DNS: int : 1 << 0
CURLMNWC_CLEAR_DNS tells libcurl to prevent further reuse of existing connections. Connections that are idle will be closed. Ongoing transfers will continue with the connection they have.
NETRC_OPTIONAL ¶
NETRC_OPTIONAL: int : 1
A user:password in the URL will be preferred to one in the .netrc.
NETRC_REQUIRED ¶
NETRC_REQUIRED: int : 2
A user:password in the URL will be ignored. Unless one is set programmatically, the .netrc will be queried.
OPTTYPE_BLOB ¶
OPTTYPE_BLOB: int : 40000
OPTTYPE_CBPOINT ¶
OPTTYPE_CBPOINT: int : OPTTYPE_OBJECTPOINT
'void *' argument passed untouched to callback
OPTTYPE_FUNCTIONPOINT ¶
OPTTYPE_FUNCTIONPOINT: int : 20000
OPTTYPE_LONG ¶
OPTTYPE_LONG: int : 0
long may be 32 or 64 bits, but we should never depend on anything else but 32
OPTTYPE_OBJECTPOINT ¶
OPTTYPE_OBJECTPOINT: int : 10000
OPTTYPE_OFF_T ¶
OPTTYPE_OFF_T: int : 30000
OPTTYPE_STRINGPOINT ¶
OPTTYPE_STRINGPOINT: int : OPTTYPE_OBJECTPOINT
'char *' argument to a string with a trailing zero
PAUSE_ALL ¶
PAUSE_ALL: int : PAUSE_RECV | PAUSE_SEND
PAUSE_CONT ¶
PAUSE_CONT: int : PAUSE_RECV_CONT | PAUSE_SEND_CONT
PAUSE_RECV ¶
PAUSE_RECV: int : 1 << 0
PAUSE_RECV_CONT ¶
PAUSE_RECV_CONT: int : 0
PAUSE_SEND ¶
PAUSE_SEND: int : 1 << 2
PAUSE_SEND_CONT ¶
PAUSE_SEND_CONT: int : 0
PIPE_HTTP1 ¶
PIPE_HTTP1: int : 1
PIPE_MULTIPLEX ¶
PIPE_MULTIPLEX: int : 2
POLL_INOUT ¶
POLL_INOUT: int : 3
POLL_NONE ¶
POLL_NONE: int : 0
* 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 manpage for details.
POLL_OUT ¶
POLL_OUT: int : 2
POLL_REMOVE ¶
POLL_REMOVE: int : 4
PREREQFUNC_ABORT ¶
PREREQFUNC_ABORT: int : 1
Return code for when the pre-request callback wants to abort the request
PREREQFUNC_OK ¶
PREREQFUNC_OK: int : 0
Return code for when the pre-request callback has terminated without any errors
PROGRESSFUNC_CONTINUE ¶
PROGRESSFUNC_CONTINUE: int : 0x10000001
This is a return code for the progress callback that, when returned, will signal libcurl to continue executing the default progress function
PROTO_DICT ¶
PROTO_DICT: int : 1 << 9
PROTO_FILE ¶
PROTO_FILE: int : 1 << 10
PROTO_FTP ¶
PROTO_FTP: int : 1 << 2
PROTO_FTPS ¶
PROTO_FTPS: int : 1 << 3
PROTO_GOPHER ¶
PROTO_GOPHER: int : 1 << 25
PROTO_GOPHERS ¶
PROTO_GOPHERS: int : 1 << 29
PROTO_HTTP ¶
PROTO_HTTP: int : 1 << 0
PROTO_HTTPS ¶
PROTO_HTTPS: int : 1 << 1
PROTO_IMAP ¶
PROTO_IMAP: int : 1 << 12
PROTO_IMAPS ¶
PROTO_IMAPS: int : 1 << 13
PROTO_LDAP ¶
PROTO_LDAP: int : 1 << 7
PROTO_LDAPS ¶
PROTO_LDAPS: int : 1 << 8
PROTO_MQTT ¶
PROTO_MQTT: int : 1 << 28
PROTO_POP3 ¶
PROTO_POP3: int : 1 << 14
PROTO_POP3S ¶
PROTO_POP3S: int : 1 << 15
PROTO_RTMP ¶
PROTO_RTMP: int : 1 << 19
PROTO_RTMPE ¶
PROTO_RTMPE: int : 1 << 21
PROTO_RTMPS ¶
PROTO_RTMPS: int : 1 << 23
PROTO_RTMPT ¶
PROTO_RTMPT: int : 1 << 20
PROTO_RTMPTE ¶
PROTO_RTMPTE: int : 1 << 22
PROTO_RTMPTS ¶
PROTO_RTMPTS: int : 1 << 24
PROTO_RTSP ¶
PROTO_RTSP: int : 1 << 18
PROTO_SCP ¶
PROTO_SCP: int : 1 << 4
PROTO_SFTP ¶
PROTO_SFTP: int : 1 << 5
PROTO_SMB ¶
PROTO_SMB: int : 1 << 26
PROTO_SMBS ¶
PROTO_SMBS: int : 1 << 27
PROTO_SMTP ¶
PROTO_SMTP: int : 1 << 16
PROTO_SMTPS ¶
PROTO_SMTPS: int : 1 << 17
PROTO_TELNET ¶
PROTO_TELNET: int : 1 << 6
PROTO_TFTP ¶
PROTO_TFTP: int : 1 << 11
PUSH_DENY ¶
PUSH_DENY: int : 1
PUSH_OK ¶
PUSH_OK: int : 0
* 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. It can also decide * to completely fail the connection. * * Returns: CURL_PUSH_OK, CURL_PUSH_DENY or CURL_PUSH_ERROROUT
READFUNC_ABORT ¶
READFUNC_ABORT: int : 0x10000000
This is a return code for the read callback that, when returned, will signal libcurl to immediately abort the current transfer.
READFUNC_PAUSE ¶
READFUNC_PAUSE: int : 0x10000001
This is a return code for the read callback that, when returned, will signal libcurl to pause sending data on the current transfer.
REDIR_GET_ALL ¶
REDIR_GET_ALL: int : 0
REDIR_POST_301 ¶
REDIR_POST_301: int : 1
REDIR_POST_302 ¶
REDIR_POST_302: int : 2
REDIR_POST_303 ¶
REDIR_POST_303: int : 4
REDIR_POST_ALL ¶
REDIR_POST_ALL: int : REDIR_POST_301 | REDIR_POST_302 | REDIR_POST_303
RTSPREQ_ANNOUNCE ¶
RTSPREQ_ANNOUNCE: int : 3
RTSPREQ_DESCRIBE ¶
RTSPREQ_DESCRIBE: int : 2
RTSPREQ_GET_PARAMETER ¶
RTSPREQ_GET_PARAMETER: int : 8
RTSPREQ_NONE ¶
RTSPREQ_NONE: int : 0
RTSPREQ_OPTIONS ¶
RTSPREQ_OPTIONS: int : 1
RTSPREQ_PAUSE ¶
RTSPREQ_PAUSE: int : 6
RTSPREQ_PLAY ¶
RTSPREQ_PLAY: int : 5
RTSPREQ_RECEIVE ¶
RTSPREQ_RECEIVE: int : 11
RTSPREQ_RECORD ¶
RTSPREQ_RECORD: int : 10
RTSPREQ_SETUP ¶
RTSPREQ_SETUP: int : 4
RTSPREQ_SET_PARAMETER ¶
RTSPREQ_SET_PARAMETER: int : 9
RTSPREQ_TEARDOWN ¶
RTSPREQ_TEARDOWN: int : 7
SEEKFUNC_CANTSEEK ¶
SEEKFUNC_CANTSEEK: int : 2
tell libcurl seeking cannot be done, so libcurl might try other means instead
SOCKET_BAD ¶
SOCKET_BAD :: socket_t(-1)
SOCKET_TIMEOUT ¶
SOCKET_TIMEOUT: socket_t : SOCKET_BAD
SOCKOPT_ALREADY_CONNECTED ¶
SOCKOPT_ALREADY_CONNECTED: int : 2
SOCKOPT_OK ¶
SOCKOPT_OK: int : 0
The return code from the sockopt_callback can signal information back to libcurl:
SSH_AUTH_DEFAULT ¶
SSH_AUTH_DEFAULT: i32 : SSH_AUTH_ANY
SSLOPT_ALLOW_BEAST ¶
SSLOPT_ALLOW_BEAST: int : 1 << 0
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.
SSLOPT_AUTO_CLIENT_CERT ¶
SSLOPT_AUTO_CLIENT_CERT: int : 1 << 5
CURLSSLOPT_AUTO_CLIENT_CERT tells libcurl to automatically locate and use a client certificate for authentication. (Schannel)
SSLOPT_NATIVE_CA ¶
SSLOPT_NATIVE_CA: int : 1 << 4
CURLSSLOPT_NATIVE_CA tells libcurl to use standard certificate store of operating system. Currently implemented under MS-Windows.
SSLOPT_NO_PARTIALCHAIN ¶
SSLOPT_NO_PARTIALCHAIN: int : 1 << 2
NO_PARTIALCHAIN tells libcurl to NOT accept a partial certificate chain if possible. The OpenSSL backend has this ability.
SSLOPT_NO_REVOKE ¶
SSLOPT_NO_REVOKE: int : 1 << 1
NO_REVOKE tells libcurl to disable certificate revocation checks for those SSL backends where such behavior is present.
SSLOPT_REVOKE_BEST_EFFORT ¶
SSLOPT_REVOKE_BEST_EFFORT: int : 1 << 3
REVOKE_BEST_EFFORT tells libcurl to ignore certificate revocation offline checks and ignore missing revocation list for those SSL backends where such behavior is present.
SSLVERSION_DEFAULT ¶
SSLVERSION_DEFAULT: int : 0
SSLVERSION_MAX_DEFAULT ¶
SSLVERSION_MAX_DEFAULT: int : SSLVERSION_TLSv1 << 16
SSLVERSION_MAX_NONE ¶
SSLVERSION_MAX_NONE: int : 0
SSLVERSION_MAX_TLSv1_0 ¶
SSLVERSION_MAX_TLSv1_0: int : SSLVERSION_TLSv1_0 << 16
SSLVERSION_MAX_TLSv1_1 ¶
SSLVERSION_MAX_TLSv1_1: int : SSLVERSION_TLSv1_1 << 16
SSLVERSION_MAX_TLSv1_2 ¶
SSLVERSION_MAX_TLSv1_2: int : SSLVERSION_TLSv1_2 << 16
SSLVERSION_MAX_TLSv1_3 ¶
SSLVERSION_MAX_TLSv1_3: int : SSLVERSION_TLSv1_3 << 16
SSLVERSION_SSLv2 ¶
SSLVERSION_SSLv2: int : 2
SSLVERSION_SSLv3 ¶
SSLVERSION_SSLv3: int : 3
SSLVERSION_TLSv1_0 ¶
SSLVERSION_TLSv1_0: int : 4
SSLVERSION_TLSv1_1 ¶
SSLVERSION_TLSv1_1: int : 5
SSLVERSION_TLSv1_2 ¶
SSLVERSION_TLSv1_2: int : 6
SSLVERSION_TLSv1_3 ¶
SSLVERSION_TLSv1_3: int : 7
TIMECOND_IFMODSINCE ¶
TIMECOND_IFMODSINCE: int : 1
TIMECOND_IFUNMODSINCE ¶
TIMECOND_IFUNMODSINCE: int : 2
TIMECOND_LASTMOD ¶
TIMECOND_LASTMOD: int : 3
TIMECOND_NONE ¶
TIMECOND_NONE: int : 0
TIMESTAMP ¶
TIMESTAMP: string : "2025-11-05"
* 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"
TLSAUTH_NONE ¶
TLSAUTH_NONE: int : 0
TLSAUTH_SRP ¶
TLSAUTH_SRP: int : 1
TRAILERFUNC_ABORT ¶
TRAILERFUNC_ABORT: int : 1
Return code for when was an error in the trailing header's list and we want to abort the request
TRAILERFUNC_OK ¶
TRAILERFUNC_OK: int : 0
Return code for when the trailing headers' callback has terminated without any errors
ULFLAG_DELETED ¶
ULFLAG_DELETED: int : 1 << 1
ULFLAG_DRAFT ¶
ULFLAG_DRAFT: int : 1 << 2
ULFLAG_FLAGGED ¶
ULFLAG_FLAGGED: int : 1 << 3
ULFLAG_SEEN ¶
ULFLAG_SEEN: int : 1 << 4
UPKEEP_INTERVAL_DEFAULT ¶
UPKEEP_INTERVAL_DEFAULT: int : 60000
The default connection upkeep interval in milliseconds.
U_ALLOW_SPACE ¶
U_ALLOW_SPACE :: UFlags{.ALLOW_SPACE}
U_APPENDQUERY ¶
U_APPENDQUERY :: UFlags{.APPENDQUERY}
U_DEFAULT_PORT ¶
U_DEFAULT_PORT :: UFlags{.DEFAULT_PORT}
U_DEFAULT_SCHEME ¶
U_DEFAULT_SCHEME :: UFlags{.DEFAULT_SCHEME}
U_DISALLOW_USER ¶
U_DISALLOW_USER :: UFlags{.DISALLOW_USER}
U_GET_EMPTY ¶
U_GET_EMPTY :: UFlags{.GET_EMPTY}
U_GUESS_SCHEME ¶
U_GUESS_SCHEME :: UFlags{.GUESS_SCHEME}
U_NON_SUPPORT_SCHEME ¶
U_NON_SUPPORT_SCHEME :: UFlags{.NON_SUPPORT_SCHEME}
U_NO_AUTHORITY ¶
U_NO_AUTHORITY :: UFlags{.NO_AUTHORITY}
U_NO_DEFAULT_PORT ¶
U_NO_DEFAULT_PORT :: UFlags{.NO_DEFAULT_PORT}
U_NO_GUESS_SCHEME ¶
U_NO_GUESS_SCHEME :: UFlags{.NO_GUESS_SCHEME}
U_PATH_AS_IS ¶
U_PATH_AS_IS :: UFlags{.PATH_AS_IS}
U_PUNY2IDN ¶
U_PUNY2IDN :: UFlags{.PUNY2IDN}
U_PUNYCODE ¶
U_PUNYCODE :: UFlags{.PUNYCODE}
U_URLDECODE ¶
U_URLDECODE :: UFlags{.URLDECODE}
U_URLENCODE ¶
U_URLENCODE :: UFlags{.URLENCODE}
VERSION ¶
VERSION: string : "8.17.0"
This is the version number of the libcurl package from which this header file origins:
VERSION_MAJOR ¶
VERSION_MAJOR: int : 8
The numeric version number is also available "in parts" by using these defines:
VERSION_MINOR ¶
VERSION_MINOR: int : 17
VERSION_NOW ¶
VERSION_NOW :: version_enum.TWELFTH
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.
VERSION_NUM ¶
VERSION_NUM: int : 0x081100
This is the numeric version of the libcurl version number, meant for easier parsing and comparisons 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.
VERSION_PATCH ¶
VERSION_PATCH: int : 0
VERSION_PSL ¶
VERSION_PSL: int : 1 << 20
Mozilla's Public Suffix List, used for cookie domain verification
WAIT_POLLIN ¶
WAIT_POLLIN: int : 0x0001
Based on poll(2) structure and values. We do not use pollfd and POLL constants explicitly * to cover platforms without poll().
WAIT_POLLOUT ¶
WAIT_POLLOUT: int : 0x0004
WAIT_POLLPRI ¶
WAIT_POLLPRI: int : 0x0002
WRITEFUNC_ERROR ¶
WRITEFUNC_ERROR: int : 0xFFFFFFFF
This is a magic return code for the write callback that, when returned, will signal an error from the callback.
WRITEFUNC_PAUSE ¶
WRITEFUNC_PAUSE: int : 0x10000001
This is a magic return code for the write callback that, when returned, will signal libcurl to pause receiving on the current transfer.
WS_BINARY ¶
WS_BINARY :: ws_flags{.BINARY}
WS_CLOSE ¶
WS_CLOSE :: ws_flags{.CLOSE}
WS_NOAUTOPONG ¶
WS_NOAUTOPONG: int : 1 << 1
WS_OFFSET ¶
WS_OFFSET :: ws_flags{.OFFSET}
ZERO_TERMINATED ¶
ZERO_TERMINATED: uint : ~c.size_t(0)
Special size_t value signaling a null-terminated string.
Variables
This section is empty.
Procedures
easy_cleanup ¶
easy_cleanup :: proc "c" (curl: ^CURL) ---
easy_duphandle ¶
* 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.
easy_escape ¶
* 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.
easy_getinfo ¶
* NAME curl_easy_getinfo() * * DESCRIPTION * * Request internal information from the curl session with this function. * The third argument MUST be pointing to the specific type of the used option * which is documented in each manpage of the option. 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.
easy_init ¶
easy_init :: proc "c" () -> ^CURL ---
easy_option_by_id ¶
easy_option_by_id :: proc "c" (id: option) -> ^easyoption ---
easy_option_by_name ¶
easy_option_by_name :: proc "c" (name: cstring) -> ^easyoption ---
easy_option_next ¶
easy_option_next :: proc "c" (prev: ^easyoption) -> ^easyoption ---
easy_pause ¶
* 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. *
easy_recv ¶
* NAME curl_easy_recv() * * DESCRIPTION * * Receives data from the connected socket. Use after successful * curl_easy_perform() with CURLOPT_CONNECT_ONLY option.
easy_reset ¶
easy_reset :: proc "c" (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.
easy_send ¶
* NAME curl_easy_send() * * DESCRIPTION * * Sends data over the connected socket. Use after successful * curl_easy_perform() with CURLOPT_CONNECT_ONLY option.
easy_ssls_export ¶
easy_ssls_export :: proc "c" (handle: ^CURL, export_fn: ssls_export_cb, userptr: rawptr) -> code ---
* NAME curl_easy_ssls_export() * * DESCRIPTION * * The curl_easy_ssls_export function iterates over all SSL sessions stored * in the easy handle (or underlying share) and invokes the passed * callback. *
easy_ssls_import ¶
easy_ssls_import :: proc "c" ( handle: ^CURL, session_key: cstring, shmac: [^]u8, shmac_len: uint, sdata: [^]u8, sdata_len: uint, ) -> code ---
* NAME curl_easy_ssls_import() * * DESCRIPTION * * The curl_easy_ssls_import function adds a previously exported SSL session * to the SSL session cache of the easy handle (or the underlying share).
easy_strerror ¶
* 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.
easy_unescape ¶
easy_unescape :: proc "c" (handle: ^CURL, string: cstring, length: i32, outlength: ^i32) -> cstring ---
* 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.
easy_upkeep ¶
* NAME curl_easy_upkeep() * * DESCRIPTION * * Performs connection upkeep for the given session handle.
escape ¶
the previous version:
free ¶
free :: proc "c" (p: rawptr) ---
* NAME curl_free() * * DESCRIPTION * * Provided for de-allocation in the same translation unit that did the * allocation. Added in libcurl 7.10
getdate ¶
* 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.
getenv ¶
* NAME curl_getenv() * * DESCRIPTION * * Returns a malloc()'ed string that MUST be curl_free()ed after usage is * complete. DEPRECATED - see lib/README.curlx
global_cleanup ¶
global_cleanup :: proc "c" () ---
* NAME curl_global_cleanup() * * DESCRIPTION * * curl_global_cleanup() should be invoked exactly once for each application * that uses libcurl
global_init ¶
* 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 thread-safe if CURL_VERSION_THREADSAFE is set in the * curl_version_info_data.features flag (fetch by curl_version_info()).
global_init_mem ¶
global_init_mem :: proc "c" ( flags: i32, m: malloc_callback, f: free_callback, r: realloc_callback, s: strdup_callback, c: calloc_callback, ) -> code ---
* 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 will be invoked by this library instead of the system * memory management routines like malloc, free etc.
global_sslset ¶
global_sslset :: proc "c" (id: sslbackend, name: cstring, avail: ^^^ssl_backend) -> sslset ---
global_trace ¶
* NAME curl_global_trace() * * DESCRIPTION * * curl_global_trace() can be invoked at application start to * configure which components in curl should participate in tracing.
* This function is thread-safe if CURL_VERSION_THREADSAFE is set in the * curl_version_info_data.features flag (fetch by curl_version_info()).
mime_addpart ¶
* NAME curl_mime_addpart() * * DESCRIPTION * * Append a new empty part to the given mime context and return a handle to * the created part.
mime_data ¶
* NAME curl_mime_data() * * DESCRIPTION * * Set mime part data source from memory data,
mime_data_cb ¶
mime_data_cb :: proc "c" ( part: ^mimepart, datasize: i64, readfunc: read_callback, seekfunc: seek_callback, freefunc: free_callback, arg: rawptr, ) -> code ---
* NAME curl_mime_data_cb() * * DESCRIPTION * * Set mime part data source from callback function.
mime_encoder ¶
* NAME curl_mime_encoder() * * DESCRIPTION * * Set mime data transfer encoder.
mime_filedata ¶
* NAME curl_mime_filedata() * * DESCRIPTION * * Set mime part data source from named file.
mime_filename ¶
* NAME curl_mime_filename() * * DESCRIPTION * * Set mime part remote filename.
mime_free ¶
mime_free :: proc "c" (mime: ^mime) ---
* NAME curl_mime_free() * * DESCRIPTION * * release a mime handle and its substructures.
mime_headers ¶
* NAME curl_mime_headers() * * DESCRIPTION * * Set mime part headers.
mime_init ¶
* NAME curl_mime_init() * * DESCRIPTION * * Create a mime context and return its handle. The easy parameter is the * target handle.
mime_name ¶
* NAME curl_mime_name() * * DESCRIPTION * * Set mime/form part name.
mime_subparts ¶
* NAME curl_mime_subparts() * * DESCRIPTION * * Set mime part data source from subparts.
mime_type ¶
* NAME curl_mime_type() * * DESCRIPTION * * Set mime part type.
multi_add_handle ¶
* Name: curl_multi_add_handle() * * Desc: add a standard curl handle to the multi stack * * Returns: CURLMcode type, general multi error code.
multi_assign ¶
* 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.
multi_cleanup ¶
* 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.
multi_fdset ¶
multi_fdset :: proc "c" (multi_handle: ^CURLM, read_fd_set: ^sys_windows.fd_set, write_fd_set: ^sys_windows.fd_set, exc_fd_set: ^sys_windows.fd_set, max_fd: ^i32) -> Mcode ---
* 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.
multi_get_handles ¶
* Name: curl_multi_get_handles() * * Desc: Returns an allocated array holding all handles currently added to * the multi handle. Marks the final entry with a NULL pointer. If * there is no easy handle added to the multi handle, this function * returns an array with the first entry as a NULL pointer. * Returns: NULL on failure, otherwise a CURL *array pointer
multi_get_offt ¶
* Name: curl_multi_get_offt() * Desc: Retrieves a numeric value for the `CURLMINFO_` enums. * * Returns: CULRM_OK or error when value could not be obtained.
multi_info_read ¶
* Name: curl_multi_info_read() * * Desc: Ask the multi handle if there is 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 simple and only contain 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 will 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.
multi_init ¶
multi_init :: proc "c" () -> ^CURLM ---
* Name: curl_multi_init() * * Desc: initialize multi-style curl usage * * Returns: a new CURLM handle to use in all 'curl_multi' functions.
multi_notify_disable ¶
multi_notify_disable :: proc "c" (multi: ^CURLM, notification: MULTI_NOTIFY) -> Mcode ---
multi_notify_enable ¶
multi_notify_enable :: proc "c" (multi: ^CURLM, notification: MULTI_NOTIFY) -> Mcode ---
multi_perform ¶
* Name: curl_multi_perform() * * Desc: When the app thinks there is 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 individual transfers even when * this returns OK.
multi_poll ¶
multi_poll :: proc "c" (multi_handle: ^CURLM, extra_fds: [^]waitfd, extra_nfds: u32, timeout_ms: i32, ret: ^i32) -> Mcode ---
* Name: curl_multi_poll() * * 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.
multi_remove_handle ¶
* Name: curl_multi_remove_handle() * * Desc: removes a curl handle from the multi stack again * * Returns: CURLMcode type, general multi error code.
multi_setopt ¶
* Name: curl_multi_setopt() * * Desc: Sets options for the multi handle. * * Returns: CURLM error code.
multi_strerror ¶
* 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 null-terminated error message.
multi_timeout ¶
* 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.
multi_wait ¶
multi_wait :: proc "c" (multi_handle: ^CURLM, extra_fds: [^]waitfd, extra_nfds: u32, timeout_ms: i32, ret: ^i32) -> Mcode ---
* 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.
multi_waitfds ¶
* Name: curl_multi_waitfds() * * Desc: Ask curl for fds for polling. The app can use these to poll on. * We want curl_multi_perform() called as soon as one of them are * ready. Passing zero size allows to get just a number of fds. * * Returns: CURLMcode type, general multi error code.
multi_wakeup ¶
* Name: curl_multi_wakeup() * * Desc: wakes up a sleeping curl_multi_poll call. * * Returns: CURLMcode type, general multi error code.
pushheader_byname ¶
pushheader_byname :: proc "c" (h: ^pushheaders, name: cstring) -> cstring ---
pushheader_bynum ¶
pushheader_bynum :: proc "c" (h: ^pushheaders, num: uint) -> cstring ---
share_init ¶
share_init :: proc "c" () -> ^CURLSH ---
share_strerror ¶
* 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.
slist_append ¶
* 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.
slist_free_all ¶
slist_free_all :: proc "c" (list: ^slist) ---
* NAME curl_slist_free_all() * * DESCRIPTION * * free a previously built curl_slist.
strequal ¶
curl_strequal() and curl_strnequal() are subject for removal in a future release
unescape ¶
the previous version
url ¶
url :: proc "c" () -> ^CURLU ---
* curl_url() creates a new CURLU handle and returns a pointer to it. * Must be freed with curl_url_cleanup().
url_cleanup ¶
url_cleanup :: proc "c" (handle: ^CURLU) ---
* curl_url_cleanup() frees the CURLU handle and related resources used for * the URL parsing. It will not free strings previously returned with the URL * API.
url_dup ¶
* curl_url_dup() duplicates a CURLU handle and returns a new copy. The new * handle must also be freed with curl_url_cleanup().
url_get ¶
* curl_url_get() extracts a specific part of the URL from a CURLU * handle. Returns error code. The returned pointer MUST be freed with * curl_free() afterwards.
url_set ¶
* curl_url_set() sets a specific part of the URL in a CURLU handle. Returns * error code. The passed in string will be copied. Passing a NULL instead of * a part string, clears that part.
url_strerror ¶
* curl_url_strerror() turns a CURLUcode value into the equivalent human * readable error string. This is useful for printing meaningful error * messages.
version ¶
version :: proc "c" () -> cstring ---
* NAME curl_version() * * DESCRIPTION * * Returns a static ASCII string of the libcurl version.
version_info ¶
version_info :: proc "c" (version_enum) -> ^version_info_data ---
* NAME curl_version_info() * * DESCRIPTION * * This function returns a pointer to a static copy of the version info * struct. See above.
ws_recv ¶
ws_recv :: proc "c" (curl: ^CURL, buffer: rawptr, buflen: uint, recv: ^uint, metap: ^^ws_frame) -> code ---
* NAME curl_ws_recv() * * DESCRIPTION * * Receives data from the websocket connection. Use after successful * curl_easy_perform() with CURLOPT_CONNECT_ONLY option.
ws_send ¶
ws_send :: proc "c" ( curl: ^CURL, buffer: rawptr, buflen: uint, sent: ^uint, fragsize: i64, flags: ws_flags, ) -> code ---
* NAME curl_ws_send() * * DESCRIPTION * * Sends data over the websocket connection. Use after successful * curl_easy_perform() with CURLOPT_CONNECT_ONLY option.
ws_start_frame ¶
* NAME curl_ws_start_frame() * * DESCRIPTION * * Buffers a websocket frame header with the given flags and length. * Errors when a previous frame is not complete, e.g. not all its * payload has been added.
Procedure Groups
This section is empty.
Source Files
- curl.odin
- curl_easy.odin
- curl_header.odin
- curl_multi.odin
- curl_options.odin
- curl_urlapi.odin
- curl_websockets.odin
- (hidden platform specific files)
Generation Information
Generated with odin version dev-2026-02 (vendor "odin") Windows_amd64 @ 2026-02-09 21:31:22.169148000 +0000 UTC