Collaboration diagram for FTP:
Note, that FTP servers don't make much sense without a file system providing write access. Right now, FTP had been tested with the PNUT file system only.
Internet File Transfer Protocol Server.
Data Structures | |
struct | FTPSESSION |
FTP session information structure. More... | |
FTP Server Configuration | |
The Nut/OS Configurator may be used to override the default values. | |
#define | FTP_MAX_CMDBUF 128 |
UDP port of DHCP server. | |
FTP Server Configuration | |
The Nut/OS Configurator may be used to override the default values. | |
#define | FTP_ROOTPATH "PNUT:" |
Default FTP root path. | |
#define | FTP_DATA_PORT 20 |
Default data port. | |
Functions | |
int | NutFtpRespondOk (FTPSESSION *session, int code) |
Send a positive response. | |
int | NutFtpRespondBad (FTPSESSION *session, int code) |
Send a negative response. | |
int | NutFtpSendMode (FTPSESSION *session, int binary) |
Send a response including the specified transfer mode. | |
char * | CreateFullPathName (char *root, char *work, char *path) |
Create an absolute path name. | |
TCPSOCKET * | NutFtpDataConnect (FTPSESSION *session) |
Establish an FTP connection for data transfer. | |
int | NutRegisterFtpRoot (CONST char *path) |
Register the FTP server's root directory. | |
int | NutRegisterFtpUser (CONST char *user, CONST char *pass) |
Register an FTP user. | |
FTPSESSION * | NutFtpOpenSession (TCPSOCKET *sock) |
Open an FTP server session. | |
void | NutFtpCloseSession (FTPSESSION *session) |
Close an FTP server session. | |
int | NutFtpProcessCwd (FTPSESSION *session, char *path) |
Process an FTP client's CWD command. | |
int | NutFtpProcessDelete (FTPSESSION *session, char *path) |
Process an FTP client's DELE command. | |
int | NutFtpTransferFile (FTPSESSION *session, char *path, int mode) |
Transfer a file to or from the FTP client. | |
int | NutFtpTransferDirectory (FTPSESSION *session, char *path) |
Process an FTP client's LIST or NLST command. | |
int | NutFtpProcessMkd (FTPSESSION *session, char *path) |
Process an FTP client's MKD command. | |
int | NutFtpProcessPass (FTPSESSION *session, char *pass) |
Process an FTP client's PASS command. | |
int | NutFtpProcessPassiv (FTPSESSION *session) |
Process an FTP client's PASV command. | |
int | NutFtpProcessPort (FTPSESSION *session, char *args) |
Process an FTP client's PORT command. | |
int | NutFtpProcessPwd (FTPSESSION *session) |
Process an FTP client's PWD command. | |
int | NutFtpProcessRmd (FTPSESSION *session, char *path) |
Process an FTP client's RMD command. | |
int | NutFtpProcessSystem (FTPSESSION *session) |
Process an FTP client's SYST command. | |
int | NutFtpProcessType (FTPSESSION *session, char *typecode) |
Process an FTP client's TYPE command. | |
int | NutFtpProcessUser (FTPSESSION *session, char *user) |
Process an FTP client's USER command. | |
int | NutFtpProcessRequest (FTPSESSION *session, char *request) |
Process an FTP request. | |
int | NutFtpServerSession (TCPSOCKET *sock) |
Process an FTP sever session. |
|
Send a positive response.
|
|
Send a negative response.
|
|
Send a response including the specified transfer mode.
|
|
Create an absolute path name. Combines an absolute directory path with a relative path name to a full absolute path name. The absolute directory is split into two parts, the root and the current work directory. The resulting path will never be above the specified root.
|
|
Establish an FTP connection for data transfer.
|
|
Register the FTP server's root directory. Only one root directory is supported. Subsequent calls will override previous settings.
|
|
Register an FTP user. Only one username/password pair is supported. Subsequent calls will override previous settings.
|
|
Open an FTP server session.
|
|
Close an FTP server session.
|
|
Process an FTP client's CWD command.
|
|
Process an FTP client's DELE command. Causes the specified file to be deleted.
|
|
Transfer a file to or from the FTP client.
|
|
Process an FTP client's LIST or NLST command. Causes a directory listing to be sent to the client.
|
|
Process an FTP client's MKD command. Causes the specified directory to be created.
|
|
Process an FTP client's PASS command. Only one login per session is accepted.
|
|
Process an FTP client's PASV command. This command requests the server to listen on a data port and to wait for a connection rather than initiate one upon receipt of a transfer command.
|
|
Process an FTP client's PORT command.
|
|
Process an FTP client's PWD command. Causes the name of the current working directory to be returned in the reply.
|
|
Process an FTP client's RMD command. Causes the specified directory to be removed.
|
|
Process an FTP client's SYST command.
|
|
Process an FTP client's TYPE command. The type is not fully checked. Any argument starting with the letters 'A' or 'a' will switch the transfer mode to ASCII. Otherwise binary mode is set.
|
|
Process an FTP client's USER command. Only one login per session is accepted.
|
|
Process an FTP request. This routine implements the protocol interpreter of the FTP server.
|
|
Process an FTP sever session. Processes FTP requests on an established connection with an FTP client. This routine completely implements an FTP server except TCP connect and disconnect. For file transfers, the same maximum segment size and timeouts as set for this socket will be used for the data connection.
|