class type ftp_client_pi =object..end
The client protocol interpreter...
method exec_e : ?prelim:(ftp_state -> reply -> unit) ->
cmd ->
(ftp_state * reply) Uq_engines.engineRun another command as engine. The command is first started when the previous command has terminated. The protocol interpreter does not check whether this command is allowed in the current ftp_state or not.
When the command is done, the engine transitions to
`Done(st,r) where st is the state after the command, and r
is the final reply of the server.
Due to the FTP specification there may be several replies for
a command: First, zero or more replies with cmd_state = `Preliminary,
and then exactly one reply with a final state. The preliminary replies
can be intercepted with the prelim callback.
method send_abort : unit -> unitSends immediately an ABOR command, even when a data transfer is
in progress.
TODO - not yet implemented
method run : unit -> unitStarts the event system; same as Unixqueue.run
method ftp_state : ftp_stateReturns the current ftp_state
method state : unit Uq_engines.engine_stateThe state in the sense of Uq_engines. Possible values are:
`Working _: The control connection is still active. The int
argument is currently meaningless.`Done(): The control connection has been terminated.`Error e: A violation of the FTP protocol happened, or another
exception e occurred`Aborted: The abort method was calledmethod abort : unit -> unitShuts any active connection immediately down, and changes the
state of the engine to `Aborted.
method event_system : Unixqueue.event_systemThe used event system
method request_notification : (unit -> bool) -> unitas in Uq_engines.engine
method request_proxy_notification : (unit Uq_engines.engine -> bool) -> unitas in Uq_engines.engine
method is_empty : boolWhether the queue is empty
method need_ip6 : boolWhether `EPSV or `EPRT are required instead of
`PASV and `PORT, respectively. This is first set after
connecting to a server (i.e. when the IP address family is known).
Before, it is always false.
method gssapi_props : Netsys_gssapi.client_props optionGSSAPI props if GSSAPI security is negotiated
The following methods are first set when the `FEAT command is run.
Use feat_method to do so. Until then, always false is returned.
method supports_tvfs : boolWhether TVFS filenames are supported
method supports_mdtm : boolWhether the `MDTM command is supported. Note that `MDTM is sometimes
even supported even if the server does not provide the `FEAT command
to test for this feature.
method supports_size : boolWhether the `SIZE command is supported. Note that `SIZE is sometimes
even supported even if the server does not provide the `FEAT command
to test for this feature.
method supports_mlst : boolWhether the `MLST and `MLSD commands are supported
method mlst_facts : string listAll available facts for `MLST and `MLSD
method mlst_enabled_facts : string listThe enabled facts for `MLST and `MLSD
method supports_utf8 : boolWhether the UTF-8 extension is understood by the server (RFC 2640)
method supports_tls : boolWhether TLS is supported