On Thu, Oct 07, 2021 at 02:36:14PM +0300, Roman Arutyunyan wrote: > # HG changeset patch > # User Roman Arutyunyan <a...@nginx.com> > # Date 1633520939 -10800 > # Wed Oct 06 14:48:59 2021 +0300 > # Branch quic > # Node ID d53039c3224e8227979c113f621e532aef7c0f9b > # Parent 1ead7d64e9934c1a6c0d9dd3c5f1a3d643b926d6 > HTTP/3: removed client-side encoder support. > > Dynamic tables are not used when generating responses anyway. > > diff --git a/src/http/v3/ngx_http_v3_streams.c > b/src/http/v3/ngx_http_v3_streams.c > --- a/src/http/v3/ngx_http_v3_streams.c > +++ b/src/http/v3/ngx_http_v3_streams.c > @@ -480,155 +480,6 @@ failed: > > > ngx_int_t > -ngx_http_v3_send_ref_insert(ngx_connection_t *c, ngx_uint_t dynamic, > - ngx_uint_t index, ngx_str_t *value) > -{ > - u_char *p, buf[NGX_HTTP_V3_PREFIX_INT_LEN * 2]; > - size_t n; > - ngx_connection_t *ec; > - > - ngx_log_debug3(NGX_LOG_DEBUG_HTTP, c->log, 0, > - "http3 client ref insert, %s[%ui] \"%V\"", > - dynamic ? "dynamic" : "static", index, value); > - > - ec = ngx_http_v3_get_uni_stream(c, NGX_HTTP_V3_STREAM_ENCODER); > - if (ec == NULL) { > - return NGX_ERROR; > - } > - > - p = buf; > - > - *p = (dynamic ? 0x80 : 0xc0); > - p = (u_char *) ngx_http_v3_encode_prefix_int(p, index, 6); > - > - /* XXX option for huffman? */ > - *p = 0; > - p = (u_char *) ngx_http_v3_encode_prefix_int(p, value->len, 7); > - > - n = p - buf; > - > - if (ec->send(ec, buf, n) != (ssize_t) n) { > - goto failed; > - } > - > - if (ec->send(ec, value->data, value->len) != (ssize_t) value->len) { > - goto failed; > - } > - > - return NGX_OK; > - > -failed: > - > - ngx_http_v3_close_uni_stream(ec); > - > - return NGX_ERROR; > -} > - > - > -ngx_int_t > -ngx_http_v3_send_insert(ngx_connection_t *c, ngx_str_t *name, ngx_str_t > *value) > -{ > - u_char buf[NGX_HTTP_V3_PREFIX_INT_LEN]; > - size_t n; > - ngx_connection_t *ec; > - > - ngx_log_debug2(NGX_LOG_DEBUG_HTTP, c->log, 0, > - "http3 client insert \"%V\":\"%V\"", name, value); > - > - ec = ngx_http_v3_get_uni_stream(c, NGX_HTTP_V3_STREAM_ENCODER); > - if (ec == NULL) { > - return NGX_ERROR; > - } > - > - /* XXX option for huffman? */ > - buf[0] = 0x40; > - n = (u_char *) ngx_http_v3_encode_prefix_int(buf, name->len, 5) - buf; > - > - if (ec->send(ec, buf, n) != (ssize_t) n) { > - goto failed; > - } > - > - if (ec->send(ec, name->data, name->len) != (ssize_t) name->len) { > - goto failed; > - } > - > - /* XXX option for huffman? */ > - buf[0] = 0; > - n = (u_char *) ngx_http_v3_encode_prefix_int(buf, value->len, 7) - buf; > - > - if (ec->send(ec, buf, n) != (ssize_t) n) { > - goto failed; > - } > - > - if (ec->send(ec, value->data, value->len) != (ssize_t) value->len) { > - goto failed; > - } > - > - return NGX_OK; > - > -failed: > - > - ngx_http_v3_close_uni_stream(ec); > - > - return NGX_ERROR; > -} > - > - > -ngx_int_t > -ngx_http_v3_send_set_capacity(ngx_connection_t *c, ngx_uint_t capacity) > -{ > - u_char buf[NGX_HTTP_V3_PREFIX_INT_LEN]; > - size_t n; > - ngx_connection_t *ec; > - > - ngx_log_debug1(NGX_LOG_DEBUG_HTTP, c->log, 0, > - "http3 client set capacity %ui", capacity); > - > - ec = ngx_http_v3_get_uni_stream(c, NGX_HTTP_V3_STREAM_ENCODER); > - if (ec == NULL) { > - return NGX_ERROR; > - } > - > - buf[0] = 0x20; > - n = (u_char *) ngx_http_v3_encode_prefix_int(buf, capacity, 5) - buf; > - > - if (ec->send(ec, buf, n) != (ssize_t) n) { > - ngx_http_v3_close_uni_stream(ec); > - return NGX_ERROR; > - } > - > - return NGX_OK; > -} > - > - > -ngx_int_t > -ngx_http_v3_send_duplicate(ngx_connection_t *c, ngx_uint_t index) > -{ > - u_char buf[NGX_HTTP_V3_PREFIX_INT_LEN]; > - size_t n; > - ngx_connection_t *ec; > - > - ngx_log_debug1(NGX_LOG_DEBUG_HTTP, c->log, 0, > - "http3 client duplicate %ui", index); > - > - ec = ngx_http_v3_get_uni_stream(c, NGX_HTTP_V3_STREAM_ENCODER); > - if (ec == NULL) { > - return NGX_ERROR; > - } > - > - buf[0] = 0; > - n = (u_char *) ngx_http_v3_encode_prefix_int(buf, index, 5) - buf; > - > - if (ec->send(ec, buf, n) != (ssize_t) n) { > - ngx_http_v3_close_uni_stream(ec); > - return NGX_ERROR; > - } > - > - return NGX_OK; > -} > - > - > -ngx_int_t > ngx_http_v3_send_ack_section(ngx_connection_t *c, ngx_uint_t stream_id) > { > u_char buf[NGX_HTTP_V3_PREFIX_INT_LEN]; > diff --git a/src/http/v3/ngx_http_v3_streams.h > b/src/http/v3/ngx_http_v3_streams.h > --- a/src/http/v3/ngx_http_v3_streams.h > +++ b/src/http/v3/ngx_http_v3_streams.h > @@ -27,13 +27,6 @@ ngx_int_t ngx_http_v3_cancel_stream(ngx_ > > ngx_int_t ngx_http_v3_send_settings(ngx_connection_t *c); > ngx_int_t ngx_http_v3_send_goaway(ngx_connection_t *c, uint64_t id); > -ngx_int_t ngx_http_v3_send_ref_insert(ngx_connection_t *c, ngx_uint_t > dynamic, > - ngx_uint_t index, ngx_str_t *value); > -ngx_int_t ngx_http_v3_send_insert(ngx_connection_t *c, ngx_str_t *name, > - ngx_str_t *value); > -ngx_int_t ngx_http_v3_send_set_capacity(ngx_connection_t *c, > - ngx_uint_t capacity); > -ngx_int_t ngx_http_v3_send_duplicate(ngx_connection_t *c, ngx_uint_t index); > ngx_int_t ngx_http_v3_send_ack_section(ngx_connection_t *c, > ngx_uint_t stream_id); > ngx_int_t ngx_http_v3_send_cancel_stream(ngx_connection_t *c,
Looks good. _______________________________________________ nginx-devel mailing list nginx-devel@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-devel