95 "workers not initialized");
135 "process, closing conn"));
156 if (
c->cs && !
conn_ctx->session->remote.emitted_count) {
194 h2_direct = is_tls? 0 : 1;
219 if (!
ctx &&
c->keepalives == 0) {
224 "new connection using protocol '%s', direct=%d, "
246 "h2_h2, error reading 24 bytes speculative");
254 "h2_h2, direct mode detected");
260 "h2_h2, not detected in %d bytes(base64): %s",
Apache Multi-Processing Module library.
void ap_hook_pre_close_connection(ap_HOOK_pre_close_connection_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
void ap_hook_process_connection(ap_HOOK_process_connection_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
apr_status_t ap_remove_input_filter_byhandle(ap_filter_t *next, const char *handle)
apr_status_t ap_get_brigade(ap_filter_t *filter, apr_bucket_brigade *bucket, ap_input_mode_t mode, apr_read_type_e block, apr_off_t readbytes)
const char * ap_get_protocol(conn_rec *c)
int ap_is_allowed_protocol(conn_rec *c, request_rec *r, server_rec *s, const char *protocol)
#define AP_PROTOCOL_HTTP1
int ap_ssl_conn_is_ssl(conn_rec *c)
#define APR_STATUS_IS_EOF(s)
apr_brigade_flush void * ctx
#define APR_RETRIEVE_OPTIONAL_FN(name)
#define APR_OPTIONAL_FN_TYPE(name)
@ CONN_STATE_WRITE_COMPLETION
const char int apr_pool_t * pool
void const char apr_status_t(* cleanup)(void *))
apr_vformatter_buff_t * c
apr_status_t ap_mpm_query(int query_code, int *result)
#define AP_MPMQ_MPM_STATE
const char * H2_MAGIC_TOKEN
apr_status_t h2_c1_pre_close(struct h2_conn_ctx_t *ctx, conn_rec *c)
apr_status_t h2_c1_run(conn_rec *c)
apr_status_t h2_c1_setup(conn_rec *c, request_rec *r, server_rec *s)
void h2_c1_child_stopping(apr_pool_t *pool, int graceful)
apr_OFN_ap_logio_add_bytes_in_t * h2_c_logio_add_bytes_in
void h2_c1_register_hooks(void)
static struct h2_workers * workers
int h2_c1_allows_direct(conn_rec *c)
static const char *const mod_reqtimeout[]
apr_status_t h2_c1_child_init(apr_pool_t *pool, server_rec *s)
static const char *const mod_ssl[]
apr_OFN_ap_logio_add_bytes_out_t * h2_c_logio_add_bytes_out
int h2_c1_can_upgrade(request_rec *r)
static int h2_c1_hook_pre_close(conn_rec *c)
static int h2_c1_hook_process_connection(conn_rec *c)
int h2_config_rgeti(request_rec *r, h2_config_var_t var)
void h2_get_workers_config(server_rec *s, int *pminw, int *pmaxw, apr_time_t *pidle_limit)
void h2_config_init(apr_pool_t *pool)
int h2_config_cgeti(conn_rec *c, h2_config_var_t var)
h2_conn_ctx_t * h2_conn_ctx_create_for_c1(conn_rec *c1, server_rec *s, const char *protocol)
void h2_conn_ctx_assign_session(h2_conn_ctx_t *ctx, struct h2_session *session)
void h2_conn_ctx_detach(conn_rec *c)
#define h2_conn_ctx_get(c)
apr_status_t h2_mplx_c1_child_init(apr_pool_t *pool, server_rec *s)
int h2_protocol_is_acceptable_c1(conn_rec *c, request_rec *r, int require_all)
apr_status_t h2_session_pre_close(h2_session *session, int async)
apr_status_t h2_session_process(h2_session *session, int async)
apr_status_t h2_session_create(h2_session **psession, conn_rec *c, request_rec *r, server_rec *s, h2_workers *workers)
#define H2_SSSN_LOG(aplogno, s, msg)
const char * h2_util_base64url_encode(const char *data, apr_size_t dlen, apr_pool_t *pool)
void h2_workers_shutdown(h2_workers *workers, int graceful)
h2_workers * h2_workers_create(server_rec *s, apr_pool_t *pchild, int max_slots, int min_active, apr_time_t idle_limit)
Apache connection library.
static void ap_logio_add_bytes_in(conn_rec *c, apr_off_t bytes)
static void ap_logio_add_bytes_out(conn_rec *c, apr_off_t bytes)
Multi-Processing Modules functions.
Structure to store things which are per connection.
volatile apr_time_t idle_limit
A structure that represents the current request.
A structure to store information for each virtual server.