| Commit message (Collapse) | Author | Files | Lines |
|
* rtems_servers/ftpd.c: Correct argument so hooks work again.
|
|
* rtems_servers/ftp.d: Following changes:
- Hacks with current dir and root dir removed in favor of new libio
support for task-local current and root directories.
- Bug in `close_data_socket()' introduced by previous change fixed.
- `command_pasv()' changed to set timeout on socket we are listening
on and code fixed to don't close socket twice on error.
- `serr()' changed to clear `errno'.
- `data_socket()' changed to clear `errno' before `bind()'.
- `session()' changed to clear `errno' before processing session.
- `close_data_socket()' fixed to close both active and passive sockets
- Initialize info->data_socket to -1 in `daemon()'
- Initialize `fname' to empty string in `exec_command()'
|
|
* Makefile.am, arpa/Makefile.am, machine/Makefile.am, net/Makefile.am,
netinet/Makefile.am, nfs/Makefile.am, rtems/Makefile.am,
rtems_servers/Makefile.am, rtems_webserver/Makefile.am,
sys/Makefile.am, vm/Makefile.am:
Apply include_*HEADERS instead of H_FILES.
* include/Makefile.am: Remove.
* Makefile.am: Add handling of *.h files.
* configure.in: Remove include/Makefile.
|
|
* rtems_servers/ftpd.c, rtems_servers/ftpd.h: Major enhancements
as listed below:
- Timeouts on sockets implemented. 'idle' field added to
configuration. No timeout by default to keep backward compatibility.
Note: SITE IDLE command not implemented yet.
- Basic global access control implemented. 'access' field added to
configuration. No access limitations by default to keep backward
compatibility.
- Anchor data socket for active mode (using self IP and port 20.)
- Fixed default data port support (still not tested).
- Don't allow IP address different from originating host in
PORT command to improve security.
- Fixed bug in MDTM command.
- Check for correctness of parsing of argument in command_port().
- Fixed squeeze_path() to don't allow names like 'NAME/smth' where
'NAME' is not a directory.
- Command parsing a little bit improved: command names are now
converted to upper-case to be more compatible with RFC (command
names are not case-sensitive.)
- Reformat comments so that they have RTEMS look-and-feel.
- Fixed DELE, SITE CHMOD, RMD, MKD broken by previous changes
- True ASCII mode implemented (doesn't work for hooks and /dev/null)
- Passive mode implemented, PASV command added.
- Default port for data connection could be used (untested, can't find
ftp client that doesn't send PORT command)
- SYST reply changed to UNIX, as former RTEMS isn't registered name.
- Reply codes reviewed and fixed.
|
|
* 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
|
|
* kern/Makefile.am, lib/Makefile.am, libc/Makefile.am,
net/Makefile.am, netinet/Makefile.am, nfs/Makefile.am,
pppd/Makefile.am, rtems/Makefile.am, rtems_servers/Makefile.am,
rtems_webserver/Makefile.am, wrapup/Makefile.am: Include compile.am
|
|
|
|
that contains the automake files for libnetworking plus a couple of
minor fixes. [Now only one unused/unsupported Makefile.in remains
(./c/src/lib/libbsp/hppa1.1/pxfl/Makefile.in).]
To apply:
patch -p1 < rtems-rc-20000118-7.diff
/bin/sh rtems-rc-20000118-7.rm
/bin/sh rtems-rc-20000118-7.add
./bootstrap
Notes:
* I have tested this one by building all BSPs for m68k, powerpc, sh and
unix with toolchains built since last weekend.
* I did not touch libnetworking's directory layout.
|
|
sin_port.
|
|
|