Changed toplevel REF pointer dissection to create a subtree. Not creating a subtree was a design mistake which caused ugliness in the unicode string str dissector and in other places.

Dissectors will temporarily have less pretty output for topleve ref pointers until their output is retuned.

svn path=/trunk/; revision=5573
This commit is contained in:
Ronnie Sahlberg 2002-05-27 09:50:58 +00:00
parent 1303868b7d
commit 259903dc66
6 changed files with 90 additions and 88 deletions

View File

@ -3,7 +3,7 @@
* Copyright 2001, Tim Potter <tpot@samba.org>
* 2002 Added LSA command dissectors Ronnie Sahlberg
*
* $Id: packet-dcerpc-lsa.c,v 1.47 2002/05/11 22:29:43 guy Exp $
* $Id: packet-dcerpc-lsa.c,v 1.48 2002/05/27 09:50:57 sahlberg Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@ -481,7 +481,7 @@ lsa_dissect_lsaclose_rqst(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
lsa_dissect_LSA_HANDLE_close, NDR_POINTER_REF,
"LSA_HANDLE pointer: hnd", -1, 0);
"LSA_HANDLE", -1, 0);
return offset;
}
@ -492,7 +492,7 @@ lsa_dissect_lsaclose_reply(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
lsa_dissect_LSA_HANDLE, NDR_POINTER_REF,
"LSA_HANDLE pointer: hnd", -1, 0);
"LSA_HANDLE", -1, 0);
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
hf_lsa_rc, NULL);
@ -521,7 +521,7 @@ lsa_dissect_lsaopenpolicy_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
lsa_dissect_LSA_OBJECT_ATTRIBUTES, NDR_POINTER_REF,
"", -1, 0);
"OBJECT_ATTRIBUTES", -1, 0);
offset = lsa_dissect_ACCESS_MASK(tvb, offset,
pinfo, tree, drep);
@ -535,7 +535,7 @@ lsa_dissect_lsaopenpolicy_reply(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
lsa_dissect_LSA_HANDLE_open, NDR_POINTER_REF,
"LSA_HANDLE pointer: hnd", -1, 0);
"LSA_HANDLE", -1, 0);
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
hf_lsa_rc, NULL);
@ -552,7 +552,7 @@ lsa_dissect_lsaopenpolicy2_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
lsa_dissect_LSA_OBJECT_ATTRIBUTES, NDR_POINTER_REF,
"", -1, 0);
"OBJECT_ATTRIBUTES", -1, 0);
offset = lsa_dissect_ACCESS_MASK(tvb, offset,
pinfo, tree, drep);
@ -566,7 +566,7 @@ lsa_dissect_lsaopenpolicy2_reply(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
lsa_dissect_LSA_HANDLE_open, NDR_POINTER_REF,
"LSA_HANDLE pointer: hnd", -1, 0);
"LSA_HANDLE", -1, 0);
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
hf_lsa_rc, NULL);
@ -595,7 +595,7 @@ lsa_dissect_lsaqueryinformationpolicy_rqst(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
lsa_dissect_LSA_HANDLE, NDR_POINTER_REF,
"LSA_HANDLE pointer: hnd", -1, 0);
"LSA_HANDLE", -1, 0);
offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep,
hf_lsa_policy_information_class, NULL);
@ -1058,7 +1058,7 @@ lsa_dissect_lsadelete_rqst(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
lsa_dissect_LSA_HANDLE, NDR_POINTER_REF,
"LSA_HANDLE pointer: hnd", -1, 0);
"LSA_HANDLE", -1, 0);
return offset;
}
@ -1257,7 +1257,7 @@ lsa_dissect_lsalookupsids_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_PSID_ARRAY, NDR_POINTER_REF,
"", -1, 0);
"PSID_ARRAY", -1, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
lsa_dissect_LSA_TRANSLATED_NAMES, NDR_POINTER_REF,
@ -2132,7 +2132,7 @@ lsa_dissect_lsaenumerateaccounts_reply(tvbuff_t *tvb, int offset,
/* [out, ref] PSID_ARRAY **accounts */
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_PSID_ARRAY, NDR_POINTER_REF,
"", -1, 0);
"PSID_ARRAY", -1, 0);
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
hf_lsa_rc, NULL);
@ -3110,7 +3110,7 @@ lsa_dissect_lsafunction_2e_rqst(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
lsa_dissect_LSA_HANDLE, NDR_POINTER_REF,
"LSA_HANDLE pointer: hnd", -1, 0);
"LSA_HANDLE", -1, 0);
offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep,
hf_lsa_policy_information_class, NULL);
@ -3138,7 +3138,7 @@ lsa_dissect_lsafunction_2f_rqst(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
lsa_dissect_LSA_HANDLE, NDR_POINTER_REF,
"LSA_HANDLE pointer: hnd", -1, 0);
"LSA_HANDLE", -1, 0);
offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep,
hf_lsa_policy_information_class, NULL);
@ -3166,7 +3166,7 @@ lsa_dissect_lsaquerydomaininformationpolicy_rqst(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
lsa_dissect_LSA_HANDLE, NDR_POINTER_REF,
"LSA_HANDLE pointer: hnd", -1, 0);
"LSA_HANDLE", -1, 0);
offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep,
hf_lsa_policy_information_class, NULL);
@ -3194,7 +3194,7 @@ lsa_dissect_lsasetdomaininformationpolicy_rqst(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
lsa_dissect_LSA_HANDLE, NDR_POINTER_REF,
"LSA_HANDLE pointer: hnd", -1, 0);
"LSA_HANDLE", -1, 0);
offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep,
hf_lsa_policy_information_class, NULL);
@ -3431,7 +3431,7 @@ lsa_dissect_lsaclosetrusteddomainex_rqst(tvbuff_t *tvb, int offset,
/* [in, out] LSA_HANDLE *tdHnd */
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
lsa_dissect_LSA_HANDLE, NDR_POINTER_REF,
"LSA_HANDLE pointer: tdHnd", -1, 0);
"LSA_HANDLE", -1, 0);
return offset;
}
@ -3445,7 +3445,7 @@ lsa_dissect_lsaclosetrusteddomainex_reply(tvbuff_t *tvb, int offset,
/* [in, out] LSA_HANDLE *tdHnd */
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
lsa_dissect_LSA_HANDLE, NDR_POINTER_REF,
"LSA_HANDLE pointer: tdHnd", -1, 0);
"LSA_HANDLE", -1, 0);
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
hf_lsa_rc, NULL);
@ -3521,7 +3521,7 @@ lsa_dissect_lsalookupsids2_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_PSID_ARRAY, NDR_POINTER_REF,
"", -1, 0);
"PSID_ARRAY", -1, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
lsa_dissect_LSA_TRANSLATED_NAMES_EX, NDR_POINTER_REF,

