aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-tcp.c
diff options
context:
space:
mode:
authorUli Heilmeier <uh@heilmeier.eu>2020-06-13 15:25:16 +0200
committerAnders Broman <a.broman58@gmail.com>2020-06-23 11:47:36 +0000
commit4b2cecc2de23afe75d3534e31adcc0020a464a07 (patch)
tree3c083e55b18e559d5241482adb7d53c93e237c73 /epan/dissectors/packet-tcp.c
parentc914bdd4efde94fbc6def12fd0e1ae7349e28349 (diff)
TCP: show relative numbers only when tcp_analyze_seq is enabled
Relative sequence numbers work only with tcp.analyze_sequence_numbers is enabled. Therefore we should also show relative seq numbers only when both options are enabled. Expert info for TFO works also only when tcp_analyze_seq is enabled. Bug: 16604 Change-Id: I0a535c3c8b07a7a7d2c42761df49b5e8ac5b7563 Reviewed-on: https://code.wireshark.org/review/37469 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-tcp.c')
-rw-r--r--epan/dissectors/packet-tcp.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/epan/dissectors/packet-tcp.c b/epan/dissectors/packet-tcp.c
index afb8e670a4..107f76b962 100644
--- a/epan/dissectors/packet-tcp.c
+++ b/epan/dissectors/packet-tcp.c
@@ -4203,7 +4203,7 @@ dissect_tcpopt_sack(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* d
proto_tree_add_uint_format(field_tree, hf_tcp_option_sack_sle, tvb,
offset, 4, leftedge,
"left edge = %u%s", leftedge,
- tcp_relative_seq ? " (relative)" : "");
+ (tcp_analyze_seq && tcp_relative_seq) ? " (relative)" : "");
optlen -= 4;
if (optlen < 4) {
@@ -4216,7 +4216,7 @@ dissect_tcpopt_sack(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* d
proto_tree_add_uint_format(field_tree, hf_tcp_option_sack_sre, tvb,
offset+4, 4, rightedge,
"right edge = %u%s", rightedge,
- tcp_relative_seq ? " (relative)" : "");
+ (tcp_analyze_seq && tcp_relative_seq) ? " (relative)" : "");
tcp_info_append_uint(pinfo, "SLE", leftedge);
tcp_info_append_uint(pinfo, "SRE", rightedge);
num_sack_ranges++;
@@ -5233,7 +5233,7 @@ dissect_tcpopt_snack(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void*
ack = tvb_get_ntohl(tvb, 8);
- if (tcp_relative_seq) {
+ if (tcp_analyze_seq && tcp_relative_seq) {
ack -= tcpd->rev->base_seq;
}
@@ -5260,7 +5260,7 @@ dissect_tcpopt_snack(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void*
proto_item_set_hidden(hidden_item);
proto_tree_add_expert_format(field_tree, pinfo, &ei_tcp_option_snack_sequence, tvb, offset+2, 4,
- "SNACK Sequence %u - %u%s", hole_start, hole_end, ((tcp_relative_seq) ? " (relative)" : ""));
+ "SNACK Sequence %u - %u%s", hole_start, hole_end, ((tcp_analyze_seq && tcp_relative_seq) ? " (relative)" : ""));
tcp_info_append_uint(pinfo, "SNLE", hole_start);
tcp_info_append_uint(pinfo, "SNRE", hole_end);
@@ -6359,7 +6359,7 @@ dissect_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
}
if (!icmp_ip) {
- if(tcp_relative_seq) {
+ if(tcp_relative_seq && tcp_analyze_seq) {
proto_tree_add_uint_format_value(tcp_tree, hf_tcp_seq, tvb, offset + 4, 4, tcph->th_seq, "%u (relative sequence number)", tcph->th_seq);
proto_tree_add_uint(tcp_tree, hf_tcp_seq_abs, tvb, offset + 4, 4, tcph->th_rawseq);
} else {
@@ -6394,7 +6394,7 @@ dissect_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
}
proto_item_set_len(ti, tcph->th_hlen);
if (tcph->th_have_seglen) {
- if(tcp_relative_seq) {
+ if(tcp_relative_seq && tcp_analyze_seq) {
if (tcph->th_flags&(TH_SYN|TH_FIN)) {
tf=proto_tree_add_uint_format_value(tcp_tree, hf_tcp_nxtseq, tvb, offset, 0, nxtseq + 1, "%u (relative sequence number)", nxtseq + 1);
} else {
@@ -6413,12 +6413,12 @@ dissect_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
tf = proto_tree_add_uint(tcp_tree, hf_tcp_ack, tvb, offset + 8, 4, tcph->th_ack);
hide_seqack_abs_item = proto_tree_add_uint(tcp_tree, hf_tcp_ack_abs, tvb, offset + 8, 4, tcph->th_rawack);
if (tcph->th_flags & TH_ACK) {
- if (tcp_relative_seq) {
+ if (tcp_relative_seq && tcp_analyze_seq) {
proto_item_append_text(tf, " (relative ack number)");
} else {
proto_item_set_hidden(hide_seqack_abs_item);
}
- if (tcph->th_flags & TH_SYN) {
+ if ((tcph->th_flags & TH_SYN) && tcp_analyze_seq) {
if ((tcp_relative_seq && tcph->th_ack > 1) ||
(!tcp_relative_seq && tcpd && (tcph->th_ack - tcpd->rev->base_seq) > 1)) {
expert_add_info(pinfo, tf, &ei_tcp_analysis_tfo_ack);
@@ -7912,7 +7912,7 @@ proto_register_tcp(void)
"Make the TCP dissector analyze TCP sequence numbers to find and flag segment retransmissions, missing segments and RTT",
&tcp_analyze_seq);
prefs_register_bool_preference(tcp_module, "relative_sequence_numbers",
- "Relative sequence numbers",
+ "Relative sequence numbers (Requires \"Analyze TCP sequence numbers\")",
"Make the TCP dissector use relative sequence numbers instead of absolute ones. "
"To use this option you must also enable \"Analyze TCP sequence numbers\". ",
&tcp_relative_seq);