NAME
FtpOptions - Set connection options.
SYNOPSIS
#include <ftplib.h>
int FtpOptions(int opt, long val, netbuf *nControl);
PARAMETERS
opt Specifies the option to change. Valid options are
FTPLIB_CONNMODE, FTPLIB_CALLBACK, FTPLIB_IDLETIME,
FTPLIB_CALLBACKARG, and FTPLIB_CALLBACKBYTES.
val Specifies the new value for the option. The value may need to by
cast to a long.
nControl
A handle returned by FtpConnect()or FtpAccess().
DESCRIPTION
FtpOptions() changes the options for a connection handle. A data
connection inherits the options assigned to the control connection it
is created from. Callbacks are only called on file data connections.
The following options and values are
recognized.OptionValueFTPLIB_CONNMODE Specifies the connection mode.
Either FTPLIB_PASSIVE or FTPLIB_PORT.FTPLIB_CALLBACK Specifies the
address of a user callback routine.FTPLIB_IDLETIME Specifies the socket
idle time in milliseconds that triggers calling the user’s callback
routine.FTPLIB_CALLBACKARG Specifies an argument to pass to the user’s
callback routine.FTPLIB_CALLBACKBYTES Specifies the number of bytes to
transfer between calls to the user’s callback routine.
The connection mode tells ftplib if it should use PASV or PORT to
establish data connections. The default is specified as a build option.
The user’s callback routine is specified as:.sp typedef int
(*FtpCallback)(netbuf *nControl, int xfered,
void *arg); nControlis the data connection in use.
xferedspecifies how many bytes of data have been transferred on
the connection.argis the value specified with option
FTPLIB_CALLBACKARG.
The user can request to be called back on either of two events.
If the user wishes to be called when the data socket is idle for
some period of time, use FTPLIB_IDLETIME and pass the time in
milliseconds.
If the user wishes to be called when a certain amount of data
has been transferred, use FTPLIB_CALLBACKBYTES and pass the
minimum number of bytes to transfer between callbacks. When
using this option, ftplib keeps track of the number of bytes
transferred and calls the user once the specified number of
bytes or more has been transferred. It then resets the count to
0 and starts again.
If the user wishes to continue the transfer, the callback
routine should return true (non-zero). It can abort the transfer
by return zero.
RETURN VALUE
Returns 1 if a valid option was specified and the value is legal.
Otherwise, returns 0.