net/curl

type curl

TBD

fun curl(): curl

Returns a new Curl easy instance.

meth (Arg₁: curl):cleanup

TBD

meth (Arg₁: curl):get(Arg₂: curlinfointeger)

TBD

meth (Arg₁: curl):get(Arg₂: curlinforeal)

TBD

meth (Arg₁: curl):get(Arg₂: curlinfoset)

TBD

meth (Arg₁: curl):get(Arg₂: curlinfostring)

TBD

meth (Arg₁: curl):perform

TBD

meth (Arg₁: curl):reset

TBD

meth (Curl: curl):set(Option: curloptionenum, Value: enum::value): curl

Sets Option in Curl to Value.

meth (Curl: curl):set(Option: curloptionfunction, Value: function): curl

Sets Option in Curl to Value.

meth (Curl: curl):set(Option: curloptionfunction, Value: stream): curl

Sets Option in Curl to Value.

meth (Curl: curl):set(Option: curloptionfunction, Value: string::buffer): curl

Sets Option in Curl to Value.

meth (Curl: curl):set(Option: curloptioninteger, Value: boolean): curl

Sets Option in Curl to Value.

meth (Curl: curl):set(Option: curloptioninteger, Value: integer): curl

Sets Option in Curl to Value.

meth (Curl: curl):set(Option: curloptionset, Value: list): curl

Sets Option in Curl to Value.

meth (Curl: curl):set(Option: curloptionstring, Value: string): curl

Sets Option in Curl to Value.

meth (Curl: curl):set(Option: curloption, nil: nil): curl

Sets Option in Curl to nil.

type curl::info < enum
  • ::EffectiveUrl

  • ::ContentType

  • ::Private

  • ::FtpEntryPath

  • ::RedirectUrl

  • ::PrimaryIp

  • ::RtspSessionId

  • ::LocalIp

  • ::Scheme

  • ::EffectiveMethod

  • ::Referer

  • ::Cainfo

  • ::Capath

  • ::ResponseCode

  • ::HeaderSize

  • ::RequestSize

  • ::SslVerifyresult

  • ::Filetime

  • ::RedirectCount

  • ::HttpConnectcode

  • ::HttpauthAvail

  • ::ProxyauthAvail

  • ::OsErrno

  • ::NumConnects

  • ::ConditionUnmet

  • ::RtspClientCseq

  • ::RtspServerCseq

  • ::RtspCseqRecv

  • ::PrimaryPort

  • ::LocalPort

  • ::HttpVersion

  • ::ProxySslVerifyresult

  • ::ProxyError

  • ::UsedProxy

  • ::HttpauthUsed

  • ::ProxyauthUsed

  • ::TotalTime

  • ::NamelookupTime

  • ::ConnectTime

  • ::PretransferTime

  • ::StarttransferTime

  • ::RedirectTime

  • ::AppconnectTime

  • ::SizeUploadT

  • ::SizeDownloadT

  • ::SpeedDownloadT

  • ::SpeedUploadT

  • ::FiletimeT

  • ::ContentLengthDownloadT

  • ::ContentLengthUploadT

  • ::TotalTimeT

  • ::NamelookupTimeT

  • ::ConnectTimeT

  • ::PretransferTimeT

  • ::StarttransferTimeT

  • ::RedirectTimeT

  • ::AppconnectTimeT

  • ::RetryAfter

  • ::XferId

  • ::ConnId

  • ::QueueTimeT

  • ::PosttransferTimeT

  • ::EarlydataSentT

  • ::SslEngines

  • ::Cookielist

  • ::Certinfo

  • ::TlsSslPtr

  • ::Activesocket

