Apache2
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
h2.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  h2_priority
 
struct  h2_session_props
 
struct  h2_request
 
struct  h2_headers
 

Macros

#define H2_ERR_NO_ERROR   (0x00)
 
#define H2_ERR_PROTOCOL_ERROR   (0x01)
 
#define H2_ERR_INTERNAL_ERROR   (0x02)
 
#define H2_ERR_FLOW_CONTROL_ERROR   (0x03)
 
#define H2_ERR_SETTINGS_TIMEOUT   (0x04)
 
#define H2_ERR_STREAM_CLOSED   (0x05)
 
#define H2_ERR_FRAME_SIZE_ERROR   (0x06)
 
#define H2_ERR_REFUSED_STREAM   (0x07)
 
#define H2_ERR_CANCEL   (0x08)
 
#define H2_ERR_COMPRESSION_ERROR   (0x09)
 
#define H2_ERR_CONNECT_ERROR   (0x0a)
 
#define H2_ERR_ENHANCE_YOUR_CALM   (0x0b)
 
#define H2_ERR_INADEQUATE_SECURITY   (0x0c)
 
#define H2_ERR_HTTP_1_1_REQUIRED   (0x0d)
 
#define H2_HEADER_METHOD   ":method"
 
#define H2_HEADER_METHOD_LEN   7
 
#define H2_HEADER_SCHEME   ":scheme"
 
#define H2_HEADER_SCHEME_LEN   7
 
#define H2_HEADER_AUTH   ":authority"
 
#define H2_HEADER_AUTH_LEN   10
 
#define H2_HEADER_PATH   ":path"
 
#define H2_HEADER_PATH_LEN   5
 
#define H2_CRLF   "\r\n"
 
#define H2_DATA_CHUNK_SIZE   ((16*1024) - 100 - 9)
 
#define H2_FRAME_HDR_LEN   9
 
#define H2_MAX_PADLEN   256
 
#define H2_INITIAL_WINDOW_SIZE   ((64*1024)-1)
 
#define H2_STREAM_CLIENT_INITIATED(id)   (id&0x01)
 
#define H2_ALEN(a)   (sizeof(a)/sizeof((a)[0]))
 
#define H2MAX(x, y)   ((x) > (y) ? (x) : (y))
 
#define H2MIN(x, y)   ((x) < (y) ? (x) : (y))
 
#define H2_TASK_ID_NOTE   "http2-task-id"
 
#define H2_FILTER_DEBUG_NOTE   "http2-debug"
 
#define H2_HDR_CONFORMANCE   "http2-hdr-conformance"
 
#define H2_HDR_CONFORMANCE_UNSAFE   "unsafe"
 

Typedefs

typedef struct h2_priority h2_priority
 
typedef struct h2_session_props h2_session_props
 
typedef enum h2_stream_state_t h2_stream_state_t
 
typedef struct h2_request h2_request
 
typedef struct h2_headers h2_headers
 
typedef apr_status_t h2_io_data_cb (void *ctx, const char *data, apr_off_t len)
 
typedef int h2_stream_pri_cmp (int stream_id1, int stream_id2, void *ctx)
 

Enumerations

enum  h2_dependency { H2_DEPENDANT_AFTER, H2_DEPENDANT_INTERLEAVED, H2_DEPENDANT_BEFORE }
 
enum  h2_push_policy { H2_PUSH_NONE, H2_PUSH_DEFAULT, H2_PUSH_HEAD, H2_PUSH_FAST_LOAD }
 
enum  h2_session_state {
  H2_SESSION_ST_INIT, H2_SESSION_ST_DONE, H2_SESSION_ST_IDLE, H2_SESSION_ST_BUSY,
  H2_SESSION_ST_WAIT, H2_SESSION_ST_CLEANUP
}
 
enum  h2_stream_state_t {
  H2_SS_IDLE, H2_SS_RSVD_R, H2_SS_RSVD_L, H2_SS_OPEN,
  H2_SS_CLOSED_R, H2_SS_CLOSED_L, H2_SS_CLOSED, H2_SS_CLEANUP,
  H2_SS_MAX
}
 
