17#ifndef h2_proxy_session_h
18#define h2_proxy_session_h
20#define H2_ALEN(a) (sizeof(a)/sizeof((a)[0]))
22#include <nghttp2/nghttp2.h>
111 unsigned char window_bits_connection,
112 unsigned char window_bits_stream,
132#define H2_PROXY_REQ_URL_NOTE "h2-proxy-req-url"
apr_int64_t apr_interval_time_t
void h2_proxy_session_cleanup(h2_proxy_session *s, h2_proxy_request_done *done)
@ H2_STREAM_ST_CLOSED_OUTPUT
@ H2_STREAM_ST_RESV_LOCAL
@ H2_STREAM_ST_CLOSED_INPUT
@ H2_STREAM_ST_RESV_REMOTE
@ H2_PROXYS_ST_LOCAL_SHUTDOWN
@ H2_PROXYS_ST_REMOTE_SHUTDOWN
void h2_proxy_request_done(h2_proxy_session *s, request_rec *r, apr_status_t status, int touched, int error_code)
@ H2_PROXYS_EV_CONN_TIMEOUT
@ H2_PROXYS_EV_STREAM_RESUMED
@ H2_PROXYS_EV_STREAM_DONE
@ H2_PROXYS_EV_PROTO_ERROR
@ H2_PROXYS_EV_CONN_ERROR
@ H2_PROXYS_EV_REMOTE_GOAWAY
@ H2_PROXYS_EV_LOCAL_GOAWAY
@ H2_PROXYS_EV_STREAM_SUBMITTED
apr_status_t h2_proxy_session_process(h2_proxy_session *s)
int h2_proxy_session_is_reusable(h2_proxy_session *s)
apr_status_t h2_proxy_session_submit(h2_proxy_session *s, const char *url, request_rec *r, int standalone)
h2_proxy_session * h2_proxy_session_setup(const char *id, proxy_conn_rec *p_conn, proxy_server_conf *conf, int h2_front, unsigned char window_bits_connection, unsigned char window_bits_stream, h2_proxy_request_done *done)
void h2_proxy_session_cancel_all(h2_proxy_session *s)
Structure to store things which are per connection.
h2_proxy_request_done * done
apr_interval_time_t wait_timeout
apr_bucket_brigade * output
apr_bucket_brigade * input
unsigned char window_bits_stream
h2_ping_state_t ping_state
apr_time_t last_frame_received
apr_size_t remote_max_concurrent
struct h2_proxy_ihash_t * streams
unsigned char window_bits_connection
struct h2_proxy_iqueue * suspended
A structure that represents the current request.