diff options
author | Martin Kaiser <wireshark@kaiser.cx> | 2015-10-04 18:26:34 +0200 |
---|---|---|
committer | Martin Kaiser <wireshark@kaiser.cx> | 2015-10-04 16:28:50 +0000 |
commit | 076d07d9faed0fa694a6af204ba9978bac6e44a5 (patch) | |
tree | 463df8e69030a9a13bca966744641deae7c9378c /epan/dissectors/packet-isns.c | |
parent | c647faa8a90739963ba40a099a365197f90b2184 (diff) |
[isns]: use proto_tree_add_bitmask() for the iscsi node type
Change-Id: I9ba0ca0cfa7e0547b535bfe80c042f541047fc4e
Reviewed-on: https://code.wireshark.org/review/10784
Reviewed-by: Martin Kaiser <wireshark@kaiser.cx>
Diffstat (limited to 'epan/dissectors/packet-isns.c')
-rw-r--r-- | epan/dissectors/packet-isns.c | 30 |
1 files changed, 10 insertions, 20 deletions
diff --git a/epan/dissectors/packet-isns.c b/epan/dissectors/packet-isns.c index 3c3e8643c5..05ef73745e 100644 --- a/epan/dissectors/packet-isns.c +++ b/epan/dissectors/packet-isns.c @@ -795,27 +795,17 @@ dissect_isns_attr_port(tvbuff_t *tvb, guint offset, proto_tree *tree, int hf_ind static void -dissect_isns_attr_iscsi_node_type(tvbuff_t *tvb, guint offset, proto_tree *tree, guint32 len) +dissect_isns_attr_iscsi_node_type(tvbuff_t *tvb, guint offset, proto_tree *tree) { - guint32 node_type; - proto_item *item; - - node_type = tvb_get_ntohl(tvb, offset); - - item = proto_tree_add_item(tree, hf_isns_iscsi_node_type, tvb, offset, len, ENC_BIG_ENDIAN); + static const int * flags[] = { + &hf_isns_isnt_control, + &hf_isns_isnt_initiator, + &hf_isns_isnt_target, + NULL + }; - proto_tree_add_boolean(tree, hf_isns_isnt_control, tvb, offset, 4, node_type); - if(node_type&0x00000004){ - proto_item_append_text(item, " Control"); - } - proto_tree_add_boolean(tree, hf_isns_isnt_initiator, tvb, offset, 4, node_type); - if(node_type&0x00000002){ - proto_item_append_text(item, " Initiator"); - } - proto_tree_add_boolean(tree, hf_isns_isnt_target, tvb, offset, 4, node_type); - if(node_type&0x00000001){ - proto_item_append_text(item, " Target"); - } + proto_tree_add_bitmask(tree, tvb, offset, + hf_isns_iscsi_node_type, ett_isns_attribute, flags, ENC_BIG_ENDIAN); } @@ -961,7 +951,7 @@ AddAttribute(packet_info *pinfo, tvbuff_t *tvb, proto_tree *tree, guint offset, break; case ISNS_ATTR_TAG_ISCSI_NODE_TYPE: ISNS_REQUIRE_ATTR_LEN(4); - dissect_isns_attr_iscsi_node_type(tvb, offset, attr_tree, len); + dissect_isns_attr_iscsi_node_type(tvb, offset, attr_tree); break; case ISNS_ATTR_TAG_ISCSI_ALIAS: proto_tree_add_item(attr_tree, hf_isns_iscsi_alias, tvb, offset, len, ENC_ASCII|ENC_NA); |