Platforms to show: All Mac Windows Linux Cross-Platform

Previous items Next items

CURLMBS.GetInfoRedirectURL as string
Type Topic Plugin Version macOS Windows Linux iOS Targets
method CURL MBS CURL Plugin 15.2 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Function: The redirection URL.

Feedback, Comments & Corrections

CURLMBS.GetInfoReferer as string
Type Topic Plugin Version macOS Windows Linux iOS Targets
method CURL MBS CURL Plugin 21.2 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Function: Queries referrer text.

Feedback, Comments & Corrections

CURLMBS.GetInfoRequestSize as Integer
Type Topic Plugin Version macOS Windows Linux iOS Targets
method CURL MBS CURL Plugin 9.8 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Function: The total size of the issued requests.
Notes:
The Lasterror property is set. 0 for success.
This is so far only for HTTP requests. Note that this may be more than one request if FOLLOWLOCATION is true.

Feedback, Comments & Corrections

CURLMBS.GetInfoResponseCode as Integer
Type Topic Plugin Version macOS Windows Linux iOS Targets
method CURL MBS CURL Plugin 9.8 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Function: The last received HTTP or FTP code.
Notes:
The Lasterror property is set. 0 for success.
This will be zero if no server response code has been received. Note that a proxy's CONNECT response should be read with GetInfoHTTPConnectCode and not this.

With HTTP transfer, a successful transfer reports 200 here. If the page is not found, you get 404. Or any other HTTP Response code.

Feedback, Comments & Corrections

CURLMBS.GetInfoRetryAfter as integer
Type Topic Plugin Version macOS Windows Linux iOS Targets
method CURL MBS CURL Plugin 20.4 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Function: Returns the Retry-After retry delay.
Notes:
Receive the number of seconds the HTTP server suggesets the client should wait until the next request is issued.
The information from the "Retry-After:" header.

While the HTTP header might contain a fixed date string, the RetryAfter will always return number of seconds to wait - or zero if there was no header or the header couldn't be parsed.

Feedback, Comments & Corrections

CURLMBS.GetInfoRTSPClientCSEQ as Integer
Type Topic Plugin Version macOS Windows Linux iOS Targets
method CURL MBS CURL Plugin 15.2 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Function: Query RTSP Client sequence counter.

Feedback, Comments & Corrections

CURLMBS.GetInfoRTSPCSEQRecv as Integer
Type Topic Plugin Version macOS Windows Linux iOS Targets
method CURL MBS CURL Plugin 15.2 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Function: Query RTSP sequence counter received.

Feedback, Comments & Corrections

CURLMBS.GetInfoRTSPServerCSEQ as Integer
Type Topic Plugin Version macOS Windows Linux iOS Targets
method CURL MBS CURL Plugin 15.2 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Function: Query RTSP Server sequence counter.

Feedback, Comments & Corrections

CURLMBS.GetInfoRTSPSessionID as string
Type Topic Plugin Version macOS Windows Linux iOS Targets
method CURL MBS CURL Plugin 15.2 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Function: Query RTSP session ID.

Feedback, Comments & Corrections

CURLMBS.GetInfoScheme as string
Type Topic Plugin Version macOS Windows Linux iOS Targets
method CURL MBS CURL Plugin 18.2 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Function: Get the URL scheme (sometimes called protocol) used in the connection

Feedback, Comments & Corrections

CURLMBS.GetInfoSizeDownload as Double
Type Topic Plugin Version macOS Windows Linux iOS Targets
method CURL MBS CURL Plugin 9.8 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Function: The total amount of bytes that were downloaded.
Notes:
The Lasterror property is set. 0 for success.
The amount is only for the latest transfer and will be reset again for each new transfer.

Feedback, Comments & Corrections

CURLMBS.GetInfoSizeUpload as Double
Type Topic Plugin Version macOS Windows Linux iOS Targets
method CURL MBS CURL Plugin 9.8 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Function: The total amount of bytes that were uploaded.
Notes: The Lasterror property is set. 0 for success.

Feedback, Comments & Corrections

