diff src/http/v2/ngx_http_v2_filter_module.c @ 6279:c72eaf694d99

HTTP/2: improved the ngx_http_v2_integer_octets(v) macro. Previously, it didn't work well for 0, 127, and 128, returning less than needed.
author Valentin Bartenev <vbart@nginx.com>
date Mon, 26 Oct 2015 17:46:16 +0300
parents b930e598a199
children f72d3129cd35
line wrap: on
line diff
--- a/src/http/v2/ngx_http_v2_filter_module.c
+++ b/src/http/v2/ngx_http_v2_filter_module.c
@@ -12,7 +12,12 @@
 #include <ngx_http_v2_module.h>
 
 
-#define ngx_http_v2_integer_octets(v)  (((v) + 127) / 128)
+/*
+ * This returns precise number of octets for values in range 0..253
+ * and estimate number for the rest, but not smaller than required.
+ */
+
+#define ngx_http_v2_integer_octets(v)  (1 + (v) / 127)
 
 #define ngx_http_v2_literal_size(h)                                           \
     (ngx_http_v2_integer_octets(sizeof(h) - 1) + sizeof(h) - 1)