[nginx] HTTP/2: improved the ngx_http_v2_integer_octets(v) macro.

Valentin Bartenev vbart at nginx.com
Mon Oct 26 14:47:27 UTC 2015


details:   http://hg.nginx.org/nginx/rev/c72eaf694d99
branches:  
changeset: 6279:c72eaf694d99
user:      Valentin Bartenev <vbart at nginx.com>
date:      Mon Oct 26 17:46:16 2015 +0300
description:
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.

diffstat:

 src/http/v2/ngx_http_v2_filter_module.c |  7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diffs (17 lines):

diff -r b78df0822168 -r c72eaf694d99 src/http/v2/ngx_http_v2_filter_module.c
--- a/src/http/v2/ngx_http_v2_filter_module.c	Mon Oct 26 17:46:13 2015 +0300
+++ b/src/http/v2/ngx_http_v2_filter_module.c	Mon Oct 26 17:46:16 2015 +0300
@@ -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)



More information about the nginx-devel mailing list