58 CURLM_CALL_MULTI_PERFORM = -1,
62 CURLM_BAD_EASY_HANDLE,
75 #define CURLM_CALL_MULTI_SOCKET CURLM_CALL_MULTI_PERFORM 78 #define CURLPIPE_NOTHING 0L 79 #define CURLPIPE_HTTP1 1L 80 #define CURLPIPE_MULTIPLEX 2L 102 #define CURL_WAIT_POLLIN 0x0001 103 #define CURL_WAIT_POLLPRI 0x0002 104 #define CURL_WAIT_POLLOUT 0x0004 119 CURL_EXTERN CURLM *curl_multi_init(
void);
128 CURL_EXTERN CURLMcode curl_multi_add_handle(CURLM *multi_handle,
138 CURL_EXTERN CURLMcode curl_multi_remove_handle(CURLM *multi_handle,
150 CURL_EXTERN CURLMcode curl_multi_fdset(CURLM *multi_handle,
152 fd_set *write_fd_set,
164 CURL_EXTERN CURLMcode curl_multi_wait(CURLM *multi_handle,
166 unsigned int extra_nfds,
186 CURL_EXTERN CURLMcode curl_multi_perform(CURLM *multi_handle,
187 int *running_handles);
199 CURL_EXTERN CURLMcode curl_multi_cleanup(CURLM *multi_handle);
229 CURL_EXTERN CURLMsg *curl_multi_info_read(CURLM *multi_handle,
241 CURL_EXTERN
const char *curl_multi_strerror(CURLMcode);
252 #define CURL_POLL_NONE 0 253 #define CURL_POLL_IN 1 254 #define CURL_POLL_OUT 2 255 #define CURL_POLL_INOUT 3 256 #define CURL_POLL_REMOVE 4 258 #define CURL_SOCKET_TIMEOUT CURL_SOCKET_BAD 260 #define CURL_CSELECT_IN 0x01 261 #define CURL_CSELECT_OUT 0x02 262 #define CURL_CSELECT_ERR 0x04 264 typedef int (*curl_socket_callback)(CURL *easy,
281 typedef int (*curl_multi_timer_callback)(CURLM *multi,
286 CURL_EXTERN CURLMcode curl_multi_socket(CURLM *multi_handle, curl_socket_t s,
287 int *running_handles);
289 CURL_EXTERN CURLMcode curl_multi_socket_action(CURLM *multi_handle,
292 int *running_handles);
294 CURL_EXTERN CURLMcode curl_multi_socket_all(CURLM *multi_handle,
295 int *running_handles);
297 #ifndef CURL_ALLOW_OLD_MULTI_SOCKET 301 #define curl_multi_socket(x,y,z) curl_multi_socket_action(x,y,0,z) 313 CURL_EXTERN CURLMcode curl_multi_timeout(CURLM *multi_handle,
319 #define CINIT(name,type,num) CURLMOPT_ ## name = CURLOPTTYPE_ ## type + num 322 #define LONG CURLOPTTYPE_LONG 323 #define OBJECTPOINT CURLOPTTYPE_OBJECTPOINT 324 #define FUNCTIONPOINT CURLOPTTYPE_FUNCTIONPOINT 325 #define OFF_T CURLOPTTYPE_OFF_T 326 #define CINIT(name,type,number) CURLMOPT_name = type + number 331 CINIT(SOCKETFUNCTION, FUNCTIONPOINT, 1),
334 CINIT(SOCKETDATA, OBJECTPOINT, 2),
337 CINIT(PIPELINING, LONG, 3),
340 CINIT(TIMERFUNCTION, FUNCTIONPOINT, 4),
343 CINIT(TIMERDATA, OBJECTPOINT, 5),
346 CINIT(MAXCONNECTS, LONG, 6),
349 CINIT(MAX_HOST_CONNECTIONS, LONG, 7),
352 CINIT(MAX_PIPELINE_LENGTH, LONG, 8),
356 CINIT(CONTENT_LENGTH_PENALTY_SIZE, OFF_T, 9),
360 CINIT(CHUNK_LENGTH_PENALTY_SIZE, OFF_T, 10),
364 CINIT(PIPELINING_SITE_BL, OBJECTPOINT, 11),
368 CINIT(PIPELINING_SERVER_BL, OBJECTPOINT, 12),
371 CINIT(MAX_TOTAL_CONNECTIONS, LONG, 13),
374 CINIT(PUSHFUNCTION, FUNCTIONPOINT, 14),
377 CINIT(PUSHDATA, OBJECTPOINT, 15),
390 CURL_EXTERN CURLMcode curl_multi_setopt(CURLM *multi_handle,
391 CURLMoption option, ...);
403 CURL_EXTERN CURLMcode curl_multi_assign(CURLM *multi_handle,
404 curl_socket_t sockfd,
void *sockp);
415 #define CURL_PUSH_OK 0 416 #define CURL_PUSH_DENY 1 418 struct curl_pushheaders;
420 CURL_EXTERN
char *curl_pushheader_bynum(
struct curl_pushheaders *h,
422 CURL_EXTERN
char *curl_pushheader_byname(
struct curl_pushheaders *h,
425 typedef int (*curl_push_callback)(CURL *parent,
428 struct curl_pushheaders *headers,