Qore Programming Language Reference Manual 2.0.0
|
The FtpClient class allows Qore code to communicate with FTP servers with the FTP and FTPS protocols. More...
#include <QC_FtpClient.dox.h>
Public Member Methods | |
clearStats () | |
Clears performance statistics. | |
nothing | clearWarningQueue () |
Removes any warning Queue object from the Socket. | |
nothing | connect () |
Connects to the FTP server and attempts a login; if any errors occur, an exception is thrown. | |
constructor () | |
Creates an empty FtpClient object. | |
constructor (string url) | |
Creates an FtpClient object and initializes it with a URL. | |
copy () | |
Throws an exception to prevent copying of objects this class. | |
nothing | cwd (string path) |
Changes the current working directory on the server. | |
nothing | del (string remote_path) |
Deletes a file from the FTP server; if any errors occur, an exception is thrown. | |
destructor () | |
Disconnects any remote connection and destroys the object. | |
nothing | disconnect () |
Disconnects from an FTP server. | |
nothing | get (string remote_path, __7_ string local_path) |
Gets a file from the FTP server and stores it on the local filesystem; if any errors occur, an exception is thrown. | |
nothing | get (string remote_path, Qore::OutputStream os) |
Gets a file from the FTP server and writes it to an OutputStream; if any errors occur, an exception is thrown. | |
binary | getAsBinary (string remote_path) |
Gets a file from the FTP server and returns it as a binary. | |
string | getAsString (string remote_path, __7_ string encoding) |
Gets a file from the FTP server and returns it as a string. | |
hash< auto > | getControlPeerInfo (bool host_lookup=True) |
Returns information about the remote end of the control socket as a hash. | |
hash< auto > | getControlSocketInfo (bool host_lookup=True) |
Returns information about the local control socket as a hash. | |
hash< auto > | getDataPeerInfo (bool host_lookup=True) |
Returns information about the remote data socket as a hash. | |
hash< auto > | getDataSocketInfo (bool host_lookup=True) |
Returns information about the local data socket as a hash. | |
__7_ string | getHostName () |
Returns the current hostname value or NOTHING if none is set. | |
string | getMode () |
returns a string for the connection mode: "port" , "pasv" , "epsv" , or "auto" if not connected and auto mode is set | |
int | getNetworkFamily () |
Returns the network address family to use for new connections. | |
__7_ string | getPassword () |
Returns the current password value or NOTHING if none is set. | |
int | getPort () |
Retrieves the current connection port value for this object. | |
__7_ string | getSSLCipherName () |
Returns the name of the cipher for an encrypted connection or NOTHING if an encrypted connection is not established. | |
__7_ string | getSSLCipherVersion () |
Returns the version of the cipher for an encrypted connection or NOTHING if an encrypted connection is not established. | |
int | getTimeout () |
returns the socket I/O timeout value as an integer in milliseconds | |
string | getURL () |
Retrieves the current connection URL string for this object. | |
hash | getUsageInfo () |
Returns performance statistics for the socket. | |
__7_ string | getUserName () |
Returns the current username value or NOTHING if none is set. | |
bool | isConnected () |
Returns True if the client is connected to the server. | |
bool | isDataSecure () |
Returns True if the data connections are secure TLS/SSL connections, False if not. | |
bool | isSecure () |
Returns True if the control connection is a secure TLS/SSL connection, False if not. | |
*string | list () |
Returns a list of files from the FTP server in the server's long format in the current working directory or NOTHING if the path cannot be found. | |
*string | list (string path) |
Returns a list of files from the FTP server in the server's long format for the given path or NOTHING if the path cannot be found. | |
nothing | mkdir (string remote_path) |
Creates a directory on the FTP server; if any errors occur, an exception is thrown. | |
__7_ string | nlst () |
Returns a list of file names from the FTP server in the current working directory or NOTHING if the path cannot be found. | |
__7_ string | nlst (string path) |
Returns a list of file names from the FTP server for the given path or NOTHING if the path cannot be found. | |
nothing | put (string local_path, __7_ string remote_path) |
Transfers a local file to the FTP server; if any errors occur, an exception is thrown. | |
nothing | put (Qore::InputStream is, string remote_path) |
Transfers the content of an InputStream to the FTP server; if any errors occur, an exception is thrown. | |
nothing | putData (string data, string remote_path) |
Transfers string data to the FTP server and saves it as a file on the remote machine; if any errors occur, an exception is thrown. | |
nothing | putData (binary data, string remote_path) |
Transfers binary data to the FTP server and saves it as a file on the remote machine; if any errors occur, an exception is thrown. | |
string | pwd () |
Returns the server-side current working directory. | |
nothing | rename (string from, string to) |
Renames/moves a file or directory; if any errors occur, an exception is thrown. | |
nothing | rmdir (string remote_path) |
Removes a directory on the remote FTP server; if any errors occur, an exception is thrown. | |
hash< FtpResponseInfo > | sendControlMessage (string cmd, string arg) |
Sends a message on the control connection with a reply on the control connection only. | |
nothing | setControlEventQueue () |
Clears any Queue object that may be set on the FtpClient object so that I/O events are no longer captured on the object on the control connection. | |
nothing | setControlEventQueue (Qore::Thread::Queue queue, auto arg, __7_ bool with_data) |
Sets a Queue object to receive FtpClient and Socket events on the control connection. | |
nothing | setDataEventQueue () |
Clears any Queue object that may be set on the FtpClient object so that I/O events are no longer captured on the object on the data connection. | |
nothing | setDataEventQueue (Qore::Thread::Queue queue, auto arg, __7_ bool with_data) |
Sets a Queue object to receive FtpClient and Socket events on the data connection. | |
nothing | setEventQueue () |
Clears any Queue object that may be set on the FtpClient object so that I/O events are no longer captured on the object on either the data or control connections. | |
nothing | setEventQueue (Qore::Thread::Queue queue, auto arg, __7_ bool with_data) |
Sets a Queue object to receive FtpClient and Socket events on both the data and control connections. | |
nothing | setHostName (string host) |
Sets the hostname or address to use to connect to for the next connection. | |
nothing | setInsecure () |
Make a non-encrypted connection to the server on the next connect. | |
nothing | setInsecureData () |
Make a non-encrypted data connection to the server on the next connect even if the control connection is secure. | |
nothing | setModeAuto () |
Sets the object to automatically try to negotiate the data connections in EPSV , PASV , and PORT modes, in that order. | |
nothing | setModeEPSV () |
Sets the object to only try to make data connections using EPSV (RFC-2428 extended passive) mode. | |
nothing | setModePASV () |
Sets the object to only try to make data connections using PASV (RFC-959 passive) mode. | |
nothing | setModePORT () |
Sets the object to only try to make data connections using PORT mode. | |
nothing | setNetworkFamily (int family) |
Sets the network address family to use for new connections; use this method to restrict connections to IPv4 or IPv6 connections. | |
nothing | setPassword (string pass) |
Sets the password to use for the next connection. | |
nothing | setPort (int port) |
Sets the control port value to use for the next connection (the FTP protocol default is 21) | |
nothing | setSecure (bool secure=True) |
Make an FTPS connection to the server on the next connect if the argument is True. | |
setTimeout (timeout timeout_ms) | |
sets the socket I/O timeout value in milliseconds | |
nothing | setURL (string url) |
Sets the connection and login parameters based on the URL passed as an argument. | |
nothing | setUserName (string user) |
Sets the user name to use for the next connection. | |
nothing | setWarningQueue (int warning_ms, int warning_bs, Queue queue, auto arg, timeout min_ms=1s) |
Sets a Queue object to receive socket warnings. | |
__7_ string | verifyPeerCertificate () |
Returns a string code giving the result of verifying the remote certificate or NOTHING if an encrypted connection is not established. | |
The FtpClient class allows Qore code to communicate with FTP servers with the FTP and FTPS protocols.
The constructor takes an optional URL with the following format:
[(ftp|ftps)://][
username[:
password]@]
hostname[:
port]
If the URL is not set with the constructor, then the connection parameters must be set with the FtpClient::set*() methods. At the very minimum the hostname must be set. If any path name is given in the URL, it is ignored. See the following table for default URL parameters.
FtpClient::constructor() Default URL Parameters
Field | Default Value |
protocol | "ftp" (unencrypted) |
username | "anonymous" |
password | "qore@nohost.com" |
port | 21 |
Once the URL (at least the hostname) has been set, any method requiring a connection will make an implicit call to FtpClient::connect() to attempt to connect and login to the FTP server before executing the method.
Objects of this class are capable of making encrypted FTPS connections according to RFC-4217. TLS/SSL encrypted control and data connection will be attempted if the protocol is set to "ftps"
or the FtpClient::setSecure() method is called before connecting.
Note that "sftp"
, or FTP over ssh, is not supported with this class; FTPS is an extension of the FTP protocol to allow for secure connections; while "sftp"
is FTP over an encrypted ssh connection. For sftp and ssh support, use the ssh2 module.
When a data connection is required, by default the following modes are tried in series:
EPSV
(Extended Passive Mode)PASV
(Passive Mode)PORT
(Port mode)If the FTP server does not support one of these methods, or network conditions do not allow a data connection of any of these types to be established, then an exception is thrown.
To manually control which modes are tried, see the FtpClient::setModeEPSV(), FtpClient::setModePASV(), and FtpClient::setModePORT() methods.
This class supports posting network events to a Queue, either events on the control or data channels or both can be monitored. See I/O Event Handling for more information.
The events raised by this object are listed in the following table:
FtpClient Events
Name | Value | Description |
EVENT_FTP_SEND_MESSAGE | 9 | Raised immediately before an FTP control message is sent |
EVENT_FTP_MESSAGE_RECEIVED | 10 | Raised when an FTP reply is received on the control channel |
FtpClient objects have a default socket I/O timeout value of 60 seconds. The following methods can be used to set or retrieve the socket I/O timeout value:
Qore::FtpClient::clearStats | ( | ) |
Clears performance statistics.
nothing Qore::FtpClient::clearWarningQueue | ( | ) |
Removes any warning Queue object from the Socket.
nothing Qore::FtpClient::connect | ( | ) |
Connects to the FTP server and attempts a login; if any errors occur, an exception is thrown.
This method does not need to be called explicitly; connections are established implicitly by all methdods that communicate with FTP servers.
Connection parameters are set in the constructor or in the FtpClient::set*() methods
FTP-RESPONSE-ERROR | Invalid response received from FTP server |
SOCKET-CONNECT-ERROR | Cannot establish socket connection to FTP server |
FTP-CONNECT-ERROR | no hostname set, FTP server reported an error, etc |
FTP-LOGIN-ERROR | Login denied by FTP server |
Qore::FtpClient::constructor | ( | ) |
Creates an empty FtpClient object.
Qore::FtpClient::constructor | ( | string | url | ) |
Creates an FtpClient object and initializes it with a URL.
It accepts one argument that will set the URL for the FTP connection; the path is ignored in the URL, however the username, password, hostname and port are respected; additionally if the protocol (or scheme) is "ftps"
, the client will attempt to establish a secure connection to the server according to RFC-4217 when the first connection is established.
url | The URL of the server to connect to; must have at least a hostname |
UNSUPPORTED-PROTOCOL | Only "ftp" or "ftps" are allowed as the protocol in the URL |
FTP-URL-ERROR | No hostname given in the URL |
Qore::FtpClient::copy | ( | ) |
Throws an exception to prevent copying of objects this class.
FTPCLIENT-COPY-ERROR | FtpClient objects cannot be copied |
Changes the current working directory on the server.
FTP-RECEIVE-ERROR | Incomplete message received on control port |
FTP-CWD-ERROR | FTP server returned an error to the CWD command |
Deletes a file from the FTP server; if any errors occur, an exception is thrown.
remote_path | The path on the server to the file to delete |
FTP-RECEIVE-ERROR | Incomplete message received on control port |
FTP-DELETE-ERROR | FTP server returned an error to the DELE command |
Qore::FtpClient::destructor | ( | ) |
Disconnects any remote connection and destroys the object.
nothing Qore::FtpClient::disconnect | ( | ) |
Gets a file from the FTP server and stores it on the local filesystem; if any errors occur, an exception is thrown.
remote_path | The path on the server to the file to get |
local_path | The optional local path for saving the file; if this parameter is not given in the call, then the server path is used for the local path as well |
FTP-RECEIVE-ERROR | Incomplete message received on control port |
FTP-FILE-OPEN-ERROR | Could not create the local file |
FTP-GET-ERROR | There was an error retrieving the file |
nothing Qore::FtpClient::get | ( | string | remote_path, |
Qore::OutputStream | os | ||
) |
Gets a file from the FTP server and writes it to an OutputStream; if any errors occur, an exception is thrown.
remote_path | The path on the server to the file to get |
os | The output stream to write the file to |
FTP-RECEIVE-ERROR | Incomplete message received on control port |
FTP-FILE-OPEN-ERROR | Could not create the local file |
FTP-GET-ERROR | There was an error retrieving the file |
Gets a file from the FTP server and returns it as a binary.
remote_path | The path on the server to the file to get |
FTP-RECEIVE-ERROR | Incomplete message received on control port |
FTP-FILE-OPEN-ERROR | Could not create the local file |
FTP-GET-ERROR | There was an error retrieving the file |
Gets a file from the FTP server and returns it as a string.
remote_path | The path on the server to the file to get |
encoding | the output encoding for the string; if not given, then the default encoding is used (UTF-8 ) |
FTP-RECEIVE-ERROR | Incomplete message received on control port |
FTP-FILE-OPEN-ERROR | Could not create the local file |
FTP-GET-ERROR | There was an error retrieving the file |
Returns information about the remote end of the control socket as a hash.
If the control socket is not open, an exception is thrown
host_lookup | do a lookup of the hostname; if this is False then "hostname" and "hostname_desc" are not present in the response hash |
SOCKET-NOT-OPEN | The socket is not open |
SOCKET-GETPEERINFO-ERROR | error in getpeername() |
Returns information about the local control socket as a hash.
If the control socket is not open, an exception is thrown
host_lookup | do a lookup of the hostname; if this is False then "hostname" and "hostname_desc" are not present in the response hash |
SOCKET-NOT-OPEN | The socket is not open |
SOCKET-GETSOCKETINFO-ERROR | error in getsockname() |
Returns information about the remote data socket as a hash.
If the data socket is not open, an exception is thrown
host_lookup | do a lookup of the hostname; if this is False then "hostname" and "hostname_desc" are not present in the response hash |
SOCKET-NOT-OPEN | The socket is not open |
SOCKET-GETPEERINFO-ERROR | error in getpeername() |
Returns information about the local data socket as a hash.
If the data socket is not open, an exception is thrown
host_lookup | do a lookup of the hostname; if this is False then "hostname" and "hostname_desc" are not present in the response hash |
SOCKET-NOT-OPEN | The socket is not open |
SOCKET-GETSOCKETINFO-ERROR | error in getsockname() |
string Qore::FtpClient::getMode | ( | ) |
returns a string for the connection mode: "port"
, "pasv"
, "epsv"
, or "auto"
if not connected and auto mode is set
int Qore::FtpClient::getNetworkFamily | ( | ) |
Returns the network address family to use for new connections.
int Qore::FtpClient::getPort | ( | ) |
Retrieves the current connection port value for this object.
Returns the name of the cipher for an encrypted connection or NOTHING if an encrypted connection is not established.
Returns the version of the cipher for an encrypted connection or NOTHING if an encrypted connection is not established.
int Qore::FtpClient::getTimeout | ( | ) |
returns the socket I/O timeout value as an integer in milliseconds
string Qore::FtpClient::getURL | ( | ) |
Retrieves the current connection URL string for this object.
hash Qore::FtpClient::getUsageInfo | ( | ) |
Returns performance statistics for the socket.
"bytes_sent"
: an integer giving the total amount of bytes sent"bytes_recv"
: an integer giving the total amount of bytes received"us_sent"
: an integer giving the total number of microseconds spent sending data"us_recv"
: an integer giving the total number of microseconds spent receiving data"arg"
: (only if warning values have been set with FtpClient::setWarningQueue()) the optional argument for warning hashes"timeout"
: (only if warning values have been set with FtpClient::setWarningQueue()) the warning timeout in microseconds"min_throughput"
: (only if warning values have been set with FtpClient::setWarningQueue()) the minimum warning throughput in bytes/secbool Qore::FtpClient::isConnected | ( | ) |
bool Qore::FtpClient::isDataSecure | ( | ) |
bool Qore::FtpClient::isSecure | ( | ) |
*string Qore::FtpClient::list | ( | ) |
Returns a list of files from the FTP server in the server's long format in the current working directory or NOTHING if the path cannot be found.
FTP-RECEIVE-ERROR | Incomplete message received on control port |
FTP-LIST-ERROR | FTP server returned an error in response to the LIST command |
Returns a list of files from the FTP server in the server's long format for the given path or NOTHING if the path cannot be found.
path | The path or filename (or filename filter) to list (ex: "/tmp/file*.txt" ) |
FTP-RECEIVE-ERROR | Incomplete message received on control port |
FTP-LIST-ERROR | FTP server returned an error in response to the LIST command |
Creates a directory on the FTP server; if any errors occur, an exception is thrown.
remote_path | The path on the server to the directory to create |
FTP-RECEIVE-ERROR | Incomplete message received on control port |
FTP-MKDIR-ERROR | FTP server returned an error to the MKD command |
Returns a list of file names from the FTP server in the current working directory or NOTHING if the path cannot be found.
FTP-RECEIVE-ERROR | Incomplete message received on control port |
FTP-LIST-ERROR | FTP server returned an error in response to the NLST command |
Returns a list of file names from the FTP server for the given path or NOTHING if the path cannot be found.
path | The path or filename (or filename filter) to list (ex: "/tmp/file*.txt" ) |
FTP-RECEIVE-ERROR | Incomplete message received on control port |
FTP-LIST-ERROR | FTP server returned an error in response to the LIST command |
nothing Qore::FtpClient::put | ( | Qore::InputStream | is, |
string | remote_path | ||
) |
Transfers the content of an InputStream to the FTP server; if any errors occur, an exception is thrown.
is | The input stream to send to the FTP server |
remote_path | The name of the file on the server |
FTP-RECEIVE-ERROR | Incomplete message received on control port |
FTP-FILE-OPEN-ERROR | Could not open local file for reading |
FTP-FILE-PUT-ERROR | Could not determine file size of local file (stat() failed) |
FTP-PUT-ERROR | An error occurred while sending the file |
Transfers a local file to the FTP server; if any errors occur, an exception is thrown.
local_path | The path on the local system of the file to send |
remote_path | If given, where to save the file on the server (otherwise the local path is used) |
FTP-RECEIVE-ERROR | Incomplete message received on control port |
FTP-FILE-OPEN-ERROR | Could not open local file for reading |
FTP-FILE-PUT-ERROR | Could not determine file size of local file (stat() failed) |
FTP-PUT-ERROR | An error occurred while sending the file |
Transfers binary data to the FTP server and saves it as a file on the remote machine; if any errors occur, an exception is thrown.
data | The file data to save on the remote server |
remote_path | The path on the remote server for the file to save the data under |
FTP-RECEIVE-ERROR | Incomplete message received on control port |
FTP-PUT-ERROR | An error occurred while sending the file |
Transfers string data to the FTP server and saves it as a file on the remote machine; if any errors occur, an exception is thrown.
data | The file data to save on the remote server |
remote_path | The path on the remote server for the file to save the data under |
FTP-RECEIVE-ERROR | Incomplete message received on control port |
FTP-PUT-ERROR | An error occurred while sending the file |
string Qore::FtpClient::pwd | ( | ) |
Returns the server-side current working directory.
FTP-RECEIVE-ERROR | Incomplete message received on control port |
FTP-PWD-ERROR | FTP server returned an error to the PWD command |
Renames/moves a file or directory; if any errors occur, an exception is thrown.
from | The original file path on the server to rename/move |
to | The new path on the server |
FTP-RECEIVE-ERROR | Incomplete message received on control port |
FTP-RENAME-ERROR | FTP server returned an error to the RNFR or RNTO commands |
Removes a directory on the remote FTP server; if any errors occur, an exception is thrown.
remote_path | The path on the server to the directory to delete |
FTP-RECEIVE-ERROR | Incomplete message received on control port |
FTP-RMDIR-ERROR | FTP server returned an error to the RMD command |
hash< FtpResponseInfo > Qore::FtpClient::sendControlMessage | ( | string | cmd, |
string | arg | ||
) |
Sends a message on the control connection with a reply on the control connection only.
cmd | the FTP command to send |
arg | the argument for the command |
nothing Qore::FtpClient::setControlEventQueue | ( | ) |
Clears any Queue object that may be set on the FtpClient object so that I/O events are no longer captured on the object on the control connection.
nothing Qore::FtpClient::setControlEventQueue | ( | Qore::Thread::Queue | queue, |
auto | arg, | ||
__7_ bool | with_data | ||
) |
Sets a Queue object to receive FtpClient and Socket events on the control connection.
queue | a Queue object to receive FtpClient and Socket events on the control connection; note that the Queue passed cannot have any maximum size set or a QUEUE-ERROR will be thrown |
arg | an argument that will be included in each event hash in the arg key |
with_data | if True, then the actual raw data transferred / received is also included in the events |
QUEUE-ERROR | the Queue passed has a maximum size set |
nothing Qore::FtpClient::setDataEventQueue | ( | ) |
Clears any Queue object that may be set on the FtpClient object so that I/O events are no longer captured on the object on the data connection.
nothing Qore::FtpClient::setDataEventQueue | ( | Qore::Thread::Queue | queue, |
auto | arg, | ||
__7_ bool | with_data | ||
) |
Sets a Queue object to receive FtpClient and Socket events on the data connection.
queue | a Queue object to receive FtpClient and Socket events on the data connection; note that the Queue passed cannot have any maximum size set or a QUEUE-ERROR will be thrown |
arg | an argument that will be included in each event hash in the arg key |
with_data | if True, then the actual raw data transferred / received is also included in the events |
QUEUE-ERROR | the Queue passed has a maximum size set |
nothing Qore::FtpClient::setEventQueue | ( | ) |
Clears any Queue object that may be set on the FtpClient object so that I/O events are no longer captured on the object on either the data or control connections.
nothing Qore::FtpClient::setEventQueue | ( | Qore::Thread::Queue | queue, |
auto | arg, | ||
__7_ bool | with_data | ||
) |
Sets a Queue object to receive FtpClient and Socket events on both the data and control connections.
queue | a Queue object to receive FtpClient and Socket events on both the data and control connections; note that the Queue passed cannot have any maximum size set or a QUEUE-ERROR will be thrown |
arg | an argument that will be included in each event hash in the arg key |
with_data | if True, then the actual raw data transferred / received is also included in the events |
QUEUE-ERROR | the Queue passed has a maximum size set |
Sets the hostname or address to use to connect to for the next connection.
host | the hostname or address to use to connect to for the next connection |
nothing Qore::FtpClient::setInsecure | ( | ) |
Make a non-encrypted connection to the server on the next connect.
SET-INSECURE-ERROR | this method cannot be called while the control connection is established |
nothing Qore::FtpClient::setInsecureData | ( | ) |
Make a non-encrypted data connection to the server on the next connect even if the control connection is secure.
SET-INSECUREDATA-ERROR | this method cannot be called while the control connection is established |
nothing Qore::FtpClient::setModeAuto | ( | ) |
Sets the object to automatically try to negotiate the data connections in EPSV
, PASV
, and PORT
modes, in that order.
nothing Qore::FtpClient::setModeEPSV | ( | ) |
Sets the object to only try to make data connections using EPSV
(RFC-2428 extended passive) mode.
nothing Qore::FtpClient::setModePASV | ( | ) |
Sets the object to only try to make data connections using PASV
(RFC-959 passive) mode.
nothing Qore::FtpClient::setModePORT | ( | ) |
Sets the object to only try to make data connections using PORT
mode.
Sets the network address family to use for new connections; use this method to restrict connections to IPv4 or IPv6 connections.
family | the network address family to use for new connections; see Network Address Family Constants for valid values; use Qore::AF_UNSPEC to automatically choose the family (the default) |
FTPCLIENT-SETNETWORKFAMILY-ERROR | invalid or unknown network family |
Sets the password to use for the next connection.
pass | the password to use for the next connection |
Sets the control port value to use for the next connection (the FTP protocol default is 21)
port | the control port value to use for the next connection (the FTP protocol default is 21); must be > 0 or an FTPCLIENT-SETPORT-PARAMETER-ERROR exception is raised |
FTPCLIENT-SETPORT-PARAMETER-ERROR | port <= 0 number passed as argument |
Make an FTPS connection to the server on the next connect if the argument is True.
secure | Make an FTPS connection to the server on the next connect if the argument is True; make a cleartext connection if the argument is False |
SET-SECURE-ERROR | this method cannot be called while the control connection is established |
Qore::FtpClient::setTimeout | ( | timeout | timeout_ms | ) |
sets the socket I/O timeout value in milliseconds
timeout_ms | the timeout value in milliseconds |
Sets the connection and login parameters based on the URL passed as an argument.
Only "ftp"
and "ftps"
protocols (schemes) are accepted; any other protocol (scheme) will cause an exception to be thrown.
url | The URL to use for the next connection; the URL must contain at least a hostname |
UNSUPPORTED-PROTOCOL | Only "ftp" and "ftps" are allowed as the protocol (scheme) in the URL |
FTP-URL-ERROR | No hostname given in the URL |
Sets the user name to use for the next connection.
user | the user name to use for the next connection |
nothing Qore::FtpClient::setWarningQueue | ( | int | warning_ms, |
int | warning_bs, | ||
Queue | queue, | ||
auto | arg, | ||
timeout | min_ms = 1s |
||
) |
Sets a Queue object to receive socket warnings.
warning_ms | the threshold in milliseconds for individual socket actions (send, receive, connect), if exceeded, a socket warning is placed on the warning queue with the following keys:
|
warning_bs | value in bytes per second; if any call has performance below this threshold, a socket warning is placed on the warning queue with the following keys:
|
queue | the Queue object to receive warning events |
arg | an optional argument to be placed in the "arg" key in each warning hash (could be used to identify the socket for example) |
min_ms | the minimum transfer time with a resolution of milliseconds for a transfer to be eligible for triggering a warning; transfers that take less than this period of time are not eligible for raising a warning |
QUEUE-ERROR | the Queue passed has a maximum size set |
SOCKET-SETWARNINGQUEUE-ERROR | at least one of warning_ms and warning_bs must be > 0 |
Returns a string code giving the result of verifying the remote certificate or NOTHING if an encrypted connection is not established.