Skip to content

Commit c1c025c

Browse files
elboulangerogportay
authored andcommitted
casync-http: add support for cURL multi interface
This commit brings parallel downloads to casync-http, by using the cURL multi interface, and more precisely the "select()" flavour. For details see https://curl.haxx.se/libcurl/c/libcurl-multi.html. The cURL library has two ways to achieve parallel downloads: for HTTP/1, it can open parallel connections. The maximum number of parallel connections is user-defined, through MAX_HOST_CONNECTIONS and MAX_TOTAL_CONNECTIONS. for HTTP/2, it can attempt to multiplex on a single connection. The maximum number of parallel downloads in this case is negociated between the client and the server (we talk about number of streams in the HTTP/2 jargon). Note that libcurl used to do pipelining over HTTP/1.1, but this is no longer supported since 7.62.0, and casync-http doesn't use it anyway) Signed-off-by: Arnaud Rebillout <[email protected]> Signed-off-by: Gaël PORTAY <[email protected]>
1 parent 48f37dd commit c1c025c

File tree

1 file changed

+693
-137
lines changed

1 file changed

+693
-137
lines changed

0 commit comments

Comments
 (0)