CURLMBS.GetInfoSpeedDownload as Double
Type Topic Plugin Version macOS Windows Linux iOS Targets
method CURL MBS CURL Plugin 9.8 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Function: The average download speed that CURL measured for the complete download.
Notes: The Lasterror property is set. 0 for success.

Feedback, Comments & Corrections

CURLMBS.GetInfoSpeedUpload as Double
Type Topic Plugin Version macOS Windows Linux iOS Targets
method CURL MBS CURL Plugin 9.8 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Function: The average upload speed that CURL measured for the complete upload.
Notes: The Lasterror property is set. 0 for success.

Feedback, Comments & Corrections

CURLMBS.GetInfoSSLEngines as CURLListMBS
Type Topic Plugin Version macOS Windows Linux iOS Targets
method CURL MBS CURL Plugin 9.8 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Function: Receive a linked-list of OpenSSL crypto-engines supported.
Notes:
The Lasterror property is set. 0 for success.
Note that engines are normally implemented in separate dynamic libraries. Hence not all the returned engines may be available at run-time.

Feedback, Comments & Corrections

CURLMBS.GetInfoSSLVerifyResult as Integer
Type Topic Plugin Version macOS Windows Linux iOS Targets
method CURL MBS CURL Plugin 9.8 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Function: the result of the certification verification that was requested (using the SSLVerifyPeer option).
Notes: The Lasterror property is set. 0 for success.

Feedback, Comments & Corrections

CURLMBS.GetInfoStartTransferTime as Double
Type Topic Plugin Version macOS Windows Linux iOS Targets
method CURL MBS CURL Plugin 9.8 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Function: the time, in seconds, it took from the start until the first byte is just about to be transferred.
Notes:
The Lasterror property is set. 0 for success.
This includes the pretransfer time and also the time the server needs to calculate the result.

Feedback, Comments & Corrections

CURLMBS.GetInfoTotalTime as Double
Type Topic Plugin Version macOS Windows Linux iOS Targets
method CURL MBS CURL Plugin 9.8 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Function: The total time in seconds for the previous transfer, including name resolving, TCP connect etc.
Notes: The Lasterror property is set. 0 for success.

Feedback, Comments & Corrections

CURLMBS.OpenMTInputFile(file as folderitem, Offset as Integer = 0) as boolean
Type Topic Plugin Version macOS Windows Linux iOS Targets
method CURL MBS CURL Plugin 11.2 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Function: Opens input file for reading data while PerformMT runs.
Notes:
The read event is not called with PerformMT.
Offset is helpful for HTTP PUT requests with range, so you can start with an offset.
With 15.2 version of plugin, this also works with Perform.

Must be called before Perform or PerformMT, so we can stream data from the file.
The file is closed automatically when Perform methods finish their work.

See also:

Feedback, Comments & Corrections

CURLMBS.OpenMTInputFile(Path as String, Offset as Integer = 0) as boolean
Type Topic Plugin Version macOS Windows Linux iOS Targets
method CURL MBS CURL Plugin 19.5 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Function: Opens input file for reading data while PerformMT runs.
Notes:
The read event is not called with PerformMT.
Offset is helpful for HTTP PUT requests with range, so you can start with an offset.

Must be called before Perform or PerformMT, so we can stream data from the file.
The file is closed automatically when Perform methods finish their work.

See also:

Feedback, Comments & Corrections

CURLMBS.Perform as Integer
Type Topic Plugin Version macOS Windows Linux iOS Targets
method CURL MBS CURL Plugin 9.8 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Function: Perform a file transfer
Notes:
This function is called after all the options are set, and will perform the transfer as described in the options.

You can do any amount of calls to Perform. If you intend to transfer more than one file, you are even encouraged to do so. libCURL will then attempt to re-use the same connection for the following transfers, thus making the operations faster, less CPU intense and using less network resources. Just note that you will have to use the option properties between the invokes to set options for the following Perform.

Typical error codes are 6 for a wrong domain name in the URL, 67 for wrong name/password combination, 60 for missing SSL settings, 1 for an unsupported protocol.

