• Home
  • Raw
  • Download

Lines Matching refs:per

209 static CURLcode add_per_transfer(struct per_transfer **per)  in add_per_transfer()  argument
226 *per = p; in add_per_transfer()
233 static struct per_transfer *del_per_transfer(struct per_transfer *per) in del_per_transfer() argument
239 DEBUGASSERT(per); in del_per_transfer()
241 n = per->next; in del_per_transfer()
242 p = per->prev; in del_per_transfer()
254 free(per); in del_per_transfer()
260 struct per_transfer *per) in pre_transfer() argument
266 if(per->separator_err) in pre_transfer()
267 fprintf(global->errors, "%s\n", per->separator_err); in pre_transfer()
268 if(per->separator) in pre_transfer()
269 printf("%s\n", per->separator); in pre_transfer()
271 if(per->uploadfile && !stdin_upload(per->uploadfile)) { in pre_transfer()
288 per->infd = -1; in pre_transfer()
289 if(stat(per->uploadfile, &fileinfo) == 0) { in pre_transfer()
295 per->infd = open(per->uploadfile, O_RDONLY | O_BINARY); in pre_transfer()
298 per->infd = open(per->uploadfile, O_RDONLY | O_BINARY, in pre_transfer()
302 if(per->infd == -1) in pre_transfer()
304 per->infd = open(per->uploadfile, O_RDONLY | O_BINARY); in pre_transfer()
305 if((per->infd == -1) || fstat(per->infd, &fileinfo)) in pre_transfer()
308 helpf(global->errors, "Can't open '%s'!\n", per->uploadfile); in pre_transfer()
309 if(per->infd != -1) { in pre_transfer()
310 close(per->infd); in pre_transfer()
311 per->infd = STDIN_FILENO; in pre_transfer()
315 per->infdopen = TRUE; in pre_transfer()
322 my_setopt(per->curl, CURLOPT_INFILESIZE_LARGE, uploadfilesize); in pre_transfer()
323 per->input.fd = per->infd; in pre_transfer()
332 struct per_transfer *per, in post_per_transfer() argument
336 struct OutStruct *outs = &per->outs; in post_per_transfer()
337 CURL *curl = per->curl; in post_per_transfer()
338 struct OperationConfig *config = per->config; in post_per_transfer()
345 if(per->infdopen) in post_per_transfer()
346 close(per->infd); in post_per_transfer()
361 (per->errorbuffer[0]) ? per->errorbuffer : in post_per_transfer()
398 if(per->metalink && !per->metalink_next_res) in post_per_transfer()
400 per->mlfile->filename, per->this_url); in post_per_transfer()
402 if(!per->metalink && config->use_metalink && result == CURLE_OK) { in post_per_transfer()
403 int rv = parse_metalink(config, outs, per->this_url); in post_per_transfer()
406 per->this_url); in post_per_transfer()
410 per->this_url); in post_per_transfer()
412 else if(per->metalink && result == CURLE_OK && !per->metalink_next_res) { in post_per_transfer()
415 rv = metalink_check_hash(global, per->mlfile, outs->filename); in post_per_transfer()
417 per->metalink_next_res = 1; in post_per_transfer()
432 if(per->retry_numretries && in post_per_transfer()
434 (tvdiff(tvnow(), per->retrystart) < in post_per_transfer()
518 sleeptime = per->retry_sleep; in post_per_transfer()
532 m[retry], sleeptime/1000L, per->retry_numretries); in post_per_transfer()
534 per->retry_numretries--; in post_per_transfer()
537 per->retry_sleep *= 2; in post_per_transfer()
538 if(per->retry_sleep > RETRY_SLEEP_MAX) in post_per_transfer()
539 per->retry_sleep = RETRY_SLEEP_MAX; in post_per_transfer()
582 else if(per->metalink) { in post_per_transfer()
596 per->metalink_next_res = 1; in post_per_transfer()
600 per->mlfile->filename, per->this_url, response); in post_per_transfer()
605 per->metalink_next_res = 1; in post_per_transfer()
608 per->mlfile->filename, per->this_url, in post_per_transfer()
614 per->progressbar.calls) in post_per_transfer()
617 fputs("\n", per->progressbar.out); in post_per_transfer()
620 ourWriteOut(per->curl, &per->outs, config->writeout); in post_per_transfer()
641 if(per->heads.fopened && per->heads.stream) in post_per_transfer()
642 fclose(per->heads.stream); in post_per_transfer()
644 if(per->heads.alloc_filename) in post_per_transfer()
645 Curl_safefree(per->heads.filename); in post_per_transfer()
647 curl_easy_cleanup(per->curl); in post_per_transfer()
650 free(per->this_url); in post_per_transfer()
651 free(per->separator_err); in post_per_transfer()
652 free(per->separator); in post_per_transfer()
653 free(per->outfile); in post_per_transfer()
654 free(per->uploadfile); in post_per_transfer()
839 struct per_transfer *per; in single_transfer() local
845 result = add_per_transfer(&per); in single_transfer()
852 per->uploadfile = strdup(state->uploadfile); in single_transfer()
853 if(!per->uploadfile) { in single_transfer()
860 per->config = config; in single_transfer()
861 per->curl = curl; in single_transfer()
864 heads = &per->heads; in single_transfer()
892 hdrcbdata = &per->hdrcbdata; in single_transfer()
894 outs = &per->outs; in single_transfer()
895 input = &per->input; in single_transfer()
897 per->outfile = NULL; in single_transfer()
898 per->infdopen = FALSE; in single_transfer()
899 per->infd = STDIN_FILENO; in single_transfer()
908 per->outfile = strdup(mlfile->filename); in single_transfer()
909 if(!per->outfile) { in single_transfer()
913 per->this_url = strdup(mlres->url); in single_transfer()
914 if(!per->this_url) { in single_transfer()
918 per->mlfile = mlfile; in single_transfer()
922 result = glob_next_url(&per->this_url, state->urls); in single_transfer()
927 per->this_url = strdup(urlnode->url); in single_transfer()
928 if(!per->this_url) { in single_transfer()
934 per->this_url = NULL; in single_transfer()
935 if(!per->this_url) in single_transfer()
939 per->outfile = strdup(state->outfiles); in single_transfer()
940 if(!per->outfile) { in single_transfer()
948 (per->outfile && strcmp("-", per->outfile))) && in single_transfer()
956 if(!per->outfile) { in single_transfer()
958 result = get_url_file_name(&per->outfile, per->this_url); in single_transfer()
961 if(!*per->outfile && !config->content_disposition) { in single_transfer()
969 char *storefile = per->outfile; in single_transfer()
970 result = glob_match_url(&per->outfile, storefile, state->urls); in single_transfer()
983 result = create_dir_hierarchy(per->outfile, global->errors); in single_transfer()
1000 if(0 == stat(per->outfile, &fileinfo)) in single_transfer()
1016 FILE *file = fopen(per->outfile, "ab"); in single_transfer()
1019 helpf(global->errors, "Can't open '%s'!\n", per->outfile); in single_transfer()
1030 outs->filename = per->outfile; in single_transfer()
1034 if(per->uploadfile && !stdin_upload(per->uploadfile)) { in single_transfer()
1038 char *nurl = add_file_name_to_url(per->this_url, per->uploadfile); in single_transfer()
1043 per->this_url = nurl; in single_transfer()
1045 else if(per->uploadfile && stdin_upload(per->uploadfile)) { in single_transfer()
1071 DEBUGASSERT(per->infdopen == FALSE); in single_transfer()
1072 DEBUGASSERT(per->infd == STDIN_FILENO); in single_transfer()
1075 if(!strcmp(per->uploadfile, ".")) { in single_transfer()
1076 if(curlx_nonblock((curl_socket_t)per->infd, TRUE) < 0) in single_transfer()
1078 "fcntl failed on fd=%d: %s\n", per->infd, strerror(errno)); in single_transfer()
1082 if(per->uploadfile && config->resume_from_current) in single_transfer()
1085 if(output_expected(per->this_url, per->uploadfile) && outs->stream && in single_transfer()
1098 per->separator_err = in single_transfer()
1100 state->li + 1, urlnum, per->this_url, in single_transfer()
1101 per->outfile ? per->outfile : "<stdout>"); in single_transfer()
1103 per->separator = aprintf("%s%s", CURLseparator, per->this_url); in single_transfer()
1108 const char *pc = strstr(per->this_url, "://"); in single_transfer()
1113 pc = per->this_url; in single_transfer()
1129 urlbuffer = aprintf("%s%c%s", per->this_url, sep, httpgetfields); in single_transfer()
1134 urlbuffer = aprintf("%s/?%s", per->this_url, httpgetfields); in single_transfer()
1141 Curl_safefree(per->this_url); /* free previous URL */ in single_transfer()
1142 per->this_url = urlbuffer; /* use our new URL instead! */ in single_transfer()
1148 if((!per->outfile || !strcmp(per->outfile, "-")) && in single_transfer()
1157 (per->outfile && !strcmp(per->outfile, "-")); in single_transfer()
1171 my_setopt(curl, CURLOPT_WRITEDATA, per); in single_transfer()
1172 my_setopt(curl, CURLOPT_INTERLEAVEDATA, per); in single_transfer()
1209 my_setopt_str(curl, CURLOPT_URL, per->this_url); in single_transfer()
1258 my_setopt(curl, CURLOPT_UPLOAD, per->uploadfile?1L:0L); in single_transfer()
1277 my_setopt(curl, CURLOPT_ERRORBUFFER, per->errorbuffer); in single_transfer()
1575 progressbarinit(&per->progressbar, config); in single_transfer()
1582 my_setopt(curl, CURLOPT_XFERINFODATA, &per->progressbar); in single_transfer()
1775 my_setopt(curl, CURLOPT_HEADERDATA, per); in single_transfer()
1894 "Metalink: parsing (%s) metalink/XML...\n", per->this_url); in single_transfer()
1899 mlfile->filename, per->this_url); in single_transfer()
1902 per->metalink = metalink; in single_transfer()
1904 per->retry_sleep_default = (config->retry_delay) ? in single_transfer()
1906 per->retry_numretries = config->req_retry; in single_transfer()
1907 per->retry_sleep = per->retry_sleep_default; /* ms */ in single_transfer()
1908 per->retrystart = tvnow(); in single_transfer()
1957 struct per_transfer *per; in add_parallel_transfers() local
1965 for(per = transfers; per && (all_added < global->parallel_max); in add_parallel_transfers()
1966 per = per->next) { in add_parallel_transfers()
1968 if(per->added) in add_parallel_transfers()
1972 result = pre_transfer(global, per); in add_parallel_transfers()
1976 (void)curl_easy_setopt(per->curl, CURLOPT_PRIVATE, per); in add_parallel_transfers()
1977 (void)curl_easy_setopt(per->curl, CURLOPT_XFERINFOFUNCTION, xferinfo_cb); in add_parallel_transfers()
1978 (void)curl_easy_setopt(per->curl, CURLOPT_XFERINFODATA, per); in add_parallel_transfers()
1980 mcode = curl_multi_add_handle(multi, per->curl); in add_parallel_transfers()
1987 per->added = TRUE; in add_parallel_transfers()
1991 *morep = per ? TRUE : FALSE; in add_parallel_transfers()
2077 struct per_transfer *per; in serial_transfers() local
2083 for(per = transfers; per;) { in serial_transfers()
2086 result = pre_transfer(global, per); in serial_transfers()
2099 result = curl_easy_perform_ev(per->curl); in serial_transfers()
2102 result = curl_easy_perform(per->curl); in serial_transfers()
2107 result = post_per_transfer(global, per, result, &retry); in serial_transfers()
2123 delete_metalinkfile(per->mlfile); in serial_transfers()
2125 per = del_per_transfer(per); in serial_transfers()
2271 struct per_transfer *per; in run_all_transfers() local
2282 for(per = transfers; per;) { in run_all_transfers()
2284 CURLcode result2 = post_per_transfer(global, per, result, &retry); in run_all_transfers()
2290 clean_getout(per->config); in run_all_transfers()
2293 clean_metalink(per->config); in run_all_transfers()
2294 per = del_per_transfer(per); in run_all_transfers()