forked from osmocom/wireshark
ZigBee ZDO dissector: fix for r21 in column description in ZDO Node Desc Resp.
Fixed display for Server flags: a) introduce a flag 'show_ver_flags' to display stack revision only for ZDO Node Desc Resp; b) fix crash in zdp_parse_node_desc when passed NULL as pinfo. Now never pass NULL there. Change-Id: Ibdb7fe2da54a902b39e20e07aa2aa5c9c23beeee Reviewed-on: https://code.wireshark.org/review/18313 Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com> Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
This commit is contained in:
parent
11e8bac88e
commit
c92cc9c95a
|
@ -481,7 +481,7 @@ dissect_zbee_zdp_req_store_node_desc(tvbuff_t *tvb, packet_info *pinfo, proto_tr
|
|||
|
||||
/*device =*/ zbee_parse_uint(tree, hf_zbee_zdp_device, tvb, &offset, (int)sizeof(guint16), NULL);
|
||||
ext_addr = zbee_parse_eui64(tree, hf_zbee_zdp_ext_addr, tvb, &offset, (int)sizeof(guint64), NULL);
|
||||
zdp_parse_node_desc(tree, NULL, ett_zbee_zdp_node, tvb, &offset, version);
|
||||
zdp_parse_node_desc(tree, pinfo, FALSE, ett_zbee_zdp_node, tvb, &offset, version);
|
||||
|
||||
zbee_append_info(tree, pinfo, ", Device: %s", eui64_to_display(wmem_packet_scope(), ext_addr));
|
||||
|
||||
|
@ -783,7 +783,7 @@ dissect_zbee_zdp_rsp_node_desc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
|
|||
status = zdp_parse_status(tree, tvb, &offset);
|
||||
device = zbee_parse_uint(tree, hf_zbee_zdp_device, tvb, &offset, (int)sizeof(guint16), NULL);
|
||||
if (status == ZBEE_ZDP_STATUS_SUCCESS) {
|
||||
zdp_parse_node_desc(tree, pinfo, ett_zbee_zdp_node, tvb, &offset, version);
|
||||
zdp_parse_node_desc(tree, pinfo, TRUE, ett_zbee_zdp_node, tvb, &offset, version);
|
||||
}
|
||||
|
||||
zbee_append_info(tree, pinfo, ", Device: 0x%04x", device);
|
||||
|
|
|
@ -725,7 +725,7 @@ zdp_parse_server_flags(proto_tree *tree, gint ettindex, tvbuff_t *tvb, guint *of
|
|||
*@param offset offset into the tvb to find the node descriptor.
|
||||
*/
|
||||
void
|
||||
zdp_parse_node_desc(proto_tree *tree, packet_info *pinfo, gint ettindex, tvbuff_t *tvb, guint *offset, guint8 version)
|
||||
zdp_parse_node_desc(proto_tree *tree, packet_info *pinfo, gboolean show_ver_flags, gint ettindex, tvbuff_t *tvb, guint *offset, guint8 version)
|
||||
{
|
||||
proto_item *ti;
|
||||
proto_item *field_root = NULL;
|
||||
|
@ -784,7 +784,7 @@ zdp_parse_node_desc(proto_tree *tree, packet_info *pinfo, gint ettindex, tvbuff_
|
|||
};
|
||||
|
||||
ver_flags = zdp_parse_server_flags(field_tree, ett_zbee_zdp_server, tvb, offset) & ZBEE_ZDP_NODE_SERVER_STACK_COMPL_REV;
|
||||
if (ver_flags) {
|
||||
if (show_ver_flags && ver_flags) {
|
||||
zbee_append_info(tree, pinfo, ", Rev: %d",
|
||||
(ver_flags >> ws_ctz(ZBEE_ZDP_NODE_SERVER_STACK_COMPL_REV)));
|
||||
}
|
||||
|
|
|
@ -336,7 +336,7 @@ extern guint zbee_parse_uint (proto_tree *tree, int hfindex, tvbuf
|
|||
extern guint64 zbee_parse_eui64 (proto_tree *tree, int hfindex, tvbuff_t *tvb, guint *offset, guint length, proto_item **ti);
|
||||
extern void zbee_append_info (proto_item *item, packet_info *pinfo, const gchar *format, ...) G_GNUC_PRINTF(3, 4);
|
||||
|
||||
extern void zdp_parse_node_desc (proto_tree *tree, packet_info *pinfo, gint ettindex, tvbuff_t *tvb, guint *offset, guint8 version);
|
||||
extern void zdp_parse_node_desc (proto_tree *tree, packet_info *pinfo, gboolean show_ver_flags, gint ettindex, tvbuff_t *tvb, guint *offset, guint8 version);
|
||||
extern void zdp_parse_power_desc (proto_tree *tree, gint ettindex, tvbuff_t *tvb, guint *offset);
|
||||
extern void zdp_parse_simple_desc (proto_tree *tree, gint ettindex, tvbuff_t *tvb, guint *offset, guint8 version);
|
||||
extern void zdp_parse_complex_desc (proto_tree *tree, gint ettindex, tvbuff_t *tvb, guint *offset, guint length);
|
||||
|
|
Loading…
Reference in New Issue