Have you thought about adding Metalink support? It's an XML file that lists mirrors & checksums.
http://en.wikipedia.org/wiki/Metalink
Many Linux distros, OpenOffice.org, & other projects use it. Most download managers support it, including mulk ( http://mulk.sourceforge.net/ ) which is also written in C & based on libcurl.
<?xml version="1.0" encoding="UTF-8"?>
<metalink version="3.0" xmlns="http://www.metalinker.org">
<files>
<file name="example.ext">
<verification>
<hash type="md5">example-md5-hash</hash>
<hash type="sha1">example-sha1-hash</hash>
<signature type="pgp"/>
</verification>
<resources>
<url type="ftp" location="us" preference="90">ftp://ftp.example.com/example.ext</url>
<url type="ftp" location="uk" preference="90">ftp://ftp.example.net/example.ext</url>
<url type="http" location="us" preference="90">http://example.com/example.ext</url>
<url type="http" location="de" preference="90">http://example.net/example.ext</url>
</resources>
</file>
</files>
</metalink>
I will TRY to support this in development branch.
AWESOME! No rush!
I can't wait to try it out
RFC 5854 about the Metalink format is out.
http://tools.ietf.org/html/rfc5854
use aria2 plug-in to support metalink.