CURLSH *share,
bool capath_from_env,
bool *added);
-static CURLcode get_transfer(struct GlobalConfig *global,
- CURLSH *share,
- bool *added);
+static CURLcode create_transfer(struct GlobalConfig *global,
+ CURLSH *share,
+ bool *added);
static bool is_fatal_error(CURLcode code)
{
struct per_transfer *transfers; /* first node */
static struct per_transfer *transfersl; /* last node */
-static CURLcode add_transfer(struct per_transfer **per)
+/* add_per_transfer creates a new 'per_transfer' node in the linked
+ list of transfers */
+static CURLcode add_per_transfer(struct per_transfer **per)
{
struct per_transfer *p;
p = calloc(sizeof(struct per_transfer), 1);
/* Remove the specified transfer from the list (and free it), return the next
in line */
-static struct per_transfer *del_transfer(struct per_transfer *per)
+static struct per_transfer *del_per_transfer(struct per_transfer *per)
{
struct per_transfer *n;
struct per_transfer *p;
/*
* Call this after a transfer has completed.
*/
-static CURLcode post_transfer(struct GlobalConfig *global,
- struct per_transfer *per,
- CURLcode result,
- bool *retryp)
+static CURLcode post_per_transfer(struct GlobalConfig *global,
+ struct per_transfer *per,
+ CURLcode result,
+ bool *retryp)
{
struct OutStruct *outs = &per->outs;
CURL *curl = per->curl;
struct OutStruct *heads;
struct HdrCbData *hdrcbdata = NULL;
CURL *curl = curl_easy_init();
- result = add_transfer(&per);
+ result = add_per_transfer(&per);
if(result || !curl) {
curl_easy_cleanup(curl);
result = CURLE_OUT_OF_MEMORY;
CURLMcode mcode;
*addedp = FALSE;
*morep = FALSE;
- result = get_transfer(global, share, addedp);
+ result = create_transfer(global, share, addedp);
if(result || !*addedp)
return result;
for(per = transfers; per && (all_added < global->parallel_max);
mcode = curl_multi_add_handle(multi, per->curl);
if(mcode)
return CURLE_OUT_OF_MEMORY;
- /* get the next transfer created */
- result = get_transfer(global, share, &getadded);
+
+ result = create_transfer(global, share, &getadded);
if(result)
return result;
per->added = TRUE;
curl_easy_getinfo(easy, CURLINFO_PRIVATE, (void *)&ended);
curl_multi_remove_handle(multi, easy);
- result = post_transfer(global, ended, result, &retry);
+ result = post_per_transfer(global, ended, result, &retry);
if(retry)
continue;
progress_finalize(ended); /* before it goes away */
all_added--; /* one fewer added */
removed = TRUE;
- (void)del_transfer(ended);
+ (void)del_per_transfer(ended);
}
} while(msg);
if(removed) {
struct per_transfer *per;
bool added = FALSE;
- result = get_transfer(global, share, &added);
+ result = create_transfer(global, share, &added);
if(result || !added)
return result;
for(per = transfers; per;) {
/* store the result of the actual transfer */
returncode = result;
- result = post_transfer(global, per, result, &retry);
+ result = post_per_transfer(global, per, result, &retry);
if(retry)
continue;
bailout = TRUE;
else {
/* setup the next one just before we delete this */
- result = get_transfer(global, share, &added);
+ result = create_transfer(global, share, &added);
if(result)
bailout = TRUE;
}
/* Release metalink related resources here */
delete_metalinkfile(per->mlfile);
- per = del_transfer(per);
+ per = del_per_transfer(per);
if(bailout)
break;
return result;
}
-static CURLcode operate_do(struct GlobalConfig *global,
- struct OperationConfig *config,
- CURLSH *share,
- bool *added)
+/* setup a transfer for the given config */
+static CURLcode transfer_per_config(struct GlobalConfig *global,
+ struct OperationConfig *config,
+ CURLSH *share,
+ bool *added)
{
CURLcode result = CURLE_OK;
bool capath_from_env;
}
/*
- * 'get_transfer' gets the details and sets up *one* new transfer if 'added'
+ * 'create_transfer' gets the details and sets up a new transfer if 'added'
* returns TRUE.
*/
-static CURLcode get_transfer(struct GlobalConfig *global,
- CURLSH *share,
- bool *added)
+static CURLcode create_transfer(struct GlobalConfig *global,
+ CURLSH *share,
+ bool *added)
{
CURLcode result = CURLE_OK;
*added = FALSE;
while(global->current) {
- result = operate_do(global, global->current, share, added);
+ result = transfer_per_config(global, global->current, share, added);
if(!result && !*added) {
/* when one set is drained, continue to next */
global->current = global->current->next;
return result;
}
-static CURLcode operate_transfers(struct GlobalConfig *global,
+static CURLcode run_all_transfers(struct GlobalConfig *global,
CURLSH *share,
CURLcode result)
{
/* cleanup if there are any left */
for(per = transfers; per;) {
bool retry;
- CURLcode result2 = post_transfer(global, per, result, &retry);
+ CURLcode result2 = post_per_transfer(global, per, result, &retry);
if(!result)
/* don't overwrite the original error */
result = result2;
/* Release metalink related resources here */
clean_metalink(per->config);
- per = del_transfer(per);
+ per = del_per_transfer(per);
}
/* Reset the global config variables */
global->current = global->first;
/* now run! */
- result = operate_transfers(global, share, result);
+ result = run_all_transfers(global, share, result);
curl_share_cleanup(share);
#ifndef CURL_DISABLE_LIBCURL_OPTION