From: Warren Brown Date: 2005-05-26T00:48:25+09:00 Subject: Re: FTP, mostly questions, but a patch, too. Hugh, > I was looking at RFC959 -- the FTP spec, > So, the other thing it says about modes is that RETRy won't > work in Stream mode, and Stream mode is the default mode. > So, I look it the Ruby ftp file. I see no support for MODE, > but I see support for RETR. Is this actually correct if > Stream is the default? I do see a reference to MDTM, which > I can't see in RFC959, so I'm not sure what that is, and if > it has something to do with MoDe of TransMission. I also > see an EPRT command which I don't recognise either. First of all, note that FTP is a very "loose" protocol with lots of nonstandard but widely-used extensions. Although RFC959 is the base for the FTP protocol, many other RFCs should also be considered. Some of the main ones are: RFC1123, RFC1579, RFC2228, RFC2389, RFC2428, RFC2640, as well as several IETF drafts. As far as the RETR command, you have misread RFC959. RETR is the "RETRieve" command. It is the command issued when you "GET" a file. What you are describing is the REST ("RESTart") command. In practice, virtually nobody uses anything but stream mode for FTP communications, and currently one of the major problems with FTP communications is the lack of a restart command that works with stream mode. This is addressed by IETF draft "Extensions to FTP", which extends the REST command to include stream mode, but not very many FTP clients or servers currently support this. That same draft is also trying to standardize the widely-used MDTM ("MoDification TiMe") command that you ran across. The EPRT ("Extended PoRT") command is the IPv6 version of the PORT command and is described by RFC2428. I hope this helps. - Warren Brown