[ 
https://issues.apache.org/jira/browse/FTPSERVER-184?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12645656#action_12645656
 ] 

David Latorre commented on FTPSERVER-184:
-----------------------------------------

Hello, 

Sure you are right here, I didn't make myself clear enough Im sorry.

As you (and RFC959) say, when we are sending the file we should transform to 
NVT-ASCII but not when we are receiving the file. In this second case, i think 
that the expected behaviour is that the text message be written to a file with 
the default line separator for the platform.    
 
   The sender converts the data from an internal character
            representation to the standard 8-bit NVT-ASCII
            representation (see the Telnet specification).  The receiver
            will convert the data from the standard form to his own
            internal form.


Actually , according to the spec before a RETR ASCII operation is transformed 
we should be converting the charset to ASCII , for our machine could be using 
EBCDIC  to store files and clients are supposed to expect that files are 
encoded in NVT-ASCII.

So I don't know ... Any way, this has little priority for me (until someone 
using a non-ascii-compatible encoding complains) so we could leave this for the 
future. Any way I don't like ASCII mode for it breaks  the 'REST' command. My 
implementation only supports binary mode.




 

> IODataConnection ASCII mode does not work as expected.
> ------------------------------------------------------
>
>                 Key: FTPSERVER-184
>                 URL: https://issues.apache.org/jira/browse/FTPSERVER-184
>             Project: FtpServer
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 1.0-M2, 1.0-M3
>            Reporter: David Latorre
>            Assignee: Niklas Gustavsson
>             Fix For: 1.0-M4
>
>
> New lines in files sent in ASCII mode   are transformed into /r/n  no matter 
> what platform the ftp server is running on.  But if I'm not wrong, the new 
> EOL should be equal to "line.separator" . If ASCII mode is going to be 
> supported, this ought to be changed.
>   
> The code in IODataConnection.transfer() 
> {
>     if (isAscii) {
>                     for (int i = 0; i < count; ++i) {
>                         byte b = buff[i];
>                         if (b == '\n' && !lastWasCR) {
>                             bos.write('\r');
>                         }
>                         if (b == '\r') {
>                             lastWasCR = true;
>                         } else {
>                             lastWasCR = false;
>                         }
>                         bos.write(b);
>                     }
>                 } 
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to