diff options
author | Guy Harris <guy@alum.mit.edu> | 2001-08-11 07:26:25 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2001-08-11 07:26:25 +0000 |
commit | a739061860aa9d8fac008e34ab28c0c16bd93e6a (patch) | |
tree | d1834a49fe72a3c932bacc8e18b0ae6383b0dafa /packet-smb-pipe.c | |
parent | a588428c1b0f055a0753dfd6339802b061ac769f (diff) |
Keep track of transaction replies that have continuations, and associate
continuations with the message to which they're a continuation.
svn path=/trunk/; revision=3834
Diffstat (limited to 'packet-smb-pipe.c')
-rw-r--r-- | packet-smb-pipe.c | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/packet-smb-pipe.c b/packet-smb-pipe.c index f001569a6d..85bf2f051f 100644 --- a/packet-smb-pipe.c +++ b/packet-smb-pipe.c @@ -1,5 +1,4 @@ /* -XXX Fixme : continuation stuff removed, should be solved by smb reassembly XXX Fixme : shouldnt show [malformed frame] for long packets */ @@ -9,7 +8,7 @@ XXX Fixme : shouldnt show [malformed frame] for long packets * significant rewrite to tvbuffify the dissector, Ronnie Sahlberg and * Guy Harris 2001 * - * $Id: packet-smb-pipe.c,v 1.28 2001/08/07 08:39:56 guy Exp $ + * $Id: packet-smb-pipe.c,v 1.29 2001/08/11 07:26:24 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -64,6 +63,7 @@ static int hf_not_implemented = -1; static int hf_detail_level = -1; static int hf_recv_buf_len = -1; static int hf_response_to = -1; +static int hf_continuation_from = -1; static int hf_status = -1; static int hf_convert = -1; static int hf_ecount = -1; @@ -1396,11 +1396,30 @@ dissect_pipe_lanman(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) tree = proto_item_add_subtree(item, ett_lanman); } - /* continuation messages, dont try to decode them */ + /* + * Don't try to decode continuation messages. + * + * XXX - at some point, we will probably be handed tvbuffs + * for the parameters of the first message and for the + * reassembled contents of the data of the first message + * and all the continuations, and should dissect it. + * + * Transaction reassembly may, however, be an option, so that if + * we don't *have* all the reply messages, you at least can + * see what you have, by turning the option off. (We don't know + * that we don't have them until we get to the end of the capture, + * but, by that time, it may be too late to dissect what we have; + * in Tethereal, for example, there's no going back....) + */ if (smb_info->ddisp) { if (check_col(pinfo->fd, COL_INFO)) { col_set_str(pinfo->fd, COL_INFO, "Transact Continuation"); } + if (smb_info->continuation_val != NULL) { + /* continuation from the message in frame xx */ + proto_tree_add_uint(tree, hf_continuation_from, tvb, + 0, 0, smb_info->continuation_val->frame); + } return TRUE; } @@ -1571,7 +1590,11 @@ register_proto_smb_pipe(void) { &hf_response_to, { "Response to request in frame", "lanman.response_to", FT_UINT32, BASE_DEC, - NULL, 0, "This is a LANMAN response to the request in frame", HFILL }}, + NULL, 0, "This is a LANMAN response to the request in the frame in question", HFILL }}, + + { &hf_continuation_from, + { "Continuation from message in frame", "lanman.continuation_from", FT_UINT32, BASE_DEC, + NULL, 0, "This is a LANMAN continuation from the message in the frame in question", HFILL }}, { &hf_status, { "Status", "lanman.status", FT_UINT16, BASE_DEC, |