Re: libfetch ftp patch for less latency

From: Yar Tikhiy <yar_at_comp.chem.msu.su>
Date: Sat, 21 Apr 2007 04:06:49 +0400
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.

-- 
Yar
Received on Fri Apr 20 2007 - 22:06:55 UTC

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