]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
[master] cacluate TCP packet sizes correctly
authorEvan Hunt <each@isc.org>
Thu, 21 Jan 2016 01:30:27 +0000 (17:30 -0800)
committerEvan Hunt <each@isc.org>
Thu, 21 Jan 2016 01:30:27 +0000 (17:30 -0800)
4296. [bug] TCP packet sizes were calculated incorrectly in the
stats channel; they could be counted in the wrong
histogram bucket. [RT #40587]

CHANGES
bin/named/client.c
bin/tests/system/statschannel/traffic.expect.5
bin/tests/system/statschannel/traffic.expect.6

diff --git a/CHANGES b/CHANGES
index 7a91b5a2af95535b5039f70e5ef15e37f6d55d4d..5fb07156e7ed238525c12926f0366aa18740e54c 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,7 @@
+4296.  [bug]           TCP packet sizes were calculated incorrectly in the
+                       stats channel; they could be counted in the wrong
+                       histogram bucket. [RT #40587]
+
 4295.  [bug]           An unchecked result in dns_message_pseudosectiontotext()
                        could allow incorrect text formatting of EDNS EXPIRE
                        options. [RT #41437]
index 242e4a30fc693c89b867a43a7b218bd98fb04ae5..21dabd2d28efcd0f3c7a5fdb35435fcec459e67c 100644 (file)
@@ -1166,7 +1166,8 @@ client_send(ns_client_t *client) {
                isc_buffer_putuint16(&tcpbuffer, (isc_uint16_t) r.length);
                isc_buffer_add(&tcpbuffer, r.length);
 
-               respsize = isc_buffer_usedlength(&tcpbuffer);
+               /* don't count the 2-octet length header */
+               respsize = isc_buffer_usedlength(&tcpbuffer) - 2;
                result = client_sendpkg(client, &tcpbuffer);
 
 #ifdef HAVE_DNSTAP
@@ -2145,6 +2146,9 @@ client_request(isc_task_t *task, isc_event_t *event) {
        }
 
        reqsize = isc_buffer_usedlength(buffer);
+       /* don't count the length header */
+       if (TCP_CLIENT(client))
+               reqsize -= 2;
 
        if (exit_check(client))
                goto cleanup;
index d29db3496a53826df6beff27cfc0a1545abf5ed9..15911b162546321f8d7e1dea01e019a574402721 100644 (file)
@@ -1,6 +1,6 @@
 tcp request-size 16-31: 1
 tcp request-size 48-63: 1
-tcp response-size 128-143: 1
+tcp response-size 112-127: 1
 tcp response-size 64-79: 1
 udp request-size 48-63: 2
 udp response-size 112-127: 1
index d75b3c1ef48e2c8a34280e32dc201051ea350cb1..73fc8f1831d3957a7a020b7d8cf4276e666f7900 100644 (file)
@@ -1,6 +1,6 @@
 tcp request-size 16-31: 1
 tcp request-size 48-63: 2
-tcp response-size 128-143: 1
+tcp response-size 112-127: 1
 tcp response-size 64-79: 1
 tcp response-size 848-863: 1
 udp request-size 48-63: 2