]> git.kaiwu.me - nginx.git/commitdiff
HTTP/2: improved the ngx_http_v2_integer_octets(v) macro.
authorValentin Bartenev <vbart@nginx.com>
Mon, 26 Oct 2015 14:46:16 +0000 (17:46 +0300)
committerValentin Bartenev <vbart@nginx.com>
Mon, 26 Oct 2015 14:46:16 +0000 (17:46 +0300)
Previously, it didn't work well for 0, 127, and 128, returning less than needed.

src/http/v2/ngx_http_v2_filter_module.c

index 2d1ced6a6da79da0af89605bc7a51a64341bc56f..a866cdef6ebf6d8336ae363d40b95eff1d3e1e5f 100644 (file)
 #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)