enum  h2_stream_event_t {
  H2_SEV_CLOSED_L, H2_SEV_CLOSED_R, H2_SEV_CANCELLED, H2_SEV_EOS_SENT,
  H2_SEV_IN_DATA_PENDING
}
 

Variables

const char * H2_MAGIC_TOKEN
 

Macro Definition Documentation

#define H2_ALEN (   a)    (sizeof(a)/sizeof((a)[0]))
#define H2_CRLF   "\r\n"
#define H2_DATA_CHUNK_SIZE   ((16*1024) - 100 - 9)
#define H2_ERR_CANCEL   (0x08)
#define H2_ERR_COMPRESSION_ERROR   (0x09)
#define H2_ERR_CONNECT_ERROR   (0x0a)
#define H2_ERR_ENHANCE_YOUR_CALM   (0x0b)
#define H2_ERR_FLOW_CONTROL_ERROR   (0x03)
#define H2_ERR_FRAME_SIZE_ERROR   (0x06)
#define H2_ERR_HTTP_1_1_REQUIRED   (0x0d)
#define H2_ERR_INADEQUATE_SECURITY   (0x0c)
#define H2_ERR_INTERNAL_ERROR   (0x02)
#define H2_ERR_NO_ERROR   (0x00)
#define H2_ERR_PROTOCOL_ERROR   (0x01)
#define H2_ERR_REFUSED_STREAM   (0x07)
#define H2_ERR_SETTINGS_TIMEOUT   (0x04)
#define H2_ERR_STREAM_CLOSED   (0x05)
#define H2_FILTER_DEBUG_NOTE   "http2-debug"
#define H2_FRAME_HDR_LEN   9
#define H2_HDR_CONFORMANCE   "http2-hdr-conformance"
#define H2_HDR_CONFORMANCE_UNSAFE   "unsafe"
#define H2_HEADER_AUTH   ":authority"
#define H2_HEADER_AUTH_LEN   10
#define H2_HEADER_METHOD   ":method"
#define H2_HEADER_METHOD_LEN   7
#define H2_HEADER_PATH   ":path"
#define H2_HEADER_PATH_LEN   5
#define H2_HEADER_SCHEME   ":scheme"
#define H2_HEADER_SCHEME_LEN   7
#define H2_INITIAL_WINDOW_SIZE   ((64*1024)-1)
#define H2_MAX_PADLEN   256
#define H2_STREAM_CLIENT_INITIATED (   id)    (id&0x01)
#define H2_TASK_ID_NOTE   "http2-task-id"
#define H2MAX (   x,
 
)    ((x) > (y) ? (x) : (y))
#define H2MIN (   x,
 
)    ((x) < (y) ? (x) : (y))

Typedef Documentation

typedef struct h2_headers h2_headers
typedef apr_status_t h2_io_data_cb(void *ctx, const char *data, apr_off_t len)
typedef struct h2_priority h2_priority
typedef struct h2_request h2_request
typedef int h2_stream_pri_cmp(int stream_id1, int stream_id2, void *ctx)

Enumeration Type Documentation

Enumerator
H2_DEPENDANT_AFTER 
H2_DEPENDANT_INTERLEAVED 
H2_DEPENDANT_BEFORE 
Enumerator
H2_PUSH_NONE 
H2_PUSH_DEFAULT 
H2_PUSH_HEAD 
H2_PUSH_FAST_LOAD 
Enumerator
H2_SESSION_ST_INIT 
H2_SESSION_ST_DONE 
H2_SESSION_ST_IDLE 
H2_SESSION_ST_BUSY 
H2_SESSION_ST_WAIT 
H2_SESSION_ST_CLEANUP 
Enumerator
H2_SEV_CLOSED_L 
H2_SEV_CLOSED_R 
H2_SEV_CANCELLED 
H2_SEV_EOS_SENT 
H2_SEV_IN_DATA_PENDING 
Enumerator
H2_SS_IDLE 
H2_SS_RSVD_R 
H2_SS_RSVD_L 
H2_SS_OPEN 
H2_SS_CLOSED_R 
H2_SS_CLOSED_L 
H2_SS_CLOSED 
H2_SS_CLEANUP 
H2_SS_MAX 

Variable Documentation

const char* H2_MAGIC_TOKEN

The magic PRIamble of RFC 7540 that is always sent when starting a h2 communication.