[
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.