Apache2
md_http.h
Go to the documentation of this file.
1 /* Licensed to the Apache Software Foundation (ASF) under one or more
2  * contributor license agreements. See the NOTICE file distributed with
3  * this work for additional information regarding copyright ownership.
4  * The ASF licenses this file to You under the Apache License, Version 2.0
5  * (the "License"); you may not use this file except in compliance with
6  * the License. You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef mod_md_md_http_h
18 #define mod_md_md_http_h
19 
20 struct apr_table_t;
21 struct apr_bucket_brigade;
22 struct apr_bucket_alloc_t;
23 struct md_data_t;
24 
25 typedef struct md_http_t md_http_t;
26 
29 
36 
40 typedef apr_status_t md_http_response_cb(const md_http_response_t *res, void *data);
41 
48 };
49 
56 };
57 
61  int id;
63  const char *method;
64  const char *url;
65  const char *user_agent;
66  const char *proxy_url;
67  const char *ca_file;
68  const char *unix_socket_path;
75  void *internals;
76 };
77 
80  int status;
83 };
84 
85 apr_status_t md_http_create(md_http_t **phttp, apr_pool_t *p, const char *user_agent,
86  const char *proxy_url);
87 
89 
95  apr_pool_t *p, md_http_t *source_http);
96 
105 
112 
118 void md_http_set_stalling_default(md_http_t *http, long bytes_per_sec, apr_time_t timeout);
119 void md_http_set_stalling(md_http_request_t *req, long bytes_per_sec, apr_time_t timeout);
120 
126 void md_http_set_ca_file(md_http_t *http, const char *ca_file);
127 
132 void md_http_set_unix_socket_path(md_http_t *http, const char *path);
133 
139 
147 
157 
166  struct apr_table_t *headers);
167 
176  struct apr_table_t *headers);
177 
189  struct apr_table_t *headers, const char *content_type,
190  struct apr_bucket_brigade *body, int detect_len);
191 
202  struct apr_table_t *headers, const char *content_type,
203  const struct md_data_t *body);
204 
205 /*
206  * Convenience functions for create+perform.
207  */
209  struct apr_table_t *headers,
210  md_http_response_cb *cb, void *baton);
212  struct apr_table_t *headers,
213  md_http_response_cb *cb, void *baton);
215  struct apr_table_t *headers, const char *content_type,
216  struct apr_bucket_brigade *body, int detect_len,
217  md_http_response_cb *cb, void *baton);
219  struct apr_table_t *headers, const char *content_type,
220  const struct md_data_t *body,
221  md_http_response_cb *cb, void *baton);
222 
224 
228 typedef apr_status_t md_http_next_req(md_http_request_t **preq, void *baton,
229  md_http_t *http, int in_flight);
230 
242 
243 /**************************************************************************************************/
244 /* interface to implementation */
245 
251  md_http_next_req *nextreq, void *baton);
252 
253 typedef struct md_http_impl_t md_http_impl_t;
260 };
261 
263 
268 void md_http_set_impl_data(md_http_t *http, void *data);
270 
271 
272 #endif /* md_http_h */
struct apr_bucket_alloc_t apr_bucket_alloc_t
Definition: apr_buckets.h:128
int status
Definition: mod_dav.h:141
const char const char apr_text_header * body
Definition: mod_dav.h:1731
const dav_resource dav_lockdb dav_lock * request
Definition: mod_dav.h:1441
apr_table_t * headers
Definition: mod_proxy.h:1484
proxy_worker proxy_server_conf char * url
Definition: mod_proxy.h:657
int apr_status_t
Definition: apr_errno.h:44
off_t apr_off_t
Definition: apr.h:396
struct apr_pool_t apr_pool_t
Definition: apr_pools.h:60
struct apr_table_t apr_table_t
Definition: apr_tables.h:56
apr_int64_t apr_time_t
Definition: apr_time.h:45
void md_http_set_response_limit(md_http_t *http, apr_off_t resp_limit)
apr_status_t md_http_POST_perform(md_http_t *http, const char *url, struct apr_table_t *headers, const char *content_type, struct apr_bucket_brigade *body, int detect_len, md_http_response_cb *cb, void *baton)
apr_status_t md_http_POSTd_perform(md_http_t *http, const char *url, struct apr_table_t *headers, const char *content_type, const struct md_data_t *body, md_http_response_cb *cb, void *baton)
void md_http_set_connect_timeout(md_http_request_t *req, apr_time_t timeout)
void md_http_set_ca_file(md_http_t *http, const char *ca_file)
apr_status_t md_http_init_cb(void)
Definition: md_http.h:246
apr_status_t md_http_clone(md_http_t **phttp, apr_pool_t *p, md_http_t *source_http)
void md_http_set_connect_timeout_default(md_http_t *http, apr_time_t timeout)
apr_status_t md_http_POSTd_create(md_http_request_t **preq, md_http_t *http, const char *url, struct apr_table_t *headers, const char *content_type, const struct md_data_t *body)
void md_http_req_cleanup_cb(md_http_request_t *req)
Definition: md_http.h:248
apr_status_t md_http_perform_cb(md_http_request_t *req)
Definition: md_http.h:249
apr_status_t md_http_response_cb(const md_http_response_t *res, void *data)
Definition: md_http.h:40
void * md_http_get_impl_data(md_http_t *http)
void md_http_set_stalling_default(md_http_t *http, long bytes_per_sec, apr_time_t timeout)
apr_status_t md_http_GET_perform(md_http_t *http, const char *url, struct apr_table_t *headers, md_http_response_cb *cb, void *baton)
apr_status_t md_http_multi_perform(md_http_t *http, md_http_next_req *nextreq, void *baton)
void md_http_set_on_status_cb(md_http_request_t *req, md_http_status_cb *cb, void *baton)
apr_status_t md_http_multi_perform_cb(md_http_t *http, apr_pool_t *p, md_http_next_req *nextreq, void *baton)
Definition: md_http.h:250
void md_http_set_unix_socket_path(md_http_t *http, const char *path)
apr_status_t md_http_GET_create(md_http_request_t **preq, md_http_t *http, const char *url, struct apr_table_t *headers)
void md_http_set_timeout_default(md_http_t *http, apr_time_t timeout)
apr_status_t md_http_HEAD_perform(md_http_t *http, const char *url, struct apr_table_t *headers, md_http_response_cb *cb, void *baton)
void md_http_set_on_response_cb(md_http_request_t *req, md_http_response_cb *cb, void *baton)
apr_status_t md_http_perform(md_http_request_t *request)
apr_status_t md_http_create(md_http_t **phttp, apr_pool_t *p, const char *user_agent, const char *proxy_url)
void md_http_use_implementation(md_http_impl_t *impl)
struct md_http_t md_http_t
Definition: md_http.h:25
void md_http_set_stalling(md_http_request_t *req, long bytes_per_sec, apr_time_t timeout)
apr_status_t md_http_HEAD_create(md_http_request_t **preq, md_http_t *http, const char *url, struct apr_table_t *headers)
apr_status_t md_http_POST_create(md_http_request_t **preq, md_http_t *http, const char *url, struct apr_table_t *headers, const char *content_type, struct apr_bucket_brigade *body, int detect_len)
apr_status_t md_http_next_req(md_http_request_t **preq, void *baton, md_http_t *http, int in_flight)
Definition: md_http.h:228
void md_http_set_timeout(md_http_request_t *req, apr_time_t timeout)
void md_http_set_impl_data(md_http_t *http, void *data)
void md_http_cleanup_cb(md_http_t *req, apr_pool_t *p)
Definition: md_http.h:247
void md_http_req_destroy(md_http_request_t *req)
apr_status_t md_http_status_cb(const md_http_request_t *req, apr_status_t status, void *data)
Definition: md_http.h:35
Definition: apr_buckets.h:263
Definition: md_util.h:41
Definition: md_http.h:43
void * on_response_data
Definition: md_http.h:47
md_http_response_cb * on_response
Definition: md_http.h:46
void * on_status_data
Definition: md_http.h:45
md_http_status_cb * on_status
Definition: md_http.h:44
Definition: md_http.h:254
md_http_cleanup_cb * cleanup
Definition: md_http.h:259
md_http_perform_cb * perform
Definition: md_http.h:257
md_http_multi_perform_cb * multi_perform
Definition: md_http.h:258
md_http_init_cb * init
Definition: md_http.h:255
md_http_req_cleanup_cb * req_cleanup
Definition: md_http.h:256
Definition: md_http.h:58
apr_pool_t * pool
Definition: md_http.h:60
apr_table_t * headers
Definition: md_http.h:69
struct apr_bucket_alloc_t * bucket_alloc
Definition: md_http.h:62
apr_off_t body_len
Definition: md_http.h:71
struct apr_bucket_brigade * body
Definition: md_http.h:70
md_http_callbacks_t cb
Definition: md_http.h:74
void * internals
Definition: md_http.h:75
apr_off_t resp_limit
Definition: md_http.h:72
const char * proxy_url
Definition: md_http.h:66
const char * user_agent
Definition: md_http.h:65
md_http_timeouts_t timeout
Definition: md_http.h:73
const char * url
Definition: md_http.h:64
const char * ca_file
Definition: md_http.h:67
int id
Definition: md_http.h:61
md_http_t * http
Definition: md_http.h:59
const char * method
Definition: md_http.h:63
const char * unix_socket_path
Definition: md_http.h:68
Definition: md_http.h:78
int status
Definition: md_http.h:80
apr_table_t * headers
Definition: md_http.h:81
struct apr_bucket_brigade * body
Definition: md_http.h:82
md_http_request_t * req
Definition: md_http.h:79
Definition: md_http.h:51
long stall_bytes_per_sec
Definition: md_http.h:54
apr_time_t stalled
Definition: md_http.h:55
apr_time_t connect
Definition: md_http.h:53
apr_time_t overall
Definition: md_http.h:52
apr_pool_t * p