Platforms to show: All Mac Windows Linux Cross-Platform

Back to CURLSMBS class.

Next items

CURLSMBS.OptionAbstractUnixSocket as String

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 18.2 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Path to an abstract Unix domain socket.

(Read and Write property)

See also ABSTRACT_UNIX_SOCKET option in CURL manual.

CURLSMBS.OptionAcceptEncoding as String

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 13.0 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Sets the contents of the Accept-Encoding: header sent in a HTTP request, and enables decoding of a response when a Content-Encoding: header is received.
Example
Var c as new CURLSMBS
c.OptionAcceptEncoding = "deflate"

Three encodings are supported: identity, which does nothing, deflate which requests the server to compress its response using the zlib algorithm, and gzip which requests the gzip algorithm. If a zero-length string is set, then an Accept-Encoding: header containing all supported encodings is sent.

This is a request, not an order; the server may or may not do it. This option must be set (to any non-NULL value) or else any unsolicited encoding done by the server is ignored. See the special file README.encoding for details (included with CURL source code).
(Read and Write property)

Some examples using this property:

See also ACCEPT_ENCODING option in CURL manual.

CURLSMBS.OptionAcceptTimeoutMS as Integer

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 18.2 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Time-out accept operations (currently for FTP only) after this amount of milliseconds.

(Read and Write property)

See also ACCEPTTIMEOUT_MS option in CURL manual.

CURLSMBS.OptionAddressScope as Integer

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 10.0 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Pass an integer specifying the scope_id value to use when connecting to IPv6 link-local or site-local addresses.

(Added in CURL 7.19.0)
(Read and Write property)

See also ADDRESS_SCOPE option in CURL manual.

CURLSMBS.OptionAppend as Boolean

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 15.2 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
True tells the library to append to the remote file instead of overwrite it.

This is only useful when uploading to an ftp site.

The Lasterror property is set. 0 for success.
You can set this value and later you can read it, but you cannot read the default value.
(Read and Write property)

Some examples using this property:

See also APPEND option in CURL manual.

CURLSMBS.OptionAutoReferer as Boolean

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 9.8 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
When enabled, libCURL will automatically set the Referer: field in requests where it follows a Location: redirect.

The Lasterror property is set. 0 for success.
You can set this value and later you can read it, but you cannot read the default value.
(Read and Write property)

See also AUTOREFERER option in CURL manual.

CURLSMBS.OptionAWSSigV4 as String

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 21.1 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Provides AWS V4 signature authentication on HTTP(S) header.

Pass a text that is the collection of specific arguments are used for creating outgoing authentication headers. The format of the param option is:

provider1[:provider2[:region[:service]]]

provider1, provider2:
The providers arguments are used for generating some authentication parameters such as "Algorithm", "date", "request type" and "signed headers".

region:
The argument is a geographic area of a resources collection. It is extracted from the host name specified in the URL if omitted.

service:
The argument is a function provided by a cloud. It is extracted from the host name specified in the URL if omitted.

Note: This call set CURLOPT_HTTPAUTH to CURLAUTH_AWS_SIGV4. Calling CURLOPT_HTTPAUTH with CURLAUTH_AWS_SIGV4 is the same as calling this with "aws:amz" in parameter.

Example with "Test:Try", when curl will do the algorithm, it will generate "TEST-HMAC-SHA256" for "Algorithm", "x-try-date" and "X-Try-Date" for "date", "test4_request" for "request type", "SignedHeaders=content-type;host;x-try-date" for "signed headers"
If you use just "test", instead of "test:try", test will be use for every strings generated

By default, the value of this parameter is empty. Calling CURLOPT_HTTPAUTH with CURLAUTH_AWS_SIGV4 is the same as calling this with "aws:amz" in parameter.
(Read and Write property)

See also AWS_SIGV4 option in CURL manual.

CURLSMBS.OptionBufferSize as Integer

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 9.8 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Your preferred size (in bytes) for the receive buffer in libCURL.

The main point of this would be that the write event gets called more often and with smaller chunks. This is just treated as a request, not an order. You cannot be guaranteed to actually get the given size. (Added in 7.10)

This size is by default set as big as possible (OptionMaxWriteSize), so it only makse sense to use this option if you want it smaller.

The Lasterror property is set. 0 for success.
You can set this value and later you can read it, but you cannot read the default value.

