From d895a831ae76d97999de777d9289e5e6e29c5741 Mon Sep 17 00:00:00 2001 From: Vladimir Homutov Date: Thu, 5 Aug 2021 11:09:13 +0300 Subject: [PATCH] HTTP/3: got rid of HTTP/2 module dependency. The Huffman encoder/decoder now can be built separately from HTTP/2 module. --- auto/modules | 9 ++++++--- src/http/ngx_http.h | 6 ++++++ src/http/v2/ngx_http_v2.h | 6 ------ 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/auto/modules b/auto/modules index d454466af..7430bfe6b 100644 --- a/auto/modules +++ b/auto/modules @@ -421,9 +421,6 @@ if [ $HTTP = YES ]; then have=NGX_HTTP_HEADERS . auto/have HTTP_QUIC=YES - # XXX for Huffman - HTTP_V2=YES - ngx_module_name=ngx_http_v3_module ngx_module_incs=src/http/v3 ngx_module_deps="src/http/v3/ngx_http_v3.h \ @@ -441,6 +438,12 @@ if [ $HTTP = YES ]; then ngx_module_libs= ngx_module_link=$HTTP_V3 + if [ $HTTP_V2 = NO ]; then + ngx_module_srcs="$ngx_module_srcs \ + src/http/v2/ngx_http_v2_huff_decode.c \ + src/http/v2/ngx_http_v2_huff_encode.c" + fi + . auto/module fi diff --git a/src/http/ngx_http.h b/src/http/ngx_http.h index 70109adc2..fb4157715 100644 --- a/src/http/ngx_http.h +++ b/src/http/ngx_http.h @@ -180,6 +180,12 @@ ngx_int_t ngx_http_set_default_types(ngx_conf_t *cf, ngx_array_t **types, ngx_uint_t ngx_http_degraded(ngx_http_request_t *); #endif +#if (NGX_HTTP_V2 || NGX_HTTP_V3) +ngx_int_t ngx_http_v2_huff_decode(u_char *state, u_char *src, size_t len, + u_char **dst, ngx_uint_t last, ngx_log_t *log); +size_t ngx_http_v2_huff_encode(u_char *src, size_t len, u_char *dst, + ngx_uint_t lower); +#endif extern ngx_module_t ngx_http_module; diff --git a/src/http/v2/ngx_http_v2.h b/src/http/v2/ngx_http_v2.h index 349229711..65fc65812 100644 --- a/src/http/v2/ngx_http_v2.h +++ b/src/http/v2/ngx_http_v2.h @@ -312,12 +312,6 @@ ngx_int_t ngx_http_v2_add_header(ngx_http_v2_connection_t *h2c, ngx_int_t ngx_http_v2_table_size(ngx_http_v2_connection_t *h2c, size_t size); -ngx_int_t ngx_http_v2_huff_decode(u_char *state, u_char *src, size_t len, - u_char **dst, ngx_uint_t last, ngx_log_t *log); -size_t ngx_http_v2_huff_encode(u_char *src, size_t len, u_char *dst, - ngx_uint_t lower); - - #define ngx_http_v2_prefix(bits) ((1 << (bits)) - 1)