From 3f777d0edfa0ea8413d2c83eacbbda135970cb3c Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Fri, 12 Jan 2001 13:51:56 +0000 Subject: 2001-01-12 Sergei Organov * rtems_servers/ftpd.c, rtems_servers/ftpd.h: Major enhancements as listed below: - use pool of pre-created threads to handle sessions instead of creating/deleting threads on the fly - LIST output is now similar to what "/bin/ls -al" would output, thus FTP clients such Netscape are happy with it. - LIST NAME now works (both for files and directories) - added support for NLST, CDUP, and MDTM FTP commands to make more FTP clients happy - keep track of CWD for every session separately - ability to specify root directory name for FTPD in configuration table. FTPD will then create illusion for FTP clients that this is actually root directory. - ignore options sent in commands, thus LIST -al FILE works and doesn't try to list "-al" directory. - buffers are allocated on stack instead of heap where possible to eliminate malloc/free calls (avoid possible heap fragmentation troubles). - drop using of task notepad to pass parameters - use function arguments instead - use snprintf() instead of sprintf() as the latter is unsafe - use of PF_INET in socket() instead of AF_INET Here are ftp clients I've tried new FTPD with (all of them running on Debian GNU/Linux 2.2): Lftp 2.1.10 NcFTP 2.4.3 Netscape 4.75 ftp mc 4.5.49 --- c/src/libnetworking/rtems_servers/ftpd.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'c/src/libnetworking/rtems_servers/ftpd.h') diff --git a/c/src/libnetworking/rtems_servers/ftpd.h b/c/src/libnetworking/rtems_servers/ftpd.h index 6daaaf4d51..cfc5efe69b 100644 --- a/c/src/libnetworking/rtems_servers/ftpd.h +++ b/c/src/libnetworking/rtems_servers/ftpd.h @@ -25,6 +25,8 @@ struct rtems_ftpd_configuration /* for hooks */ int port; /* Well-known port */ struct rtems_ftpd_hook *hooks; /* List of hooks */ + char const *root; /* Root for FTPD or 0 for / */ + int tasks_count; /* Max. connections */ }; /* -- cgit v1.2.3