On Wed, 19 Jan 2011, Leo wrote:
Right now I have several FTP servers to which any FTP client connects instantly.
After reading your mail I realized you're here talking about connecting the data connection, and I assume you mean in a passive manner.
libcurl will only connect to them instantly with EPSV disabled.
A failed EPSV should be fairly quick. If it takes time I think it indicates something wrong, either in the server-side or in the client-side. I can't rule out any bugs/problems in libcurl, but I'm not aware of any in the current version.
Otherwise it never connects, or it takes really long time.
You talk about this in generic terms but in generic terms libcurl already works fine. You need to be specific, exact and show us details of exactly what the servers do when libcurl sends exactly what commands to them. Probably with timing info.
-Do other FTP clients do something that libcurl doesn't?
Perhaps, or even most likely. libcurl is implemented independently and we follow the FTP standard specs and it has been tried against live FTP servers for over a decade. We have never copied how other clients do, so I would expect other clients to have smaller to larger deviances in how they interact with servers. The issue here is of course to figure out if there are any important differences.
You can probably figure that out without too much problems using wireshark or similar. Many FTP clients features a debug mode that displays the exact commands and responses that are sent and received. Then you can compare those with what libcurl sends and receives.
-Or do they use reversed approach, i.e. try PASV first, then EPSV?
I don't know.
-Is there a way to connect to such servers without disabling EPSV? (But then it can't be used universally).
I don't know. I think we need more details and facts first.
-Am I missing something?
Yes: the fact that we don't like top-postings on this mailing list. Please trim your quotes and write your mail below the pieces of the quotes that you think are necessary to provide content to your reply.
-- / daniel.haxx.se ------------------------------------------------------------------- List admin: http://cool.haxx.se/list/listinfo/curl-library Etiquette: http://curl.haxx.se/mail/etiquette.html
