113 if (
res->req->resp_limit) {
116 if (body_len + (
apr_off_t)blen >
res->req->resp_limit) {
139 for (
i = 0;
i <
len; ++
i) {
143 while (
i <
len &&
b[
i] ==
' ') {
214 "req[%d]: data --> %ld bytes", req->
id, (
long)
size);
221 "req[%d]: data(hex) --> %s", req->
id,
s);
226 "req[%d]: data <-- %ld bytes", req->
id, (
long)
size);
233 "req[%d]: data(hex) <-- %s", req->
id,
s);
268 internals->
curl = curl;
360 "req[%d]: http status is %d",
375 "req[%d] fire callbacks", req->
id);
433 if (internals && internals->
curl == curl) {
447 internals->
curlm = curlm;
498 "multi_perform[%d reqs]: setup failed",
requests->nelts);
506 "multi_perform[%d reqs]: no more requests",
requests->nelts);
514 "multi_perform[%d reqs]: nextreq() failed",
requests->nelts);
522 "multi_perform[%d reqs]: setup failed",
requests->nelts);
530 "multi_perform[%d reqs]: added request",
requests->nelts);
541 "multi_perform[%d reqs] failed(%d): %s",
561 "multi_perform[%d reqs]: req[%d] done",
572 "multi_perform[%d reqs]: req done, but not found by handle",
581 "multi_perform[%d reqs]: leaving",
requests->nelts);
607 if (internals->
curl) {
609 if (curl == internals->
curl) {
const char apr_size_t len
static void update_status(void)
APR-UTIL Buckets/Bucket Brigades.
APR general purpose library routines.
apr_size_t const unsigned char unsigned int unsigned int d
ap_vhost_iterate_conn_cb void * baton
#define APR_STATUS_IS_ENOENT(s)
#define APR_STATUS_IS_EOF(s)
#define APR_BUCKET_IS_METADATA(e)
#define apr_bucket_split(e, point)
#define APR_BRIGADE_EMPTY(b)
#define apr_bucket_delete(e)
#define APR_BUCKET_IS_EOS(e)
apr_brigade_flush void * ctx
#define APR_BRIGADE_FIRST(b)
#define apr_bucket_read(e, str, len, block)
apr_pool_t apr_dbd_t apr_dbd_results_t ** res
apr_memcache_server_t * ms
const char int apr_pool_t * pool
#define apr_pcalloc(p, size)
#define APR_ARRAY_PUSH(ary, type)
#define APR_ARRAY_IDX(ary, i, type)
#define apr_time_as_msec(time)
#define apr_time_from_msec(msec)
#define apr_time_sec(time)
static size_t header_cb(void *buffer, size_t elen, size_t nmemb, void *baton)
static apr_status_t internals_setup(md_http_request_t *req)
static long timeout_sec(apr_time_t timeout)
static void md_curl_cleanup(md_http_t *http, apr_pool_t *pool)
static void add_to_curlm(md_http_request_t *req, CURLM *curlm)
static apr_status_t curl_status(unsigned int curl_code)
static size_t resp_data_cb(void *data, size_t len, size_t nmemb, void *baton)
static apr_status_t md_curl_perform(md_http_request_t *req)
static md_http_request_t * find_curl_request(apr_array_header_t *requests, CURL *curl)
static void remove_from_curlm_and_destroy(md_http_request_t *req, CURLM *curlm)
static apr_status_t md_curl_init(void)
static apr_status_t md_curl_multi_perform(md_http_t *http, apr_pool_t *p, md_http_next_req *nextreq, void *baton)
static int curlify_headers(void *baton, const char *key, const char *value)
static void md_curl_req_cleanup(md_http_request_t *req)
static int curl_debug_log(CURL *curl, curl_infotype type, char *data, size_t size, void *baton)
static size_t req_data_cb(void *data, size_t len, size_t nmemb, void *baton)
static long timeout_msec(apr_time_t timeout)
static md_http_impl_t impl
static void fire_status(md_http_request_t *req, apr_status_t rv)
md_http_impl_t * md_curl_get_impl(apr_pool_t *p)
apr_status_t md_http_clone(md_http_t **phttp, apr_pool_t *p, md_http_t *source_http)
void * md_http_get_impl_data(md_http_t *http)
void md_http_set_impl_data(md_http_t *http, void *data)
void md_http_req_destroy(md_http_request_t *req)
apr_status_t md_http_next_req(md_http_request_t **preq, void *baton, md_http_t *http, int in_flight)
void md_log_perror(const char *file, int line, md_log_level_t level, apr_status_t rv, apr_pool_t *p, const char *fmt,...)
int md_log_is_level(apr_pool_t *p, md_log_level_t level)
int md_array_remove(struct apr_array_header_t *a, void *elem)
void md_data_init(md_data_t *d, const char *data, apr_size_t len)
apr_status_t md_data_to_hex(const char **phex, char separator, apr_pool_t *p, const md_data_t *data)
struct curl_slist * req_hdrs
md_http_response_t * response
md_http_response_cb * on_response
md_http_status_cb * on_status
struct apr_bucket_alloc_t * bucket_alloc
struct apr_bucket_brigade * body
md_http_timeouts_t timeout
const char * unix_socket_path
struct apr_bucket_brigade * body
typedef int(WSAAPI *apr_winapi_fpt_WSAPoll)(IN OUT LPWSAPOLLFD fdArray