[PATCH] HTTP/2: make http2 server support http1

Valentin V. Bartenev vbart at nginx.com
Fri Mar 2 17:29:47 UTC 2018


On Friday 02 March 2018 15:53:07 Haitao Lv wrote:
> # HG changeset patch
> # User 吕海涛 <i at lvht.net>
> # Date 1519976498 -28800
> #      Fri Mar 02 15:41:38 2018 +0800
> # Node ID 200955343460c4726015180f20c03e31c0b35ff6
> # Parent  81fae70d6cb81c67607931ec3ecc585a609c97e0
> make http2 server support http1
> 
[..]

It doesn't look like a useful feature. 
Could you please explain the use cases?


> diff -r 81fae70d6cb8 -r 200955343460 src/http/ngx_http.c
> --- a/src/http/ngx_http.c	Thu Mar 01 20:25:50 2018 +0300
> +++ b/src/http/ngx_http.c	Fri Mar 02 15:41:38 2018 +0800
[..]
> +void
> +ngx_http_v2_init_after_preface(ngx_event_t *rev, ngx_buf_t *buf)
> +{
>      ngx_connection_t          *c;
>      ngx_pool_cleanup_t        *cln;
>      ngx_http_connection_t     *hc;
> @@ -316,6 +323,12 @@
>      h2c->state.handler = hc->proxy_protocol ? ngx_http_v2_state_proxy_protocol
>                                              : ngx_http_v2_state_preface;
>  
> +    if (buf != NULL) {
> +        ngx_memcpy(h2mcf->recv_buffer, buf->pos, buf->last - buf->pos);
> +        h2c->state.buffer_used = buf->last - buf->pos;
> +        h2c->state.handler = ngx_http_v2_state_head;
> +    }
[..]

What if the received data is bigger than h2mcf->recv_buffer?

  wbr, Valentin V. Bartenev



More information about the nginx-devel mailing list