View File

@ -2,7 +2,7 @@
* Routines for MS Exchange MAPI
* Copyright 2002, Ronnie Sahlberg
*
* $Id: packet-dcerpc-mapi.c,v 1.7 2002/05/25 11:26:30 sahlberg Exp $
* $Id: packet-dcerpc-mapi.c,v 1.8 2002/05/27 09:50:57 sahlberg Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@ -235,7 +235,7 @@ mapi_logon_rqst(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_STRING_string, NDR_POINTER_REF,
"", hf_mapi_unknown_string, -1);
"unknown string", hf_mapi_unknown_string, -1);
DISSECT_UNKNOWN(tvb_length_remaining(tvb, offset));
@ -256,13 +256,13 @@ mapi_logon_reply(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_STRING_string, NDR_POINTER_REF,
"", hf_mapi_unknown_string, -1);
"unknown string", hf_mapi_unknown_string, -1);
DISSECT_UNKNOWN(6); /* possibly 1 or 2 bytes padding here */
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_STRING_string, NDR_POINTER_REF,
"", hf_mapi_unknown_string, -1);
"unknown string", hf_mapi_unknown_string, -1);
DISSECT_UNKNOWN( tvb_length_remaining(tvb, offset)-4 );
@ -284,7 +284,7 @@ mapi_unknown_02_request(tvbuff_t *tvb, int offset,
encrypted data */
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_STRING_string, NDR_POINTER_REF,
"", hf_mapi_unknown_data, -1);
"unknown data", hf_mapi_unknown_data, -1);
} else {
offset = mapi_decrypt_pdu(tvb, offset, pinfo, tree, drep);
}
@ -310,7 +310,7 @@ mapi_unknown_02_reply(tvbuff_t *tvb, int offset,
encrypted data */
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_STRING_string, NDR_POINTER_REF,
"", hf_mapi_unknown_data, -1);
"unknown data", hf_mapi_unknown_data, -1);
} else {
offset = mapi_decrypt_pdu(tvb, offset, pinfo, tree, drep);
}

