Part LI. FTP Client for eCos TCP/IP Stack

The ftpclient package provides an FTP (File Transfer Protocol) client for use with the TCP/IP stack in eCos. It supports both IPv4 and IPv6 and will use the DNS client, when its is part of the eCos configuration. The API allows for active (server->client) or passive (client->server) transfer connections to be used.

The data operations support binary mode transfers only. The supplied filename paths only support Unix-style ’/‚ directory separators.

The API provides support for either direct buffer transfers, or for call-back routines to be used to copy data as required. Care must be taken, especially when receiving files, since the direct buffer support calls are limited to handling files that will fit within the single buffer passed through the API. The API call-back based implementation can avoid this limitation by allowing the client to control the data reception and buffering as appropriate.

By default the data transfer operations will initially attempt a connection using the newer “extended” (IPv6 capable) FTP commands (EPRT or EPSV as appropriate). If those commands are not supported by the FTP server then the client will fallback to using the original FTP connection commands (PORT or PASV respectively).