[PATCH 0/8] Misc ftp-related patches.

Hello gvfs-list! (Please CC me on replies)

I'd like comments on a few patches I've created for the gvfsd-ftp backend.
Some of the issues where identified and solution suggested by Oliver Joos,
which has also helped out with testing the others - thanks!


Try to solve character encoding issues the simples possible way,
by using "OPTS UTF8 ON" when the server signals it supports it.
(related to bug #544586)
  Add UTF8 to feature parsing.
  Use UTF8 when available.

Disable usage of "all extended passive" feature, since there's probably
not many NAT devices actually taking advantage of it, it's been reported
atleast one server is broken wrt to it (bug #547855) and it'll also 
allow the "broken EPSV" workaround in the next patch....
  Disable usage of "EPSV ALL".

Oliver Joos reported a server with broken EPSV support. This patch
falls back on PASV when a EPSV connection fails.
  Restructure ..._ensure_data_connection and fall back on PASV when
    EPSV fails.
Note: I'm unsure if the EPSV one is a good idea! Olivers particular problem
will also be solved by moving the FEAT in a later patch. Don't know
if this is helpful in other cases. (The PASV workaround is useful
since I know there are lots of broken sites sitting behind and announcing
the wrong address, but this is less of an issue in gvfsd-ftp then other
clients since EPSV is the default unless the server says it's unsupported.)
  Add workarounds for EPSV/PASV data connection failures.

Move some commands before login (matches lftp behaviour).
  Do FEAT and OPTS UTF8 ON before login.

Be more tolerant to broken FEAT replies.
  Be less strict in leading spaces of FEAT reply.
  Deal with "\n" vs "\r\n" in FEAT responses.

Please tell me if you have any comments and if you'd like me to drop
the "broken EPSV" workaround (which would make it possible to also
drop disabling of EPSV ALL).

 daemon/gvfsbackendftp.c |  217 +++++++++++++++++++++++++++++++++++------------
 1 files changed, 163 insertions(+), 54 deletions(-)

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]