cURL / Mailing Lists / curl-users / Single Mail


Re: Patch for Metalink Support

From: Dan Fandrich <>
Date: Wed, 4 Mar 2009 01:51:14 -0700

On Tue, Mar 03, 2009 at 11:54:34PM +0900, Tatsuhiro Tsujikawa wrote:
> Finally, I created 2nd patch.
> I tried to put metalink functions in a separate file, but many
> convenient functions and struct is defined in static in main.c(are there
> any plan to make these functions non-static?), in this patch, sorry but
> I put all metalink functions in main.c. The actual metalink download
> code is separated from the original function(operate function), making
> the existing code as unchanged as possible.

I've been thinking about this feature in light of the scope that the curl
tool sets for itself, and I have a suggestion. The curl tool has always
been designed in the UNIX tradition of small, lightweight tools that can
work together to accomplish something bigger. The suggestion was made
on this list that Metalink support could be added to curl similar to how
ssh support was added to rsync; by treating the app as a wrapper around the
low-level tool, and shells out to call it when appropriate.

That idea has some merit, but here's another. This isn't the only "large"
feature that has been proposed for curl. Others include recursive download
support (which requires HTML parsing support), ftp wildcard support (which
requires parsing FTP directories), automatic proxy configuration (which
requires Javascript support), and pipelined and simultaneous download support
(which requires use of the multi interface). Maybe it's time to propose a
new project, call it "MegaCurl", that doesn't have the self-imposed
restrictions on what the curl command line should do and sits
alongside it. It wouldn't need to limit its dependencies or the
number of options. It wouldn't necessarily have to be as stable or
thoroughly tested as curl. It could even be designated as a testbed for
experimental new features. Some smart refactoring could also allow some
of the existing curl code to be reused (like the option parsing code)
to maintain some compatibility with the existing client.

Of course, it may be that what's hindering the creation of those features is
not a new project in which to add them, but rather a lack of interest on
the part of anyone to write them. But if "MegaCurl" existed today, this
Metalink support could be added in heartbeat.

>>> Dan

--              The web change of address service
          Let webmasters know that your web site has moved
List admin:
Received on 2009-03-04