summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Kaiser <wireshark@kaiser.cx>2015-10-04 18:26:34 +0200
committerMartin Kaiser <wireshark@kaiser.cx>2015-10-04 16:28:50 +0000
commit076d07d9faed0fa694a6af204ba9978bac6e44a5 (patch)
tree463df8e69030a9a13bca966744641deae7c9378c
parentc647faa8a90739963ba40a099a365197f90b2184 (diff)
downloadwireshark-076d07d9faed0fa694a6af204ba9978bac6e44a5.tar.gz
[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>
-rw-r--r--epan/dissectors/packet-isns.c30
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);