Apache2
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
h2_filter.h
Go to the documentation of this file.
1 /* Copyright 2015 greenbytes GmbH (https://www.greenbytes.de)
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8 
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef __mod_h2__h2_filter__
17 #define __mod_h2__h2_filter__
18 
19 struct h2_bucket_beam;
20 struct h2_headers;
21 struct h2_stream;
22 struct h2_session;
23 
24 typedef apr_status_t h2_filter_cin_cb(void *ctx,
25  const char *data, apr_size_t len,
26  apr_size_t *readlen);
27 
28 typedef struct h2_filter_cin {
32  void *cb_ctx;
37 
39 
41 
43  apr_bucket_brigade* brigade,
44  ap_input_mode_t mode,
45  apr_read_type_e block,
46  apr_off_t readbytes);
47 
48 /******* observer bucket ******************************************************/
49 
50 typedef enum {
54 
56 
58 
59 #define H2_BUCKET_IS_OBSERVER(e) (e->type == &h2_bucket_type_observer)
60 
62  void *ctx);
63 
65  h2_bucket_event_cb *cb, void *ctx);
66 
68 
70  apr_bucket_brigade *dest,
71  const apr_bucket *src);
72 
73 /******* /.well-known/h2/state handler ****************************************/
74 
76 
77 #endif /* __mod_h2__h2_filter__ */
size_t apr_size_t
Definition: apr.h:375
apr_status_t h2_bucket_observer_fire(apr_bucket *b, h2_bucket_event event)
ap_input_mode_t
input filtering modes
Definition: util_filter.h:41
apr_status_t h2_filter_cin_cb(void *ctx, const char *data, apr_size_t len, apr_size_t *readlen)
Definition: h2_filter.h:24
apr_status_t h2_filter_core_input(ap_filter_t *filter, apr_bucket_brigade *brigade, ap_input_mode_t mode, apr_read_type_e block, apr_off_t readbytes)
The representation of a filter chain.
Definition: util_filter.h:273
h2_filter_cin_cb * cb
Definition: h2_filter.h:31
struct apr_bucket_alloc_t apr_bucket_alloc_t
Definition: apr_buckets.h:123
Definition: h2_bucket_beam.h:177
Definition: apr_buckets.h:258
apr_bucket * h2_bucket_observer_create(apr_bucket_alloc_t *list, h2_bucket_event_cb *cb, void *ctx)
apr_status_t h2_bucket_event_cb(void *ctx, h2_bucket_event event, apr_bucket *b)
Definition: h2_filter.h:57
Definition: h2_filter.h:51
apr_int64_t apr_interval_time_t
Definition: apr_time.h:55
apr_bucket * h2_bucket_observer_make(apr_bucket *b, h2_bucket_event_cb *cb, void *ctx)
apr_int64_t apr_time_t
Definition: apr_time.h:45
Definition: apr_buckets.h:224
Definition: apr_arch_networkio.h:37
dav_error * src
Definition: mod_dav.h:186
Definition: h2_stream.h:44
apr_bucket * h2_bucket_observer_beam(struct h2_bucket_beam *beam, apr_bucket_brigade *dest, const apr_bucket *src)
h2_bucket_event
Definition: h2_filter.h:50
apr_pool_t * p
Definition: h2_filter.h:52
apr_read_type_e
Definition: apr_buckets.h:57
A structure that represents the current request.
Definition: httpd.h:805
void h2_filter_cin_timeout_set(h2_filter_cin *cin, apr_interval_time_t timeout)
struct h2_filter_cin h2_filter_cin
apr_pool_t * pool
Definition: h2_filter.h:29
Definition: h2.h:132
const apr_bucket_type_t h2_bucket_type_observer
apr_socket_t * socket
Definition: h2_filter.h:33
void * cb_ctx
Definition: h2_filter.h:32
apr_interval_time_t timeout
Definition: h2_filter.h:34
Definition: apr_buckets.h:131
struct apr_pool_t apr_pool_t
Definition: apr_pools.h:60
int apr_status_t
Definition: apr_errno.h:44
int h2_filter_h2_status_handler(request_rec *r)
apr_bucket_brigade * bb
Definition: h2_filter.h:30
request_rec * r
Definition: mod_dav.h:519
Definition: h2_session.h:76
off_t apr_off_t
Definition: apr.h:377
h2_filter_cin * h2_filter_cin_create(apr_pool_t *p, h2_filter_cin_cb *cb, void *ctx)
apr_time_t start_read
Definition: h2_filter.h:35
Definition: h2_filter.h:28