diff options
author | guy <guy@f5534014-38df-0310-8fa8-9805f1628bb7> | 2003-06-05 04:22:04 +0000 |
---|---|---|
committer | guy <guy@f5534014-38df-0310-8fa8-9805f1628bb7> | 2003-06-05 04:22:04 +0000 |
commit | 2b7f3b7803c8ecc946eb82decfb02fda47a05617 (patch) | |
tree | f1f14bf51bf99c84561b99ad06527ba2e9d658a6 /packet-dcerpc-nt.h | |
parent | 29f2455ba96525354986707e9ac7ad689919db9a (diff) |
In the policy handle hashing, handle more than one policy handle having
the same value, as an open might return handle XXX, handle XXX might
then be closed, and a subsequent handle might return handle XXX, and we
want to keep the two handles distinct to avoid, for example, displaying
handles closed before they're opened.
In policy handle open replies, store the handle name only if the
operation succeeded. We can now do that without parsing the packet
twice.
Have "dissect_nt_policy_hnd()" optionally return, through a pointer, the
protocol tree item for the handle, so that its caller can decorate the
item with the name of the handle - that's done on opens, where we do
that only if the operation succeeds.
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@7787 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'packet-dcerpc-nt.h')
-rw-r--r-- | packet-dcerpc-nt.h | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/packet-dcerpc-nt.h b/packet-dcerpc-nt.h index 01700a6b9e..68a3b1e6a4 100644 --- a/packet-dcerpc-nt.h +++ b/packet-dcerpc-nt.h @@ -2,7 +2,7 @@ * Routines for DCERPC over SMB packet disassembly * Copyright 2001-2003 Tim Potter <tpot@samba.org> * - * $Id: packet-dcerpc-nt.h,v 1.46 2003/05/21 10:06:29 sahlberg Exp $ + * $Id: packet-dcerpc-nt.h,v 1.47 2003/06/05 04:22:03 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -117,19 +117,21 @@ dissect_ndr_nt_SID_AND_ATTRIBUTES(tvbuff_t *tvb, int offset, /* Store open and close packet numbers for a policy handle */ void -dcerpc_smb_store_pol_pkts(e_ctx_hnd *policy_hnd, guint32 open_frame, - guint32 close_frame); +dcerpc_smb_store_pol_pkts(e_ctx_hnd *policy_hnd, packet_info *pinfo, + gboolean is_open, gboolean is_close); /* Store a name with a policy handle */ void -dcerpc_smb_store_pol_name(e_ctx_hnd *policy_hnd, char *name); +dcerpc_smb_store_pol_name(e_ctx_hnd *policy_hnd, packet_info *pinfo, + char *name); /* Fetch details stored with a policy handle */ gboolean dcerpc_smb_fetch_pol(e_ctx_hnd *policy_hnd, char **name, - guint32 *open_frame, guint32 *close_frame); + guint32 *open_frame, guint32 *close_frame, + guint32 cur_frame); /* Check for unparsed data at the end of a frame */ @@ -152,7 +154,8 @@ dissect_doserror(tvbuff_t *tvb, gint offset, packet_info *pinfo, int dissect_nt_policy_hnd(tvbuff_t *tvb, gint offset, packet_info *pinfo, proto_tree *tree, char *drep, int hfindex, - e_ctx_hnd *pdata, gboolean is_open, gboolean is_close); + e_ctx_hnd *pdata, proto_item **pitem, + gboolean is_open, gboolean is_close); int dissect_nt_GUID(tvbuff_t *tvb, int offset, |