You should also create extension for port command (As per drafts, daemon is supposed to connect() to remote as soon as it receives PORT command)
However, instead of adding new commands to already bloated ftp-protocol, you could try to persuade client authors to modify code that stores/retrieves files. From:
PASV
STOR <directory>/<filename>
PASV
STOR <directory>/<filename2>
to:
CWD <directory>
PASV
STOR <filename>
PASV
STOR <filename2>
This lessens burden from ftp-server (no need to parse path), reduces amount of obsolete data transfered & is easier to implement than the extension you suggested. If client sends directory in transfer request, reject it with suitable errorcode.
|