For slow upload/downloads, it may be better to set buffer size to 1 MB with OptionUploadBufferSize or OptionBufferSize properties to make transfers faster.
(Read and Write property)

Some examples using this property:

See also BUFFERSIZE option in CURL manual.

CURLSMBS.OptionCACacheTimeout as Integer

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 23.0 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Sets the life-time for cached certificate stores.

Pass a number, this sets the timeout in seconds. This tells libcurl the maximum time any cached certificate store it has in memory may be kept and reused for new connections. Once the timeout has expired, a subsequent fetch requiring a certificate store will have to build a new one.
Building a certificate store from a CAINFO file (see OptionCAInfo) is a slow operation so curl may cache the generated certificate store internally to speed up future connections.
Set to zero to completely disable caching, or set to -1 to retain the cached store remain forever. By default, libcurl caches this info for 24 hours.
(Read and Write property)

See also CA_CACHE_TIMEOUT option in CURL manual.

CURLSMBS.OptionCAInfo as String

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 9.8 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
A string naming a file holding one or more certificates to verify the peer with.
Example
// if you use SSL, maybe put in a certificate or disable verification?

Var d as CURLSMBS
// your CURL object

// disable
d.OptionSSLVerifyHost = 0
d.OptionSSLVerifyPeer = 0

// or better provide root certificates:

Var cacert As FolderItem = GetFolderItem("cacert.pem")
d.OptionCAInfo = cacert.NativePath
d.OptionSSLVerifyHost = 2
d.OptionSSLVerifyPeer = 1

This makes sense only when used in combination with the OptionSSLVerifyPeer option. If OptionSSLVerifyPeer is false, OptionCAINFO need not even indicate an accessible file.

Note that option is by default set to the system path where libCURL's cacert bundle is assumed to be stored, as established at build time.

The Lasterror property is set. 0 for success.
You can set this value and later you can read it, but you cannot read the default value.

Starting with version 18.0 the plugin will always use UTF-8 encoding for file path on Linux and macOS. For macOS we also do the unicode character normalization for file names for you.
(Read and Write property)

Some examples using this property:

See also CAINFO option in CURL manual.

CURLSMBS.OptionCAInfoBlob as String

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 21.3 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
The CAInfo as blob value.

Certificate Authority (CA) bundle in PEM format passed PEM encoded content holding one or more certificates to verify the HTTPS server with.
(Read and Write property)

See also CAINFO_BLOB option in CURL manual.

CURLSMBS.OptionCAPath as String

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 9.8 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
A string naming a directory holding multiple CA certificates to verify the peer with.
Example
Var c as new CURLSMBS
c.OptionCAPath = "/data/MyCertificates"

The certificate directory must be prepared using the openssl c_rehash utility. This makes sense only when used in combination with the CURLOPT_SSL_VERIFYPEER option. If OptionSSLVerifyPeer is zero, OptionCAPath need not even indicate an accessible path. The OptionCAPath function apparently does not work in Windows due to some limitation in openssl. This option is OpenSSL-specific and does nothing if libCURL is built to use GnuTLS.

The Lasterror property is set. 0 for success.
You can set this value and later you can read it, but you cannot read the default value.

Starting with version 18.0 the plugin will always use UTF-8 encoding for file path on Linux and macOS. For macOS we also do the unicode character normalization for file names for you.
(Read and Write property)

See also CAPATH option in CURL manual.

CURLSMBS.OptionCertInfo as boolean

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 10.0 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Set to true to enable libCURL's certificate chain info gatherer.

With this enabled, libCURL (if built with OpenSSL) will extract lots of information and data about the certificates in the certificate chain used in the SSL connection. This data is then possible to extract after a transfer using GetInfoCertInfo. (Added in 7.19.1)
(Read and Write property)

See also CERTINFO option in CURL manual.

CURLSMBS.OptionConnectionTimeout as Integer

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 9.8 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
The maximum time in seconds that you allow the connection to the server to take.
Example
Var d as new CURLSMBS

d.OptionConnectionTimeOutMS = 5000
d.OptionConnectOnly = 1

// try this URL
d.OptionURL = URL

// try connection
Var e as integer = d.Perform

// check result
Var s as string = d.OutputData
TextArea1.text = FixText(S)

if e = 0 then
MsgBox "Connected"
else
MsgBox "Failed to connect"
end if

