ftpserver.pl: directory LISTings use [CR][LF] for ASCII transfer
authorMarc Hoersken <info@marc-hoersken.de>
Sun, 26 Jan 2014 10:30:41 +0000 (11:30 +0100)
committerMarc Hoersken <info@marc-hoersken.de>
Fri, 31 Jan 2014 19:05:14 +0000 (20:05 +0100)
According to section 2.2 of RFC959 the End-of-Line is defined as:
 The end-of-line sequence defines the separation of printing
 lines.  The sequence is Carriage Return, followed by Line Feed.

Verified by sniffing traffic between a Windows FTP client (FileZilla)
and Unix-hosted FTP server (ProFTPD).

tests/ftpserver.pl

index f2b12eb..0116e20 100755 (executable)
@@ -2160,6 +2160,9 @@ my @ftpdir=("total 20\r\n",
         my @data = getpart("reply", "data");
         for(@data) {
             my $send = $_;
+            # convert all \n to \r\n for ASCII transfer
+            $send =~ s/\r\n/\n/g;
+            $send =~ s/\n/\r\n/g;
             logmsg "send $send as data\n";
             senddata $send;
         }