aboutsummaryrefslogtreecommitdiffstats
path: root/packet-tcp.c
diff options
context:
space:
mode:
authorRichard Sharpe <sharpe@ns.aus.com>2003-03-04 04:36:44 +0000
committerRichard Sharpe <sharpe@ns.aus.com>2003-03-04 04:36:44 +0000
commit9a57223addead8c42ff2c9b98c88aa68d5f670fe (patch)
tree623cbfb4acc0bceff58fb5d1951028f889bb978f /packet-tcp.c
parentf98f162689a244912c0c14c521699fca80381073 (diff)
downloadwireshark-9a57223addead8c42ff2c9b98c88aa68d5f670fe.tar.gz
wireshark-9a57223addead8c42ff2c9b98c88aa68d5f670fe.tar.bz2
wireshark-9a57223addead8c42ff2c9b98c88aa68d5f670fe.zip
Pretty up the handling of SACK. Have tested now, looks OK.
svn path=/trunk/; revision=7273
Diffstat (limited to 'packet-tcp.c')
-rw-r--r--packet-tcp.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/packet-tcp.c b/packet-tcp.c
index bdd2e77b4a..44e33b6c3b 100644
--- a/packet-tcp.c
+++ b/packet-tcp.c
@@ -1,7 +1,7 @@
/* packet-tcp.c
* Routines for TCP packet disassembly
*
- * $Id: packet-tcp.c,v 1.184 2003/03/03 23:20:57 sahlberg Exp $
+ * $Id: packet-tcp.c,v 1.185 2003/03/04 04:36:44 sharpe Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -1573,6 +1573,8 @@ dissect_tcpopt_sack(const ip_tcp_opt *optp, tvbuff_t *tvb,
if (field_tree == NULL) {
/* Haven't yet made a subtree out of this option. Do so. */
field_tree = proto_item_add_subtree(tf, *optp->subtree_index);
+ proto_tree_add_boolean_hidden(field_tree, hf_tcp_option_sack, tvb,
+ offset, optlen, TRUE);
}
if (optlen < 4) {
proto_tree_add_text(field_tree, tvb, offset, optlen,
@@ -1580,6 +1582,9 @@ dissect_tcpopt_sack(const ip_tcp_opt *optp, tvbuff_t *tvb,
break;
}
leftedge = tvb_get_ntohl(tvb, offset);
+ proto_tree_add_uint_format(field_tree, hf_tcp_option_sack_sle, tvb,
+ offset, 4, leftedge,
+ "left edge = %u", leftedge);
optlen -= 4;
if (optlen < 4) {
proto_tree_add_text(field_tree, tvb, offset, optlen,
@@ -1589,13 +1594,8 @@ dissect_tcpopt_sack(const ip_tcp_opt *optp, tvbuff_t *tvb,
/* XXX - check whether it goes past end of packet */
rightedge = tvb_get_ntohl(tvb, offset + 4);
optlen -= 4;
- proto_tree_add_boolean_hidden(field_tree, hf_tcp_option_sack, tvb,
- offset, 8, TRUE);
- proto_tree_add_uint_format(field_tree, hf_tcp_option_sack_sle, tvb,
- offset, 8, leftedge,
- "left edge = %u", leftedge);
proto_tree_add_uint_format(field_tree, hf_tcp_option_sack_sre, tvb,
- offset, 8, rightedge,
+ offset+4, 4, rightedge,
"right edge = %u", rightedge);
tcp_info_append_uint(pinfo, "SLE", leftedge);
tcp_info_append_uint(pinfo, "SRE", rightedge);