40 unsigned count,
const char *
const headers[][2]);
88 #define VLC_H2_MAX_HEADER_TABLE 4096 89 #define VLC_H2_MAX_STREAMS 0 90 #define VLC_H2_INIT_WINDOW 1048575 91 #define VLC_H2_MAX_FRAME 1048576 92 #define VLC_H2_MAX_HEADER_LIST 65536 95 #define VLC_H2_DEFAULT_MAX_HEADER_TABLE 4096 96 #define VLC_H2_DEFAULT_INIT_WINDOW 65535 97 #define VLC_H2_DEFAULT_MAX_FRAME 16384 102 void (*setting)(
void *ctx, uint_fast16_t id, uint_fast32_t value);
103 int (*settings_done)(
void *ctx);
104 int (*ping)(
void *ctx, uint_fast64_t opaque);
105 void (*error)(
void *ctx, uint_fast32_t code);
106 int (*reset)(
void *ctx, uint_fast32_t last_seq, uint_fast32_t code);
107 void (*window_status)(
void *ctx, uint32_t *rcwd);
108 void (*window_update)(
void *ctx, uint_fast32_t credit);
110 void *(*stream_lookup)(
void *ctx, uint_fast32_t id);
111 int (*stream_error)(
void *ctx, uint_fast32_t id, uint_fast32_t code);
112 void (*stream_headers)(
void *ctx,
unsigned count,
113 const char *
const headers[][2]);
115 void (*stream_end)(
void *ctx);
116 int (*stream_reset)(
void *ctx, uint_fast32_t code);
117 void (*stream_window_update)(
void *ctx, uint_fast32_t credit);
125 #define VLC_H2_MAX_HEADERS 255 128 size_t *restrict
len);
129 #define vlc_h2_frame_data_get(f, l) \ 131 const struct vlc_h2_frame *: (vlc_h2_frame_data_get)(f, l), \ 132 struct vlc_h2_frame *: (uint8_t *)(vlc_h2_frame_data_get)(f, l)) struct vlc_h2_parser * vlc_h2_parse_init(void *ctx, const struct vlc_h2_parser_cbs *cbs)
Definition: h2frame.c:1032
uint8_t data[]
Definition: h2frame.h:33
size_t vlc_h2_frame_size(const struct vlc_h2_frame *)
Definition: h2frame.c:72
void vlc_h2_parse_destroy(struct vlc_h2_parser *)
Definition: h2frame.c:1055
struct vlc_h2_frame * vlc_h2_frame_ping(uint64_t opaque)
Definition: h2frame.c:336
const char * vlc_h2_strerror(uint_fast32_t)
Definition: h2frame.c:383
const struct vlc_h2_parser_cbs * cbs
Definition: h2frame.c:452
struct vlc_h2_frame * vlc_h2_frame_settings_ack(void)
Definition: h2frame.c:313
size_t len
Definition: h2frame.c:460
const char * vlc_h2_setting_name(uint_fast16_t)
Definition: h2frame.c:319
struct vlc_h2_frame * vlc_h2_frame_data(uint_fast32_t stream_id, const void *buf, size_t len, bool eos)
Definition: h2frame.c:228
struct vlc_h2_frame * vlc_h2_frame_goaway(uint_fast32_t last_stream_id, uint_fast32_t error_code)
Definition: h2frame.c:354
struct vlc_h2_frame * vlc_h2_frame_pong(uint64_t opaque)
Definition: h2frame.c:344
int vlc_h2_parse(struct vlc_h2_parser *, struct vlc_h2_frame *)
Definition: h2frame.c:1012
void vlc_h2_frame_dump(void *, const struct vlc_h2_frame *, const char *)
Definition: h2frame.c:407
vlc_h2_error
Definition: h2frame.h:57
size_t count
Definition: core.c:402
HTTP/2 incoming frames parser.
Definition: h2frame.c:449
struct vlc_h2_frame * vlc_h2_frame_rst_stream(uint_fast32_t stream_id, uint_fast32_t error_code)
Definition: h2frame.c:241
vlc_h2_setting
Definition: h2frame.h:76
#define vlc_h2_frame_data_get(f, l)
Definition: h2frame.h:129
Definition: h2frame.h:100
struct vlc_h2_frame * vlc_h2_frame_headers(uint_fast32_t stream_id, uint_fast32_t mtu, bool eos, unsigned count, const char *const headers[][2])
Definition: h2frame.c:155
struct vlc_h2_frame * next
Definition: h2frame.h:32
struct vlc_h2_frame * vlc_h2_frame_settings(void)
Definition: h2frame.c:250
struct vlc_h2_frame * vlc_h2_frame_window_update(uint_fast32_t stream_id, uint_fast32_t credit)
Definition: h2frame.c:368