diff options
author | Michael Mann <mmann78@netscape.net> | 2016-06-15 15:35:51 -0400 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2016-06-16 17:03:38 +0000 |
commit | 9a5e6a6884b2369527638fecd49c4c58d8c10378 (patch) | |
tree | 5bbb13655af400e3900482e5f965a40b50ecd63c /epan/dissectors/packet-dcerpc-dnsserver.c | |
parent | 946b03798ad1948a9b863d00c3c1c13cbc8e0cb3 (diff) |
DCE/RPC proto_tree_add_boolean -> proto_tree_add_bitmask_with_flags
Change-Id: I8891ec90244ffd9609d8443df631a7c8e6453b7e
Reviewed-on: https://code.wireshark.org/review/15942
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/dissectors/packet-dcerpc-dnsserver.c')
-rw-r--r-- | epan/dissectors/packet-dcerpc-dnsserver.c | 377 |
1 files changed, 69 insertions, 308 deletions
diff --git a/epan/dissectors/packet-dcerpc-dnsserver.c b/epan/dissectors/packet-dcerpc-dnsserver.c index 25a5b660db..020c58aab7 100644 --- a/epan/dissectors/packet-dcerpc-dnsserver.c +++ b/epan/dissectors/packet-dcerpc-dnsserver.c @@ -753,112 +753,33 @@ dnsserver_dissect_enum_DNS_RPC_BOOT_METHOD(tvbuff_t *tvb _U_, int offset _U_, pa int dnsserver_dissect_bitmap_DNS_LOG_LEVELS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) { - proto_item *item = NULL; - proto_tree *tree = NULL; - + proto_item *item; + static const int * dnsserver_DNS_LOG_LEVELS_fields[] = { + &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_QUERY, + &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_NOTIFY, + &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_UPDATE, + &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_QUESTIONS, + &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_ANSWERS, + &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_SEND, + &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_RECV, + &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_UDP, + &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_TCP, + &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_FULL_PACKETS, + &hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_WRITE_THROUGH, + }; guint32 flags; ALIGN_TO_4_BYTES; - if (parent_tree) { - item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep)); - tree = proto_item_add_subtree(item,ett_dnsserver_DNS_LOG_LEVELS); - } + item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index, + ett_dnsserver_DNS_LOG_LEVELS, dnsserver_DNS_LOG_LEVELS_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); - offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, -1, &flags); - proto_item_append_text(item, ": "); + offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags); if (!flags) - proto_item_append_text(item, "(No values set)"); - - proto_tree_add_boolean(tree, hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_QUERY, tvb, offset-4, 4, flags); - if (flags&( 0x00000001 )){ - proto_item_append_text(item, "DNS_LOG_LEVEL_QUERY"); - if (flags & (~( 0x00000001 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x00000001 )); - - proto_tree_add_boolean(tree, hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_NOTIFY, tvb, offset-4, 4, flags); - if (flags&( 0x00000010 )){ - proto_item_append_text(item, "DNS_LOG_LEVEL_NOTIFY"); - if (flags & (~( 0x00000010 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x00000010 )); - - proto_tree_add_boolean(tree, hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_UPDATE, tvb, offset-4, 4, flags); - if (flags&( 0x00000020 )){ - proto_item_append_text(item, "DNS_LOG_LEVEL_UPDATE"); - if (flags & (~( 0x00000020 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x00000020 )); + proto_item_append_text(item, ": (No values set)"); - proto_tree_add_boolean(tree, hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_QUESTIONS, tvb, offset-4, 4, flags); - if (flags&( 0x00000100 )){ - proto_item_append_text(item, "DNS_LOG_LEVEL_QUESTIONS"); - if (flags & (~( 0x00000100 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x00000100 )); - - proto_tree_add_boolean(tree, hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_ANSWERS, tvb, offset-4, 4, flags); - if (flags&( 0x00000200 )){ - proto_item_append_text(item, "DNS_LOG_LEVEL_ANSWERS"); - if (flags & (~( 0x00000200 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x00000200 )); - - proto_tree_add_boolean(tree, hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_SEND, tvb, offset-4, 4, flags); - if (flags&( 0x00001000 )){ - proto_item_append_text(item, "DNS_LOG_LEVEL_SEND"); - if (flags & (~( 0x00001000 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x00001000 )); - - proto_tree_add_boolean(tree, hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_RECV, tvb, offset-4, 4, flags); - if (flags&( 0x00002000 )){ - proto_item_append_text(item, "DNS_LOG_LEVEL_RECV"); - if (flags & (~( 0x00002000 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x00002000 )); - - proto_tree_add_boolean(tree, hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_UDP, tvb, offset-4, 4, flags); - if (flags&( 0x00004000 )){ - proto_item_append_text(item, "DNS_LOG_LEVEL_UDP"); - if (flags & (~( 0x00004000 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x00004000 )); - - proto_tree_add_boolean(tree, hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_TCP, tvb, offset-4, 4, flags); - if (flags&( 0x00008000 )){ - proto_item_append_text(item, "DNS_LOG_LEVEL_TCP"); - if (flags & (~( 0x00008000 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x00008000 )); - - proto_tree_add_boolean(tree, hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_FULL_PACKETS, tvb, offset-4, 4, flags); - if (flags&( 0x01000000 )){ - proto_item_append_text(item, "DNS_LOG_LEVEL_FULL_PACKETS"); - if (flags & (~( 0x01000000 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x01000000 )); - - proto_tree_add_boolean(tree, hf_dnsserver_DNS_LOG_LEVELS_DNS_LOG_LEVEL_WRITE_THROUGH, tvb, offset-4, 4, flags); - if (flags&( 0x80000000 )){ - proto_item_append_text(item, "DNS_LOG_LEVEL_WRITE_THROUGH"); - if (flags & (~( 0x80000000 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x80000000 )); - - if (flags) { + if (flags & (~0x8100f331)) { + flags &= (~0x8100f331); proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); } @@ -875,48 +796,25 @@ dnsserver_dissect_bitmap_DNS_LOG_LEVELS(tvbuff_t *tvb _U_, int offset _U_, packe int dnsserver_dissect_bitmap_DNS_RPC_PROTOCOLS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) { - proto_item *item = NULL; - proto_tree *tree = NULL; - + proto_item *item; + static const int * dnsserver_DNS_RPC_PROTOCOLS_fields[] = { + &hf_dnsserver_DNS_RPC_PROTOCOLS_DNS_RPC_USE_TCPIP, + &hf_dnsserver_DNS_RPC_PROTOCOLS_DNS_RPC_USE_NAMED_PIPE, + &hf_dnsserver_DNS_RPC_PROTOCOLS_DNS_RPC_USE_LPC, + }; guint32 flags; ALIGN_TO_4_BYTES; - if (parent_tree) { - item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep)); - tree = proto_item_add_subtree(item,ett_dnsserver_DNS_RPC_PROTOCOLS); - } + item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index, + ett_dnsserver_DNS_RPC_PROTOCOLS, dnsserver_DNS_RPC_PROTOCOLS_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); - offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, -1, &flags); - proto_item_append_text(item, ": "); + offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags); if (!flags) - proto_item_append_text(item, "(No values set)"); + proto_item_append_text(item, ": (No values set)"); - proto_tree_add_boolean(tree, hf_dnsserver_DNS_RPC_PROTOCOLS_DNS_RPC_USE_TCPIP, tvb, offset-4, 4, flags); - if (flags&( 0x00000001 )){ - proto_item_append_text(item, "DNS_RPC_USE_TCPIP"); - if (flags & (~( 0x00000001 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x00000001 )); - - proto_tree_add_boolean(tree, hf_dnsserver_DNS_RPC_PROTOCOLS_DNS_RPC_USE_NAMED_PIPE, tvb, offset-4, 4, flags); - if (flags&( 0x00000002 )){ - proto_item_append_text(item, "DNS_RPC_USE_NAMED_PIPE"); - if (flags & (~( 0x00000002 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x00000002 )); - - proto_tree_add_boolean(tree, hf_dnsserver_DNS_RPC_PROTOCOLS_DNS_RPC_USE_LPC, tvb, offset-4, 4, flags); - if (flags&( 0x00000004 )){ - proto_item_append_text(item, "DNS_RPC_USE_LPC"); - if (flags & (~( 0x00000004 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x00000004 )); - - if (flags) { + if (flags & (~0x00000007)) { + flags &= (~0x00000007); proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); } @@ -1015,80 +913,29 @@ dnsserver_dissect_enum_DNS_RECORD_TYPE(tvbuff_t *tvb _U_, int offset _U_, packet int dnsserver_dissect_bitmap_DNS_SELECT_FLAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) { - proto_item *item = NULL; - proto_tree *tree = NULL; - + proto_item *item; + static const int * dnsserver_DNS_SELECT_FLAGS_fields[] = { + &hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_AUTHORITY_DATA, + &hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_CACHE_DATA, + &hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_GLUE_DATA, + &hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_ROOT_HINT_DATA, + &hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_ADDITIONAL_DATA, + &hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_NO_CHILDREN, + &hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_ONLY_CHILDREN, + }; guint32 flags; ALIGN_TO_4_BYTES; - if (parent_tree) { - item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep)); - tree = proto_item_add_subtree(item,ett_dnsserver_DNS_SELECT_FLAGS); - } + item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index, + ett_dnsserver_DNS_SELECT_FLAGS, dnsserver_DNS_SELECT_FLAGS_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); - offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, -1, &flags); - proto_item_append_text(item, ": "); + offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags); if (!flags) - proto_item_append_text(item, "(No values set)"); - - proto_tree_add_boolean(tree, hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_AUTHORITY_DATA, tvb, offset-4, 4, flags); - if (flags&( 0x00000001 )){ - proto_item_append_text(item, "DNS_RPC_VIEW_AUTHORITY_DATA"); - if (flags & (~( 0x00000001 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x00000001 )); - - proto_tree_add_boolean(tree, hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_CACHE_DATA, tvb, offset-4, 4, flags); - if (flags&( 0x00000002 )){ - proto_item_append_text(item, "DNS_RPC_VIEW_CACHE_DATA"); - if (flags & (~( 0x00000002 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x00000002 )); - - proto_tree_add_boolean(tree, hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_GLUE_DATA, tvb, offset-4, 4, flags); - if (flags&( 0x00000004 )){ - proto_item_append_text(item, "DNS_RPC_VIEW_GLUE_DATA"); - if (flags & (~( 0x00000004 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x00000004 )); - - proto_tree_add_boolean(tree, hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_ROOT_HINT_DATA, tvb, offset-4, 4, flags); - if (flags&( 0x00000008 )){ - proto_item_append_text(item, "DNS_RPC_VIEW_ROOT_HINT_DATA"); - if (flags & (~( 0x00000008 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x00000008 )); + proto_item_append_text(item, ": (No values set)"); - proto_tree_add_boolean(tree, hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_ADDITIONAL_DATA, tvb, offset-4, 4, flags); - if (flags&( 0x00000010 )){ - proto_item_append_text(item, "DNS_RPC_VIEW_ADDITIONAL_DATA"); - if (flags & (~( 0x00000010 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x00000010 )); - - proto_tree_add_boolean(tree, hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_NO_CHILDREN, tvb, offset-4, 4, flags); - if (flags&( 0x00010000 )){ - proto_item_append_text(item, "DNS_RPC_VIEW_NO_CHILDREN"); - if (flags & (~( 0x00010000 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x00010000 )); - - proto_tree_add_boolean(tree, hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_ONLY_CHILDREN, tvb, offset-4, 4, flags); - if (flags&( 0x00020000 )){ - proto_item_append_text(item, "DNS_RPC_VIEW_ONLY_CHILDREN"); - if (flags & (~( 0x00020000 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x00020000 )); - - if (flags) { + if (flags & (~0x0003001f)) { + flags &= (~0x0003001f); proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); } @@ -1114,120 +961,34 @@ dnsserver_dissect_bitmap_DNS_SELECT_FLAGS(tvbuff_t *tvb _U_, int offset _U_, pac int dnsserver_dissect_bitmap_DNS_RPC_NODE_FLAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_) { - proto_item *item = NULL; - proto_tree *tree = NULL; - + proto_item *item; + static const int * dnsserver_DNS_RPC_NODE_FLAGS_fields[] = { + &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_CACHE_DATA, + &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_ZONE_ROOT, + &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_AUTH_ZONE_ROOT, + &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_ZONE_DELEGATION, + &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_RECOR_DEFAULT_TTL, + &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_RECORD_TTL_CHANGE, + &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_RECORD_CREATE_PTR, + &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_NODE_STICKY, + &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_NODE_COMPLETE, + &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_OPEN_ACL, + &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_AGING_ON, + &hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_SUPPRESS_NOTIFY, + }; guint32 flags; ALIGN_TO_4_BYTES; - if (parent_tree) { - item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep)); - tree = proto_item_add_subtree(item,ett_dnsserver_DNS_RPC_NODE_FLAGS); - } + item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index, + ett_dnsserver_DNS_RPC_NODE_FLAGS, dnsserver_DNS_RPC_NODE_FLAGS_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE); - offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, -1, &flags); - proto_item_append_text(item, ": "); + offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags); if (!flags) - proto_item_append_text(item, "(No values set)"); - - proto_tree_add_boolean(tree, hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_CACHE_DATA, tvb, offset-4, 4, flags); - if (flags&( 0x80000000 )){ - proto_item_append_text(item, "DNS_RPC_FLAG_CACHE_DATA"); - if (flags & (~( 0x80000000 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x80000000 )); - - proto_tree_add_boolean(tree, hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_ZONE_ROOT, tvb, offset-4, 4, flags); - if (flags&( 0x40000000 )){ - proto_item_append_text(item, "DNS_RPC_FLAG_ZONE_ROOT"); - if (flags & (~( 0x40000000 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x40000000 )); - - proto_tree_add_boolean(tree, hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_AUTH_ZONE_ROOT, tvb, offset-4, 4, flags); - if (flags&( 0x20000000 )){ - proto_item_append_text(item, "DNS_RPC_FLAG_AUTH_ZONE_ROOT"); - if (flags & (~( 0x20000000 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x20000000 )); - - proto_tree_add_boolean(tree, hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_ZONE_DELEGATION, tvb, offset-4, 4, flags); - if (flags&( 0x10000000 )){ - proto_item_append_text(item, "DNS_RPC_FLAG_ZONE_DELEGATION"); - if (flags & (~( 0x10000000 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x10000000 )); - - proto_tree_add_boolean(tree, hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_RECOR_DEFAULT_TTL, tvb, offset-4, 4, flags); - if (flags&( 0x08000000 )){ - proto_item_append_text(item, "DNS_RPC_FLAG_RECOR_DEFAULT_TTL"); - if (flags & (~( 0x08000000 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x08000000 )); - - proto_tree_add_boolean(tree, hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_RECORD_TTL_CHANGE, tvb, offset-4, 4, flags); - if (flags&( 0x04000000 )){ - proto_item_append_text(item, "DNS_RPC_FLAG_RECORD_TTL_CHANGE"); - if (flags & (~( 0x04000000 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x04000000 )); - - proto_tree_add_boolean(tree, hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_RECORD_CREATE_PTR, tvb, offset-4, 4, flags); - if (flags&( 0x02000000 )){ - proto_item_append_text(item, "DNS_RPC_FLAG_RECORD_CREATE_PTR"); - if (flags & (~( 0x02000000 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x02000000 )); - - proto_tree_add_boolean(tree, hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_NODE_STICKY, tvb, offset-4, 4, flags); - if (flags&( 0x01000000 )){ - proto_item_append_text(item, "DNS_RPC_FLAG_NODE_STICKY"); - if (flags & (~( 0x01000000 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x01000000 )); - - proto_tree_add_boolean(tree, hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_NODE_COMPLETE, tvb, offset-4, 4, flags); - if (flags&( 0x00800000 )){ - proto_item_append_text(item, "DNS_RPC_FLAG_NODE_COMPLETE"); - if (flags & (~( 0x00800000 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x00800000 )); - - proto_tree_add_boolean(tree, hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_OPEN_ACL, tvb, offset-4, 4, flags); - if (flags&( 0x00040000 )){ - proto_item_append_text(item, "DNS_RPC_FLAG_OPEN_ACL"); - if (flags & (~( 0x00040000 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x00040000 )); - - proto_tree_add_boolean(tree, hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_AGING_ON, tvb, offset-4, 4, flags); - if (flags&( 0x00020000 )){ - proto_item_append_text(item, "DNS_RPC_FLAG_AGING_ON"); - if (flags & (~( 0x00020000 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x00020000 )); - - proto_tree_add_boolean(tree, hf_dnsserver_DNS_RPC_NODE_FLAGS_DNS_RPC_FLAG_SUPPRESS_NOTIFY, tvb, offset-4, 4, flags); - if (flags&( 0x00010000 )){ - proto_item_append_text(item, "DNS_RPC_FLAG_SUPPRESS_NOTIFY"); - if (flags & (~( 0x00010000 ))) - proto_item_append_text(item, ", "); - } - flags&=(~( 0x00010000 )); + proto_item_append_text(item, ": (No values set)"); - if (flags) { + if (flags & (~0xff870000)) { + flags &= (~0xff870000); proto_item_append_text(item, "Unknown bitmap value 0x%x", flags); } |