changeset 8830:d4a6c03cfcb6 quic

HTTP/3: got rid of HTTP/2 module dependency. The Huffman encoder/decoder now can be built separately from HTTP/2 module.
author Vladimir Homutov <vl@nginx.com>
date Thu, 05 Aug 2021 11:09:13 +0300
parents 4f922f611135
children 598f8e3bef30
files auto/modules src/http/ngx_http.h src/http/v2/ngx_http_v2.h
diffstat 3 files changed, 12 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- 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
 
--- 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;
 
--- 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)