---
name: "FtpOptions"
section: "3"
platform: "linux"
package: "ftplib-dev"
version: "3.1-1-9"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/FtpOptions"
---

# FtpOptions(3)

Set connection options.

## 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.
