aboutsummaryrefslogtreecommitdiffstats
path: root/packet-nbipx.c
diff options
context:
space:
mode:
authorguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>2001-09-28 22:43:57 +0000
committerguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>2001-09-28 22:43:57 +0000
commitf96769cbf46285e3a697abf90b620b4bbd8202e9 (patch)
tree11d3008e5fb57bae3b1ed856e05791447cfffecc /packet-nbipx.c
parent0776141fbc65eb66935460170de9b04318b51a2f (diff)
From Todd Sabin: dissect the auth info in connection oriented dcerpc
packets. Make a "dissect_netbios_payload()" routine, called from the NetBIOS-over-802.2 (NBF), NetBIOS-over-IPX, and NetBIOS-over-TCP dissectors. Take Todd Sabin's changes to add a heuristic dissector list to the NBSS dissector, and apply them to "dissect_netbios_payload()" instead. Make the SMB dissector heuristic, returning FALSE if it doesn't see 0xFF S M B at the beginning of the packet, and have "dissect_netbios_payload()" first try the heuristic dissector list, then try the SMB dissector if no other heuristic dissector claims the packet, then just dissect the payload as data. From Todd Sabin: have the DCE/RPC dissector register as a heuristic dissector for NetBIOS. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@3969 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'packet-nbipx.c')
-rw-r--r--packet-nbipx.c21
1 files changed, 5 insertions, 16 deletions
diff --git a/packet-nbipx.c b/packet-nbipx.c
index 9de39fb86d..0f36201313 100644
--- a/packet-nbipx.c
+++ b/packet-nbipx.c
@@ -2,12 +2,11 @@
* Routines for NetBIOS over IPX packet disassembly
* Gilbert Ramirez <gram@xiexie.org>
*
- * $Id: packet-nbipx.c,v 1.38 2001/04/23 18:10:28 guy Exp $
+ * $Id: packet-nbipx.c,v 1.39 2001/09/28 22:43:56 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
* Copyright 1998 Gerald Combs
- *
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -220,9 +219,6 @@ dissect_nbipx(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
guint8 name_type_flag;
proto_tree *name_type_flag_tree;
proto_item *tf;
- tvbuff_t *next_tvb;
- const guint8 *next_pd;
- int next_offset;
char name[(NETBIOS_NAME_LEN - 1)*4 + 1];
int name_type;
gboolean has_payload;
@@ -470,10 +466,8 @@ dissect_nbipx(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
proto_item_set_len(ti, offset);
if (has_payload && tvb_offset_exists(tvb, offset)) {
- next_tvb = tvb_new_subset(tvb, offset, -1, -1);
- tvb_compat(next_tvb, &next_pd, &next_offset);
- dissect_smb(next_pd, next_offset, pinfo->fd, tree,
- tvb_length(next_tvb));
+ dissect_netbios_payload(tvb, offset, pinfo, tree,
+ tvb_length_remaining(tvb, offset));
}
}
@@ -680,9 +674,6 @@ dissect_nmpi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
int name_type;
char node_name[(NETBIOS_NAME_LEN - 1)*4 + 1];
int node_name_type = 0;
- tvbuff_t *next_tvb;
- const guint8 *next_pd;
- int next_offset;
if (check_col(pinfo->fd, COL_PROTOCOL))
col_set_str(pinfo->fd, COL_PROTOCOL, "NMPI");
@@ -776,10 +767,8 @@ dissect_nmpi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
offset += 1 + 1 + 2 + NETBIOS_NAME_LEN + NETBIOS_NAME_LEN;
if (opcode == IMSLOT_SEND && tvb_offset_exists(tvb, offset)) {
- next_tvb = tvb_new_subset(tvb, offset, -1, -1);
- tvb_compat(next_tvb, &next_pd, &next_offset);
- dissect_smb(next_pd, next_offset, pinfo->fd, tree,
- tvb_length(next_tvb));
+ dissect_netbios_payload(tvb, offset, pinfo, tree,
+ tvb_length_remaining(tvb, offset));
}
}