17 #ifndef __mod_h2__h2_stream__
18 #define __mod_h2__h2_stream__
67 #define H2_STRM_MAGIC_OK 0x5354524d
68 #define H2_STRM_MAGIC_SDEL 0x5344454c
69 #define H2_STRM_MAGIC_PDEL 0x5044454c
71 #define H2_STRM_ASSIGN_MAGIC(s,m) ((s)->magic = m)
72 #define H2_STRM_ASSERT_MAGIC(s,m) ap_assert((s)->magic == m)
74 #define H2_STRM_ASSIGN_MAGIC(s,m) ((void)0)
75 #define H2_STRM_ASSERT_MAGIC(s,m) ((void)0)
95 #if AP_HAS_RESPONSE_BUCKETS
132 #define H2_STREAM_RST(s, def) (s->rst_error? s->rst_error : (def))
232 const char *
name,
size_t nlen,
233 const char *value,
size_t vlen);
251 const uint8_t *data,
size_t len);
304 #if AP_HAS_RESPONSE_BUCKETS
315 #if AP_HAS_RESPONSE_BUCKETS
337 #define H2_STRM_MSG(s, msg) \
338 "h2_stream(%d-%lu-%d,%s): "msg, s->session->child_num, \
339 (unsigned long)s->session->id, s->id, h2_stream_state_str(s)
341 #define H2_STRM_LOG(aplogno, s, msg) aplogno H2_STRM_MSG(s, msg)
dav_resource int dav_locktoken dav_response int flags
Definition: mod_dav.h:1458
request_rec * r
Definition: mod_dav.h:518
dav_error dav_response * response
Definition: mod_dav.h:204
apr_bucket_brigade * bb
Definition: mod_dav.h:555
apr_bucket_brigade request_rec apr_pool_t * pool
Definition: mod_dav.h:557
const char * name
Definition: mod_dav.h:805
int apr_status_t
Definition: apr_errno.h:44
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
int monitor(apr_pool_t *p, server_rec *s)
h2_stream_state_t
Definition: h2.h:141
h2_stream_event_t
Definition: h2.h:153
apr_status_t h2_stream_add_header(h2_stream *stream, const char *name, size_t nlen, const char *value, size_t vlen)
apr_table_t * h2_stream_get_trailers(h2_stream *stream)
apr_status_t h2_stream_set_request_rec(h2_stream *stream, request_rec *r, int eos)
void h2_stream_dispatch(h2_stream *stream, h2_stream_event_t ev)
void h2_stream_set_request(h2_stream *stream, const h2_request *r)
apr_status_t h2_stream_recv_DATA(h2_stream *stream, uint8_t flags, const uint8_t *data, size_t len)
apr_status_t h2_stream_submit_pushes(h2_stream *stream, struct h2_headers *response)
const char * h2_stream_state_str(const h2_stream *stream)
apr_status_t h2_stream_in_consumed(h2_stream *stream, apr_off_t amount)
int h2_stream_is_at(const h2_stream *stream, h2_stream_state_t state)
void h2_stream_destroy(h2_stream *stream)
h2_stream * h2_stream_create(int id, apr_pool_t *pool, struct h2_session *session, h2_stream_monitor *monitor, int initiated_on)
void h2_stream_event_cb(void *ctx, h2_stream *stream, h2_stream_event_t ev)
Definition: h2_stream.h:49
void h2_stream_set_monitor(h2_stream *stream, h2_stream_monitor *monitor)
const struct h2_priority * h2_stream_get_priority(h2_stream *stream, struct h2_headers *response)
void h2_stream_cleanup(h2_stream *stream)
void h2_stream_on_output_change(h2_stream *stream)
struct h2_stream_monitor h2_stream_monitor
void h2_stream_rst(h2_stream *stream, int error_code)
apr_status_t h2_stream_end_headers(h2_stream *stream, int eos, size_t raw_bytes)
apr_status_t h2_stream_send_frame(h2_stream *stream, int frame_type, int flags, size_t frame_len)
int h2_stream_is_at_or_past(const h2_stream *stream, h2_stream_state_t state)
void h2_stream_on_input_change(h2_stream *stream)
apr_status_t h2_stream_prepare_processing(h2_stream *stream)
apr_status_t h2_stream_recv_frame(h2_stream *stream, int frame_type, int flags, size_t frame_len)
int h2_stream_is_ready(h2_stream *stream)
int h2_stream_wants_send_data(h2_stream *stream)
apr_status_t h2_stream_read_to(h2_stream *stream, apr_bucket_brigade *bb, apr_off_t *plen, int *peos)
void h2_stream_state_cb(void *ctx, h2_stream *stream)
Definition: h2_stream.h:48
A bucket referring to a HTTP response.
Definition: http_protocol.h:1199
Definition: apr_buckets.h:263
Structure to store things which are per connection.
Definition: httpd.h:1193
Definition: h2_bucket_beam.h:44
Definition: h2_session.h:64
Definition: h2_stream.h:55
h2_stream_state_cb * on_state_enter
Definition: h2_stream.h:57
h2_stream_event_cb * on_state_event
Definition: h2_stream.h:60
h2_stream_event_cb * on_event
Definition: h2_stream.h:62
h2_stream_state_cb * on_state_invalid
Definition: h2_stream.h:58
void * ctx
Definition: h2_stream.h:56
Definition: h2_stream.h:78
conn_rec * c2
Definition: h2_stream.h:117
apr_off_t in_data_frames
Definition: h2_stream.h:124
struct h2_headers * response
Definition: h2_stream.h:98
struct h2_bucket_beam * output
Definition: h2_stream.h:106
unsigned int push_policy
Definition: h2_stream.h:113
unsigned int input_closed
Definition: h2_stream.h:112
apr_off_t in_trailer_octets
Definition: h2_stream.h:126
struct h2_request * rtmp
Definition: h2_stream.h:91
h2_stream_monitor * monitor
Definition: h2_stream.h:128
int rst_error
Definition: h2_stream.h:109
struct h2_bucket_beam * input
Definition: h2_stream.h:101
unsigned int scheduled
Definition: h2_stream.h:111
unsigned int output_eos
Definition: h2_stream.h:115
const h2_priority * pref_priority
Definition: h2_stream.h:119
unsigned int aborted
Definition: h2_stream.h:110
int in_window_size
Definition: h2_stream.h:103
apr_table_t * trailers_in
Definition: h2_stream.h:92
h2_stream_state_t state
Definition: h2_stream.h:86
int id
Definition: h2_stream.h:82
apr_bucket_brigade * out_buffer
Definition: h2_stream.h:107
apr_off_t out_data_octets
Definition: h2_stream.h:123
apr_time_t created
Definition: h2_stream.h:88
int initiated_on
Definition: h2_stream.h:83
int request_headers_added
Definition: h2_stream.h:93
unsigned int sent_trailers
Definition: h2_stream.h:114
apr_off_t out_frame_octets
Definition: h2_stream.h:121
apr_off_t out_data_frames
Definition: h2_stream.h:122
const struct h2_request * request
Definition: h2_stream.h:90
apr_pool_t * pool
Definition: h2_stream.h:84
apr_off_t out_frames
Definition: h2_stream.h:120
apr_bucket_brigade * in_buffer
Definition: h2_stream.h:102
struct h2_session * session
Definition: h2_stream.h:85
apr_off_t in_data_octets
Definition: h2_stream.h:125
apr_time_t in_last_write
Definition: h2_stream.h:104
A structure that represents the current request.
Definition: httpd.h:856