2001-01-24 Sergei Organov <osv@javad.ru>

* 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.
This commit is contained in:
Joel Sherrill
2001-01-24 19:20:24 +00:00
parent e8a7a466a2
commit 38371dbebb
7 changed files with 2152 additions and 1110 deletions

View File

@@ -1,3 +1,33 @@
2001-01-24 Sergei Organov <osv@javad.ru>
* 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.
2001-01-12 Sergei Organov <osv@javad.ru>
* rtems_servers/ftpd.c, rtems_servers/ftpd.h: Major enhancements

View File

@@ -1,3 +1,33 @@
2001-01-24 Sergei Organov <osv@javad.ru>
* 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.
2001-01-12 Sergei Organov <osv@javad.ru>
* rtems_servers/ftpd.c, rtems_servers/ftpd.h: Major enhancements

File diff suppressed because it is too large Load Diff

View File

@@ -10,6 +10,14 @@
#define FTPD_CONTROL_PORT 21
/* FTPD access control flags */
enum
{
FTPD_NO_WRITE = 0x1,
FTPD_NO_READ = 0x2,
FTPD_NO_RW = FTPD_NO_WRITE | FTPD_NO_READ
};
typedef int (*rtems_ftpd_hookfunction)(unsigned char *, unsigned long);
struct rtems_ftpd_hook
@@ -27,6 +35,11 @@ struct rtems_ftpd_configuration
struct rtems_ftpd_hook *hooks; /* List of hooks */
char const *root; /* Root for FTPD or 0 for / */
int tasks_count; /* Max. connections */
int idle; /* Idle timeout in seoconds
or 0 for no (inf) timeout */
int access; /* 0 - r/w, 1 - read-only,
2 - write-only,
3 - browse-only */
};
/*