Possible values for the retun value:
const kError_FunctionMissing = -1
const kError_OK = 0
const kError_UNSUPPORTED_PROTOCOL = 1
const kError_FAILED_INIT = 2
const kError_URL_MALFORMAT = 3
const kError_URL_MALFORMAT_USER = 4(NOT USED)
const kError_COULDNT_RESOLVE_PROXY = 5
const kError_COULDNT_RESOLVE_HOST = 6
const kError_COULDNT_CONNECT = 7
const kError_FTP_WEIRD_SERVER_REPLY = 8
const kError_FTP_ACCESS_DENIED = 9a service was denied by the FTP server due to lack of access when login fails this is not returned.
const kError_FTP_USER_PASSWORD_INCORRECT = 10
const kError_FTP_WEIRD_PASS_REPLY = 11
const kError_FTP_WEIRD_USER_REPLY = 12
const kError_FTP_WEIRD_PASV_REPLY = 13
const kError_FTP_WEIRD_227_FORMAT = 14
const kError_FTP_CANT_GET_HOST = 15
const kError_FTP_CANT_RECONNECT = 16
const kError_FTP_COULDNT_SET_BINARY = 17
const kError_PARTIAL_FILE = 18
const kError_FTP_COULDNT_RETR_FILE = 19
const kError_FTP_WRITE_ERROR = 20
const kError_FTP_QUOTE_ERROR = 21
const kError_HTTP_RETURNED_ERROR = 22
const kError_WRITE_ERROR = 23
const kError_MALFORMAT_USER = 24NOT USED
const kError_FTP_COULDNT_STOR_FILE = 25failed FTP upload
const kError_READ_ERROR = 26could open/read from file
const kError_OUT_OF_MEMORY = 27
const kError_OPERATION_TIMEOUTED = 28the timeout time was reached
const kError_FTP_COULDNT_SET_ASCII = 29TYPE A failed
const kError_FTP_PORT_FAILED = 30FTP PORT operation failed
const kError_FTP_COULDNT_USE_REST = 31the REST command failed
const kError_FTP_COULDNT_GET_SIZE = 32the SIZE command failed
const kError_HTTP_RANGE_ERROR = 33RANGE "command" didn't work
const kError_HTTP_POST_ERROR = 34
const kError_SSL_CONNECT_ERROR = 35wrong when connecting with SSL
const kError_BAD_DOWNLOAD_RESUME = 36couldn't resume download
const kError_FILE_COULDNT_READ_FILE = 37
const kError_LDAP_CANNOT_BIND = 38
const kError_LDAP_SEARCH_FAILED = 39
const kError_LIBRARY_NOT_FOUND = 40
const kError_FUNCTION_NOT_FOUND = 41
const kError_ABORTED_BY_CALLBACK = 42
const kError_BAD_FUNCTION_ARGUMENT = 43
const kError_BAD_CALLING_ORDER = 44NOT USED
const kError_INTERFACE_FAILED = 45CURLOPT_INTERFACE failed
const kError_BAD_PASSWORD_ENTERED = 46NOT USED
const kError_TOO_MANY_REDIRECTS = 47catch endless re-direct loops
const kError_UNKNOWN_TELNET_OPTION = 48User specified an unknown option
const kError_TELNET_OPTION_SYNTAX = 49Malformed telnet option
const kError_OBSOLETE = 50NOT USED
const kError_SSL_PEER_CERTIFICATE = 51peer's certificate wasn't ok
const kError_GOT_NOTHING = 52when this is a specific error
const kError_SSL_ENGINE_NOTFOUND = 53SSL crypto engine not found
const kError_SSL_ENGINE_SETFAILED = 54can not set SSL crypto engine as default
const kError_SEND_ERROR = 55failed sending network data
const kError_RECV_ERROR = 56failure in receiving network data
const kError_SHARE_IN_USE = 57share is in use
const kError_SSL_CERTPROBLEM = 58problem with the local certificate
const kError_SSL_CIPHER = 59couldn't use specified cipher
const kError_SSL_CACERT = 60problem with the CA cert (path?)
const kError_BAD_CONTENT_ENCODING = 61Unrecognized transfer encoding
const kError_LDAP_INVALID_URL = 62Invalid LDAP URL
const kError_FILESIZE_EXCEEDED = 63Maximum file size exceeded
const kError_FTP_SSL_FAILED = 64Requested FTP SSL level failed
const kError_SEND_FAIL_REWIND = 65Sending the data requires a rewind that failed
const kError_SSL_ENGINE_INITFAILED = 66failed to initialise ENGINE
const kError_LOGIN_DENIED = 67user, password or similar was not accepted and we failed to login

