#include "curl.h"Go to the source code of this file.
Classes | |
| struct | CURLMsg |
Defines | |
| #define | CURLM_CALL_MULTI_SOCKET CURLM_CALL_MULTI_PERFORM |
| #define | CURL_POLL_NONE 0 |
| #define | CURL_POLL_IN 1 |
| #define | CURL_POLL_OUT 2 |
| #define | CURL_POLL_INOUT 3 |
| #define | CURL_POLL_REMOVE 4 |
| #define | CURL_SOCKET_TIMEOUT CURL_SOCKET_BAD |
| #define | CURL_CSELECT_IN 0x01 |
| #define | CURL_CSELECT_OUT 0x02 |
| #define | CURL_CSELECT_ERR 0x04 |
| #define | curl_multi_socket(x, y, z) curl_multi_socket_action(x,y,0,z) |
| #define | LONG CURLOPTTYPE_LONG |
| #define | OBJECTPOINT CURLOPTTYPE_OBJECTPOINT |
| #define | FUNCTIONPOINT CURLOPTTYPE_FUNCTIONPOINT |
| #define | OFF_T CURLOPTTYPE_OFF_T |
| #define | CINIT(name, type, number) CURLMOPT_name = type + number |
Typedefs | |
| typedef void | CURLM |
| typedef struct CURLMsg | CURLMsg |
| typedef int(* | curl_socket_callback )(CURL *easy, curl_socket_t s, int what, void *userp, void *socketp) |
| typedef int(* | curl_multi_timer_callback )(CURLM *multi, long timeout_ms, void *userp) |
Enumerations | |
| enum | CURLMcode { CURLM_CALL_MULTI_PERFORM = -1, CURLM_OK, CURLM_BAD_HANDLE, CURLM_BAD_EASY_HANDLE, CURLM_OUT_OF_MEMORY, CURLM_INTERNAL_ERROR, CURLM_BAD_SOCKET, CURLM_UNKNOWN_OPTION, CURLM_LAST } |
| enum | CURLMSG { CURLMSG_NONE, CURLMSG_DONE, CURLMSG_LAST } |
| enum | CURLMoption { CINIT = (SOCKETFUNCTION, FUNCTIONPOINT, 1), CINIT = (SOCKETFUNCTION, FUNCTIONPOINT, 1), CINIT = (SOCKETFUNCTION, FUNCTIONPOINT, 1), CINIT = (SOCKETFUNCTION, FUNCTIONPOINT, 1), CINIT = (SOCKETFUNCTION, FUNCTIONPOINT, 1), CINIT = (SOCKETFUNCTION, FUNCTIONPOINT, 1), CURLMOPT_LASTENTRY } |
Functions | |
| CURL_EXTERN CURLM * | curl_multi_init (void) |
| CURL_EXTERN CURLMcode | curl_multi_add_handle (CURLM *multi_handle, CURL *curl_handle) |
| CURL_EXTERN CURLMcode | curl_multi_remove_handle (CURLM *multi_handle, CURL *curl_handle) |
| CURL_EXTERN CURLMcode | curl_multi_fdset (CURLM *multi_handle, fd_set *read_fd_set, fd_set *write_fd_set, fd_set *exc_fd_set, int *max_fd) |
| CURL_EXTERN CURLMcode | curl_multi_perform (CURLM *multi_handle, int *running_handles) |
| CURL_EXTERN CURLMcode | curl_multi_cleanup (CURLM *multi_handle) |
| CURL_EXTERN CURLMsg * | curl_multi_info_read (CURLM *multi_handle, int *msgs_in_queue) |
| CURL_EXTERN const char * | curl_multi_strerror (CURLMcode) |
| CURL_EXTERN CURLMcode | curl_multi_socket (CURLM *multi_handle, curl_socket_t s, int *running_handles) |
| CURL_EXTERN CURLMcode | curl_multi_socket_action (CURLM *multi_handle, curl_socket_t s, int ev_bitmask, int *running_handles) |
| CURL_EXTERN CURLMcode | curl_multi_socket_all (CURLM *multi_handle, int *running_handles) |
| CURL_EXTERN CURLMcode | curl_multi_timeout (CURLM *multi_handle, long *milliseconds) |
| CURL_EXTERN CURLMcode | curl_multi_setopt (CURLM *multi_handle, CURLMoption option,...) |
| CURL_EXTERN CURLMcode | curl_multi_assign (CURLM *multi_handle, curl_socket_t sockfd, void *sockp) |
| #define CINIT | ( | name, | |||
| type, | |||||
| number | ) | CURLMOPT_name = type + number |
| #define CURL_CSELECT_ERR 0x04 |
Definition at line 84 of file multi.h.
Referenced by Curl_readwrite(), Curl_socket_ready(), Curl_SOCKS5(), and waitconnect().
| #define CURL_CSELECT_IN 0x01 |
| #define CURL_CSELECT_OUT 0x02 |
| #define curl_multi_socket | ( | x, | |||
| y, | |||||
| z | ) | curl_multi_socket_action(x,y,0,z) |
| #define CURL_POLL_IN 1 |
| #define CURL_POLL_NONE 0 |
| #define CURL_POLL_OUT 2 |
| #define CURL_POLL_REMOVE 4 |
| #define CURL_SOCKET_TIMEOUT CURL_SOCKET_BAD |
| typedef int(* curl_multi_timer_callback)(CURLM *multi, long timeout_ms, void *userp) |
| typedef int(* curl_socket_callback)(CURL *easy, curl_socket_t s, int what, void *userp, void *socketp) |
| enum CURLMcode |
| enum CURLMoption |
| enum CURLMSG |
Definition at line 397 of file multi.c.
References calloc, Curl_multi::closure, Curl_multi::connc, UrlState::connc, Curl_ch_connc(), Curl_easy_addmulti(), Curl_expire(), Curl_hash_destroy(), Curl_rm_connc(), CURLE_OK, CURLM_BAD_EASY_HANDLE, CURLM_BAD_HANDLE, CURLM_OK, CURLM_OUT_OF_MEMORY, CURLM_STATE_INIT, SessionHandle::dns, Curl_multi::easy, Curl_one_easy::easy_handle, closure::easy_handle, free, GOOD_EASY_HANDLE, GOOD_MULTI_HANDLE, Curl_multi::hostcache, Names::hostcache, Names::hostcachetype, Curl_multi::maxconnects, SessionHandle::multi_pos, multistate(), Curl_one_easy::next, closure::next, NULL, conncache::num, Curl_multi::num_alive, Curl_multi::num_easy, UserDefined::one_easy, Curl_one_easy::prev, SessionHandle::set, SessionHandle::state, conncache::type, and update_timer().
| CURL_EXTERN CURLMcode curl_multi_assign | ( | CURLM * | multi_handle, | |
| curl_socket_t | sockfd, | |||
| void * | sockp | |||
| ) |
Definition at line 2036 of file multi.c.
References Curl_hash_pick(), CURL_SOCKET_BAD, CURLM_BAD_SOCKET, CURLM_OK, NULL, Curl_sh_entry::socketp, and Curl_multi::sockhash.
Definition at line 1521 of file multi.c.
References UrlState::closed, Curl_multi::closure, UrlState::connc, Curl_multi::connc, conncache::connects, Curl_close(), Curl_disconnect(), Curl_easy_addmulti(), Curl_hash_destroy(), Curl_rm_connc(), CURLM_BAD_HANDLE, CURLM_OK, SessionHandle::dns, Curl_multi::easy, Curl_one_easy::easy_handle, closure::easy_handle, free, GOOD_MULTI_HANDLE, Names::hostcache, Curl_multi::hostcache, Names::hostcachetype, Curl_one_easy::msg, n, Curl_one_easy::next, closure::next, NULL, conncache::num, PROT_CLOSEACTION, connectdata::protocol, UrlState::shared_conn, Curl_multi::sockhash, SessionHandle::state, and Curl_multi::type.
| CURL_EXTERN CURLMcode curl_multi_fdset | ( | CURLM * | multi_handle, | |
| fd_set * | read_fd_set, | |||
| fd_set * | write_fd_set, | |||
| fd_set * | exc_fd_set, | |||
| int * | max_fd | |||
| ) |
Definition at line 786 of file multi.c.
References CURL_SOCKET_BAD, CURLM_BAD_HANDLE, CURLM_OK, Curl_multi::easy, GETSOCK_READSOCK, GETSOCK_WRITESOCK, GOOD_MULTI_HANDLE, MAX_SOCKSPEREASYHANDLE, multi_getsock(), Curl_one_easy::next, and simple_client::s.
Definition at line 1588 of file multi.c.
References Curl_multi::easy, Curl_message::extmsg, GOOD_MULTI_HANDLE, Curl_one_easy::msg, Curl_one_easy::msg_num, Curl_one_easy::next, NULL, and Curl_multi::num_msgs.
| CURL_EXTERN CURLM* curl_multi_init | ( | void | ) |
Definition at line 356 of file multi.c.
References calloc, Curl_multi::connc, Curl_hash_destroy(), Curl_mk_connc(), Curl_mk_dnscache(), CURL_MULTI_HANDLE, Curl_multi::easy, free, Curl_multi::hostcache, Curl_one_easy::next, NULL, Curl_one_easy::prev, sh_init(), Curl_multi::sockhash, and Curl_multi::type.
Definition at line 1454 of file multi.c.
References UrlState::cancelled, Curl_multi_rmeasy(), Curl_splaygetbest(), Curl_tvnow, CURLM_BAD_HANDLE, CURLM_OK, CURLM_STATE_CANCELLED, Curl_multi::easy, Curl_one_easy::easy_handle, UrlState::expiretime, GOOD_MULTI_HANDLE, multi_runsingle(), Curl_one_easy::next, NULL, Curl_multi::num_alive, Curl_tree::payload, Curl_one_easy::state, SessionHandle::state, Curl_multi::timetree, timeval::tv_sec, timeval::tv_usec, and update_timer().
Referenced by multi_socket().
Definition at line 552 of file multi.c.
References add_closure(), UrlState::cancelled, UrlState::connc, connectdata::connectindex, Curl_done(), Curl_easy_addmulti(), Curl_expire(), CURLM_BAD_EASY_HANDLE, CURLM_BAD_HANDLE, CURLM_OK, CURLM_STATE_COMPLETED, CURLM_STATE_DO, connectdata::data, SessionHandle::dns, Curl_one_easy::easy_conn, Curl_one_easy::easy_handle, free, GOOD_EASY_HANDLE, GOOD_MULTI_HANDLE, Names::hostcache, Names::hostcachetype, UrlState::is_in_pipeline, Curl_one_easy::msg, multi_conn_using(), SessionHandle::multi_pos, Curl_one_easy::next, NULL, Curl_multi::num_alive, Curl_multi::num_easy, UserDefined::one_easy, Curl_one_easy::prev, connectdata::recv_pipe, Curl_one_easy::result, connectdata::send_pipe, SessionHandle::set, UrlState::shared_conn, singlesocket(), curl_llist::size, SessionHandle::state, Curl_one_easy::state, TRUE, conncache::type, and update_timer().
Referenced by Curl_multi_rmeasy().
| CURL_EXTERN CURLMcode curl_multi_setopt | ( | CURLM * | multi_handle, | |
| CURLMoption | option, | |||
| ... | ||||
| ) |
Definition at line 1827 of file multi.c.
References CURLM_BAD_HANDLE, CURLM_OK, CURLM_UNKNOWN_OPTION, GOOD_MULTI_HANDLE, Curl_multi::maxconnects, Curl_multi::pipelining_enabled, Curl_multi::socket_cb, Curl_multi::socket_userp, Curl_multi::timer_cb, and Curl_multi::timer_userp.
| CURL_EXTERN CURLMcode curl_multi_socket | ( | CURLM * | multi_handle, | |
| curl_socket_t | s, | |||
| int * | running_handles | |||
| ) |
Definition at line 1869 of file multi.c.
References CURLM_OK, FALSE, multi_socket(), and update_timer().
| CURL_EXTERN CURLMcode curl_multi_socket_action | ( | CURLM * | multi_handle, | |
| curl_socket_t | s, | |||
| int | ev_bitmask, | |||
| int * | running_handles | |||
| ) |
Definition at line 1879 of file multi.c.
References CURLM_OK, FALSE, multi_socket(), and update_timer().
Definition at line 1889 of file multi.c.
References CURL_SOCKET_BAD, CURLM_OK, multi_socket(), TRUE, and update_timer().
| CURL_EXTERN const char* curl_multi_strerror | ( | CURLMcode | ) |
Definition at line 323 of file strerror.c.
References CURLM_BAD_EASY_HANDLE, CURLM_BAD_HANDLE, CURLM_BAD_SOCKET, CURLM_CALL_MULTI_PERFORM, CURLM_INTERNAL_ERROR, CURLM_LAST, CURLM_OK, CURLM_OUT_OF_MEMORY, and CURLM_UNKNOWN_OPTION.
Definition at line 1922 of file multi.c.
References CURLM_BAD_HANDLE, GOOD_MULTI_HANDLE, and multi_timeout().
1.5.6