#import "Curl";
Bindings for the system libcurl, the C library for URL transfers (HTTP, SMTP, FTP and many more).
This module is the C API as it stands: curl_easy_init, curl_easy_setopt, curl_easy_perform and the rest keep their
C names, arguments and results, with CURLcode and the option enums as Jai enums. Nothing is wrapped, so the C rules
apply: a handle from curl_easy_init is released with curl_easy_cleanup, strings handed to libcurl must be
NUL-terminated (temp_c_string), curl_global_init runs once per program before the first handle is made, and
every transfer function blocks until the transfer is over unless the multi interface is used. Failure is a CURLcode
other than .OK, and curl_easy_strerror turns it into text. The libcurl shared library has to be installed on the
machine that runs the program; it is not part of the toolchain. Mail is built on this module, and Extensions/Http
is the HTTP client that needs no C library.
curl_global_init(0);
easy := curl_easy_init();
assert(easy != null);
defer curl_easy_cleanup(easy);
curl_easy_setopt(easy, .URL, temp_c_string("https://example.com/"));
code := curl_easy_perform(easy);
if code != .OK print("transfer failed: %\n", to_string(curl_easy_strerror(code)));This one is only checked to compile, not run.
Procedures#
Types#
- data: *void
- len: u64
- flags: u32
- num_of_certs: s32
- certinfo: **curl_slist
- NONE
- OLDEST
- LEAST_RECENTLY_USED
- LEAST_TRAFFIC
- SLOWEST
- CALLBACK
- LAST
- name: *u8
- id: CURLoption
- type: curl_easytype
- flags: u32
- LONG
- VALUES
- OFF_T
- OBJECT
- STRING
- SLIST
- CBPTR
- BLOB
- FUNCTION
- filename: *u8
- filetype: curlfiletype
- time: time_t
- perm: u32
- uid: s32
- gid: s32
- size: curl_off_t
- hardlinks: s64
- strings: struct { time: *u8; perm: *u8; user: *u8; group: *u8; target: *u8; }
- flags: u32
- b_data: *u8
- b_size: u64
- b_used: u64
- option: CURLformoption
- value: *u8
- DEFAULT
- SSL
- TLS
- LAST
- NONE
- PASSIVE
- ACTIVE
- LAST
- DIR_NONE
- DIR
- DIR_RETRY
- DIR_LAST
- DEFAULT
- MULTICWD
- NOCWD
- SINGLECWD
- LAST
- name: *u8
- value: *u8
- amount: u64
- index: u64
- origin: u32
- anchor: *void
- name: *u8
- namelen: u64
- includeSubDomains: u8
- expire: [18] u8
- NONE
- _1_0
- _1_1
- _2_0
- _2TLS
- _2_PRIOR_KNOWLEDGE
- _3
- _3ONLY
- LAST
- next: *curl_httppost
- name: *u8
- namelength: s64
- contents: *u8
- contentslength: s64
- buffer: *u8
- bufferlength: s64
- contenttype: *u8
- contentheader: *curl_slist
- more: *curl_httppost
- flags: s64
- showfilename: *u8
- userp: *void
- contentlen: curl_off_t
- index: u64
- total: u64
- TEXT
- HEADER_IN
- HEADER_OUT
- DATA_IN
- DATA_OUT
- SSL_DATA_IN
- SSL_DATA_OUT
- END
- key: *u8
- len: u64
- keytype: curl_khtype
- OK
- MISMATCH
- MISSING
- LAST
- FINE_ADD_TO_FILE
- FINE
- REJECT
- DEFER
- FINE_REPLACE
- LAST
- UNKNOWN
- RSA1
- RSA
- DSS
- ECDSA
- ED25519
- NONE
- SHARED
- SINGLE
- LAST
- NONE
- SHARE
- COOKIE
- DNS
- SSL_SESSION
- CONNECT
- PSL
- HSTS
- LAST
- CURL_NETRC_IGNORED
- AL
- CURL_NETRC_REQUIRED
- CURL_NETRC_LAST
- HTTP
- HTTP_1_0
- HTTPS
- HTTPS2
- SOCKS4
- SOCKS5
- SOCKS4A
- SOCKS5_HOSTNAME
- NONE
- OPTIONS
- DESCRIBE
- ANNOUNCE
- SETUP
- PLAY
- PAUSE
- TEARDOWN
- GET_PARAMETER
- SET_PARAMETER
- RECORD
- RECEIVE
- LAST
- data: *u8
- next: *curl_slist
- family: s32
- socktype: s32
- protocol: s32
- addrlen: u32
- addr: sockaddr
- id: curl_sslbackend
- name: *u8
- NONE
- OPENSSL
- GNUTLS
- NSS
- OBSOLETE4
- GSKIT
- POLARSSL
- WOLFSSL
- SCHANNEL
- SECURETRANSPORT
- AXTLS
- MBEDTLS
- MESALINK
- BEARSSL
- RUSTLS
- DEFAULT
- TLSv1
- SSLv2
- SSLv3
- TLSv1_0
- TLSv1_1
- TLSv1_2
- TLSv1_3
- LAST
- NONE
- DEFAULT
- TLSv1_0
- TLSv1_1
- TLSv1_2
- TLSv1_3
- LAST
- NONE
- IFMODSINCE
- IFUNMODSINCE
- LASTMOD
- LAST
- NONE
- SRP
- LAST
- backend: curl_sslbackend
- internals: *void
- NONE
- TRY
- CONTROL
- ALL
- LAST
- age: CURLversion
- version: *u8
- version_num: u32
- host: *u8
- features: s32
- ssl_version: *u8
- ssl_version_num: s64
- libz_version: *u8
- protocols: **u8
- ares: *u8
- ares_num: s32
- libidn: *u8
- iconv_ver_num: s32
- libssh_version: *u8
- brotli_ver_num: u32
- brotli_version: *u8
- nghttp2_ver_num: u32
- nghttp2_version: *u8
- quic_version: *u8
- cainfo: *u8
- capath: *u8
- zstd_ver_num: u32
- zstd_version: *u8
- hyper_version: *u8
- gsasl_version: *u8
- feature_names: **u8
- fd: curl_socket_t
- events: s16
- revents: s16
- age: s32
- flags: s32
- offset: curl_off_t
- bytesleft: curl_off_t
- len: u64
- OK
- UNSUPPORTED_PROTOCOL
- FAILED_INIT
- URL_MALFORMAT
- NOT_BUILT_IN
- COULDNT_RESOLVE_PROXY
- COULDNT_RESOLVE_HOST
- COULDNT_CONNECT
- WEIRD_SERVER_REPLY
- REMOTE_ACCESS_DENIED
- FTP_ACCEPT_FAILED
- FTP_WEIRD_PASS_REPLY
- FTP_ACCEPT_TIMEOUT
- FTP_WEIRD_PASV_REPLY
- FTP_WEIRD_227_FORMAT
- FTP_CANT_GET_HOST
- HTTP2
- FTP_COULDNT_SET_TYPE
- PARTIAL_FILE
- FTP_COULDNT_RETR_FILE
- OBSOLETE20
- QUOTE_ERROR
- HTTP_RETURNED_ERROR
- WRITE_ERROR
- OBSOLETE24
- UPLOAD_FAILED
- READ_ERROR
- OUT_OF_MEMORY
- OPERATION_TIMEDOUT
- OBSOLETE29
- FTP_PORT_FAILED
- FTP_COULDNT_USE_REST
- OBSOLETE32
- RANGE_ERROR
- HTTP_POST_ERROR
- SSL_CONNECT_ERROR
- BAD_DOWNLOAD_RESUME
- FILE_COULDNT_READ_FILE
- LDAP_CANNOT_BIND
- LDAP_SEARCH_FAILED
- OBSOLETE40
- FUNCTION_NOT_FOUND
- ABORTED_BY_CALLBACK
- BAD_FUNCTION_ARGUMENT
- OBSOLETE44
- INTERFACE_FAILED
- OBSOLETE46
- TOO_MANY_REDIRECTS
- UNKNOWN_OPTION
- SETOPT_OPTION_SYNTAX
- OBSOLETE50
- OBSOLETE51
- GOT_NOTHING
- SSL_ENGINE_NOTFOUND
- SSL_ENGINE_SETFAILED
- SEND_ERROR
- RECV_ERROR
- OBSOLETE57
- SSL_CERTPROBLEM
- SSL_CIPHER
- PEER_FAILED_VERIFICATION
- BAD_CONTENT_ENCODING
- OBSOLETE62
- FILESIZE_EXCEEDED
- USE_SSL_FAILED
- SEND_FAIL_REWIND
- SSL_ENGINE_INITFAILED
- LOGIN_DENIED
- TFTP_NOTFOUND
- TFTP_PERM
- REMOTE_DISK_FULL
- TFTP_ILLEGAL
- TFTP_UNKNOWNID
- REMOTE_FILE_EXISTS
- TFTP_NOSUCHUSER
- OBSOLETE75
- OBSOLETE76
- SSL_CACERT_BADFILE
- REMOTE_FILE_NOT_FOUND
- SSH
- SSL_SHUTDOWN_FAILED
- AGAIN
- SSL_CRL_BADFILE
- SSL_ISSUER_ERROR
- FTP_PRET_FAILED
- RTSP_CSEQ_ERROR
- RTSP_SESSION_ERROR
- FTP_BAD_FILE_LIST
- CHUNK_FAILED
- NO_CONNECTION_AVAILABLE
- SSL_PINNEDPUBKEYNOTMATCH
- SSL_INVALIDCERTSTATUS
- HTTP2_STREAM
- RECURSIVE_API_CALL
- AUTH_ERROR
- HTTP3
- QUIC_CONNECT_ERROR
- PROXY
- SSL_CLIENTCERT
- UNRECOVERABLE_POLL
- CURL_LAST
- FILE
- DIRECTORY
- SYMLINK
- DEVICE_BLOCK
- DEVICE_CHAR
- NAMEDPIPE
- SOCKET
- DOOR
- UNKNOWN
- OK
- MEMORY
- OPTION_TWICE
- NULL
- UNKNOWN_OPTION
- INCOMPLETE
- ILLEGAL_ARRAY
- DISABLED
- LAST
- NOTHING
- COPYNAME
- PTRNAME
- NAMELENGTH
- COPYCONTENTS
- PTRCONTENTS
- CONTENTSLENGTH
- FILECONTENT
- ARRAY
- OBSOLETE
- FILE
- BUFFER
- BUFFERPTR
- BUFFERLENGTH
- CONTENTTYPE
- CONTENTHEADER
- FILENAME
- END
- OBSOLETE2
- STREAM
- CONTENTLEN
- LASTENTRY
- OK
- BADINDEX
- MISSING
- NOHEADERS
- NOREQUEST
- OUT_OF_MEMORY
- BAD_ARGUMENT
- NOT_BUILT_IN
- NONE
- EFFECTIVE_URL
- RESPONSE_CODE
- TOTAL_TIME
- NAMELOOKUP_TIME
- CONNECT_TIME
- PRETRANSFER_TIME
- SIZE_UPLOAD
- SIZE_UPLOAD_T
- SIZE_DOWNLOAD
- SIZE_DOWNLOAD_T
- SPEED_DOWNLOAD
- SPEED_DOWNLOAD_T
- SPEED_UPLOAD
- SPEED_UPLOAD_T
- HEADER_SIZE
- REQUEST_SIZE
- SSL_VERIFYRESULT
- FILETIME
- FILETIME_T
- CONTENT_LENGTH_DOWNLOAD
- CONTENT_LENGTH_DOWNLOAD_T
- CONTENT_LENGTH_UPLOAD
- CONTENT_LENGTH_UPLOAD_T
- STARTTRANSFER_TIME
- CONTENT_TYPE
- REDIRECT_TIME
- REDIRECT_COUNT
- PRIVATE
- HTTP_CONNECTCODE
- HTTPAUTH_AVAIL
- PROXYAUTH_AVAIL
- OS_ERRNO
- NUM_CONNECTS
- SSL_ENGINES
- COOKIELIST
- LASTSOCKET
- FTP_ENTRY_PATH
- REDIRECT_URL
- PRIMARY_IP
- APPCONNECT_TIME
- CERTINFO
- CONDITION_UNMET
- RTSP_SESSION_ID
- RTSP_CLIENT_CSEQ
- RTSP_SERVER_CSEQ
- RTSP_CSEQ_RECV
- PRIMARY_PORT
- LOCAL_IP
- LOCAL_PORT
- TLS_SESSION
- ACTIVESOCKET
- TLS_SSL_PTR
- HTTP_VERSION
- PROXY_SSL_VERIFYRESULT
- PROTOCOL
- SCHEME
- TOTAL_TIME_T
- NAMELOOKUP_TIME_T
- CONNECT_TIME_T
- PRETRANSFER_TIME_T
- STARTTRANSFER_TIME_T
- REDIRECT_TIME_T
- APPCONNECT_TIME_T
- RETRY_AFTER
- EFFECTIVE_METHOD
- PROXY_ERROR
- REFERER
- CAINFO
- CAPATH
- XFER_ID
- CONN_ID
- LASTONE
- NOP
- RESTARTREAD
- LAST
- OK
- UNKNOWNCMD
- FAILRESTART
- LAST
- CALL_MULTI_PERFORM
- OK
- BAD_HANDLE
- BAD_EASY_HANDLE
- OUT_OF_MEMORY
- INTERNAL_ERROR
- BAD_SOCKET
- UNKNOWN_OPTION
- ADDED_ALREADY
- RECURSIVE_API_CALL
- WAKEUP_FAILURE
- BAD_FUNCTION_ARGUMENT
- ABORTED_BY_CALLBACK
- UNRECOVERABLE_POLL
- LAST
- SOCKETFUNCTION
- SOCKETDATA
- PIPELINING
- TIMERFUNCTION
- TIMERDATA
- MAXCONNECTS
- MAX_HOST_CONNECTIONS
- MAX_PIPELINE_LENGTH
- CONTENT_LENGTH_PENALTY_SIZE
- CHUNK_LENGTH_PENALTY_SIZE
- PIPELINING_SITE_BL
- PIPELINING_SERVER_BL
- MAX_TOTAL_CONNECTIONS
- PUSHFUNCTION
- PUSHDATA
- MAX_CONCURRENT_STREAMS
- LASTENTRY
- NONE
- DONE
- LAST
- WRITEDATA
- URL
- PORT
- PROXY
- USERPWD
- PROXYUSERPWD
- RANGE
- READDATA
- ERRORBUFFER
- WRITEFUNCTION
- READFUNCTION
- TIMEOUT
- INFILESIZE
- POSTFIELDS
- REFERER
- FTPPORT
- USERAGENT
- LOW_SPEED_LIMIT
- LOW_SPEED_TIME
- RESUME_FROM
- COOKIE
- HTTPHEADER
- HTTPPOST
- SSLCERT
- KEYPASSWD
- CRLF
- QUOTE
- HEADERDATA
- COOKIEFILE
- SSLVERSION
- TIMECONDITION
- TIMEVALUE
- CUSTOMREQUEST
- STDERR
- POSTQUOTE
- OBSOLETE40
- VERBOSE
- HEADER
- NOPROGRESS
- NOBODY
- FAILONERROR
- UPLOAD
- POST
- DIRLISTONLY
- APPEND
- NETRC
- FOLLOWLOCATION
- TRANSFERTEXT
- PUT
- PROGRESSFUNCTION
- XFERINFODATA
- AUTOREFERER
- PROXYPORT
- POSTFIELDSIZE
- HTTPPROXYTUNNEL
- INTERFACE
- KRBLEVEL
- SSL_VERIFYPEER
- CAINFO
- MAXREDIRS
- FILETIME
- TELNETOPTIONS
- MAXCONNECTS
- OBSOLETE72
- FRESH_CONNECT
- FORBID_REUSE
- RANDOM_FILE
- EGDSOCKET
- CONNECTTIMEOUT
- HEADERFUNCTION
- HTTPGET
- SSL_VERIFYHOST
- COOKIEJAR
- SSL_CIPHER_LIST
- HTTP_VERSION
- FTP_USE_EPSV
- SSLCERTTYPE
- SSLKEY
- SSLKEYTYPE
- SSLENGINE
- SSLENGINE_DEFAULT
- DNS_USE_GLOBAL_CACHE
- DNS_CACHE_TIMEOUT
- PREQUOTE
- DEBUGFUNCTION
- DEBUGDATA
- COOKIESESSION
- CAPATH
- BUFFERSIZE
- NOSIGNAL
- SHARE
- PROXYTYPE
- ACCEPT_ENCODING
- PRIVATE
- HTTP200ALIASES
- UNRESTRICTED_AUTH
- FTP_USE_EPRT
- HTTPAUTH
- SSL_CTX_FUNCTION
- SSL_CTX_DATA
- FTP_CREATE_MISSING_DIRS
- PROXYAUTH
- SERVER_RESPONSE_TIMEOUT
- IPRESOLVE
- MAXFILESIZE
- INFILESIZE_LARGE
- RESUME_FROM_LARGE
- MAXFILESIZE_LARGE
- NETRC_FILE
- USE_SSL
- POSTFIELDSIZE_LARGE
- TCP_NODELAY
- FTPSSLAUTH
- IOCTLFUNCTION
- IOCTLDATA
- FTP_ACCOUNT
- COOKIELIST
- IGNORE_CONTENT_LENGTH
- FTP_SKIP_PASV_IP
- FTP_FILEMETHOD
- LOCALPORT
- LOCALPORTRANGE
- CONNECT_ONLY
- CONV_FROM_NETWORK_FUNCTION
- CONV_TO_NETWORK_FUNCTION
- CONV_FROM_UTF8_FUNCTION
- MAX_SEND_SPEED_LARGE
- MAX_RECV_SPEED_LARGE
- FTP_ALTERNATIVE_TO_USER
- SOCKOPTFUNCTION
- SOCKOPTDATA
- SSL_SESSIONID_CACHE
- SSH_AUTH_TYPES
- SSH_PUBLIC_KEYFILE
- SSH_PRIVATE_KEYFILE
- FTP_SSL_CCC
- TIMEOUT_MS
- CONNECTTIMEOUT_MS
- HTTP_TRANSFER_DECODING
- HTTP_CONTENT_DECODING
- NEW_FILE_PERMS
- NEW_DIRECTORY_PERMS
- POSTREDIR
- SSH_HOST_PUBLIC_KEY_MD5
- OPENSOCKETFUNCTION
- OPENSOCKETDATA
- COPYPOSTFIELDS
- PROXY_TRANSFER_MODE
- SEEKFUNCTION
- SEEKDATA
- CRLFILE
- ISSUERCERT
- ADDRESS_SCOPE
- CERTINFO
- USERNAME
- PASSWORD
- PROXYUSERNAME
- PROXYPASSWORD
- NOPROXY
- TFTP_BLKSIZE
- SOCKS5_GSSAPI_SERVICE
- SOCKS5_GSSAPI_NEC
- PROTOCOLS
- REDIR_PROTOCOLS
- SSH_KNOWNHOSTS
- SSH_KEYFUNCTION
- SSH_KEYDATA
- MAIL_FROM
- MAIL_RCPT
- FTP_USE_PRET
- RTSP_REQUEST
- RTSP_SESSION_ID
- RTSP_STREAM_URI
- RTSP_TRANSPORT
- RTSP_CLIENT_CSEQ
- RTSP_SERVER_CSEQ
- INTERLEAVEDATA
- INTERLEAVEFUNCTION
- WILDCARDMATCH
- CHUNK_BGN_FUNCTION
- CHUNK_END_FUNCTION
- FNMATCH_FUNCTION
- CHUNK_DATA
- FNMATCH_DATA
- RESOLVE
- TLSAUTH_USERNAME
- TLSAUTH_PASSWORD
- TLSAUTH_TYPE
- TRANSFER_ENCODING
- CLOSESOCKETFUNCTION
- CLOSESOCKETDATA
- GSSAPI_DELEGATION
- DNS_SERVERS
- ACCEPTTIMEOUT_MS
- TCP_KEEPALIVE
- TCP_KEEPIDLE
- TCP_KEEPINTVL
- SSL_OPTIONS
- MAIL_AUTH
- SASL_IR
- XFERINFOFUNCTION
- XOAUTH2_BEARER
- DNS_INTERFACE
- DNS_LOCAL_IP4
- DNS_LOCAL_IP6
- LOGIN_OPTIONS
- SSL_ENABLE_NPN
- SSL_ENABLE_ALPN
- EXPECT_100_TIMEOUT_MS
- PROXYHEADER
- HEADEROPT
- PINNEDPUBLICKEY
- UNIX_SOCKET_PATH
- SSL_VERIFYSTATUS
- SSL_FALSESTART
- PATH_AS_IS
- PROXY_SERVICE_NAME
- SERVICE_NAME
- PIPEWAIT
- DEFAULT_PROTOCOL
- STREAM_WEIGHT
- STREAM_DEPENDS
- STREAM_DEPENDS_E
- TFTP_NO_OPTIONS
- CONNECT_TO
- TCP_FASTOPEN
- KEEP_SENDING_ON_ERROR
- PROXY_CAINFO
- PROXY_CAPATH
- PROXY_SSL_VERIFYPEER
- PROXY_SSL_VERIFYHOST
- PROXY_SSLVERSION
- PROXY_TLSAUTH_USERNAME
- PROXY_TLSAUTH_PASSWORD
- PROXY_TLSAUTH_TYPE
- PROXY_SSLCERT
- PROXY_SSLCERTTYPE
- PROXY_SSLKEY
- PROXY_SSLKEYTYPE
- PROXY_KEYPASSWD
- PROXY_SSL_CIPHER_LIST
- PROXY_CRLFILE
- PROXY_SSL_OPTIONS
- PRE_PROXY
- PROXY_PINNEDPUBLICKEY
- ABSTRACT_UNIX_SOCKET
- SUPPRESS_CONNECT_HEADERS
- REQUEST_TARGET
- SOCKS5_AUTH
- SSH_COMPRESSION
- MIMEPOST
- TIMEVALUE_LARGE
- HAPPY_EYEBALLS_TIMEOUT_MS
- RESOLVER_START_FUNCTION
- RESOLVER_START_DATA
- HAPROXYPROTOCOL
- DNS_SHUFFLE_ADDRESSES
- TLS13_CIPHERS
- PROXY_TLS13_CIPHERS
- DISALLOW_USERNAME_IN_URL
- DOH_URL
- UPLOAD_BUFFERSIZE
- UPKEEP_INTERVAL_MS
- CURLU
- TRAILERFUNCTION
- TRAILERDATA
- HTTP09_ALLOWED
- ALTSVC_CTRL
- ALTSVC
- MAXAGE_CONN
- SASL_AUTHZID
- MAIL_RCPT_ALLOWFAILS
- SSLCERT_BLOB
- SSLKEY_BLOB
- PROXY_SSLCERT_BLOB
- PROXY_SSLKEY_BLOB
- ISSUERCERT_BLOB
- PROXY_ISSUERCERT
- PROXY_ISSUERCERT_BLOB
- SSL_EC_CURVES
- HSTS_CTRL
- HSTS
- HSTSREADFUNCTION
- HSTSREADDATA
- HSTSWRITEFUNCTION
- HSTSWRITEDATA
- AWS_SIGV4
- DOH_SSL_VERIFYPEER
- DOH_SSL_VERIFYHOST
- DOH_SSL_VERIFYSTATUS
- CAINFO_BLOB
- PROXY_CAINFO_BLOB
- SSH_HOST_PUBLIC_KEY_SHA256
- PREREQFUNCTION
- PREREQDATA
- MAXLIFETIME_CONN
- MIME_OPTIONS
- SSH_HOSTKEYFUNCTION
- SSH_HOSTKEYDATA
- PROTOCOLS_STR
- REDIR_PROTOCOLS_STR
- WS_OPTIONS
- CA_CACHE_TIMEOUT
- QUICK_EXIT
- HAPROXY_CLIENT_IP
- LASTENTRY
- 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
- LAST
- OK
- BAD_OPTION
- IN_USE
- INVALID
- NOMEM
- NOT_BUILT_IN
- LAST
- NONE
- SHARE
- UNSHARE
- LOCKFUNC
- UNLOCKFUNC
- USERDATA
- LAST
- IPCXN
- ACCEPT
- LAST
- OK
- UNKNOWN_BACKEND
- TOO_LATE
- NO_BACKENDS
- OK
- DONE
- FAIL
- OK
- BAD_HANDLE
- BAD_PARTPOINTER
- MALFORMED_INPUT
- BAD_PORT_NUMBER
- UNSUPPORTED_SCHEME
- URLDECODE
- OUT_OF_MEMORY
- USER_NOT_ALLOWED
- UNKNOWN_PART
- NO_SCHEME
- NO_USER
- NO_PASSWORD
- NO_OPTIONS
- NO_HOST
- NO_PORT
- NO_QUERY
- NO_FRAGMENT
- NO_ZONEID
- BAD_FILE_URL
- BAD_FRAGMENT
- BAD_HOSTNAME
- BAD_IPV6
- BAD_LOGIN
- BAD_PASSWORD
- BAD_PATH
- BAD_QUERY
- BAD_SCHEME
- BAD_SLASHES
- BAD_USER
- LACKS_IDN
- LAST
- URL
- SCHEME
- USER
- PASSWORD
- OPTIONS
- HOST
- PORT
- PATH
- QUERY
- FRAGMENT
- ZONEID
- FIRST
- SECOND
- THIRD
- FOURTH
- FIFTH
- SIXTH
- SEVENTH
- EIGHTH
- NINTH
- TENTH
- ELEVENTH
- LAST
- NONE
- TRY
- CONTROL
- ALL
- LAST