The error value -1 is used from the plugin to report that something is missing like OpenSSL dlls on Windows.

With SFTP, you can get logged error "Upload failed: Operation failed (4/-31)" when upload uses path to folder instead of file in URL.

Feedback, Comments & Corrections

CURLMBS.PerformMT as Integer
Type Topic Plugin Version macOS Windows Linux iOS Targets
method CURL MBS CURL Plugin 11.2 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Function: Perform a file transfer with preemptive multithreading.
Notes:
Same as Perform, but with additional multithreading.

As the actual transfer runs on a preemptive thread, the events Debug, Write, Header and Progress are called asynchrounously and run a few milliseconds later. You can return true in Progress event to stop transfer, but you will get more events before the transfer is stopped.

You can call CreateMTDebugOutputFile, CreateMTHeaderOutputFile and CreateMTOutputFile before PerformMT to have output data be written into files. Call OpenMTInputFile to let the plugin read input data (form post or upload) from an input file.

Do not call other CURL functions on this CURLMBS instance while PerformMT is running!

Typical error codes are 6 for a wrong domain name in the URL, 67 for wrong name/password combination, 60 for missing SSL settings, 1 for an unsupported protocol.

To avoid trouble with app hanging on quit of application, be sure to set cancel property to true in window close event to cancel any pending transfer.

The work is performed on a preemptive thread, so this function does not block the application and can yield time to other Xojo threads. Must be called in a Xojo thread to enjoy benefits. If called in main thread will block, but keep other background threads running.

Feedback, Comments & Corrections

CURLMBS.ReceiveData(byref data as Memoryblock, BytesToRead as Int64) as Int64
Type Topic Plugin Version macOS Windows Linux iOS Targets
method CURL MBS CURL Plugin 17.2 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Function: Receives raw data on a connection.
Notes:
This function receives raw data from the established connection. You may use it together with SendData to implement custom protocols using libcurl. This functionality can be particularly useful if you use proxies and/or SSL encryption: libcurl will take care of proxy negotiation and connection set-up.

The data memoryblock is a reference to your variable that will get the received data. BytesToRead is the maximum amount of data you can get in that buffer. The function returns the number of received bytes.

To establish the connection, set OptionConnectOnly = true before calling Perform. Note that ReceiveData does not work on connections that were created without this option.

The call will return kError_AGAIN if there is no data to read - the socket is used in non-blocking mode internally. When kError_AGAIN is returned, wait for data to arrive.

Wait on the socket only if ReceiveData returns kError_AGAIN. The reason for this is libcurl or the SSL library may internally cache some data, therefore you should call ReceiveData until all data is read which would include any cached data.

Furthermore if you wait on the socket and it tells you there is data to read, ReceiveData may return CURLE_AGAIN if the only data that was read was for internal SSL processing, and no other data is available.

On success, sets lasterror to kError_OK (0), stores the received data into memory block, and returns the number of bytes it actually read.

On failure, returns zero and lasterror is set to the appropriate error code.

The function may return kError_AGAIN. In this case, use your operating system facilities to wait until data can be read, and retry.

Reading exactly 0 bytes indicates a closed connection.

If there's no socket available to use from the previous transfer, this function returns kError_UNSUPPORTED_PROTOCOL.

Feedback, Comments & Corrections

CURLMBS.Reset
Type Topic Plugin Version macOS Windows Linux iOS Targets
method CURL MBS CURL Plugin 9.8 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Function: Re-initializes all options previously set on a specified CURL handle to the default values.
Notes: It does not change the following information kept in the handle: live connections, the Session ID cache, the DNS cache, the cookies and shares.

