aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2018-12-27 09:01:44 -0500
committerMichael Mann <mmann78@netscape.net>2018-12-27 22:41:45 +0000
commitffbd46ce7b3edc804cd4810b7a74ec1a46c93288 (patch)
tree99bb7b51a4b5b7b83cbeb527ea8a336437309635 /epan/dissectors
parenteb8c996108d6946e6fa0948164e886d5be85763f (diff)
DNS: Use microsecond resolution for request/response statistics.
The stat tree API only supports 32-bit integers and if nanosecond resolution is used correctly it's easy to hit integer overflow issues on even a fairly small capture file trying to sum up response times. Bug: 15382 Change-Id: I15d2cfbdbec7b0bef2bcfe1afe4f6eb6fc1d2456 Reviewed-on: https://code.wireshark.org/review/31217 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Michael Mann <mmann78@netscape.net> Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/dissectors')
-rw-r--r--epan/dissectors/packet-dns.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/epan/dissectors/packet-dns.c b/epan/dissectors/packet-dns.c
index 260d439f37..3dd3bd7f9d 100644
--- a/epan/dissectors/packet-dns.c
+++ b/epan/dissectors/packet-dns.c
@@ -33,6 +33,7 @@
#include <epan/afn.h>
#include <epan/tap.h>
#include <epan/stats_tree.h>
+#include <wsutil/utf8_entities.h>
#include "packet-tls.h"
#include "packet-dtls.h"
#include "packet-http2.h"
@@ -82,7 +83,7 @@ static const guint8* st_str_response_nadditionals = "no. of additionals";
static const guint8* st_str_service_stats = "Service Stats";
static const guint8* st_str_service_unsolicited = "no. of unsolicited responses";
static const guint8* st_str_service_retransmission = "no. of retransmissions";
-static const guint8* st_str_service_rrt = "request-response time (nsec)";
+static const guint8* st_str_service_rrt = "request-response time (" UTF8_MICRO_SIGN "s)";
static int st_node_packets = -1;
static int st_node_packet_qr = -1;
@@ -4232,7 +4233,7 @@ static int dns_stats_tree_packet(stats_tree* st, packet_info* pinfo _U_, epan_di
if (pi->retransmission)
tick_stat_node(st, st_str_service_retransmission, 0, FALSE);
else
- avg_stat_node_add_value(st, st_str_service_rrt, 0, FALSE, (guint32)(pi->rrt.secs * 1000000 + pi->rrt.nsecs));
+ avg_stat_node_add_value(st, st_str_service_rrt, 0, FALSE, (guint32)(pi->rrt.secs * 1000000 + pi->rrt.nsecs/1000));
}
}
}