type curl::option < enum
  • ::Writedata - This is the FILE * or void * the regular output should be written to.

  • ::Readdata - Specified file stream to upload from (use as input):

  • ::Headerdata - send FILE * or void * to store headers to, if you use a callback it

  • ::Xferinfodata - Data passed to the CURLOPT_PROGRESSFUNCTION and CURLOPT_XFERINFOFUNCTION

  • ::Debugdata - set the data for the debug function

  • ::SslCtxData - Set the userdata for the ssl context callback function's third

  • ::Sockoptdata -

  • ::Opensocketdata -

  • ::Seekdata -

  • ::SshKeydata - set the SSH host key callback custom pointer

  • ::Interleavedata - The stream to pass to INTERLEAVEFUNCTION.

  • ::ChunkData - Let the application define custom chunk data pointer

  • ::FnmatchData - FNMATCH_FUNCTION user pointer

  • ::Closesocketdata -

  • ::ResolverStartData - User data to pass to the resolver start callback.

  • ::Trailerdata - pointer to be passed to HTTP_TRAILER_FUNCTION

  • ::Hstsreaddata -

  • ::Hstswritedata -

  • ::Prereqdata - Data passed to the CURLOPT_PREREQFUNCTION callback

  • ::SshHostkeydata - set the SSH host key callback custom pointer

  • ::Url - The full URL to get/put

  • ::Proxy - Name of proxy to use.

  • ::Userpwd - "user:password;options" to use when fetching.

  • ::Proxyuserpwd - "user:password" to use with proxy.

  • ::Range - Range to get, specified as an ASCII string.

  • ::Referer -

  • ::Ftpport - Set the FTP PORT string (interface name, named or numerical IP address)

  • ::Useragent - Set the User-Agent string (examined by some CGIs)

  • ::Cookie - Set cookie in request:

  • ::Sslcert - name of the file keeping your private SSL-certificate

  • ::Keypasswd - password for the SSL or SSH private key

  • ::Cookiefile - point to a file to read the initial cookies from, also enables

  • ::Customrequest - Custom request, for customizing the get command like

  • ::Interface - Set the interface string to use as outgoing network interface

  • ::Cainfo -

  • ::Cookiejar - Specify which filename to write all known cookies in after completed

  • ::SslCipherList - Specify which TLS 1.2 (1.1, 1.0) ciphers to use

  • ::Sslcerttype - type of the file keeping your SSL-certificate ("DER", "PEM", "ENG")

  • ::Sslkey - name of the file keeping your private SSL-key

  • ::Sslkeytype - type of the file keeping your private SSL-key ("DER", "PEM", "ENG")

  • ::Sslengine - crypto engine for the SSL-sub system

  • ::Capath -

  • ::AcceptEncoding - Set the Accept-Encoding string. Use this to tell a server you would like

  • ::NetrcFile - Set this option to the filename of your .netrc file you want libcurl

  • ::FtpAccount - null-terminated string for pass on to the FTP server when asked for

  • ::Cookielist -

  • ::FtpAlternativeToUser - Pointer to command string to send if USER/PASS fails.

  • ::SshPublicKeyfile - Used by scp/sftp to do public/private key authentication

  • ::SshPrivateKeyfile -

  • ::Crlfile - CRL file

  • ::Issuercert - Issuer certificate

  • ::Username - "name" and "pwd" to use when fetching.

  • ::Password -

  • ::Proxyusername - "name" and "pwd" to use with Proxy when fetching.

  • ::Proxypassword -

  • ::Noproxy - Comma separated list of hostnames defining no-proxy zones. These should

  • ::SshKnownhosts - set the SSH knownhost filename to use

  • ::MailFrom - set the SMTP mail originator

  • ::RtspSessionId -

  • ::RtspStreamUri - The RTSP stream URI

  • ::RtspTransport - The Transport: header to use in RTSP requests

  • ::TlsauthUsername - Set a username for authenticated TLS

  • ::TlsauthPassword - Set a password for authenticated TLS

  • ::TlsauthType - Set authentication type for authenticated TLS

  • ::DnsServers - Set the name servers to use for DNS resolution.

  • ::MailAuth - Set the SMTP auth originator

  • ::DnsInterface - Set the interface string to use as outgoing network

  • ::LoginOptions - Set authentication options directly

  • ::Pinnedpublickey - The public key used to validate the peer public key

  • ::UnixSocketPath - Path to Unix domain socket

  • ::ProxyServiceName - Proxy Service Name

  • ::ServiceName - Service Name

  • ::DefaultProtocol - Set the protocol used when curl is given a URL without a protocol

  • ::ProxyCainfo - The CApath or CAfile used to validate the proxy certificate

  • ::ProxyCapath - The CApath directory used to validate the proxy certificate

  • ::ProxyTlsauthUsername - Set a username for authenticated TLS for proxy

  • ::ProxyTlsauthPassword - Set a password for authenticated TLS for proxy

  • ::ProxyTlsauthType - Set authentication type for authenticated TLS for proxy

  • ::ProxySslcert - name of the file keeping your private SSL-certificate for proxy

  • ::ProxySslcerttype - type of the file keeping your SSL-certificate ("DER", "PEM", "ENG") for

  • ::ProxySslkey - name of the file keeping your private SSL-key for proxy

  • ::ProxySslkeytype - type of the file keeping your private SSL-key ("DER", "PEM", "ENG") for

  • ::ProxyKeypasswd - password for the SSL private key for proxy

  • ::ProxySslCipherList - Specify which TLS 1.2 (1.1, 1.0) ciphers to use for proxy

  • ::ProxyCrlfile - CRL file for proxy

  • ::PreProxy - Name of pre proxy to use.

  • ::ProxyPinnedpublickey - The public key in DER form used to validate the proxy public key

  • ::AbstractUnixSocket - Path to an abstract Unix domain socket

  • ::RequestTarget - The request target, instead of extracted from the URL

  • ::DohUrl - DNS-over-HTTPS URL

  • ::Altsvc - alt-svc cache filename to possibly read from/write to

  • ::SaslAuthzid - SASL authorization identity

  • ::ProxyIssuercert - Issuer certificate for proxy

  • ::SslEcCurves - the EC curves requested by the TLS client (RFC 8422, 5.1);

  • ::Hsts - HSTS filename

  • ::ProtocolsStr - specify which protocols that are allowed to be used for the transfer,

  • ::RedirProtocolsStr - specify which protocols that libcurl is allowed to follow directs to

  • ::HaproxyClientIp - set a specific client IP for HAProxy PROXY protocol header?

  • ::Ech - set ECH configuration

  • ::SslSignatureAlgorithms - set TLS supported signature algorithms

  • ::Port - Port number to connect to, if other than default.

  • ::Timeout - Time-out the read operation after this amount of seconds

  • ::Infilesize - If CURLOPT_READDATA is used, this can be used to inform libcurl about

  • ::LowSpeedLimit - Set the "low speed limit"

  • ::LowSpeedTime - Set the "low speed time"

  • ::ResumeFrom - Set the continuation offset.

  • ::Crlf - send TYPE parameter?

  • ::Timevalue - Time to use with the above condition. Specified in number of seconds

  • ::Verbose - talk a lot

  • ::Header - throw the header out too

  • ::Noprogress - shut off the progress meter

  • ::Nobody - use HEAD to get http document

  • ::Failonerror - no output on http error codes >= 400

  • ::Upload - this is an upload

  • ::Post - HTTP POST method

  • ::Dirlistonly - bare names when listing directories

  • ::Append - Append instead of overwrite on upload!

  • ::Followlocation - use Location: Luke!

  • ::Transfertext - transfer data in text/ASCII format

  • ::Autoreferer - We want the referrer field set automatically when following locations

  • ::Proxyport - Port of the proxy, can be set in the proxy string as well with:

  • ::Postfieldsize - size of the POST input data, if strlen() is not good to use

  • ::Httpproxytunnel - tunnel non-http operations through an HTTP proxy

  • ::SslVerifypeer - Set if we should verify the peer in ssl handshake, set 1 to verify.

  • ::Maxredirs - Maximum number of http redirects to follow

  • ::Filetime -

  • ::Maxconnects - Max amount of cached alive connections

  • ::FreshConnect - Set to explicitly use a new connection for the upcoming transfer.

  • ::ForbidReuse - Set to explicitly forbid the upcoming transfer's connection to be reused

  • ::Connecttimeout - Time-out connect operations after this amount of seconds, if connects are

  • ::Httpget - Set this to force the HTTP request to get back to GET. Only really usable

  • ::SslVerifyhost - Set if we should verify the Common name from the peer certificate in ssl

  • ::FtpUseEpsv - Specifically switch on or off the FTP engine's use of the EPSV command. By

  • ::SslengineDefault - set the crypto engine for the SSL-sub system as default

  • ::DnsCacheTimeout - DNS cache timeout

  • ::Cookiesession - mark this as start of a cookie session

  • ::Buffersize - Instruct libcurl to use a smaller receive buffer

  • ::Nosignal - Instruct libcurl to not use any signal/alarm handlers, even when using

  • ::UnrestrictedAuth - Continue to send authentication (user+password) when following locations,

  • ::FtpUseEprt - Specifically switch on or off the FTP engine's use of the EPRT command (

  • ::FtpCreateMissingDirs - FTP Option that causes missing dirs to be created on the remote server.

  • ::ServerResponseTimeout - Option that changes the timeout, in seconds, associated with getting a

  • ::Maxfilesize -

  • ::TcpNodelay - Enable/disable the TCP Nagle algorithm

  • ::IgnoreContentLength - ignore Content-Length

  • ::FtpSkipPasvIp - Set to non-zero to skip the IP address received in a 227 PASV FTP server

  • ::Localport - Local port number to bind the socket to

  • ::Localportrange - Number of ports to try, including the first one set with LOCALPORT.

  • ::ConnectOnly - no transfer, set up connection and let application use the socket by

  • ::SslSessionidCache - set to 0 to disable session ID reuse for this transfer, default is

  • ::FtpSslCcc - Send CCC (Clear Command Channel) after authentication

  • ::TimeoutMs - Same as TIMEOUT and CONNECTTIMEOUT, but with ms resolution

  • ::ConnecttimeoutMs -

  • ::HttpTransferDecoding - set to zero to disable the libcurl's decoding and thus pass the raw body

  • ::HttpContentDecoding -

  • ::NewFilePerms - Permission used when creating new files and directories on the remote

  • ::NewDirectoryPerms -

  • ::ProxyTransferMode - set transfer mode (;type=<a|i>) when doing FTP via an HTTP proxy

  • ::AddressScope - (IPv6) Address scope

  • ::Certinfo -

  • ::TftpBlksize - block size for TFTP transfers

  • ::FtpUsePret - FTP: send PRET before PASV

  • ::RtspClientCseq -

  • ::RtspServerCseq -

  • ::Wildcardmatch - Turn on wildcard matching

  • ::TransferEncoding -

  • ::AccepttimeoutMs - Time-out accept operations (currently for FTP only) after this amount

  • ::TcpKeepalive - Set TCP keepalive

  • ::TcpKeepidle - non-universal keepalive knobs (Linux, AIX, HP-UX, more)

  • ::TcpKeepintvl -

  • ::SaslIr - Enable/disable SASL initial response

  • ::SslEnableAlpn - Enable/disable TLS ALPN extension (http2 over ssl might fail without)

  • ::SslVerifystatus - Set if we should verify the certificate status.

  • ::PathAsIs - Do not squash dot-dot sequences

  • ::Pipewait - Wait/do not wait for pipe/mutex to clarify

  • ::StreamWeight - Set stream weight, 1 - 256 (default is 16)

  • ::TftpNoOptions - Do not send any tftp option requests to the server

  • ::TcpFastopen - Set TCP Fast Open

  • ::KeepSendingOnError - Continue to send data if the server responds early with an

  • ::ProxySslVerifypeer - Set if we should verify the proxy in ssl handshake,

  • ::ProxySslVerifyhost - Set if we should verify the Common name from the proxy certificate in ssl

  • ::ProxySslOptions - Enable/disable specific SSL features with a bitmask for proxy, see

  • ::SuppressConnectHeaders - Suppress proxy CONNECT response headers from user callbacks

  • ::SshCompression - Enable/disable SSH compression

  • ::HappyEyeballsTimeoutMs - Head start in milliseconds to give happy eyeballs.

  • ::Haproxyprotocol - send HAProxy PROXY protocol header?

  • ::DnsShuffleAddresses - shuffle addresses before use when DNS returns multiple

  • ::DisallowUsernameInUrl - Disallow specifying username/login in URL.

  • ::UploadBuffersize - Preferred buffer size to use for uploads

  • ::UpkeepIntervalMs - Time in ms between connection upkeep calls for long-lived connections.

  • ::AltsvcCtrl - alt-svc control bitmask

  • ::MaxageConn - maximum age (idle time) of a connection to consider it for reuse

  • ::MailRcptAllowfails - allow RCPT TO command to fail for some recipients

  • ::HstsCtrl - HSTS bitmask

  • ::DohSslVerifypeer - Same as CURLOPT_SSL_VERIFYPEER but for DoH (DNS-over-HTTPS) servers.

  • ::DohSslVerifyhost - Same as CURLOPT_SSL_VERIFYHOST but for DoH (DNS-over-HTTPS) servers.

  • ::DohSslVerifystatus - Same as CURLOPT_SSL_VERIFYSTATUS but for DoH (DNS-over-HTTPS) servers.

  • ::MaxlifetimeConn - maximum age (since creation) of a connection to consider it for reuse

  • ::MimeOptions - Set MIME option flags.

  • ::WsOptions - WebSockets options

  • ::CaCacheTimeout - CA cache timeout

  • ::QuickExit - Can leak things, gonna exit() soon

  • ::ServerResponseTimeoutMs - millisecond version

  • ::TcpKeepcnt - maximum number of keepalive probes (Linux, *BSD, macOS, etc.)

  • ::UploadFlags -

  • ::Errorbuffer - Buffer to receive error messages in, must be at least CURL_ERROR_SIZE

  • ::Postfields - POST static input fields.

  • ::Stderr - FILE handle to use instead of stderr

  • ::Share - Provide a CURLShare for mutexing non-ts data

  • ::Private -

  • ::Copypostfields - POST volatile input fields.

  • ::StreamDepends - Set stream dependency on another curl handle

  • ::StreamDependsE - Set E-xclusive stream dependency on another curl handle

  • ::Mimepost - Post MIME data.

  • ::Curlu - Specify URL using CURL URL API.

  • ::Writefunction - Function that will be called to store the output (instead of fwrite). The

  • ::Readfunction - Function that will be called to read the input (instead of fread). The

  • ::Headerfunction - Function that will be called to store headers (instead of fwrite). The

  • ::Debugfunction - set the debug function

  • ::SslCtxFunction - Set the ssl context callback function, currently only for OpenSSL or

  • ::Sockoptfunction - callback function for setting socket options

  • ::Opensocketfunction - Callback function for opening socket (instead of socket(2)). Optionally,

  • ::Seekfunction - Callback function for seeking in the input stream

  • ::SshKeyfunction - set the SSH host key callback, must point to a curl_sshkeycallback

  • ::Interleavefunction - Let the application define a custom write method for RTP data

  • ::ChunkBgnFunction - Directory matching callback called before downloading of an

  • ::ChunkEndFunction - Directory matching callback called after the file (chunk)

  • ::FnmatchFunction - Change match (fnmatch-like) callback for wildcard matching

  • ::Closesocketfunction - Callback function for closing socket (instead of close(2)). The callback

  • ::Xferinfofunction - Function that will be called instead of the internal progress display

  • ::ResolverStartFunction - Function that will be called before a resolver request is made

  • ::Trailerfunction - add trailing data after no more data is available

  • ::Hstsreadfunction - HSTS read callback

  • ::Hstswritefunction - HSTS write callback

  • ::Prereqfunction - Function that will be called immediately before the initial request

  • ::SshHostkeyfunction - set the SSH host key callback, must point to a curl_sshkeycallback

  • ::Httpheader - This points to a linked list of headers, struct curl_slist kind. This

  • ::Quote - send linked-list of QUOTE commands

  • ::Postquote - send linked-list of post-transfer QUOTE commands

  • ::Telnetoptions - This points to a linked list of telnet options

  • ::Prequote - send linked-list of pre-transfer QUOTE commands

  • ::MailRcpt - set the list of SMTP mail receiver(s)

  • ::Resolve - send linked-list of name:port:address sets

  • ::Proxyheader - This points to a linked list of headers used for proxy requests only,

  • ::ConnectTo - Linked-list of host:port:connect-to-host:connect-to-port,

  • ::Sslversion - What version to specifically try to use.

  • ::Timecondition - What kind of HTTP time condition to use, see defines

  • ::Netrc - Specify whether to read the user+password from the .netrc or the URL.

  • ::HttpVersion -

  • ::Proxytype - indicates type of proxy. accepted values are CURLPROXY_HTTP (default),

  • ::Httpauth - Set this to a bitmask value to enable the particular authentications

  • ::Proxyauth - Set this to a bitmask value to enable the particular authentications

  • ::Ipresolve - Set this option to one of the CURL_IPRESOLVE_* defines (see below) to

  • ::UseSsl - Enable SSL/TLS for FTP, pick one of:

  • ::Ftpsslauth -

  • ::FtpFilemethod - Select "file method" to use when doing FTP, see the curl_ftpmethod

  • ::SshAuthTypes - allowed SSH authentication methods

  • ::Postredir - Set the behavior of POST when redirecting. Values must be set to one

  • ::RtspRequest - RTSP request method (OPTIONS, SETUP, PLAY, etc...)

  • ::GssapiDelegation - allow GSSAPI credential delegation

  • ::SslOptions - Enable/disable specific SSL features with a bitmask, see CURLSSLOPT_*

  • ::Headeropt - Pass in a bitmask of "header options"

  • ::ProxySslversion - What version to specifically try to use for proxy.

  • ::InfilesizeLarge - See the comment for INFILESIZE above, but in short, specifies

  • ::ResumeFromLarge - Sets the continuation offset. There is also a CURLOPTTYPE_LONG version

  • ::MaxfilesizeLarge - Sets the maximum size of data that will be downloaded from

  • ::PostfieldsizeLarge - The _LARGE version of the standard POSTFIELDSIZE option

  • ::MaxSendSpeedLarge - if the connection proceeds too quickly then need to slow it down limit-rate: maximum number of bytes per second to send or receive

  • ::MaxRecvSpeedLarge -

  • ::TimevalueLarge - Time to use with the CURLOPT_TIMECONDITION. Specified in number of

  • ::SslcertBlob - the private SSL-certificate as a "blob"

  • ::SslkeyBlob -

  • ::ProxySslcertBlob -

  • ::ProxySslkeyBlob -

  • ::IssuercertBlob -

  • ::ProxyIssuercertBlob -

  • ::CainfoBlob - The CA certificates as "blob" used to validate the peer certificate

  • ::ProxyCainfoBlob - The CA certificates as "blob" used to validate the proxy certificate

type curlusessl < enum
  • ::None

  • ::Try

  • ::Control

  • ::All