Feedback, Comments & Corrections

CURLMBS.SendData(data as Memoryblock) as Integer
Type Topic Plugin Version macOS Windows Linux iOS Targets
method CURL MBS CURL Plugin 15.2 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Function: Sends raw data over a connection.
Notes:
This function sends arbitrary data over the established connection. You may use it together with ReceiveData to implement custom protocols using libcurl. This functionality can be particularly useful if you use proxies and/or SSL encryption: libcurl will take care of proxy negotiation and connection set-up.

Provide the data to send via parameter. We return the number of bytes sent.

To establish the connection, set OptionConnectOnly = true option before calling Perform methods. Note that SendData will not work on connections that were created without this option.

The call will return kError_AGAIN if it's not possible to send data right now - the socket is used in non-blocking mode internally. When kError_AGAIN is returned, please wait.

Furthermore if you wait on the socket and it tells you it's writable, SendData may return kError_AGAIN if the only data that was sent was for internal SSL processing, and no other data could be sent.

See also:

Feedback, Comments & Corrections

CURLMBS.SendData(data as string) as Integer
Type Topic Plugin Version macOS Windows Linux iOS Targets
method CURL MBS CURL Plugin 15.2 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Function: Sends raw data over a connection.
Notes:
This function sends arbitrary data over the established connection. You may use it together with ReceiveData to implement custom protocols using libcurl. This functionality can be particularly useful if you use proxies and/or SSL encryption: libcurl will take care of proxy negotiation and connection set-up.

Provide the data to send via parameter. We return the number of bytes sent.

To establish the connection, set OptionConnectOnly = true option before calling Perform methods. Note that SendData will not work on connections that were created without this option.

The call will return kError_AGAIN if it's not possible to send data right now - the socket is used in non-blocking mode internally. When kError_AGAIN is returned, please wait.

Furthermore if you wait on the socket and it tells you it's writable, SendData may return kError_AGAIN if the only data that was sent was for internal SSL processing, and no other data could be sent.

See also:

Feedback, Comments & Corrections

CURLMBS.SetInputData(data as MemoryBlock)
Type Topic Plugin Version macOS Windows Linux iOS Targets
method CURL MBS CURL Plugin 14.0 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Function: Sets the input data.
Notes:
If you set input data, you do not need to use Read, RestartRead or Seek events.
The plugin will use the provided data for the upload.
Setting input data size, will also set the input file size (OptionInFileSizeLarge and OptionInFileSize).

Alternatively you can provide data in Read event or use OpenMTInputFile method to open a file on disk to upload.

See also:

Feedback, Comments & Corrections

CURLMBS.SetInputData(data as string)
Type Topic Plugin Version macOS Windows Linux iOS Targets
method CURL MBS CURL Plugin 14.0 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Function: Sets the input data.
Notes:
If you set input data, you do not need to use Read, RestartRead or Seek events.
The plugin will use the provided data for the upload.
Setting input data size, will also set the input file size (OptionInFileSizeLarge and OptionInFileSize).

Alternatively you can provide data in Read event or use OpenMTInputFile method to open a file on disk to upload.

See also:

Feedback, Comments & Corrections

CURLMBS.SetOptionConnectTo(list() as string)
Type Topic Plugin Version macOS Windows Linux iOS Targets
method CURL MBS CURL Plugin 18.2 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Function: Set list of host:port:connect-to-host:connect-to-port, overrides the URL's host:port (only for the network layer)

Feedback, Comments & Corrections

CURLMBS.SetOptionEmptyPassword
Type Topic Plugin Version macOS Windows Linux iOS Targets
method CURL MBS CURL Plugin 15.3 ✅ Yes ✅ Yes ✅ Yes ❌ No Desktop, Console & Web
Function: Sets an empty password.
Notes:
Normally you have no password unless you set it.
But if you set a password with empty string, the plugin sets CURL to use no password.
This method is to use an empty password.

Feedback, Comments & Corrections

Previous items Next items

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

The biggest plugin in space...




Links
MBS Xojo PDF Plugins

Start Chat