diff options
author | Michael Mann <mmann78@netscape.net> | 2018-12-27 09:01:44 -0500 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2018-12-27 22:41:45 +0000 |
commit | ffbd46ce7b3edc804cd4810b7a74ec1a46c93288 (patch) | |
tree | 99bb7b51a4b5b7b83cbeb527ea8a336437309635 /epan/dissectors/packet-dns.c | |
parent | eb8c996108d6946e6fa0948164e886d5be85763f (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/packet-dns.c')
-rw-r--r-- | epan/dissectors/packet-dns.c | 5 |
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)); } } } |