# HG changeset patch # User Vladimir Homutov # Date 1628150953 -10800 # Node ID d4a6c03cfcb6ec2c36739feb8ae9fa11d3af19b5 # Parent 4f922f61113587815ebf5d5d5bf164bbd3336d79 HTTP/3: got rid of HTTP/2 module dependency. The Huffman encoder/decoder now can be built separately from HTTP/2 module. diff --git a/auto/modules b/auto/modules --- 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 --- 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 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 --- 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_htt 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)