Ftp-WG: FEAT UTF-8 in review

Pat LaVarre <[email protected]> Wed, 17 Jul 2002 15:02:35 -0500
Newsgroups gmane.ietf.ftpext
Message-ID <[email protected]>
http://www.ietf.org/rfc/rfc2640.txt

> X-Listname: [email protected]
> ... NVT processing, obviously.

http://www.ietf.org/html.charters/ftpext-charter.html
http://www.ietf.org/internet-drafts/draft-ietf-ftpext-mlst-15.txt
http://www.ietf.org/internet-drafts/draft-ietf-ftpext-utf-8-option-00.txt

> May 2002

Hey, wow, I just now (17 July) stumbled into this FEAT
UTF-8 draft, distinct from FEAT UTF8, courtesy the
links quoted.  Great stuff, thank you.

> To restore inter-operation with existing
implementations,
> the FTP should provide a means for the user
> to express its willingness to accept UTF-8 encoded
pathnames,
> and servers should not transmit UTF-8 encoded
pathnames
> without prior authorization from the user.

Yes!

But am I understanding correctly?  According to this
FEAT UTF-8 draft ...

> The assertion in [RFC2640] that CR NUL
> is not a Telnet end-of-line sequence is incorrect.
...
> RFC1123 ... accept either CR LF or CR NUL
> as representing Telnet end-of-line when received

Clients & servers should also liberally accept LF as
Telnet end-of-line, yes?

> When transmitting UTF-8 encoded characters,
> the shortest form should be used.

http://www.unicode.org says Must use shortest form, to
avoid the hole of a s*curity filter rejecting only
shortest-form and failing to reject a longer, not so
plainly equivalent, form, such as the UTF-8 outside of
*( %x20-7E / %x80-EF ) that isn't shortest form for
any char of the x0000..FFFF range.

> The ABNF for pathnames presented in [RFC2640] is
incorrect.
> ... the correct syntax is
> PATHNAME = *( %x20-7E )
> PATHNAME = *( %x20-7E / %x80-FF )
> both cases render moot all discussion
> about the use of the characters CR, LF, and NUL, in
pathnames.

Eh?

As a server, in a folder, I have a local filename that
includes a local Eol.

How should that filename appear in my NLST data,
supposing the client asked for FEAT UTF-8 NLST?

Shortest-form UTF-8 would commonly be x0A or x0D or x
0D 0A, depending on locale, sent as x0A or x 0D 00 or
x 0D 00 0A.

When should & must contradict, must wins, so I must
conclude that I must not use shortest form UTF-8 to
represent EOL in a path name?  I should use the next
shortest form i.e. x C0 8A and x C0 8D and x C0 8D C0
8A?

If that conclusion is correct, should we state it?  If
the shortest form UTF-8 encoding at the client or at
the server contains %x00-1F, then those bytes should
be transmitted as the next shortest form i.e. x C0 80
.. x C0 9F?

> allow internationalized pathnames
> support internationalization of response text

Distinct requirements, the first alone more commonly
useful, aye, thank you.

> OPTS <SP> UTF-8 [ <SP> NLST ] <CRLF>

Why is NLST an option?  Why not require it in the
syntax.  Why not say every path name is UTF-8 or not? 
And what about LIST and MLST and MLSD and so on?

Pat LaVarre

__________________________________________________
Do You Yahoo!?
Yahoo! Autos - Get free new car price quotes
http://autos.yahoo.com