Ftp-WG: Re: MLST draft - NUL CR LF again

"Gregory A Lundberg" <[email protected]>
Newsgroups gmane.ietf.ftpext
Message-ID <[email protected]>
OK.  Obviously we're reading different versions of RFC 1123.
I got mine from rfc-editor.org and here's what is says on page 21:

   3.3.1  Telnet End-of-Line Convention

      The Telnet protocol defines the sequence CR LF to mean "end-
      of-line".  For terminal input, this corresponds to a command-
      completion or "end-of-line" key being pressed on a user
      terminal; on an ASCII terminal, this is the CR key, but it may
      also be labelled "Return" or "Enter".

      When a Server Telnet receives the Telnet end-of-line sequence
      CR LF as input from a remote terminal, the effect MUST be the
      same as if the user had pressed the "end-of-line" key on a
      local terminal.  On server hosts that use ASCII, in particular,
      receipt of the Telnet sequence CR LF must cause the same effect
      as a local user pressing the CR key on a local terminal.  Thus,
      CR LF and CR NUL MUST have the same effect on an ASCII server
      host when received as input over a Telnet connection.

      A User Telnet MUST be able to send any of the forms: CR LF, CR
      NUL, and LF.  A User Telnet on an ASCII host SHOULD have a
      user-controllable mode to send either CR LF or CR NUL when the
      user presses the "end-of-line" key, and CR LF SHOULD be the
      default.

      The Telnet end-of-line sequence CR LF MUST be used to send
      Telnet data that is not terminal-to-computer (e.g., for Server
      Telnet sending output, or the Telnet protocol incorporated
      another application protocol).

Nowhere in there does it make ANY requirement that end-of-line may
only be represented by CR LF.

The closest I see is the first sentance of the first paragraph,
which tells us that CR LF is one possible representation for end-of-
line.  To arrive at the requirement you infer, the sentance would
have been worded as `The Telnet protocol defines "end-of-line" as
being the sequence CR LF.'

The second paragraph goes on to inform us that, when received via a
Telnet connection, the sequences CR LF and CR NUL are interchangable.

The third tells us that when sent over a Telnet connection from a
user-FTP (the only user-Telnet in the FTP), either CR LF or CR NUL
can be sent for the end-of-line, the choice is up to the user, and
the default is CR LF.

The fourth tells us that when sent over a Telnet connection from a
server-FTP, only CR LF may be sent.

In RFC 2119 terms:

   FTP implementations MUST interpret CR LF as marking the end-
   of-line.  [First paragraph, explicitly.]

   FTP implementations MAY interpret sequences other than CR LF
   as marking the end-of-line.  [First paragraph, by conversion.]

   FTP implementations MUST interpret CR LF and CR NUL
   interchangably. [Second paragraph, explicitly.]

   FTP implementations MUST therefore interpret CR NUL as marking
   the end-of-line. [Second paragraph, by deduction.]

   The user-FTP, when implemented as a user-Telnet, MUST offer a
   configuration option allowing transmission of CR NUL to mark
   the end-of-line.  The default for this option MUST be to
   transmit CR LF to mark the end-of-line. [Third paragraph,
   explicitly.]

   The user-FTP, when not implemented as a user-Telnet, MAY offer
   a configuration option allowing transmission CR NUL to mark
   the end-of-line.  The default for this option MUST be to 
   transmit CR LF to mark the end-of-line.  [Third paragraph,
   by conversion.]

   The user-FTP, when not implemented as a user-Telnet and which
   does not offer a configuration option allowing transmission of
   CR NUL to mark the end-of-line, MUST transmit CR LF to mark
   the end-of-line.  [Third paragraph, also by conversion.]

   The server-FTP MUST transmit the sequence CR LF to mark the end-
   of-line.  [Fourth paragraph, explicitly.]

While the server-FTP MAY interpret sequences other than CR LF and
CR NUL to mark the end-of-line, the user-FTP cannot send any others.

So, in answer to the points raised so far about my comments on the
MLST draft:

1) You are incorrect.  CR NUL quite definitely MUST be interpreted
   as the Telnet end-of-line.  Therefore we have no alternate form
   for the "bare" CR to be used in a file, directory or path name.

2) You are correct, LF is not to be interpreted as the Telnet end-
   of line and does not require special escaping when intended as
   a character in a file, directory or path name.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.