packet-dcerpc: add proto_tree_add_dcerpc_drep()
Change-Id: I1d3515371f50454acbcbdde75f2f1a3e614a5512 Signed-off-by: Gregor Beck <gbeck@sernet.de> Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-on: https://code.wireshark.org/review/11495 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
This commit is contained in:
parent
8fdeb61ab6
commit
3dd5e255c0
|
@ -1212,6 +1212,26 @@ static void dissect_auth_verf(tvbuff_t *auth_tvb, packet_info *pinfo,
|
|||
}
|
||||
}
|
||||
|
||||
static proto_item*
|
||||
proto_tree_add_dcerpc_drep(proto_tree *tree, tvbuff_t *tvb, int offset, guint8 drep[], int drep_len)
|
||||
{
|
||||
const guint8 byteorder = drep[0] >> 4;
|
||||
const guint8 character = drep[0] & 0x0f;
|
||||
const guint8 fp = drep[1];
|
||||
proto_item *ti = proto_tree_add_bytes(tree, hf_dcerpc_drep, tvb, offset, drep_len, drep);
|
||||
proto_tree *tr = proto_item_add_subtree(ti, ett_dcerpc_drep);
|
||||
|
||||
proto_tree_add_uint(tr, hf_dcerpc_drep_byteorder, tvb, offset, 1, byteorder);
|
||||
proto_tree_add_uint(tr, hf_dcerpc_drep_character, tvb, offset, 1, character);
|
||||
proto_tree_add_uint(tr, hf_dcerpc_drep_fp, tvb, offset+1, 1, fp);
|
||||
|
||||
proto_item_append_text(ti, " (Order: %s, Char: %s, Float: %s)",
|
||||
val_to_str(byteorder, drep_byteorder_vals, "Unknown (%u)"),
|
||||
val_to_str(character, drep_character_vals, "Unknown (%u)"),
|
||||
val_to_str(fp, drep_fp_vals, "Unknown (%u)"));
|
||||
return ti;
|
||||
}
|
||||
|
||||
/* Hand off payload data to a registered dissector */
|
||||
|
||||
static tvbuff_t *decode_encrypted_data(tvbuff_t *data_tvb,
|
||||
|
@ -4883,7 +4903,6 @@ dissect_dcerpc_cn(tvbuff_t *tvb, int offset, packet_info *pinfo,
|
|||
proto_item *ti = NULL;
|
||||
proto_item *tf = NULL;
|
||||
proto_tree *dcerpc_tree = NULL;
|
||||
proto_tree *drep_tree = NULL;
|
||||
e_dce_cn_common_hdr_t hdr;
|
||||
dcerpc_auth_info auth_info;
|
||||
tvbuff_t *fragment_tvb;
|
||||
|
@ -5007,13 +5026,7 @@ dissect_dcerpc_cn(tvbuff_t *tvb, int offset, packet_info *pinfo,
|
|||
|
||||
col_append_fstr(pinfo->cinfo, COL_INFO, ", Fragment: %s", fragment_type(hdr.flags));
|
||||
|
||||
if (dcerpc_tree) {
|
||||
tf = proto_tree_add_bytes(dcerpc_tree, hf_dcerpc_drep, tvb, offset, 4, hdr.drep);
|
||||
drep_tree = proto_item_add_subtree(tf, ett_dcerpc_drep);
|
||||
}
|
||||
proto_tree_add_uint(drep_tree, hf_dcerpc_drep_byteorder, tvb, offset, 1, hdr.drep[0] >> 4);
|
||||
proto_tree_add_uint(drep_tree, hf_dcerpc_drep_character, tvb, offset, 1, hdr.drep[0] & 0x0f);
|
||||
proto_tree_add_uint(drep_tree, hf_dcerpc_drep_fp, tvb, offset+1, 1, hdr.drep[1]);
|
||||
proto_tree_add_dcerpc_drep(dcerpc_tree, tvb, offset, hdr.drep, (int)sizeof (hdr.drep));
|
||||
offset += (int)sizeof (hdr.drep);
|
||||
|
||||
proto_tree_add_uint(dcerpc_tree, hf_dcerpc_cn_frag_len, tvb, offset, 2, hdr.frag_len);
|
||||
|
@ -5777,9 +5790,7 @@ static gboolean
|
|||
dissect_dcerpc_dg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
|
||||
{
|
||||
proto_item *ti = NULL;
|
||||
proto_item *tf = NULL;
|
||||
proto_tree *dcerpc_tree = NULL;
|
||||
proto_tree *drep_tree = NULL;
|
||||
e_dce_dg_common_hdr_t hdr;
|
||||
int offset = 0;
|
||||
conversation_t *conv;
|
||||
|
@ -5902,17 +5913,7 @@ dissect_dcerpc_dg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
|
|||
offset++;
|
||||
|
||||
if (tree) {
|
||||
tf = proto_tree_add_bytes(dcerpc_tree, hf_dcerpc_drep, tvb, offset, sizeof (hdr.drep), hdr.drep);
|
||||
drep_tree = proto_item_add_subtree(tf, ett_dcerpc_drep);
|
||||
if (drep_tree) {
|
||||
proto_tree_add_uint(drep_tree, hf_dcerpc_drep_byteorder, tvb, offset, 1, hdr.drep[0] >> 4);
|
||||
proto_tree_add_uint(drep_tree, hf_dcerpc_drep_character, tvb, offset, 1, hdr.drep[0] & 0x0f);
|
||||
proto_tree_add_uint(drep_tree, hf_dcerpc_drep_fp, tvb, offset+1, 1, hdr.drep[1]);
|
||||
proto_item_append_text(tf, " (Order: %s, Char: %s, Float: %s)",
|
||||
val_to_str_const(hdr.drep[0] >> 4, drep_byteorder_vals, "Unknown"),
|
||||
val_to_str_const(hdr.drep[0] & 0x0f, drep_character_vals, "Unknown"),
|
||||
val_to_str_const(hdr.drep[1], drep_fp_vals, "Unknown"));
|
||||
}
|
||||
proto_tree_add_dcerpc_drep(dcerpc_tree, tvb, offset, hdr.drep, (int)sizeof (hdr.drep));
|
||||
}
|
||||
offset += (int)sizeof (hdr.drep);
|
||||
|
||||
|
|
Loading…
Reference in New Issue