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.engine
Run 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 -> unit
Sends immediately an ABOR
command, even when a data transfer is
in progress.
TODO - not yet implemented
method run : unit -> unit
Starts the event system; same as Unixqueue.run
method ftp_state : ftp_state
Returns the current ftp_state
method state : unit Uq_engines.engine_state
The 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 -> unit
Shuts any active connection immediately down, and changes the
state of the engine to `Aborted
.
method event_system : Unixqueue.event_system
The used event system
method request_notification : (unit -> bool) -> unit
as in Uq_engines.engine
method request_proxy_notification : (unit Uq_engines.engine -> bool) -> unit
as in Uq_engines.engine
method is_empty : bool
Whether the queue is empty
method need_ip6 : bool
Whether `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 option
GSSAPI 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 : bool
Whether TVFS filenames are supported
method supports_mdtm : bool
Whether 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 : bool
Whether 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 : bool
Whether the `MLST
and `MLSD
commands are supported
method mlst_facts : string list
All available facts for `MLST
and `MLSD
method mlst_enabled_facts : string list
The enabled facts for `MLST
and `MLSD
method supports_utf8 : bool
Whether the UTF-8 extension is understood by the server (RFC 2640)
method supports_tls : bool
Whether TLS is supported