summaryrefslogtreecommitdiffhomepage
path: root/src/http/v2/ngx_http_v2.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/http/v2/ngx_http_v2.h')
-rw-r--r--src/http/v2/ngx_http_v2.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/http/v2/ngx_http_v2.h b/src/http/v2/ngx_http_v2.h
index 3926e653b..d4a64a724 100644
--- a/src/http/v2/ngx_http_v2.h
+++ b/src/http/v2/ngx_http_v2.h
@@ -24,6 +24,8 @@
#define NGX_HTTP_V2_MAX_FIELD \
(127 + (1 << (NGX_HTTP_V2_INT_OCTETS - 1) * 7) - 1)
+#define NGX_HTTP_V2_STREAM_ID_SIZE 4
+
#define NGX_HTTP_V2_FRAME_HEADER_SIZE 9
/* frame types */
@@ -118,6 +120,9 @@ struct ngx_http_v2_connection_s {
ngx_uint_t processing;
+ ngx_uint_t pushing;
+ ngx_uint_t concurrent_pushes;
+
size_t send_window;
size_t recv_window;
size_t init_window;
@@ -143,12 +148,14 @@ struct ngx_http_v2_connection_s {
ngx_queue_t closed;
ngx_uint_t last_sid;
+ ngx_uint_t last_push;
unsigned closed_nodes:8;
unsigned settings_ack:1;
unsigned table_update:1;
unsigned blocked:1;
unsigned goaway:1;
+ unsigned push_disabled:1;
};
@@ -276,6 +283,10 @@ void ngx_http_v2_init(ngx_event_t *rev);
ngx_int_t ngx_http_v2_read_request_body(ngx_http_request_t *r);
ngx_int_t ngx_http_v2_read_unbuffered_request_body(ngx_http_request_t *r);
+ngx_int_t ngx_http_v2_push_stream(ngx_http_v2_connection_t *h2c,
+ ngx_uint_t depend, size_t request_length, ngx_str_t *path,
+ ngx_str_t *authority);
+
void ngx_http_v2_close_stream(ngx_http_v2_stream_t *stream, ngx_int_t rc);
ngx_int_t ngx_http_v2_send_output_queue(ngx_http_v2_connection_t *h2c);