Re: libfetch ftp patch for less latency

From: Nate Lawson <nate_at_root.org>
Date: Fri, 20 Apr 2007 17:11:42 -0700
Yar Tikhiy wrote:
> On Fri, Apr 20, 2007 at 10:25:03AM -0700, Nate Lawson wrote:
>> Yar Tikhiy wrote:
>>> On Wed, Apr 18, 2007 at 04:48:45PM -0400, John Baldwin wrote:
>>>> On Saturday 07 April 2007 15:47, Nate Lawson wrote:
>>>>> Dag-Erling Sm?rgrav wrote:
>>>>>> Nate Lawson <nate_at_root.org> writes:
>>>>>>> Obviously, it's easier to do nothing than something.  So here are some
>>>>>>> options:
>>>>>>>
>>>>>>> 1. Add my patch -- if a server returns an error, I see no way it would
>>>>>>> have changed the PWD.  If you say "CD GARBAGE", what reasonable system
>>>>>>> would return an error and change to some random dir?
>>>>>>>
>>>>>>> 2. Add an env variable (similar to FTP_PASSIVE_MODE, say
>>>>>>> "FTP_SINGLE_CWD") which forces the current behavior.  If not set, fetch
>>>>>>> tries the multi-method first, falls back to the single-method on error.
>>>>>> No.
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> DES
>>>>> I forgot:
>>>>>
>>>>> 3. #ifdef (on or off by default)
>>>>>
>>>>> Also, can I hear from anyone else besides Mr. No?
>>>> I'm hestitant to make fetch explicitly not follow the RFC.  At the least it
>>>> should follow the RFC by default.  Having it not follow the RFC actually
>>>> broke stuff at work until I fixed it.
>>> I believe that the proposed feature should be conditional on the
>>> TVFS extension in the server (RFC 3659) as it indeed violates the
>>> basic FTP protocol.  OTOH, TVFS seems to provide guarantees that
>>> a single CWD will work as expected.
>>>
>> I'll do the work if this is acceptable.
> 
> I'm afraid you'll have to get an approval from Mr. No anyway
> to commit that. :-)
> 
> I also wonder if there are enough TVFS conformant FTP servers out
> there to justify the work and the risk.  But there's good news,
> too:
> 
> 	yar_at_jujik:~$ftp -d -a ftp.freebsd.org
> 	Trying 2001:6c8:6:4::7...
> 	Trying 2001:4f8:0:2::e...
> 	Trying 204.152.184.73...
> 	Connected to ftp.freebsd.org.
> 	[...]
> 	---> FEAT
> 	211-Features:
> 	 EPRT
> 	 EPSV
> 	 MDTM
> 	 PASV
> 	 REST STREAM
> 	 SIZE
> 	 TVFS
> 	211 End
> 	features[FEAT_FEAT] = 1
> 	features[FEAT_MDTM] = 1
> 	features[FEAT_MLST] = 0
> 	features[FEAT_REST_STREAM] = 1
> 	features[FEAT_SIZE] = 1
> 	features[FEAT_TVFS] = 1
> 
> 62.243.72.50 tells it supports TVFS, too.
> 
> Our stock ftpd(8) has just started to announce TVFS support, too,
> but only when in UTF-8 mode because RFC 3659 says that TVFS implies
> UTF-8 file names.
> 

proftpd does not have TVFS although it has FEAT.  Hmm, guess this is too
advanced.

Anyone have an issue with me committing the code under an #ifdef, off by
default?  I'll make a note in the src about TVFS support as a todo.  I
only use fetch on some servers for pkg_add and it really would be a win
to not have the added latency.

-- 
Nate
Received on Fri Apr 20 2007 - 22:11:49 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:09 UTC