Ftp-WG: Re: comments on the MLST draft
"Gregory A Lundberg" <[email protected]> Mon, 29 Apr 2002 05:39:17 -0500
| Newsgroups | gmane.ietf.ftpext |
|---|---|
| Message-ID | <[email protected]> |
Granted, a lot of that "implementor be aware" stuff is because the doc started life as my notes to myself to remember to check things. On SIZE and MDTM being optional: I don't think they add anything. MLSx has the info; newer implementations should use MLSx and forget SIZE and MDTM. Older servers which don't have them shouldn't need to add them. Making the commands optional is a strong hint to client authors to switch to MLSx. On the problem with MDTM: You're right, there's really no good workaround if the server tries to change the time as in the example. On whether SIZE should error if the current mode would require conversion: To be honest, having supported the darned thing for years now, I'm just plain tired of explaining to admins that the reason their server got shut down was not an error in the server, but a consequence of them allowing such large files to begin with. I tried adding a sleep call occassionally, to let other processes have a chance, and all that did was gather complaints that it was taking WAY too long to get the size. Can anyone come up with a zero-growth cost means of determining the size? The only solution I can come up with is to marry something like MySQL and store such 'facts' there; and I don't EVEN want to think about the problems keeping that synchronized would cause. I didn't look too closely at the facts for MLSx, but I assume the size fact there is intended to be the actual, stored, size and not the on-the-fly size. If not, it'll suffer the same problems as SIZE. To be BRUTALLY honest, I wish SIZE had never been added. The "error on conversion" solution is the only way I've come up with which maintains the command as a cheap way to get the file's size without having to read through LIST output, and stop the DoS complaints. On why I recommend REST and not SIZE and MDTM: unlike SIZE and MDTM, REST for streams actually adds something useful to the protocol. I don't think it's the panacea the users think it is, and personally dis-recommend its use for most transfers. On why I say REST can appear anywhere: What I was trying to describe was the way existing clients misuse the command in an attempt to see if it _might_ work today. Yes, 959 says it must be immediately followed with a transfer command. But clients send it at the top of the session, when they're doing SYST and such, and it's typically a command or two away from the data transfer. On truncating the file to the STOR: You're right it does not matter that the truncation occur before or after the STOR, but it must occur; and I don't recall ever seeing it stated, though, that STOR following a REST truncates. On letting REST exceed the size: Sure, on a lot of systems, all you get is a huge file. But on others you get memory-image garbage. And on others you get whatever was recorded on that area of the drive. Allowing the creation of holes is much the same as allowing a short-length STOR which does not truncate. With REST we have given the users lseek(). They already have read() and write(). Suddenly we have a random-access file system implemented over FTP. As to whether implementor advice should be part of an RFC; security starts with design. On of the most common complaints about the FTP is it's total lack of regard for security. Much of that owes to the protocol's desire to make it easy to share files. But a lot of it comes from the fact that the common refrain is "Security issues are not discused in this memo." The intention of adding that section to the RFCs was to encourage authors to consider and discuss security issues. To date, it's main purpose, though, has been for the author to admit that, if he did the considering, he didn't do the discussing. On the stuff you're leaving for later: in the Security section, I suggest saying something like some of the issues have been corrected in the memo and others may be handled by implementation and configuration choices. If you don't remove the DoS caused by SIZE (and the size fact, if it's the same there) you should read that as saying "none of the issues reported have been corrected, although some may be handled by implementation or configuration choices."