View File

@ -2,7 +2,7 @@
* Routines for DCERPC NDR dissection
* Copyright 2001, Todd Sabin <tas@webspan.net>
*
* $Id: packet-dcerpc-ndr.c,v 1.5 2002/01/29 09:13:28 guy Exp $
* $Id: packet-dcerpc-ndr.c,v 1.6 2002/05/27 09:50:57 sahlberg Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@ -159,13 +159,12 @@ dissect_ndr_uuid_t (tvbuff_t *tvb, gint offset, packet_info *pinfo,
return offset + 16;
}
int
dissect_ndr_ctx_hnd (tvbuff_t *tvb, gint offset, packet_info *pinfo,
proto_tree *tree, char *drep,
int hfindex, e_ctx_hnd *pdata)
{
e_ctx_hnd ctx_hnd;
static e_ctx_hnd ctx_hnd;
dcerpc_info *di;
di=pinfo->private_data;

View File

@ -3,7 +3,7 @@
* Copyright 2001, Tim Potter <tpot@samba.org>
* 2002 Added all command dissectors Ronnie Sahlberg
*
* $Id: packet-dcerpc-samr.c,v 1.45 2002/05/11 22:28:05 guy Exp $
* $Id: packet-dcerpc-samr.c,v 1.46 2002/05/27 09:50:57 sahlberg Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@ -774,13 +774,13 @@ samr_dissect_query_dispinfo_reply(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_pointer_long, NDR_POINTER_REF,
"", hf_samr_total_size, 0);
"Total Size", hf_samr_total_size, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_pointer_long, NDR_POINTER_REF,
"", hf_samr_ret_size, 0);
"Returned Size", hf_samr_ret_size, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_DISPLAY_INFO, NDR_POINTER_REF,
"", -1, 0);
"DISPLAY_INFO:", -1, 0);
offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
hf_samr_rc, NULL);
@ -812,7 +812,7 @@ samr_dissect_get_display_enumeration_index_reply(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_pointer_long, NDR_POINTER_REF,
"", hf_samr_index, 0);
"Index", hf_samr_index, 0);
offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
hf_samr_rc, NULL);
@ -868,7 +868,7 @@ samr_dissect_get_usrdom_pwinfo_reply(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_PASSWORD_INFO, NDR_POINTER_REF,
"", -1, 0);
"PASSWORD_INFO:", -1, 0);
offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
hf_samr_rc, NULL);
@ -1054,7 +1054,7 @@ samr_dissect_get_groups_for_user_reply(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_USER_GROUP_ARRAY_ptr, NDR_POINTER_REF,
"", -1, 0);
"USER_GROUP_ARRAY:", -1, 0);
offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
hf_samr_rc, NULL);
@ -1075,7 +1075,7 @@ samr_dissect_open_domain_rqst(tvbuff_t *tvb, int offset,
hf_samr_access, NULL);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_SID, NDR_POINTER_REF,
"", -1, 0);
"SID:", -1, 0);
return offset;
}
@ -1093,6 +1093,7 @@ samr_dissect_open_domain_reply(tvbuff_t *tvb, int offset,
return offset;
}
#if 0
static int
samr_dissect_context_handle_SID(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree,
@ -1106,6 +1107,7 @@ samr_dissect_context_handle_SID(tvbuff_t *tvb, int offset,
"SID", -1, 0);
return offset;
}
#endif
static int
samr_dissect_add_member_to_group_rqst(tvbuff_t *tvb, int offset,
@ -1153,7 +1155,7 @@ samr_dissect_unknown_3c_reply(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_pointer_short, NDR_POINTER_REF,
"", hf_samr_unknown_short, 0);
"unknown short", hf_samr_unknown_short, 0);
offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
hf_samr_rc, NULL);
@ -1282,7 +1284,7 @@ samr_dissect_query_information_alias_reply(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_ALIAS_INFO_ptr, NDR_POINTER_REF,
"", -1, 0);
"ALIAS_INFO:", -1, 0);
offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
hf_samr_rc, NULL);
@ -1302,7 +1304,7 @@ samr_dissect_set_information_alias_rqst(tvbuff_t *tvb, int offset,
hf_samr_level, NULL);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_ALIAS_INFO, NDR_POINTER_REF,
"", -1, 0);
"ALIAS_INFO:", -1, 0);
return offset;
}
@ -1313,7 +1315,7 @@ samr_dissect_set_information_alias_reply(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_ALIAS_INFO_ptr, NDR_POINTER_REF,
"", -1, 0);
"ALIAS_INFO", -1, 0);
offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
hf_samr_rc, NULL);
@ -1680,7 +1682,7 @@ samr_dissect_query_information_group_reply(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_GROUP_INFO_ptr, NDR_POINTER_REF,
"", -1, 0);
"GROUP_INFO", -1, 0);
offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
hf_samr_rc, NULL);
@ -1699,7 +1701,7 @@ samr_dissect_set_information_group_rqst(tvbuff_t *tvb, int offset,
hf_samr_level, NULL);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_GROUP_INFO, NDR_POINTER_REF,
"", -1, 0);
"GROUP_INFO", -1, 0);
return offset;
}
@ -2035,7 +2037,7 @@ samr_dissect_lookup_domain_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_pointer_UNICODE_STRING, NDR_POINTER_REF,
"", hf_samr_domain, 0);
"Domain:", hf_samr_domain, 0);
return offset;
}
@ -2047,7 +2049,7 @@ samr_dissect_lookup_domain_reply(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_SID_ptr, NDR_POINTER_REF,
"", -1, 0);
"SID:", -1, 0);
offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
hf_samr_rc, NULL);
@ -2251,7 +2253,7 @@ samr_dissect_get_alias_membership_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_PSID_ARRAY, NDR_POINTER_REF,
"", -1, 0);
"PSID_ARRAY:", -1, 0);
return offset;
}
@ -2263,7 +2265,7 @@ samr_dissect_get_alias_membership_reply(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_INDEX_ARRAY, NDR_POINTER_REF,
"", hf_samr_alias, 0);
"INDEX_ARRAY:", hf_samr_alias, 0);
offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
hf_samr_rc, NULL);
@ -2379,7 +2381,7 @@ samr_dissect_enum_domains_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_pointer_long, NDR_POINTER_REF,
"", hf_samr_resume_hnd, 0);
"Resume Handle:", hf_samr_resume_hnd, 0);
offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
hf_samr_pref_maxsize, NULL);
@ -2394,13 +2396,13 @@ samr_dissect_enum_domains_reply(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_pointer_long, NDR_POINTER_REF,
"", hf_samr_resume_hnd, 0);
"Resume Handle:", hf_samr_resume_hnd, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_IDX_AND_NAME_ARRAY_ptr, NDR_POINTER_REF,
"", hf_samr_domain, 0);
"IDX_AND_NAME_ARRAY:", hf_samr_domain, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_pointer_long, NDR_POINTER_REF,
"", hf_samr_entries, 0);
"Entries:", hf_samr_entries, 0);
offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
hf_samr_rc, NULL);
@ -2418,7 +2420,7 @@ samr_dissect_enum_dom_groups_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_pointer_long, NDR_POINTER_REF,
"", hf_samr_resume_hnd, 0);
"Resume Handle:", hf_samr_resume_hnd, 0);
offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
hf_samr_mask, NULL);
offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
@ -2434,13 +2436,13 @@ samr_dissect_enum_dom_groups_reply(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_pointer_long, NDR_POINTER_REF,
"", hf_samr_resume_hnd, 0);
"Resume Handle:", hf_samr_resume_hnd, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_IDX_AND_NAME_ARRAY_ptr, NDR_POINTER_REF,
"", hf_samr_group_name, 0);
"IDX_AND_NAME_ARRAY:", hf_samr_group_name, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_pointer_long, NDR_POINTER_REF,
"", hf_samr_entries, 0);
"Entries:", hf_samr_entries, 0);
offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
hf_samr_rc, NULL);
@ -2458,7 +2460,7 @@ samr_dissect_enum_dom_aliases_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_pointer_long, NDR_POINTER_REF,
"", hf_samr_resume_hnd, 0);
"Resume Handle:", hf_samr_resume_hnd, 0);
offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
hf_samr_mask, NULL);
@ -2476,15 +2478,15 @@ samr_dissect_enum_dom_aliases_reply(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_pointer_long, NDR_POINTER_REF,
"", hf_samr_resume_hnd, 0);
"Resume Handle:", hf_samr_resume_hnd, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_IDX_AND_NAME_ARRAY_ptr, NDR_POINTER_REF,
"", hf_samr_alias_name, 0);
"IDX_AND_NAME_ARRAY:", hf_samr_alias_name, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_pointer_long, NDR_POINTER_REF,
"", hf_samr_entries, 0);
"Entries:", hf_samr_entries, 0);
offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
hf_samr_rc, NULL);
@ -2510,7 +2512,7 @@ samr_dissect_get_members_in_alias_reply(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_PSID_ARRAY, NDR_POINTER_REF,
"", -1, 0);
"PSID_ARRAY:", -1, 0);
offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
hf_samr_rc, NULL);
@ -3182,7 +3184,7 @@ samr_dissect_set_information_user2_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_USER_INFO, NDR_POINTER_REF,
"", -1, 0);
"USER_INFO:", -1, 0);
return offset;
}
@ -3219,7 +3221,7 @@ samr_dissect_unknown_2f_reply(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_USER_INFO_ptr, NDR_POINTER_REF,
"", -1, 0);
"USER_INFO:", -1, 0);
offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
hf_samr_rc, NULL);
@ -3356,7 +3358,7 @@ samr_dissect_query_groupmem_reply(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_MEMBER_ARRAY_ptr, NDR_POINTER_REF,
"", -1, 0);
"MEMBER_ARRAY:", -1, 0);
offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
hf_samr_rc, NULL);
@ -3468,7 +3470,7 @@ samr_dissect_lookup_names_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_LOOKUP_NAMES, NDR_POINTER_REF,
"", -1, 0);
"LOOKUP_NAMES:", -1, 0);
return offset;
}
@ -3480,10 +3482,10 @@ samr_dissect_lookup_names_reply(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_INDEX_ARRAY, NDR_POINTER_REF,
"", hf_samr_rid, 0);
"Rids:", hf_samr_rid, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_INDEX_ARRAY, NDR_POINTER_REF,
"", hf_samr_type, 0);
"Types:", hf_samr_type, 0);
offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
hf_samr_rc, NULL);
@ -3538,7 +3540,7 @@ samr_dissect_lookup_rids_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_LOOKUP_RIDS, NDR_POINTER_REF,
"", -1, 0);
"LOOKUP_RIDS:", -1, 0);
return offset;
}
@ -3599,10 +3601,10 @@ samr_dissect_lookup_rids_reply(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_UNICODE_STRING_ARRAY, NDR_POINTER_REF,
"", hf_samr_rid, 0);
"RIDs:", hf_samr_rid, 0);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_INDEX_ARRAY, NDR_POINTER_REF,
"", hf_samr_type, 0);
"Types:", hf_samr_type, 0);
offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
hf_samr_rc, NULL);
@ -3737,7 +3739,7 @@ samr_dissect_add_alias_member_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_SID, NDR_POINTER_REF,
"SID", -1, 0);
"SID:", -1, 0);
return offset;
}
@ -3762,7 +3764,7 @@ samr_dissect_remove_alias_member_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_SID, NDR_POINTER_REF,
"SID", -1, 0);
"SID:", -1, 0);
return offset;
}
@ -3854,7 +3856,7 @@ samr_dissect_remove_member_from_foreign_domain_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_SID, NDR_POINTER_REF,
"SID", -1, 0);
"SID:", -1, 0);
return offset;
}
@ -3882,7 +3884,7 @@ samr_dissect_remove_multiple_members_from_alias_rqst(tvbuff_t *tvb,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_PSID_ARRAY, NDR_POINTER_REF,
"", -1, 0);
"PSID_ARRAY:", -1, 0);
return offset;
}
@ -3988,7 +3990,7 @@ samr_dissect_add_multiple_members_to_alias_rqst(tvbuff_t *tvb, int offset,
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
dissect_ndr_nt_PSID_ARRAY, NDR_POINTER_REF,
"", -1, 0);
"PSID_ARRAY:", -1, 0);
return offset;
}
@ -4093,7 +4095,7 @@ samr_dissect_query_information_user_reply(tvbuff_t *tvb, int offset,
{
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
samr_dissect_USER_INFO_ptr, NDR_POINTER_REF,
"", -1, 0);
"USER_INFO:", -1, 0);
offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep,
hf_samr_rc, NULL);

