Lines Matching full:state

166     CURLState *state = NULL;  in curl_sock_cb()  local
169 curl_easy_getinfo(curl, CURLINFO_PRIVATE, (char **)&state); in curl_sock_cb()
170 s = state->s; in curl_sock_cb()
274 CURLState *state = &s->states[i]; in curl_find_buf() local
275 uint64_t buf_end = (state->buf_start + state->buf_off); in curl_find_buf()
276 uint64_t buf_fend = (state->buf_start + state->buf_len); in curl_find_buf()
278 if (!state->orig_buf) in curl_find_buf()
280 if (!state->buf_off) in curl_find_buf()
284 if ((start >= state->buf_start) && in curl_find_buf()
286 (clamped_end >= state->buf_start) && in curl_find_buf()
289 char *buf = state->orig_buf + (start - state->buf_start); in curl_find_buf()
300 if (state->in_use && in curl_find_buf()
301 (start >= state->buf_start) && in curl_find_buf()
303 (clamped_end >= state->buf_start) && in curl_find_buf()
308 acb->start = start - state->buf_start; in curl_find_buf()
312 if (!state->acb[j]) { in curl_find_buf()
313 state->acb[j] = acb; in curl_find_buf()
340 CURLState *state = NULL; in curl_multi_check_completion() local
344 (char **)&state); in curl_multi_check_completion()
353 error_report("curl: %s", state->errmsg); in curl_multi_check_completion()
361 CURLAIOCB *acb = state->acb[i]; in curl_multi_check_completion()
369 assert(state->buf_off >= acb->end); in curl_multi_check_completion()
372 state->orig_buf + acb->start, in curl_multi_check_completion()
383 state->acb[i] = NULL; in curl_multi_check_completion()
389 curl_clean_state(state); in curl_multi_check_completion()
441 CURLState *state = NULL; in curl_find_state() local
446 state = &s->states[i]; in curl_find_state()
447 state->in_use = 1; in curl_find_state()
451 return state; in curl_find_state()
454 static int curl_init_state(BDRVCURLState *s, CURLState *state) in curl_init_state() argument
456 if (!state->curl) { in curl_init_state()
457 state->curl = curl_easy_init(); in curl_init_state()
458 if (!state->curl) { in curl_init_state()
461 if (curl_easy_setopt(state->curl, CURLOPT_URL, s->url) || in curl_init_state()
462 curl_easy_setopt(state->curl, CURLOPT_SSL_VERIFYPEER, in curl_init_state()
464 curl_easy_setopt(state->curl, CURLOPT_SSL_VERIFYHOST, in curl_init_state()
469 if (curl_easy_setopt(state->curl, CURLOPT_COOKIE, s->cookie)) { in curl_init_state()
473 if (curl_easy_setopt(state->curl, CURLOPT_TIMEOUT, (long)s->timeout) || in curl_init_state()
474 curl_easy_setopt(state->curl, CURLOPT_WRITEFUNCTION, in curl_init_state()
476 curl_easy_setopt(state->curl, CURLOPT_WRITEDATA, (void *)state) || in curl_init_state()
477 curl_easy_setopt(state->curl, CURLOPT_PRIVATE, (void *)state) || in curl_init_state()
478 curl_easy_setopt(state->curl, CURLOPT_AUTOREFERER, 1) || in curl_init_state()
479 curl_easy_setopt(state->curl, CURLOPT_FOLLOWLOCATION, 1) || in curl_init_state()
480 curl_easy_setopt(state->curl, CURLOPT_NOSIGNAL, 1) || in curl_init_state()
481 curl_easy_setopt(state->curl, CURLOPT_ERRORBUFFER, state->errmsg) || in curl_init_state()
482 curl_easy_setopt(state->curl, CURLOPT_FAILONERROR, 1)) { in curl_init_state()
486 if (curl_easy_setopt(state->curl, CURLOPT_USERNAME, s->username)) { in curl_init_state()
491 if (curl_easy_setopt(state->curl, CURLOPT_PASSWORD, s->password)) { in curl_init_state()
496 if (curl_easy_setopt(state->curl, in curl_init_state()
502 if (curl_easy_setopt(state->curl, in curl_init_state()
517 if (curl_easy_setopt(state->curl, in curl_init_state()
519 curl_easy_setopt(state->curl, in curl_init_state()
524 if (curl_easy_setopt(state->curl, CURLOPT_PROTOCOLS, PROTOCOLS) || in curl_init_state()
525 curl_easy_setopt(state->curl, CURLOPT_REDIR_PROTOCOLS, PROTOCOLS)) { in curl_init_state()
531 if (curl_easy_setopt(state->curl, CURLOPT_VERBOSE, 1)) { in curl_init_state()
537 state->s = s; in curl_init_state()
542 curl_easy_cleanup(state->curl); in curl_init_state()
543 state->curl = NULL; in curl_init_state()
676 CURLState *state = NULL; in curl_open() local
791 state = curl_find_state(s); in curl_open()
793 if (!state) { in curl_open()
799 if (curl_init_state(s, state) < 0) { in curl_open()
800 pstrcpy(state->errmsg, CURL_ERROR_SIZE, in curl_open()
806 if (curl_easy_setopt(state->curl, CURLOPT_NOBODY, 1) || in curl_open()
807 curl_easy_setopt(state->curl, CURLOPT_HEADERFUNCTION, curl_header_cb) || in curl_open()
808 curl_easy_setopt(state->curl, CURLOPT_HEADERDATA, s)) { in curl_open()
809 pstrcpy(state->errmsg, CURL_ERROR_SIZE, in curl_open()
813 if (curl_easy_perform(state->curl)) in curl_open()
819 if (curl_easy_getinfo(state->curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD_T, &cl)) { in curl_open()
823 if (curl_easy_getinfo(state->curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD, &cl)) { in curl_open()
832 pstrcpy(state->errmsg, CURL_ERROR_SIZE, in curl_open()
838 pstrcpy(state->errmsg, CURL_ERROR_SIZE, in curl_open()
849 pstrcpy(state->errmsg, CURL_ERROR_SIZE, in curl_open()
856 curl_clean_state(state); in curl_open()
858 curl_easy_cleanup(state->curl); in curl_open()
859 state->curl = NULL; in curl_open()
867 error_setg(errp, "CURL: Error opening file: %s", state->errmsg); in curl_open()
868 curl_easy_cleanup(state->curl); in curl_open()
869 state->curl = NULL; in curl_open()
887 CURLState *state; in curl_setup_preadv() local
905 state = curl_find_state(s); in curl_setup_preadv()
906 if (state) { in curl_setup_preadv()
912 if (curl_init_state(s, state) < 0) { in curl_setup_preadv()
913 curl_clean_state(state); in curl_setup_preadv()
921 state->buf_off = 0; in curl_setup_preadv()
922 g_free(state->orig_buf); in curl_setup_preadv()
923 state->buf_start = start; in curl_setup_preadv()
924 state->buf_len = MIN(acb->end + s->readahead_size, s->len - start); in curl_setup_preadv()
925 end = start + state->buf_len - 1; in curl_setup_preadv()
926 state->orig_buf = g_try_malloc(state->buf_len); in curl_setup_preadv()
927 if (state->buf_len && state->orig_buf == NULL) { in curl_setup_preadv()
928 curl_clean_state(state); in curl_setup_preadv()
932 state->acb[0] = acb; in curl_setup_preadv()
934 snprintf(state->range, 127, "%" PRIu64 "-%" PRIu64, start, end); in curl_setup_preadv()
935 trace_curl_setup_preadv(acb->bytes, start, state->range); in curl_setup_preadv()
936 if (curl_easy_setopt(state->curl, CURLOPT_RANGE, state->range) || in curl_setup_preadv()
937 curl_multi_add_handle(s->multi, state->curl) != CURLM_OK) { in curl_setup_preadv()
938 state->acb[0] = NULL; in curl_setup_preadv()
941 curl_clean_state(state); in curl_setup_preadv()