The FTP4ALL Daemon Protocol (F4ADP)

(daemon internals, for programmers only)

Overview

The F4ADP defines commands that are implemented in the F4A daemon (ftpd). Over this protocol you can access the daemon directly. It defines commands to manipulate users, groups and the server in general. This is excatly the protocol that the two server processes ftps and ftpd communicate with. Also, an admin tool can directly communicate with ftpd over this protocol. This documentation is intended for users who want to write or improve an admin tool.

Connecting to ftpd

To connect, simply establish an TCP connection to the admin port of ftpd.

Loggin into ftpd

Use the command ULP to log in. You must log in before you can interact with ftpd.

Interacting with ftpd

You can send commands to ftpd, requesting information or telling it what to do. A command is a line of text with a command string and several parameters. The line must be terminated with a LINEFEED. The commands are three to seven letters in uppercase and are are listed on the left. ftpd answers to a command with a single line of text. In some cases the answer may consist of several lines. The first character of the reply is either + (plus) or - (minus), indicating if the command succeeded (plus) or failed (minus). In the case of failure, the reply is an human-readable error message. In the case of success, the reply is either a human-readable success message, or the information that you requested. The messagges or information start at the second character. Any command can fail, even if it is not mentioned in the description of the command. Arguments to commands must be delimited by whitespace (SPACE or TAB). If an argument contains whitespace, it must be surrounded with quotes, either single or double.

Logging out of ftpd

To log out, simply close the connection. There is no need to send a logout command (but feel free to use QUIT if you want).