View File

@ -4,7 +4,7 @@
* Copyright 2002, Richard Sharpe <rsharpe@ns.aus.com>
* decode srvsvc calls where Samba knows them ...
*
* $Id: packet-dcerpc-srvsvc.c,v 1.10 2002/05/27 04:11:06 sharpe Exp $
* $Id: packet-dcerpc-srvsvc.c,v 1.11 2002/05/27 09:50:57 sahlberg Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@ -343,12 +343,6 @@ srvsvc_dissect_net_share_get_info_rqst(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree,
char *drep)
{
proto_item *item = NULL;
proto_tree *stree = NULL;
dcerpc_info *di;
di=pinfo->private_data;
/* [IN] UNICODE_STRING_2 *srv */
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
srvsvc_dissect_pointer_UNICODE_STRING,
@ -357,13 +351,12 @@ srvsvc_dissect_net_share_get_info_rqst(tvbuff_t *tvb, int offset,
/*
* Construct a label for the string ...
* [IN, REF] UNICODE_STRING_2 *share
*/
item = proto_tree_add_text(tree, tvb, offset, -1, "Share");
stree = proto_item_add_subtree(item, ett_srvsvc_share_info);
di->hf_index = hf_srvsvc_share;
di->levels = 0;
offset = dissect_ndr_nt_UNICODE_STRING_str(tvb, offset, pinfo, stree, drep);
offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
srvsvc_dissect_pointer_UNICODE_STRING,
NDR_POINTER_REF, "Share",
hf_srvsvc_share, 0);
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep,
hf_srvsvc_info_level, NULL);

View File

@ -2,7 +2,7 @@
* Routines for DCERPC packet disassembly
* Copyright 2001, Todd Sabin <tas@webspan.net>
*
* $Id: packet-dcerpc.c,v 1.51 2002/05/25 08:37:44 sahlberg Exp $
* $Id: packet-dcerpc.c,v 1.52 2002/05/27 09:50:58 sahlberg Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@ -820,7 +820,15 @@ dissect_ndr_pointer(tvbuff_t *tvb, gint offset, packet_info *pinfo,
/*TOP LEVEL REFERENCE POINTER*/
if( pointers_are_top_level
&&(type==NDR_POINTER_REF) ){
add_pointer_to_list(pinfo, tree, fnct, 0xffffffff, hf_index, levels);
proto_item *item;
proto_tree *tr;
/* we must find out a nice way to do the length here */
item=proto_tree_add_text(tree, tvb, offset, 0,
"%s", text);
tr=proto_item_add_subtree(item,ett_dcerpc_pointer_data);
add_pointer_to_list(pinfo, tr, fnct, 0xffffffff, hf_index, levels);
goto after_ref_id;
}