cURL / Mailing Lists / curl-library / Single Mail

curl-library

FTP 3rd party transfers

From: Daniel Stenberg <daniel-curl_at_haxx.se>
Date: Sat, 15 Jan 2005 22:46:50 +0100 (CET)

Hiya,

As I described the other day, we need to add 3rd party transfers to the test
suite, as otherwise it'll be much harder to get it working properly with my
brand new FTP code.

In my ongoing venture in attempting this, I just added a bunch of new command
line options to curl so that I can try 3rd party transfers from the command
line (patch available on request). What did I learn from this? Several things:

1. The libcurl options for 3rd party transfers are totally undocumented, which
    makes me believe that no one but Alexander has ever used this, as it is not
    obvious how this is used (the ftp3rdparty.c example helps, but it is not
    complete and does not explain the options).

2. I can't make 3rd party transfers work when I try them. (The debug output is
    also not very good when both source and target is the same server and thus
    same host name as you can't really tell the difference between source and
    target server operations.)

3. I don't like the pletora of options that would be better as one single
    source URL instead of separated into source host, source path, source port
    etc. It is unintuitive since the target is specified as a URL. Is there
    any benefits from using this approach that I don't see?

Since I can't make 3rd party transfers work, I can't make the test suite
support tests using it either.

Since I can't make the test suite test 3rd party transfers, I can't convert
them over to the new state-machine FTP code easily.

If I can't convert the code, 3rd party won't work after my FTP rewrite and
thus I don't see any reason to keep it.

Summary:

I'd like to support FTP 3rd party transfers, so I need assistance to get it
done right. And with right I mean that I want to be able to use it, I want the
docs to describe how to use it and I want the test suite to test at least the
most common cases and options. Based on the current code of course. The
conversion to state-machine code will be made separately.

I'm asking for help. I can't make this on my own.

If I don't get help within reasonable time, I'll just remove the 3rd party
transfer support in my rewritten code, and then we'll re-introduce 3rd party
transfer later on...

-- 
      Daniel Stenberg -- http://curl.haxx.se -- http://daniel.haxx.se
       Dedicated custom curl help for hire: http://haxx.se/curl.html
Received on 2005-01-15