This only limits the connection phase, once it has connected, this option is of no more use. Set to zero to disable connection timeout (it will then only timeout on the system's internal timeouts). See also the OptionTimeout option.
(Read and Write property)

Some examples using this property:

See also CONNECTTIMEOUT option in CURL manual.

CURLSMBS.OptionConnectionTimeOutMS as Integer

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 9.8 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
The maximum time in milli seconds that you allow the connection to the server to take.

This only limits the connection phase, once it has connected, this option is of no more use. Set to zero to disable connection timeout (it will then only timeout on the system's internal timeouts). See also the OptionTimeout option.
(Read and Write property)

Some examples using this property:

CURLSMBS.OptionConnectOnly as Integer

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 9.8 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
A true tells the library to perform any required proxy authentication and connection setup, but no data transfer.

This option is useful with the CURLSMBS.GetInfoLastSocket function. The library can set up the connection and then the application can obtain the most recently used socket for special data transfers. (Added in 7.15.2)

Type changed to integer in v23.0 to enable passing 2 for WebSockets.
(Read and Write property)

Some examples using this property:

See also CONNECT_ONLY option in CURL manual.

CURLSMBS.OptionCookie as String

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 9.8 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
It will be used to set a cookie in the http request.

The format of the string should be NAME=CONTENTS, where NAME is the cookie name and CONTENTS is what the cookie should contain.

If you need to set multiple cookies, you need to set them all using a single option and thus you need to concatenate them all in one single string. Set multiple cookies in one string like this: "name1=content1; name2=content2;" etc.

Using this option multiple times will only make the latest string override the previously ones.

The Lasterror property is set. 0 for success.
You can set this value and later you can read it, but you cannot read the default value.
(Read and Write property)

See also COOKIE option in CURL manual.

CURLSMBS.OptionCookieFile as String

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 9.8 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
The cookie file content.

It should contain the name of your file holding cookie data to read. The cookie data may be in Netscape / Mozilla cookie data format or just regular HTTP-style headers dumped to a file.

Given an empty or non-existing file or by passing the empty string (""), this option will enable cookies for this CURL handle, making it understand and parse received cookies and then use matching cookies in future request.

If you use this option multiple times, you just add more files to read. Subsequent files will add more cookies.

The Lasterror property is set. 0 for success.
You can set this value and later you can read it, but you cannot read the default value.

Starting with version 18.0 the plugin will always use UTF-8 encoding for file path on Linux and macOS. For macOS we also do the unicode character normalization for file names for you.
(Read and Write property)

See also COOKIEFILE option in CURL manual.

CURLSMBS.OptionCookieJar as String

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 9.8 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
File path where to write the cookies to.
Example
// Activate cookie engine without cookie file:
curl.OptionCookieJar = ""

This will make libCURL write all internally known cookies to the specified file, when the object is destroyed. If no cookies are known, no file will be created. Specify "-" to instead have the cookies written to stdout. Using this option also enables cookies for this session, so if you for example follow a location it will make matching cookies get sent accordingly.

If the cookie jar file can't be created or written to, libCURL will not and cannot report an error for this. Using OptionVerbose or DebugFunction event will get a warning to display, but that is the only visible feedback you get about this possibly lethal situation.

The Lasterror property is set. 0 for success.
You can set this value and later you can read it, but you cannot read the default value.

Starting with version 18.0 the plugin will always use UTF-8 encoding for file path on Linux and macOS. For macOS we also do the unicode character normalization for file names for you.
(Read and Write property)

See also COOKIEJAR option in CURL manual.

CURLSMBS.OptionCookieList as String

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 9.8 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
The cookie string.

Cookie can be either in Netscape / Mozilla format or just regular HTTP-style header (Set-Cookie: ...) format. If CURL cookie engine was not enabled it will enable its cookie engine. Passing a magic string "ALL" will erase all cookies known by CURL. (Added in 7.14.1) Passing the special string "SESS" will only erase all session cookies known by CURL. (Added in 7.15.4)

The Lasterror property is set. 0 for success.
You can set this value and later you can read it, but you cannot read the default value.
(Read and Write property)

See also COOKIELIST option in CURL manual.

CURLSMBS.OptionCookieSession as Boolean

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 9.8 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Set to true to mark this as a new cookie "session".

It will force libCURL to ignore all cookies it is about to load that are "session cookies" from the previous session. By default, libCURL always stores and loads all cookies, independent if they are session cookies are not. Session cookies are cookies without expiry date and they are meant to be alive and existing for this "session" only.

The Lasterror property is set. 0 for success.
You can set this value and later you can read it, but you cannot read the default value.
(Read and Write property)

See also COOKIESESSION option in CURL manual.

CURLSMBS.OptionCRLF as Boolean

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 9.8 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Convert Unix newlines to CRLF newlines on transfers.

The Lasterror property is set. 0 for success.
You can set this value and later you can read it, but you cannot read the default value.
(Read and Write property)

See also CRLF option in CURL manual.

CURLSMBS.OptionCRLFile as String

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 10.0 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
A string naming a file with the concatenation of CRL (in PEM format) to use in the certificate validation that occurs during the SSL exchange.

When CURL is built to use NSS or GnuTLS, there is no way to influence the use of CRL passed to help in the verification process. When libCURL is built with OpenSSL support, X509_V_FLAG_CRL_CHECK and X509_V_FLAG_CRL_CHECK_ALL are both set, requiring CRL check against all the elements of the certificate chain if a CRL file is passed.

This option makes sense only when used in combination with the OptionSSLVerifyPeer option.

A specific error code (CURLE_SSL_CRL_BADFILE) is defined with the option. It is returned when the SSL exchange fails because the CRL file cannot be loaded. Note that a failure in certificate verification due to a revocation information found in the CRL does not trigger this specific error. (Added in 7.19.0)
(Read and Write property)

See also CRLFILE option in CURL manual.

CURLSMBS.OptionCustomRequest as String

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 9.8 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
It will be user instead of GET or HEAD when doing an HTTP request, or instead of LIST or NLST when doing an ftp directory listing.
Example
Var c as CURLSMBS // your CURL instance

c.URL = "ftp://..."
c.customRequest = "MLSD" // ftp advanced directory listing

This is useful for doing DELETE or other more or less obscure HTTP requests. Don't do this at will, make sure your server supports the command first.

Restore to the internal default by setting this to "".

Many people have wrongly used this option to replace the entire request with their own, including multiple headers and POST contents. While that might work in many cases, it will cause libCURL to send invalid requests and it could possibly confuse the remote server badly. Use CURLOPT_POST and OptionPostFields to set POST data. Use OptionHTTPHeader to replace or extend the set of headers sent by libCURL. Use OptionHTTPVersion to change HTTP version.

The Lasterror property is set. 0 for success.
You can set this value and later you can read it, but you cannot read the default value.

For WebDAV, you can set this to "MKCOL" to create a folder at the given URL.
(Read and Write property)

Some examples using this property:

See also CUSTOMREQUEST option in CURL manual.

CURLSMBS.OptionDefaultProtocol as String

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 18.2 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Set the protocol used when curl is given a URL without a protocol.

(Read and Write property)

See also DEFAULT_PROTOCOL option in CURL manual.

CURLSMBS.OptionDirListOnly as Boolean

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 15.2 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
For FTP and SFTP based URLs a parameter set to true tells the library to list the names of files in a directory, rather than performing a full directory listing that would normally include file sizes, dates etc.

For POP3 a parameter of true tells the library to list the email message or messages on the POP3 server. This can be used to change the default behaviour of libCURL, when combined with a URL that contains a message ID, to perform a "scan listing" which can then be used to determine the size of an email.

Note: For FTP this causes a NLST command to be sent to the FTP server. Beware that some FTP servers list only files in their response to NLST; they might not include subdirectories and symbolic links.

Setting this option to true also implies a directory listing even if the URL doesn't end with a slash, which otherwise is necessary.

Do NOT use this option if you also use OptionWildCardMatch as it will effectively break that feature then.
(Read and Write property)

Some examples using this property:

See also DIRLISTONLY option in CURL manual.

CURLSMBS.OptionDisableUserNameInURL as Boolean

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 18.3 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Disallow specifying username/login in URL.

The value true tells the library to not allow URLs that include an username.
(Read and Write property)

CURLSMBS.OptionDNSCacheTimeout as Integer

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 9.8 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
The timeout in seconds.

Name resolves will be kept in memory for this number of seconds. Set to zero (0) to completely disable caching, or set to -1 to make the cached entries remain forever. By default, libCURL caches this info for 60 seconds.

The Lasterror property is set. 0 for success.
You can set this value and later you can read it, but you cannot read the default value.
(Read and Write property)

See also DNS_CACHE_TIMEOUT option in CURL manual.

CURLSMBS.OptionDNSInterface as String

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 15.2 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Set the name of the network interface that the DNS resolver should bind to.

This must be an interface name (not an address). Set this option to "" to use the default setting (don't bind to a specific interface).
(Read and Write property)

See also DNS_INTERFACE option in CURL manual.

CURLSMBS.OptionDNSLocalIPv4 as String

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 15.2 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Set the local IPv4 address that the resolver should bind to.

The argument should be of string and contain a single numerical IPv4 address as a string.
Set this option to "" to use the default setting (don't bind to a specific IP address).
(Read and Write property)

See also DNS_LOCAL_IP4 option in CURL manual.

CURLSMBS.OptionDNSLocalIPv6 as String

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 15.2 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Set the local IPv6 address that the resolver should bind to.

The argument should be of type string and contain a single IPv6 address as a string.
Set this option to "" to use the default setting (don't bind to a specific IP address).
(Read and Write property)

See also DNS_LOCAL_IP6 option in CURL manual.

CURLSMBS.OptionDNSServers as String

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 18.2 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Set the name servers to use for DNS resolution.

(Read and Write property)

See also DNS_SERVERS option in CURL manual.

CURLSMBS.OptionDNSShuffleAddresses as Boolean

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 18.2 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Whether to shuffle DNS addresses.

When a name is resolved and more than one IP address is returned, shuffle the order of all returned addresses so that they will be used in a random order. This is similar to the ordering behavior of gethostbyname which is no longer used on most platforms.

Addresses will not be reshuffled if a name resolution is completed using the DNS cache. DNSCacheTimeout property can be used together with this option to reduce DNS cache timeout or disable caching entirely if frequent reshuffling is needed.

Since the addresses returned will be reordered randomly, their order will not be in accordance with RFC 3484 or any other deterministic order that may be generated by the system's name resolution implementation. This may have performance impacts and may cause IPv4 to be used before IPv6 or vice versa.
Default is false.
(Read and Write property)

See also DNS_SHUFFLE_ADDRESSES option in CURL manual.

CURLSMBS.OptionDOHSSLVerifyHost as Integer

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 21.2 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Whether to verify the host name in the DOH (DNS-over-HTTPS) SSL certificate.

Pass a 2 as asking curl to verify the DOH (DNS-over-HTTPS) server's certificate name fields against the host name.
This option is the DOH equivalent of OptionSSLVerifyPeer and only affects requests to the DOH server.
When OptionDOHSSLVerifyHost is 2, the SSL certificate provided by the DOH server must indicate that the server name is the same as the server name to which you meant to connect to, or the connection fails.
Curl considers the DOH server the intended one when the Common Name field or a Subject Alternate Name field in the certificate matches the host name in the DOH URL to which you told Curl to connect.
When the verify value is set to 1 it is treated the same as 2. However for consistency with the other VerifyHost options we suggest use 2 and not 1.
When the verify value is set to 0, the connection succeeds regardless of the names used in the certificate. Use that ability with caution!
(Read and Write property)

See also DOH_SSL_VERIFYHOST option in CURL manual.

CURLSMBS.OptionDOHSSLVerifyPeer as Integer

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 21.2 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Whether to verify the DOH SSL certificate.

Pass 1 to enable or 0 to disable.
This option tells curl to verify the authenticity of the DOH (DNS-over-HTTPS) server's certificate. A value of 1 means curl verifies; 0 (zero) means it doesn't.
This option is the DOH equivalent of CURL.SetOptionSSLVerifyPeer and only affects requests to the DOH server.
When negotiating a TLS or SSL connection, the server sends a certificate indicating its identity. Curl verifies whether the certificate is authentic, i.e. that you can trust that the server is who the certificate says it is. This trust is based on a chain of digital signatures, rooted in certification authority (CA) certificates you supply. curl uses a default bundle of CA certificates (the path for that is determined at build time) and you can specify alternate certificates with the CURL.SetOptionCAInfo option or the CURL.SetOptionCAPath option.
When CURL.SetOptionDOHSSLVerifyPeer is enabled, and the verification fails to prove that the certificate is authentic, the connection fails. When the option is zero, the peer certificate verification succeeds regardless.
Authenticating the certificate is not enough to be sure about the server. You typically also want to ensure that the server is the server you mean to be talking to. Use CURL.SetOptionDOHSSLVerifyHost for that. The check that the host name in the certificate is valid for the host name you're connecting to is done independently of the CURL.SetOptionDOHSSLVerifyPeer option.

WARNING: disabling verification of the certificate allows bad guys to man-in-the-middle the communication without you knowing it. Disabling verification makes the communication insecure. Just having encryption on a transfer is not enough as you cannot be sure that you are communicating with the correct end-point.
(Read and Write property)

See also DOH_SSL_VERIFYPEER option in CURL manual.

CURLSMBS.OptionDOHSSLVerifyStatus as Integer

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 21.2 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Whether to verify the DOH SSL certificate's status.

Pass 2 to ask curl to verify the DOH (DNS-over-HTTPS) server's certificate name fields against the host name.
This option is the DOH equivalent of OptionSSLVerifyHost and only affects requests to the DOH server.
When OptionDOHSSLVerifyHost is 2, the SSL certificate provided by the DOH server must indicate that the server name is the same as the server name to which you meant to connect to, or the connection fails.
Curl considers the DOH server the intended one when the Common Name field or a Subject Alternate Name field in the certificate matches the host name in the DOH URL to which you told Curl to connect.
When the verify value is set to 1L it is treated the same as 2L. However for consistency with the other VerifyHost options we suggest use 2 and not 1.
When the verify value is set to 0L, the connection succeeds regardless of the names used in the certificate. Use that ability with caution!

See also OptionDOHSSLVerifyPeer to verify the digital signature of the DOH server certificate. If libcurl is built against NSS and OptionDOHSSLVerifyPeer is zero, OptionDOHSSLVerifyHost is also set to zero and cannot be overridden.
(Read and Write property)

See also DOH_SSL_VERIFYSTATUS option in CURL manual.

CURLSMBS.OptionDOHURL as String

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 18.5 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Provides the DNS-over-HTTPS URL.

Pass in a string to a URL for the DOH server to use for name resolving. The parameter should be URL-encoded in the following format: "https://host:port/path". It MUST specify a HTTPS URL.

libcurl doesn't validate the syntax or use this variable until the transfer is issued. Even if you set a crazy value here, OptionDOHURL will still return CURLE_OK.

curl sends POST requests to the given DNS-over-HTTPS URL.

To find the DOH server itself, which might be specified using a name, libcurl will use the default name lookup function. You can bootstrap that by providing the address for the DOH server with OptionResolve.

Disable DOH use again by setting this option to "".
(Read and Write property)

See also DOH_URL option in CURL manual.

CURLSMBS.OptionEGDSocket as String   Deprecated

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 9.8 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
This item is deprecated and should no longer be used.
The path name to the Entropy Gathering Daemon socket.

It will be used to seed the random engine for SSL.

The Lasterror property is set. 0 for success.
You can set this value and later you can read it, but you cannot read the default value.
(Read and Write property)

CURLSMBS.OptionExpect100TimeoutMS as Integer

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 18.2 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
Sets Expect 100 timeout.

Time to wait in milliseconds for a response to a HTTP request containing an Expect: 100-continue header before sending the data anyway.
(Read and Write property)

See also EXPECT_100_TIMEOUT_MS option in CURL manual.

CURLSMBS.OptionFailOnError as Boolean

Type Topic Plugin Version macOS Windows Linux iOS Targets
property CURL MBS CURL Plugin 9.8 ✅ Yes ✅ Yes ✅ Yes ✅ Yes All
True tells the library to fail silently if the HTTP code returned is equal to or larger than 400. The default action would be to return the page normally, ignoring that code.

The Lasterror property is set. 0 for success.
You can set this value and later you can read it, but you cannot read the default value.

This method is not fail-safe and there are occasions where non-succesful response codes will slip through, especially when authentication is involved (response codes 401 and 407).

You might get some amounts of headers transferred before this situation is detected, like for when a "100-continue" is received as a response to a POST/PUT and a 401 or 407 is received immediately afterwards.
(Read and Write property)

See also FAILONERROR option in CURL manual.

Next items

The items on this page are in the following plugins: MBS CURL Plugin.


The biggest plugin in space...