aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2014-07-02 09:32:20 -0400
committerEvan Huus <eapache@gmail.com>2014-07-02 17:35:52 +0000
commit980893a15afba3d4ed654734a386009c27c18358 (patch)
tree01441608f6f31c5b0e17714a1e282135333151e2 /epan
parenta3bac6d0ce4adc0dcf7758bc0f9c743ab717ae9f (diff)
NDPS dissector is the poster child for proto_tree_add_subtree[_format].
NDPS dissector is also the poster child for not being considered "that naughty" by checkAPIs because most of its proto_tree_add_text calls don't have printf-style arguments (which is what checkAPIs really keys off of) Fixed both cases and removed about 370 proto_tree_add_text calls from the dissector. Change-Id: I721678c39d4a0544e5e7212e622c0c2eebfd04f7 Reviewed-on: https://code.wireshark.org/review/2775 Reviewed-by: Evan Huus <eapache@gmail.com>
Diffstat (limited to 'epan')
-rw-r--r--epan/dissectors/packet-ndps.c1389
1 files changed, 558 insertions, 831 deletions
diff --git a/epan/dissectors/packet-ndps.c b/epan/dissectors/packet-ndps.c
index 6d26881607..d25456a510 100644
--- a/epan/dissectors/packet-ndps.c
+++ b/epan/dissectors/packet-ndps.c
@@ -361,6 +361,8 @@ static gint ett_ndps = -1;
static expert_field ei_ndps_problem_type = EI_INIT;
static expert_field ei_ndps_return_code = EI_INIT;
static expert_field ei_ndps_rpc_acc_stat = EI_INIT;
+static expert_field ei_ndps_truncated = EI_INIT;
+
/* desegmentation of NDPS over TCP */
static gboolean ndps_desegment = TRUE;
@@ -2446,14 +2448,14 @@ address_item(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
}
static int
-credentials(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
+credentials(tvbuff_t* tvb, packet_info *pinfo, proto_tree *ndps_tree, int foffset)
{
guint32 cred_type=0;
guint32 length=0;
guint32 number_of_items;
guint32 ii;
proto_tree *atree;
- proto_item *aitem;
+ proto_item *aitem, *expert_item;
cred_type = tvb_get_ntohl(tvb, foffset);
proto_tree_add_item(ndps_tree, hf_ndps_cred_type, tvb, foffset, 4, ENC_BIG_ENDIAN);
@@ -2463,16 +2465,15 @@ credentials(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
case 0:
foffset = ndps_string(tvb, hf_ndps_user_name, ndps_tree, foffset, NULL);
number_of_items=tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_num_passwords, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_num_passwords, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Password %d", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Password %d", ii+1);
length = tvb_get_ntohl(tvb, foffset);
foffset += 4;
if (length!=0)
@@ -2539,33 +2540,27 @@ credentials(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
static int
-event_object_set(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
+event_object_set(tvbuff_t* tvb, packet_info *pinfo, proto_tree *ndps_tree, int foffset)
{
guint32 number_of_items;
guint32 number_of_items2;
guint32 ii;
guint32 jj;
guint32 object_identifier;
- proto_tree *atree;
- proto_item *aitem;
- proto_tree *btree;
- proto_item *bitem;
- proto_tree *ctree;
- proto_item *citem;
+ proto_tree *atree, *btree, *ctree;
+ proto_item *aitem, *bitem, *citem, *expert_item;
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Event");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Event");
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(atree, hf_ndps_num_events, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(atree, hf_ndps_num_events, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Event %u", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &bitem, "Event %u", ii+1);
proto_tree_add_item(btree, hf_ndps_event_type, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
foffset = objectidentifier(tvb, btree, foffset);
@@ -2586,16 +2581,15 @@ event_object_set(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
case 2:
number_of_items2 = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(btree, hf_ndps_item_count, tvb, foffset, 4, number_of_items2);
+ expert_item = proto_tree_add_uint(btree, hf_ndps_item_count, tvb, foffset, 4, number_of_items2);
foffset += 4;
for (jj = 0; jj < number_of_items2; jj++ )
{
if (jj >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(btree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- citem = proto_tree_add_text(btree, tvb, foffset, -1, "Item %u", jj+1);
- ctree = proto_item_add_subtree(citem, ett_ndps);
+ ctree = proto_tree_add_subtree_format(btree, tvb, foffset, -1, ett_ndps, &citem, "Item %u", jj+1);
foffset = objectidentifier(tvb, ctree, foffset);
foffset += align_4(tvb, foffset);
proto_item_set_end(citem, tvb, foffset);
@@ -2610,25 +2604,24 @@ event_object_set(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
static int
-cardinal_seq(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
+cardinal_seq(tvbuff_t* tvb, packet_info* pinfo, proto_tree *ndps_tree, int foffset)
{
guint32 number_of_items;
guint32 length;
guint32 ii;
proto_tree *atree;
- proto_item *aitem;
+ proto_item *aitem, *expert_item;
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Cardinal %u", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Cardinal %u", ii+1);
length = tvb_get_ntohl(tvb, foffset);
foffset += 4;
if (length==4)
@@ -2647,35 +2640,31 @@ cardinal_seq(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
static int
-server_entry(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
+server_entry(tvbuff_t* tvb, packet_info* pinfo, proto_tree *ndps_tree, int foffset)
{
char *server_name;
guint32 number_of_items;
guint32 ii;
guint32 data_type;
- proto_tree *atree;
- proto_item *aitem;
- proto_tree *btree;
- proto_item *bitem;
+ proto_tree *atree, *btree;
+ proto_item *aitem, *bitem, *expert_item;
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Server Info");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Server Info");
foffset = ndps_string(tvb, hf_ndps_server_name, ndps_tree, foffset, &server_name);
proto_item_append_text(aitem, ": %s", format_text(server_name, strlen(server_name)));
proto_tree_add_item(atree, hf_ndps_server_type, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
foffset = print_address(tvb, atree, foffset);
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(atree, hf_ndps_num_servers, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(atree, hf_ndps_num_servers, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Info %u", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Info %u", ii+1);
data_type = tvb_get_ntohl(tvb, foffset);
proto_tree_add_item(btree, hf_ndps_data_item_type, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
@@ -2712,7 +2701,7 @@ server_entry(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
static int
-attribute_value(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
+attribute_value(tvbuff_t* tvb, packet_info* pinfo, proto_tree *ndps_tree, int foffset)
{
guint32 ii;
guint32 jj;
@@ -2738,10 +2727,8 @@ attribute_value(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
guint32 cardinal;
const char *label;
guint32 label_value;
- proto_tree *atree;
- proto_item *aitem;
- proto_tree *btree;
- proto_item *bitem;
+ proto_tree *atree, *btree;
+ proto_item *aitem, *bitem, *expert_item;
if (global_attribute_name==NULL)
{
@@ -2779,16 +2766,15 @@ attribute_value(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
break;
case 39: /* Name or OID Seq */
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Item %d", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Item %d", ii+1);
foffset = name_or_id(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
}
@@ -2800,16 +2786,15 @@ attribute_value(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
break;
case 8: /* Distinguished Name String Seq */
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Name %u", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Name %u", ii+1);
foffset = ndps_string(tvb, hf_object_name, atree, foffset, NULL);
foffset = name_or_id(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
@@ -2868,16 +2853,15 @@ attribute_value(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
case 23: /* Cardinal 64 Seq */
case 30: /* Real Seq */
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Item %u", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Item %u", ii+1);
proto_tree_add_item(atree, hf_ndps_n64, tvb, foffset, 8, ENC_NA);
foffset += 8;
proto_item_set_end(aitem, tvb, foffset);
@@ -2909,32 +2893,30 @@ attribute_value(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
break;
case 37: /* Object Identifier Seq */
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_num_objects, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_num_objects, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Object %d", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Object %d", ii+1);
foffset = objectidentifier(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
}
break;
case 41: /* Relative Distinguished Name Seq */
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_num_names, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_num_names, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Name %u", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Name %u", ii+1);
foffset = ndps_string(tvb, hf_object_name, atree, foffset, NULL);
proto_item_set_end(aitem, tvb, foffset);
}
@@ -2991,16 +2973,15 @@ attribute_value(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
foffset += 4;
if (location == 0) {
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_num_locations, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_num_locations, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Location %u", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Location %u", ii+1);
proto_tree_add_item(atree, hf_ndps_n64, tvb, foffset, 8, ENC_NA);
foffset += 8;
proto_item_set_end(aitem, tvb, foffset);
@@ -3027,16 +3008,15 @@ attribute_value(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
break;
case 48: /* Area Seq */
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_num_areas, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_num_areas, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Area %u", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Area %u", ii+1);
proto_tree_add_item(atree, hf_ndps_xmin_n64, tvb, foffset, 8, ENC_NA);
foffset += 8;
proto_tree_add_item(atree, hf_ndps_xmax_n64, tvb, foffset, 8, ENC_NA);
@@ -3114,30 +3094,28 @@ attribute_value(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
foffset = name_or_id(tvb, ndps_tree, foffset);
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_num_address_items, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_num_address_items, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Address Item %u", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Address Item %u", ii+1);
foffset = address_item(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
}
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_num_events, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_num_events, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Event %u", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Event %u", ii+1);
proto_tree_add_item(atree, hf_ndps_event_type, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
foffset = objectidentifier(tvb, atree, foffset);
@@ -3153,12 +3131,12 @@ attribute_value(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
case 2:
/* Number of Objects */
number_of_items2 = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(atree, hf_ndps_num_objects, tvb, foffset, 4, number_of_items2);
+ expert_item = proto_tree_add_uint(atree, hf_ndps_num_objects, tvb, foffset, 4, number_of_items2);
foffset += 4;
for (jj = 0; jj < number_of_items2; jj++ )
{
if (jj >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
foffset = objectidentifier(tvb, atree, foffset);
@@ -3172,16 +3150,15 @@ attribute_value(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
case 0:
number_of_items2 = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(atree, hf_ndps_num_objects, tvb, foffset, 4, number_of_items2);
+ expert_item = proto_tree_add_uint(atree, hf_ndps_num_objects, tvb, foffset, 4, number_of_items2);
foffset += 4;
for (jj = 0; jj < number_of_items2; jj++ )
{
if (jj >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Object %u", jj+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Object %u", jj+1);
foffset = objectidentifier(tvb, btree, foffset);
proto_item_set_end(bitem, tvb, foffset);
}
@@ -3250,16 +3227,15 @@ attribute_value(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
case 65: /* Job Categories */
foffset = objectidentifier(tvb, ndps_tree, foffset);
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_num_job_categories, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_num_job_categories, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Job %u", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Job %u", ii+1);
length = tvb_get_ntohl(tvb, foffset);
foffset += 4;
if (length==4)
@@ -3278,16 +3254,15 @@ attribute_value(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
foffset += 4;
foffset = objectidentifier(tvb, ndps_tree, foffset);
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_num_ignored_attributes, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_num_ignored_attributes, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Ignored Attribute %u", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Ignored Attribute %u", ii+1);
ignored_type = tvb_get_ntohl(tvb, foffset);
proto_tree_add_uint(atree, hf_ndps_ignored_type, tvb, foffset, 4, ignored_type);
foffset += 4;
@@ -3325,16 +3300,15 @@ attribute_value(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
break;
case 71: /* Resource Context Seq */
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_num_resources, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_num_resources, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Resource %u", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Resource %u", ii+1);
resource_type = tvb_get_ntohl(tvb, foffset);
proto_tree_add_uint(atree, hf_ndps_resource_type, tvb, foffset, 4, resource_type);
foffset += 4;
@@ -3351,16 +3325,15 @@ attribute_value(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
break;
case 73: /* Page Select Seq */
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_num_page_selects, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_num_page_selects, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Page Select %u", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Page Select %u", ii+1);
proto_tree_add_item(atree, hf_ndps_page_flag, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
identifier_type = tvb_get_ntohl(tvb, foffset);
@@ -3412,16 +3385,15 @@ attribute_value(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
{
foffset = ndps_string(tvb, hf_ndps_tree, ndps_tree, foffset, NULL);
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Item %u", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Item %u", ii+1);
proto_tree_add_item(atree, hf_ndps_page_flag, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
identifier_type = tvb_get_ntohl(tvb, foffset);
@@ -3555,16 +3527,15 @@ attribute_value(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
break;
case 82: /* Output Bins Characteristics */
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_num_page_informations, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_num_page_informations, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Page Information %u", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Page Information %u", ii+1);
proto_tree_add_item(atree, hf_ndps_page_order, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
proto_tree_add_item(atree, hf_ndps_page_orientation, tvb, foffset, 4, ENC_BIG_ENDIAN);
@@ -3586,16 +3557,15 @@ attribute_value(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
case 85: /* Category Set */
foffset = objectidentifier(tvb, ndps_tree, foffset);
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_num_categories, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_num_categories, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Category %u", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Category %u", ii+1);
length = tvb_get_ntohl(tvb, foffset);
foffset += 4;
if (length==4)
@@ -3608,16 +3578,15 @@ attribute_value(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
THROW(ReportedBoundsError);
}
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_num_values, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_num_values, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Value %d", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Value %d", ii+1);
length = tvb_get_ntohl(tvb, foffset);
foffset += 4;
if (length==4)
@@ -3737,16 +3706,15 @@ attribute_value(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
break;
case 97: /* Qualified Name Set */
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_num_names, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_num_names, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Name %u", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Name %u", ii+1);
foffset = qualifiedname(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
}
@@ -3764,16 +3732,15 @@ attribute_value(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
foffset = objectidentifier(tvb, ndps_tree, foffset);
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_num_colorants, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_num_colorants, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Colorant %u", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Colorant %u", ii+1);
foffset = name_or_id(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
}
@@ -3781,16 +3748,15 @@ attribute_value(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
break;
case 99: /* Resource Printer ID */
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_printer_def_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_printer_def_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Printer %u", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Printer %u", ii+1);
foffset = ndps_string(tvb, hf_ndps_printer_type, atree, foffset, NULL);
foffset = ndps_string(tvb, hf_ndps_printer_manuf, atree, foffset, NULL);
foffset = ndps_string(tvb, hf_ndps_inf_file_name, atree, foffset, NULL);
@@ -3833,16 +3799,15 @@ attribute_value(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
break;
case 105: /* Print Contained Object ID Set */
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_num_objects, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_num_objects, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Object %u", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Object %u", ii+1);
foffset = ndps_string(tvb, hf_ndps_pa_name, atree, foffset, NULL);
proto_tree_add_item(atree, hf_ndps_attribute_value, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
@@ -3940,16 +3905,15 @@ attribute_value(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
break;
}
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_num_events, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_num_events, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Event %u", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Event %u", ii+1);
foffset = ndps_string(tvb, hf_object_name, atree, foffset, NULL);
foffset = objectidentifier(tvb, atree, foffset);
proto_tree_add_item(atree, hf_ndps_event_type, tvb, foffset, 4, ENC_BIG_ENDIAN);
@@ -3959,16 +3923,15 @@ attribute_value(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
foffset = objectidentifier(tvb, ndps_tree, foffset);
foffset = qualifiedname(tvb, ndps_tree, foffset);
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_num_objects, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_num_objects, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Object %u", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Object %u", ii+1);
foffset = objectidentifier(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
}
@@ -3988,29 +3951,25 @@ attribute_value(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
static int
-commonarguments(tvbuff_t* tvb, proto_tree *ndps_tree, int foffset)
+commonarguments(tvbuff_t* tvb, packet_info* pinfo, proto_tree *ndps_tree, int foffset)
{
guint32 number_of_items;
guint32 ii;
- proto_tree *atree;
- proto_item *aitem;
- proto_tree *btree;
- proto_item *bitem;
+ proto_tree *atree, *btree;
+ proto_item *aitem, *bitem, *expert_item;
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Common Arguments");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Common Arguments");
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(atree, hf_ndps_num_args, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(atree, hf_ndps_num_args, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Argument %u", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
- foffset = attribute_value(tvb, btree, foffset);
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Argument %u", ii+1);
+ foffset = attribute_value(tvb, pinfo, btree, foffset);
proto_item_set_end(bitem, tvb, foffset);
}
proto_item_set_end(aitem, tvb, foffset);
@@ -4560,14 +4519,8 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
guint32 integer_type_flag;
guint32 local_servers_type;
gint length_remaining;
- proto_tree *atree;
- proto_item *aitem;
- proto_tree *btree;
- proto_item *bitem;
- proto_tree *ctree;
- proto_item *citem;
- proto_tree *dtree;
- proto_item *ditem;
+ proto_tree *atree, *btree, *ctree, *dtree;
+ proto_item *aitem, *bitem, *citem, *ditem, *expert_item;
if (!pinfo->fd->flags.visited)
{
@@ -4601,23 +4554,22 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
switch(ndps_func)
{
case 0x00000001: /* Bind PSM */
- foffset = credentials(tvb, ndps_tree, foffset);
+ foffset = credentials(tvb, pinfo, ndps_tree, foffset);
break;
case 0x00000002: /* Bind PA */
- foffset = credentials(tvb, ndps_tree, foffset);
+ foffset = credentials(tvb, pinfo, ndps_tree, foffset);
proto_tree_add_item(ndps_tree, hf_ndps_retrieve_restrictions, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
number_of_items=tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_bind_security_option_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_bind_security_option_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Security %u", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Security %u", ii+1);
length = tvb_get_ntohl(tvb, foffset);
if (length==4)
{
@@ -4644,32 +4596,29 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
foffset = ndps_string(tvb, hf_ndps_pa_name, ndps_tree, foffset, NULL);
proto_tree_add_item(ndps_tree, hf_sub_complete, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Transfer Method");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Transfer Method");
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(atree, hf_ndps_num_objects, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(atree, hf_ndps_num_objects, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Attribute %u", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Attribute %u", ii+1);
foffset = objectidentifier(tvb, btree, foffset);
number_of_items2 = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(btree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items2);
+ expert_item = proto_tree_add_uint(btree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items2);
foffset += 4;
for (jj = 0; jj < number_of_items2; jj++ )
{
if (jj >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(btree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- citem = proto_tree_add_text(btree, tvb, foffset, -1, "Value %u", jj+1);
- ctree = proto_item_add_subtree(citem, ett_ndps);
- foffset = attribute_value(tvb, ctree, foffset);
+ ctree = proto_tree_add_subtree_format(btree, tvb, foffset, -1, ett_ndps, &citem, "Value %u", jj+1);
+ foffset = attribute_value(tvb, pinfo, ctree, foffset);
proto_item_set_end(citem, tvb, foffset);
}
proto_tree_add_item(btree, hf_ndps_qualifier, tvb, foffset, 4, ENC_BIG_ENDIAN);
@@ -4677,19 +4626,17 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
proto_item_set_end(bitem, tvb, foffset);
}
proto_item_set_end(aitem, tvb, foffset);
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Document Content");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Document Content");
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(atree, hf_ndps_num_objects, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(atree, hf_ndps_num_objects, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Type %u", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Type %u", ii+1);
foffset = objectidentifier(tvb, btree, foffset);
proto_item_set_end(bitem, tvb, foffset);
}
@@ -4698,16 +4645,15 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
proto_tree_add_uint(atree, hf_ndps_num_objects, tvb, foffset, 4, number_of_items);
foffset += 4;
doc_content = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(atree, hf_doc_content, tvb, foffset, 4, doc_content);
+ expert_item = proto_tree_add_uint(atree, hf_doc_content, tvb, foffset, 4, doc_content);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Value %u", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Value %u", ii+1);
if (doc_content==0)
{
length = tvb_get_ntohl(tvb, foffset);
@@ -4740,32 +4686,29 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
if (align_4(tvb, foffset)>0) {
foffset += align_4(tvb, foffset);
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Document Type");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Document Type");
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(atree, hf_ndps_num_objects, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(atree, hf_ndps_num_objects, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Attribute %u", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Attribute %u", ii+1);
foffset = objectidentifier(tvb, btree, foffset);
number_of_items2 = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(btree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items2);
+ expert_item = proto_tree_add_uint(btree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items2);
foffset += 4;
for (jj = 0; jj < number_of_items2; jj++ )
{
if (jj >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(btree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- citem = proto_tree_add_text(btree, tvb, foffset, -1, "Value %u", jj+1);
- ctree = proto_item_add_subtree(citem, ett_ndps);
- foffset = attribute_value(tvb, ctree, foffset);
+ ctree = proto_tree_add_subtree_format(btree, tvb, foffset, -1, ett_ndps, &citem, "Value %u", jj+1);
+ foffset = attribute_value(tvb, pinfo, ctree, foffset);
proto_item_set_end(citem, tvb, foffset);
}
proto_tree_add_item(btree, hf_ndps_qualifier, tvb, foffset, 4, ENC_BIG_ENDIAN);
@@ -4773,20 +4716,18 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
proto_item_set_end(bitem, tvb, foffset);
}
proto_item_set_end(aitem, tvb, foffset);
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Document Attributes");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Document Attributes");
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(atree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(atree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Attribute %u", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
- foffset = attribute_value(tvb, btree, foffset); /* Document Attributes */
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Attribute %u", ii+1);
+ foffset = attribute_value(tvb, pinfo, btree, foffset); /* Document Attributes */
proto_item_set_end(bitem, tvb, foffset);
}
break;
@@ -4796,57 +4737,51 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
foffset += 4;
proto_tree_add_item(ndps_tree, hf_sub_complete, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Transfer Method");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Transfer Method");
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(atree, hf_ndps_num_transfer_methods, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(atree, hf_ndps_num_transfer_methods, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Method %u", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Method %u", ii+1);
foffset = objectidentifier(tvb, btree, foffset); /* Transfer Method */
proto_item_set_end(bitem, tvb, foffset);
}
proto_tree_add_item(ndps_tree, hf_doc_content, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
proto_item_set_end(aitem, tvb, foffset);
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Document Type");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Document Type");
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(atree, hf_ndps_num_doc_types, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(atree, hf_ndps_num_doc_types, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Type %u", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Type %u", ii+1);
foffset = objectidentifier(tvb, btree, foffset); /* Document Type */
proto_item_set_end(bitem, tvb, foffset);
}
foffset += align_4(tvb, foffset);
proto_item_set_end(aitem, tvb, foffset);
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Document Attributes");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Document Attributes");
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(atree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(atree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Attribute %u", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
- foffset = attribute_value(tvb, btree, foffset); /* Document Attributes */
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Attribute %u", ii+1);
+ foffset = attribute_value(tvb, pinfo, btree, foffset); /* Document Attributes */
proto_item_set_end(bitem, tvb, foffset);
}
proto_item_set_end(aitem, tvb, foffset);
@@ -4868,37 +4803,33 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
foffset += 4;
proto_tree_add_item(ndps_tree, hf_ndps_document_number, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Job Modifications");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Job Modifications");
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(atree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(atree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Modification %u", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
- foffset = attribute_value(tvb, btree, foffset); /* Job Modifications */
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Modification %u", ii+1);
+ foffset = attribute_value(tvb, pinfo, btree, foffset); /* Job Modifications */
proto_item_set_end(bitem, tvb, foffset);
}
proto_item_set_end(aitem, tvb, foffset);
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Document Modifications");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Document Modifications");
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(atree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(atree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Modification %u", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
- foffset = attribute_value(tvb, btree, foffset); /* Document Modifications */
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Modification %u", ii+1);
+ foffset = attribute_value(tvb, pinfo, btree, foffset); /* Document Modifications */
proto_item_set_end(bitem, tvb, foffset);
}
proto_item_set_end(aitem, tvb, foffset);
@@ -4916,13 +4847,11 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
proto_tree_add_uint(ndps_tree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
foffset += 4;
/* Start of nameorid */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Cancel Message");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Cancel Message");
foffset = name_or_id(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of nameorid */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Retention Period");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Retention Period");
proto_tree_add_item(atree, hf_ndps_status_flags, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
proto_tree_add_item(atree, hf_ndps_attribute_value, tvb, foffset, 4, ENC_BIG_ENDIAN);
@@ -4950,24 +4879,22 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
proto_tree_add_item(ndps_tree, hf_ndps_abort_flag, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Attribute %u", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
- foffset = attribute_value(tvb, atree, foffset);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Attribute %u", ii+1);
+ foffset = attribute_value(tvb, pinfo, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
}
}
else /* Specification */
{
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Object Class");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Object Class");
foffset = objectidentifier(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
foffset += 4;
@@ -4977,19 +4904,17 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
foffset += 4;
if (scope!=0) /* Scope Does not equal 0 */
{
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Selector Option");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Selector Option");
number_of_items = tvb_get_ntohl(tvb, foffset); /* Start of NWDPSelector */
- proto_tree_add_uint(atree, hf_ndps_num_options, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(atree, hf_ndps_num_options, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Option %u", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Option %u", ii+1);
foffset = objectidentification(tvb, btree, foffset);
proto_item_set_end(bitem, tvb, foffset);
}
@@ -5005,15 +4930,14 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
}
else
{
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Filter Items");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Filter Items");
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(atree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(atree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
foffset = filteritem(tvb, ndps_tree, foffset);
@@ -5027,19 +4951,17 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
foffset += 4; /* End of NWDPSelector */
}
foffset += 4; /* Don't know what this is */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Requested Attributes");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Requested Attributes");
number_of_items = tvb_get_ntohl(tvb, foffset); /* Start of NWDPObjectIdentifierSet */
- proto_tree_add_uint(atree, hf_ndps_num_objects, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(atree, hf_ndps_num_objects, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Attribute %u", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Attribute %u", ii+1);
foffset = objectidentifier(tvb, btree, foffset);
proto_item_set_end(bitem, tvb, foffset);
}
@@ -5050,27 +4972,25 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
}
proto_tree_add_item(ndps_tree, hf_ndps_operator, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
- foffset = commonarguments(tvb, ndps_tree, foffset);
+ foffset = commonarguments(tvb, pinfo, ndps_tree, foffset);
}
break;
case 0x00000008: /* Promote Job */
proto_tree_add_item(ndps_tree, hf_ndps_session, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
/* Start of NWDPPrtContainedObjectId */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Job ID");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Job ID");
foffset = ndps_string(tvb, hf_ndps_pa_name, atree, foffset, NULL);
proto_tree_add_item(atree, hf_local_id, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
proto_item_set_end(aitem, tvb, foffset);
/* End of NWDPPrtContainedObjectId */
/* Start of nameorid */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Message Option");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Message Option");
foffset = name_or_id(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of nameorid */
- foffset = commonarguments(tvb, ndps_tree, foffset);
+ foffset = commonarguments(tvb, pinfo, ndps_tree, foffset);
break;
case 0x00000009: /* Interrupt */
proto_tree_add_item(ndps_tree, hf_ndps_session, tvb, foffset, 4, ENC_BIG_ENDIAN);
@@ -5081,8 +5001,7 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
if (job_type==0)
{
/* Start of NWDPPrtContainedObjectId */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Job ID");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Job ID");
foffset = ndps_string(tvb, hf_ndps_pa_name, atree, foffset, NULL);
proto_tree_add_item(atree, hf_local_id, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
@@ -5094,20 +5013,18 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
foffset = ndps_string(tvb, hf_ndps_pa_name, ndps_tree, foffset, NULL);
}
/* Start of nameorid */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Interrupt Message Option");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Interrupt Message Option");
foffset = name_or_id(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of nameorid */
/* Start of NWDPPrtContainedObjectId */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Interrupting Job");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Interrupting Job");
foffset = ndps_string(tvb, hf_ndps_pa_name, atree, foffset, NULL);
proto_tree_add_item(atree, hf_local_id, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
proto_item_set_end(aitem, tvb, foffset);
/* End of NWDPPrtContainedObjectId */
- foffset = commonarguments(tvb, ndps_tree, foffset);
+ foffset = commonarguments(tvb, pinfo, ndps_tree, foffset);
break;
case 0x0000000a: /* Pause */
proto_tree_add_item(ndps_tree, hf_ndps_session, tvb, foffset, 4, ENC_BIG_ENDIAN);
@@ -5118,8 +5035,7 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
if (job_type==0)
{
/* Start of NWDPPrtContainedObjectId */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Job ID");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Job ID");
foffset = ndps_string(tvb, hf_ndps_pa_name, atree, foffset, NULL);
proto_tree_add_item(atree, hf_local_id, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
@@ -5131,115 +5047,102 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
foffset = ndps_string(tvb, hf_ndps_pa_name, ndps_tree, foffset, NULL);
}
/* Start of nameorid */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Pause Message Option");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Pause Message Option");
foffset = name_or_id(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of nameorid */
- foffset = commonarguments(tvb, ndps_tree, foffset);
+ foffset = commonarguments(tvb, pinfo, ndps_tree, foffset);
break;
case 0x0000000b: /* Resume */
proto_tree_add_item(ndps_tree, hf_ndps_session, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
/* Start of NWDPPrtContainedObjectId */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Job ID");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Job ID");
foffset = ndps_string(tvb, hf_ndps_pa_name, atree, foffset, NULL);
proto_tree_add_item(atree, hf_local_id, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
proto_item_set_end(aitem, tvb, foffset);
/* End of NWDPPrtContainedObjectId */
/* Start of nameorid */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Resume Message Option");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Resume Message Option");
foffset = name_or_id(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of nameorid */
- foffset = commonarguments(tvb, ndps_tree, foffset);
+ foffset = commonarguments(tvb, pinfo, ndps_tree, foffset);
break;
case 0x0000000c: /* Clean */
proto_tree_add_item(ndps_tree, hf_ndps_session, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
/* Start of nameorid */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Clean Message Option");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Clean Message Option");
foffset = name_or_id(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of nameorid */
- foffset = commonarguments(tvb, ndps_tree, foffset);
+ foffset = commonarguments(tvb, pinfo, ndps_tree, foffset);
break;
case 0x0000000d: /* Create */
proto_tree_add_item(ndps_tree, hf_ndps_session, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Object Class");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Object Class");
foffset = objectidentifier(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Object ID");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Object ID");
foffset = objectidentification(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
proto_tree_add_item(ndps_tree, hf_ndps_force, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Reference Object Option");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Reference Object Option");
foffset = objectidentification(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* Start of AttributeSet */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Object Attribute");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Object Attribute");
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(atree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(atree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Attribute %u", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
- foffset = attribute_value(tvb, btree, foffset); /* Object Attribute Set */
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Attribute %u", ii+1);
+ foffset = attribute_value(tvb, pinfo, btree, foffset); /* Object Attribute Set */
proto_item_set_end(bitem, tvb, foffset);
}
proto_item_set_end(aitem, tvb, foffset);
/* End of AttributeSet */
- foffset = commonarguments(tvb, ndps_tree, foffset);
+ foffset = commonarguments(tvb, pinfo, ndps_tree, foffset);
break;
case 0x0000000e: /* Delete */
proto_tree_add_item(ndps_tree, hf_ndps_session, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Object Class");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Object Class");
foffset = objectidentifier(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Object ID");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Object ID");
foffset = objectidentification(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
- foffset = commonarguments(tvb, ndps_tree, foffset);
+ foffset = commonarguments(tvb, pinfo, ndps_tree, foffset);
break;
case 0x0000000f: /* Disable PA */
proto_tree_add_item(ndps_tree, hf_ndps_session, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
/* Start of NameorID */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Disable PA Message Option");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Disable PA Message Option");
foffset = name_or_id(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of NameorID */
- foffset = commonarguments(tvb, ndps_tree, foffset);
+ foffset = commonarguments(tvb, pinfo, ndps_tree, foffset);
break;
case 0x00000010: /* Enable PA */
proto_tree_add_item(ndps_tree, hf_ndps_session, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
/* Start of NameorID */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Enable PA Message Option");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Enable PA Message Option");
foffset = name_or_id(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of NameorID */
- foffset = commonarguments(tvb, ndps_tree, foffset);
+ foffset = commonarguments(tvb, pinfo, ndps_tree, foffset);
break;
case 0x00000011: /* Resubmit Jobs */
proto_tree_add_item(ndps_tree, hf_ndps_session, tvb, foffset, 4, ENC_BIG_ENDIAN);
@@ -5248,20 +5151,18 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
foffset = address_item(tvb, ndps_tree, foffset);
proto_tree_add_item(ndps_tree, hf_resubmit_op_type, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Resubmit Job");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Resubmit Job");
number_of_items = tvb_get_ntohl(tvb, foffset); /* Start of ResubmitJob Set */
- proto_tree_add_uint(atree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(atree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
/* Start of NWDPPrtContainedObjectId */
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Job ID");
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree(atree, tvb, foffset, -1, ett_ndps, &bitem, "Job ID");
foffset = ndps_string(tvb, hf_ndps_pa_name, btree, foffset, NULL);
proto_tree_add_item(btree, hf_local_id, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
@@ -5270,39 +5171,35 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
proto_tree_add_item(atree, hf_ndps_document_number, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
/* Start of AttributeSet */
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Job Attributes");
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree(atree, tvb, foffset, -1, ett_ndps, &bitem, "Job Attributes");
number_of_items2 = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(btree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items2);
+ expert_item = proto_tree_add_uint(btree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items2);
foffset += 4;
for (jj = 0; jj < number_of_items2; jj++ )
{
if (jj >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(btree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- citem = proto_tree_add_text(btree, tvb, foffset, -1, "Attribute %u", jj+1);
- ctree = proto_item_add_subtree(citem, ett_ndps);
- foffset = attribute_value(tvb, ctree, foffset); /* Object Attribute Set */
+ ctree = proto_tree_add_subtree_format(btree, tvb, foffset, -1, ett_ndps, &citem, "Attribute %u", jj+1);
+ foffset = attribute_value(tvb, pinfo, ctree, foffset); /* Object Attribute Set */
proto_item_set_end(citem, tvb, foffset);
}
proto_item_set_end(bitem, tvb, foffset);
/* End of AttributeSet */
/* Start of AttributeSet */
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Document Attributes");
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree(atree, tvb, foffset, -1, ett_ndps, &bitem, "Document Attributes");
number_of_items2 = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(btree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items2);
+ expert_item = proto_tree_add_uint(btree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items2);
foffset += 4;
for (jj = 0; jj < number_of_items2; jj++ )
{
if (jj >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(btree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- citem = proto_tree_add_text(btree, tvb, foffset, -1, "Attribute %u", jj+1);
- ctree = proto_item_add_subtree(citem, ett_ndps);
- foffset = attribute_value(tvb, ctree, foffset); /* Object Attribute Set */
+ ctree = proto_tree_add_subtree_format(btree, tvb, foffset, -1, ett_ndps, &citem, "Attribute %u", jj+1);
+ foffset = attribute_value(tvb, pinfo, ctree, foffset); /* Object Attribute Set */
proto_item_set_end(citem, tvb, foffset);
}
proto_item_set_end(bitem, tvb, foffset);
@@ -5310,43 +5207,38 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
}
proto_item_set_end(aitem, tvb, foffset); /* End of ResubmitJob Set */
/* Start of NameorID */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Resubmit Message Option");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Resubmit Message Option");
foffset = name_or_id(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of NameorID */
- foffset = commonarguments(tvb, ndps_tree, foffset);
+ foffset = commonarguments(tvb, pinfo, ndps_tree, foffset);
break;
case 0x00000012: /* Set */
proto_tree_add_item(ndps_tree, hf_ndps_session, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Object Class");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Object Class");
foffset = objectidentifier(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Object ID");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Object ID");
foffset = objectidentification(tvb, atree, foffset);
/* Start of AttributeSet */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Attribute Modifications");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Attribute Modifications");
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(atree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(atree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Modification %d", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
- foffset = attribute_value(tvb, btree, foffset); /* Object Attribute Set */
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Modification `%d", ii+1);
+ foffset = attribute_value(tvb, pinfo, btree, foffset); /* Object Attribute Set */
proto_item_set_end(bitem, tvb, foffset);
}
proto_item_set_end(aitem, tvb, foffset);
/* End of AttributeSet */
- foffset = commonarguments(tvb, ndps_tree, foffset);
+ foffset = commonarguments(tvb, pinfo, ndps_tree, foffset);
break;
case 0x00000013: /* Shutdown PA */
case 0x0000001e: /* Shutdown PSM */
@@ -5356,66 +5248,60 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
foffset += 4;
foffset = ndps_string(tvb, hf_ndps_pa_name, ndps_tree, foffset, NULL);
/* Start of NameorID */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Shutdown Message Option");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Shutdown Message Option");
foffset = name_or_id(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of NameorID */
- foffset = commonarguments(tvb, ndps_tree, foffset);
+ foffset = commonarguments(tvb, pinfo, ndps_tree, foffset);
case 0x00000014: /* Startup PA */
proto_tree_add_item(ndps_tree, hf_ndps_session, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
foffset = ndps_string(tvb, hf_ndps_pa_name, ndps_tree, foffset, NULL);
/* Start of NameorID */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Startup Message Option");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Startup Message Option");
foffset = name_or_id(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of NameorID */
- foffset = commonarguments(tvb, ndps_tree, foffset);
+ foffset = commonarguments(tvb, pinfo, ndps_tree, foffset);
break;
case 0x00000015: /* Reorder Job */
proto_tree_add_item(ndps_tree, hf_ndps_session, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
/* Start of NWDPPrtContainedObjectId */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Job Identification");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Job Identification");
foffset = ndps_string(tvb, hf_ndps_pa_name, atree, foffset, NULL);
proto_tree_add_item(atree, hf_local_id, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
proto_item_set_end(aitem, tvb, foffset);
/* End of NWDPPrtContainedObjectId */
/* Start of NWDPPrtContainedObjectId */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Reference Job ID");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Reference Job ID");
foffset = ndps_string(tvb, hf_ndps_pa_name, atree, foffset, NULL);
proto_tree_add_item(atree, hf_local_id, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
proto_item_set_end(aitem, tvb, foffset);
/* End of NWDPPrtContainedObjectId */
- foffset = commonarguments(tvb, ndps_tree, foffset);
+ foffset = commonarguments(tvb, pinfo, ndps_tree, foffset);
break;
case 0x00000016: /* Pause PA */
proto_tree_add_item(ndps_tree, hf_ndps_session, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
/* Start of NameorID */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Pause Message Option");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Pause Message Option");
foffset = name_or_id(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of NameorID */
- foffset = commonarguments(tvb, ndps_tree, foffset);
+ foffset = commonarguments(tvb, pinfo, ndps_tree, foffset);
break;
case 0x00000017: /* Resume PA */
proto_tree_add_item(ndps_tree, hf_ndps_session, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
/* Start of NameorID */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Resume Message Option");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Resume Message Option");
foffset = name_or_id(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of NameorID */
- foffset = commonarguments(tvb, ndps_tree, foffset);
+ foffset = commonarguments(tvb, pinfo, ndps_tree, foffset);
break;
case 0x00000018: /* Transfer Data */
proto_tree_add_item(ndps_tree, hf_ndps_session, tvb, foffset, 4, ENC_BIG_ENDIAN);
@@ -5428,12 +5314,11 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
proto_tree_add_item(ndps_tree, hf_ndps_session, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
/* Start of Object Identifier */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Operation ID");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Operation ID");
foffset = objectidentifier(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of Object Identifier */
- foffset = commonarguments(tvb, ndps_tree, foffset);
+ foffset = commonarguments(tvb, pinfo, ndps_tree, foffset);
break;
case 0x0000001a: /* Add Event Profile */
proto_tree_add_item(ndps_tree, hf_ndps_session, tvb, foffset, 4, ENC_BIG_ENDIAN);
@@ -5448,30 +5333,27 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
proto_tree_add_item(ndps_tree, hf_ndps_language_id, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
/* Start of NameorID */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Method ID");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Method ID");
foffset = name_or_id(tvb, atree, foffset);
foffset += align_4(tvb, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of NameorID */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Delivery Address");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Delivery Address");
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(atree, hf_ndps_delivery_add_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(atree, hf_ndps_delivery_add_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Address %u", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Address %u", ii+1);
foffset = address_item(tvb, btree, foffset);
proto_item_set_end(bitem, tvb, foffset);
}
proto_item_set_end(aitem, tvb, foffset);
- foffset = event_object_set(tvb, ndps_tree, foffset);
+ foffset = event_object_set(tvb, pinfo, ndps_tree, foffset);
foffset = qualifiedname(tvb, ndps_tree, foffset);
break;
case 0x0000001b: /* Remove Event Profile */
@@ -5490,8 +5372,7 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
foffset += 4;
if (supplier_flag)
{
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Supplier ID");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Supplier ID");
length = tvb_get_ntohl(tvb, foffset);
foffset += 4;
if (length==4)
@@ -5516,8 +5397,7 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
if (method_flag)
{
/* Start of NameorID */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Method ID");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Method ID");
foffset = name_or_id(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of NameorID */
@@ -5527,12 +5407,11 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
foffset += 4;
if (delivery_address_flag)
{
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Delivery Address");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Delivery Address");
foffset = print_address(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
}
- foffset = event_object_set(tvb, ndps_tree, foffset);
+ foffset = event_object_set(tvb, pinfo, ndps_tree, foffset);
break;
case 0x0000001d: /* List Event Profiles */
proto_tree_add_item(ndps_tree, hf_ndps_session, tvb, foffset, 4, ENC_BIG_ENDIAN);
@@ -5548,17 +5427,15 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
foffset += 4;
if (profiles_choice_type==0) /* Choice */
{
- foffset = cardinal_seq(tvb, ndps_tree, foffset);
+ foffset = cardinal_seq(tvb, pinfo, ndps_tree, foffset);
}
else
{
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Consumer");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Consumer");
foffset = qualifiedname(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* Start of NameorID */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Method ID");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Method ID");
foffset = name_or_id(tvb, atree, foffset);
/* End of NameorID */
proto_tree_add_item(atree, hf_ndps_language_id, tvb, foffset, 4, ENC_BIG_ENDIAN);
@@ -5598,12 +5475,11 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
proto_tree_add_item(ndps_tree, hf_ndps_session, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
/* Start of NameorID */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Cancel Shutdown Message Option");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Cancel Shutdown Message Option");
foffset = name_or_id(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of NameorID */
- foffset = commonarguments(tvb, ndps_tree, foffset);
+ foffset = commonarguments(tvb, pinfo, ndps_tree, foffset);
break;
case 0x00000020: /* Set Printer DS Information */
proto_tree_add_item(ndps_tree, hf_ndps_session, tvb, foffset, 4, ENC_BIG_ENDIAN);
@@ -5611,8 +5487,7 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
proto_tree_add_item(ndps_tree, hf_ndps_ds_info_type, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
foffset = ndps_string(tvb, hf_ndps_printer_name, ndps_tree, foffset, NULL);
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "DS Object Name");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "DS Object Name");
foffset = qualifiedname(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
break;
@@ -5620,12 +5495,11 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
proto_tree_add_item(ndps_tree, hf_ndps_session, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
/* Start of NameorID */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Clean Message Option");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Clean Message Option");
foffset = name_or_id(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of NameorID */
- foffset = commonarguments(tvb, ndps_tree, foffset);
+ foffset = commonarguments(tvb, pinfo, ndps_tree, foffset);
break;
case 0x00000022: /* Map GUID to NDS Name */
length = tvb_get_ntohl(tvb, foffset);
@@ -5645,56 +5519,49 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
foffset += 4;
proto_tree_add_item(ndps_tree, hf_ndps_persistence, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Consumer Name");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Consumer Name");
foffset = qualifiedname(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
foffset = ndps_string(tvb, hf_ndps_supplier_name, ndps_tree, foffset, NULL);
proto_tree_add_item(ndps_tree, hf_ndps_language_id, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
/* Start of NameorID */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Method ID");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Method ID");
foffset = name_or_id(tvb, atree, foffset);
foffset += align_4(tvb, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of NameorID */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Delivery Address");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Delivery Address");
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(atree, hf_ndps_delivery_add_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(atree, hf_ndps_delivery_add_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Address %u", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Address %u", ii+1);
foffset = address_item(tvb, btree, foffset);
proto_item_set_end(bitem, tvb, foffset);
}
proto_item_set_end(aitem, tvb, foffset);
- foffset = event_object_set(tvb, ndps_tree, foffset);
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Account");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ foffset = event_object_set(tvb, pinfo, ndps_tree, foffset);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Account");
foffset = qualifiedname(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* Start of object identifier set */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Notify Attributes");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Notify Attributes");
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(atree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(atree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Attribute %u", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Attribute %u", ii+1);
foffset = objectidentifier(tvb, btree, foffset);
proto_item_set_end(bitem, tvb, foffset);
}
@@ -5717,8 +5584,7 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
foffset += 4;
if (profiles_type==0) /* Spec */
{
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Supplier Alias");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Supplier Alias");
foffset = qualifiedname(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
profiles_choice_type = tvb_get_ntohl(tvb, foffset);
@@ -5726,17 +5592,15 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
foffset += 4;
if (profiles_choice_type==0) /* Choice */
{
- foffset = cardinal_seq(tvb, ndps_tree, foffset);
+ foffset = cardinal_seq(tvb, pinfo, ndps_tree, foffset);
}
else
{
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Consumer");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Consumer");
foffset = qualifiedname(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* Start of NameorID */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Method ID");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Method ID");
foffset = name_or_id(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of NameorID */
@@ -5780,20 +5644,19 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
switch(ndps_func)
{
case 0x00000001: /* Bind */
- foffset = credentials(tvb, ndps_tree, foffset);
+ foffset = credentials(tvb, pinfo, ndps_tree, foffset);
proto_tree_add_item(ndps_tree, hf_ndps_retrieve_restrictions, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
number_of_items=tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_bind_security_option_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_bind_security_option_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Security %u", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Security %u", ii+1);
length = tvb_get_ntohl(tvb, foffset);
foffset += 4;
if (length==4)
@@ -5812,15 +5675,14 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
case 0x00000004: /* Enable Service */
proto_tree_add_item(ndps_tree, hf_ndps_service_type, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Parameters");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Parameters");
number_of_items=tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(atree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(atree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
length = tvb_get_ntohl(tvb, foffset);
@@ -5849,20 +5711,19 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
switch(ndps_func)
{
case 0x00000001: /* Bind */
- foffset = credentials(tvb, ndps_tree, foffset);
+ foffset = credentials(tvb, pinfo, ndps_tree, foffset);
proto_tree_add_item(ndps_tree, hf_ndps_retrieve_restrictions, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
number_of_items=tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_bind_security_option_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_bind_security_option_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Security %d", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Security %d", ii+1);
length = tvb_get_ntohl(tvb, foffset);
foffset += 4;
if (length==4)
@@ -5875,7 +5736,7 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
case 0x00000002: /* Unbind */
break;
case 0x00000003: /* Register Server */
- foffset = server_entry(tvb, ndps_tree, foffset);
+ foffset = server_entry(tvb, pinfo, ndps_tree, foffset);
break;
case 0x00000004: /* Deregister Server */
case 0x00000006: /* Deregister Registry */
@@ -5888,37 +5749,33 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
foffset = print_address(tvb, ndps_tree, foffset);
break;
case 0x00000007: /* Registry Update */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Add");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Add");
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(atree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(atree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Entry %u", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
- foffset = server_entry(tvb, btree, foffset);
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Entry %u", ii+1);
+ foffset = server_entry(tvb, pinfo, btree, foffset);
proto_item_set_end(bitem, tvb, foffset);
}
proto_item_set_end(aitem, tvb, foffset);
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Remove");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Remove");
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(atree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(atree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Entry %u", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
- foffset = server_entry(tvb, btree, foffset);
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Entry %u", ii+1);
+ foffset = server_entry(tvb, pinfo, btree, foffset);
proto_item_set_end(bitem, tvb, foffset);
}
proto_item_set_end(aitem, tvb, foffset);
@@ -5966,19 +5823,19 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
switch(ndps_func)
{
case 0x00000001: /* Notify Bind */
- foffset = credentials(tvb, ndps_tree, foffset);
+ foffset = credentials(tvb, pinfo, ndps_tree, foffset);
proto_tree_add_item(ndps_tree, hf_ndps_retrieve_restrictions, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
number_of_items=tvb_get_ntohl(tvb, foffset);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Security %d", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Security %d", ii+1);
length = tvb_get_ntohl(tvb, foffset);
foffset += 4;
if (length==4)
@@ -5998,16 +5855,15 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
foffset = ndps_string(tvb, hf_ndps_supplier_name, ndps_tree, foffset, NULL);
/* Start of QualifiedName Set*/
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Supplier Alias %u", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Supplier Alias %u", ii+1);
foffset = qualifiedname(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
}
@@ -6020,8 +5876,7 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
case 0x00000005: /* Add Profile */
proto_tree_add_item(ndps_tree, hf_ndps_session, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Supplier Alias");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Supplier Alias");
foffset = qualifiedname(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* Start of Eventhandling */
@@ -6029,8 +5884,7 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
foffset += 4;
proto_tree_add_item(ndps_tree, hf_ndps_persistence, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Consumer Name");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Consumer Name");
foffset = qualifiedname(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
length = tvb_get_ntohl(tvb, foffset);
@@ -6043,29 +5897,26 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
proto_tree_add_item(ndps_tree, hf_ndps_language_id, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
/* Start of NameorID */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Method ID");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Method ID");
foffset = name_or_id(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of NameorID */
number_of_items = tvb_get_ntohl(tvb, foffset);
proto_tree_add_uint(ndps_tree, hf_ndps_delivery_add_count, tvb, foffset, 4, number_of_items);
foffset += 4;
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Delivery Addresses");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Delivery Addresses");
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, aitem, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Address %d", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Address %d", ii+1);
foffset = address_item(tvb, btree, foffset);
proto_item_set_end(bitem, tvb, foffset);
}
proto_item_set_end(aitem, tvb, foffset);
- foffset = event_object_set(tvb, ndps_tree, foffset);
+ foffset = event_object_set(tvb, pinfo, ndps_tree, foffset);
/* End of Eventhandling */
break;
case 0x00000006: /* Remove Profile */
@@ -6084,8 +5935,7 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
foffset += 4;
if (supplier_flag)
{
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Supplier ID");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Supplier ID");
length = tvb_get_ntohl(tvb, foffset);
foffset += 4;
if (length==4)
@@ -6110,8 +5960,7 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
if (method_flag)
{
/* Start of NameorID */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Method ID");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Method ID");
foffset = name_or_id(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of NameorID */
@@ -6123,7 +5972,7 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
{
foffset = print_address(tvb, ndps_tree, foffset);
}
- foffset = event_object_set(tvb, ndps_tree, foffset);
+ foffset = event_object_set(tvb, pinfo, ndps_tree, foffset);
break;
case 0x00000008: /* List Profiles */
proto_tree_add_item(ndps_tree, hf_ndps_session, tvb, foffset, 4, ENC_BIG_ENDIAN);
@@ -6133,8 +5982,7 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
foffset += 4;
if (profiles_type==0) /* Spec */
{
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Supplier Alias");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Supplier Alias");
foffset = qualifiedname(tvb, atree, foffset);
profiles_choice_type = tvb_get_ntohl(tvb, foffset);
proto_tree_add_uint(atree, hf_ndps_list_profiles_choice_type, tvb, foffset, 4, profiles_choice_type);
@@ -6142,17 +5990,15 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
proto_item_set_end(aitem, tvb, foffset);
if (profiles_choice_type==0) /* Choice */
{
- foffset = cardinal_seq(tvb, ndps_tree, foffset);
+ foffset = cardinal_seq(tvb, pinfo, ndps_tree, foffset);
}
else
{
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Consumer");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Consumer");
foffset = qualifiedname(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* Start of NameorID */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Method ID");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Method ID");
foffset = name_or_id(tvb, atree, foffset);
/* End of NameorID */
proto_tree_add_item(atree, hf_ndps_language_id, tvb, foffset, 4, ENC_BIG_ENDIAN);
@@ -6195,57 +6041,47 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
number_of_items = tvb_get_ntohl(tvb, foffset);
proto_tree_add_uint(ndps_tree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
foffset += 4;
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Event Items");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Event Items");
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, aitem, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Item %d", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Item %d", ii+1);
/* Start of ReportEventItem */
proto_tree_add_item(btree, hf_ndps_event_type, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
- citem = proto_tree_add_text(btree, tvb, foffset, -1, "Containing Class");
- ctree = proto_item_add_subtree(citem, ett_ndps);
+ ctree = proto_tree_add_subtree(btree, tvb, foffset, -1, ett_ndps, &citem, "Containing Class");
foffset = objectidentifier(tvb, ctree, foffset);
proto_item_set_end(citem, tvb, foffset);
- citem = proto_tree_add_text(btree, tvb, foffset, -1, "Containing Object");
- ctree = proto_item_add_subtree(citem, ett_ndps);
+ ctree = proto_tree_add_subtree(btree, tvb, foffset, -1, ett_ndps, &citem, "Containing Object");
foffset = objectidentification(tvb, ctree, foffset);
proto_item_set_end(citem, tvb, foffset);
- citem = proto_tree_add_text(btree, tvb, foffset, -1, "Filter Class");
- ctree = proto_item_add_subtree(citem, ett_ndps);
+ ctree = proto_tree_add_subtree(btree, tvb, foffset, -1, ett_ndps, &citem, "Filter Class");
foffset = objectidentifier(tvb, ctree, foffset);
- citem = proto_tree_add_text(btree, tvb, foffset, -1, "Object Class");
- ctree = proto_item_add_subtree(citem, ett_ndps);
+ ctree = proto_tree_add_subtree(btree, tvb, foffset, -1, ett_ndps, &citem, "Object Class");
foffset = objectidentifier(tvb, ctree, foffset);
proto_item_set_end(citem, tvb, foffset);
- citem = proto_tree_add_text(btree, tvb, foffset, -1, "Object ID");
- ctree = proto_item_add_subtree(citem, ett_ndps);
+ ctree = proto_tree_add_subtree(btree, tvb, foffset, -1, ett_ndps, &citem, "Object ID");
foffset = objectidentification(tvb, ctree, foffset);
proto_item_set_end(citem, tvb, foffset);
- citem = proto_tree_add_text(btree, tvb, foffset, -1, "Event Object ID");
- ctree = proto_item_add_subtree(citem, ett_ndps);
+ ctree = proto_tree_add_subtree(btree, tvb, foffset, -1, ett_ndps, &citem, "Event Object ID");
foffset = objectidentifier(tvb, ctree, foffset);
proto_item_set_end(citem, tvb, foffset);
/* Start of AttributeSet */
number_of_items = tvb_get_ntohl(tvb, foffset);
proto_tree_add_uint(btree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items);
foffset += 4;
- citem = proto_tree_add_text(btree, tvb, foffset, -1, "Attribute Modifications");
- ctree = proto_item_add_subtree(citem, ett_ndps);
+ ctree = proto_tree_add_subtree(btree, tvb, foffset, -1, ett_ndps, &citem, "Attribute Modifications");
for (jj = 0; jj < number_of_items; jj++ )
{
if (jj >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ctree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, citem, &ei_ndps_truncated);
break;
}
- ditem = proto_tree_add_text(ctree, tvb, foffset, -1, "Modification %d", jj+1);
- dtree = proto_item_add_subtree(ditem, ett_ndps);
- foffset = attribute_value(tvb, dtree, foffset); /* Object Attribute Set */
+ dtree = proto_tree_add_subtree_format(ctree, tvb, foffset, -1, ett_ndps, &ditem, "Modification %d", jj+1);
+ foffset = attribute_value(tvb, pinfo, dtree, foffset); /* Object Attribute Set */
proto_item_set_end(ditem, tvb, foffset);
}
proto_item_set_end(citem, tvb, foffset);
@@ -6262,20 +6098,18 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
case 0x0000000b: /* Report Notification */
/* Start of DestinationSet */
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_num_destinations, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_num_destinations, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Destination %d", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Destination %d", ii+1);
/* Start of Destination */
/* Start of NameorID */
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Method ID");
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree(atree, tvb, foffset, -1, ett_ndps, &bitem, "Method ID");
foffset = name_or_id(tvb, btree, foffset);
proto_item_set_end(bitem, tvb, foffset);
/* End of NameorID */
@@ -6291,45 +6125,37 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
foffset = ndps_string(tvb, hf_ndps_supplier_name, ndps_tree, foffset, NULL);
proto_tree_add_item(ndps_tree, hf_ndps_event_type, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Containing Class");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Containing Class");
foffset = objectidentifier(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Containing Object");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Containing Object");
foffset = objectidentification(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Filter Class");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Filter Class");
foffset = objectidentifier(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Object Class");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Object Class");
foffset = objectidentifier(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Object ID");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Object ID");
foffset = objectidentification(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Event Object ID");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Event Object ID");
foffset = objectidentifier(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* Start of AttributeSet */
number_of_items = tvb_get_ntohl(tvb, foffset);
proto_tree_add_uint(ndps_tree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items);
foffset += 4;
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Attributes");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Attributes");
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, aitem, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Attribute %d", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
- foffset = attribute_value(tvb, btree, foffset);
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Attribute %d", ii+1);
+ foffset = attribute_value(tvb, pinfo, btree, foffset);
proto_item_set_end(bitem, tvb, foffset);
}
proto_item_set_end(aitem, tvb, foffset);
@@ -6337,8 +6163,7 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
foffset = ndps_string(tvb, hf_ndps_message, ndps_tree, foffset, NULL);
proto_tree_add_item(ndps_tree, hf_time, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Account");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Account");
foffset = qualifiedname(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
break;
@@ -6347,8 +6172,7 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
break;
case 0x0000000d: /* Remove Delivery Method */
/* Start of NameorID */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Method ID");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Method ID");
foffset = name_or_id(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of NameorID */
@@ -6393,8 +6217,7 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
break;
case 0x0000000f: /* Get Delivery Method Information */
/* Start of NameorID */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Method ID");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Method ID");
foffset = name_or_id(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of NameorID */
@@ -6409,20 +6232,19 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
switch(ndps_func)
{
case 0x00000001: /* Bind */
- foffset = credentials(tvb, ndps_tree, foffset);
+ foffset = credentials(tvb, pinfo, ndps_tree, foffset);
proto_tree_add_item(ndps_tree, hf_ndps_retrieve_restrictions, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
number_of_items=tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_bind_security_option_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_bind_security_option_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Security %d", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Security %d", ii+1);
length = tvb_get_ntohl(tvb, foffset);
foffset += 4;
if (length==4)
@@ -6446,16 +6268,15 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
foffset += 4;
foffset = res_add_input_data(tvb, ndps_tree, foffset);
number_of_items=tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Item %d", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Item %d", ii+1);
length=tvb_get_ntohl(tvb, foffset);
length_remaining = tvb_length_remaining(tvb, foffset);
if(length_remaining == -1 || (guint32) length_remaining < length)
@@ -6598,27 +6419,25 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
switch(ndps_func)
{
case 0x00000001: /* Delivery Bind */
- foffset = credentials(tvb, ndps_tree, foffset);
+ foffset = credentials(tvb, pinfo, ndps_tree, foffset);
break;
case 0x00000002: /* Delivery Unbind */
/* NoOp */
break;
case 0x00000003: /* Delivery Send */
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Item %d", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Item %d", ii+1);
proto_tree_add_item(atree, hf_ndps_session, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Supplier ID");
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree(atree, tvb, foffset, -1, ett_ndps, &bitem, "Supplier ID");
length = tvb_get_ntohl(tvb, foffset);
foffset += 4;
if (length==4)
@@ -6629,36 +6448,29 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
proto_tree_add_item(btree, hf_ndps_event_type, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
proto_item_set_end(bitem, tvb, foffset);
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Containing Class");
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree(atree, tvb, foffset, -1, ett_ndps, &bitem, "Containing Class");
foffset = objectidentifier(tvb, btree, foffset);
proto_item_set_end(bitem, tvb, foffset);
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Containing Object");
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree(atree, tvb, foffset, -1, ett_ndps, &bitem, "Containing Object");
foffset = objectidentification(tvb, btree, foffset);
proto_item_set_end(bitem, tvb, foffset);
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Filter Class");
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree(atree, tvb, foffset, -1, ett_ndps, &bitem, "Filter Class");
foffset = objectidentifier(tvb, btree, foffset);
proto_item_set_end(bitem, tvb, foffset);
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Object Class");
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree(atree, tvb, foffset, -1, ett_ndps, &bitem, "Object Class");
foffset = objectidentifier(tvb, btree, foffset);
proto_item_set_end(bitem, tvb, foffset);
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Object ID");
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree(atree, tvb, foffset, -1, ett_ndps, &bitem, "Object ID");
foffset = objectidentification(tvb, btree, foffset);
proto_item_set_end(bitem, tvb, foffset);
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Event Object ID");
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree(atree, tvb, foffset, -1, ett_ndps, &bitem, "Event Object ID");
foffset = objectidentifier(tvb, btree, foffset);
- foffset = attribute_value(tvb, atree, foffset);
+ foffset = attribute_value(tvb, pinfo, atree, foffset);
foffset = ndps_string(tvb, hf_ndps_message, atree, foffset, NULL);
proto_tree_add_item(atree, hf_time, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
proto_item_set_end(bitem, tvb, foffset);
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Account");
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree(atree, tvb, foffset, -1, ett_ndps, &bitem, "Account");
foffset = qualifiedname(tvb, btree, foffset);
proto_item_set_end(bitem, tvb, foffset);
proto_item_set_end(aitem, tvb, foffset);
@@ -6666,20 +6478,18 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
break;
case 0x00000004: /* Delivery Send2 */
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_num_objects, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_num_objects, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Object %d", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Object %d", ii+1);
proto_tree_add_item(atree, hf_ndps_session, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Supplier ID");
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree(atree, tvb, foffset, -1, ett_ndps, &bitem, "Supplier ID");
length = tvb_get_ntohl(tvb, foffset);
foffset += 4;
if (length==4)
@@ -6690,51 +6500,43 @@ dissect_ndps_request(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, g
proto_tree_add_item(atree, hf_ndps_event_type, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
proto_item_set_end(bitem, tvb, foffset);
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Containing Class");
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree(atree, tvb, foffset, -1, ett_ndps, &bitem, "Containing Class");
foffset = objectidentifier(tvb, btree, foffset);
proto_item_set_end(bitem, tvb, foffset);
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Containing Object");
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree(atree, tvb, foffset, -1, ett_ndps, &bitem, "Containing Object");
foffset = objectidentification(tvb, btree, foffset);
proto_item_set_end(bitem, tvb, foffset);
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Filter Class");
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree(atree, tvb, foffset, -1, ett_ndps, &bitem, "Filter Class");
foffset = objectidentifier(tvb, btree, foffset);
proto_item_set_end(bitem, tvb, foffset);
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Object Class");
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree(atree, tvb, foffset, -1, ett_ndps, &bitem, "Object Class");
foffset = objectidentifier(tvb, btree, foffset);
proto_item_set_end(bitem, tvb, foffset);
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Object ID");
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree(atree, tvb, foffset, -1, ett_ndps, &bitem, "Object ID");
foffset = objectidentification(tvb, btree, foffset);
proto_item_set_end(bitem, tvb, foffset);
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Event Object ID");
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree(atree, tvb, foffset, -1, ett_ndps, &bitem, "Event Object ID");
foffset = objectidentifier(tvb, btree, foffset);
proto_item_set_end(bitem, tvb, foffset);
/* Start of AttributeSet */
number_of_items = tvb_get_ntohl(tvb, foffset);
proto_tree_add_uint(atree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items);
foffset += 4;
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Attribute");
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree(atree, tvb, foffset, -1, ett_ndps, &bitem, "Attribute");
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(btree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, bitem, &ei_ndps_truncated);
break;
}
- foffset = attribute_value(tvb, btree, foffset);
+ foffset = attribute_value(tvb, pinfo, btree, foffset);
}
proto_item_set_end(bitem, tvb, foffset);
/* End of AttributeSet */
foffset = ndps_string(tvb, hf_ndps_message, atree, foffset, NULL);
proto_tree_add_item(atree, hf_time, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Account");
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree(atree, tvb, foffset, -1, ett_ndps, &bitem, "Account");
foffset = qualifiedname(tvb, btree, foffset);
proto_item_set_end(bitem, tvb, foffset);
proto_item_set_end(aitem, tvb, foffset);
@@ -6782,15 +6584,13 @@ ndps_error(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int foffset
else /* Extended Error */
{
/* Start of objectidentifier */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Extended Error");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Extended Error");
foffset = objectidentifier(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of objectidentifier */
}
/* Start of NameorID */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Message");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Message");
foffset = name_or_id(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of NameorID */
@@ -6806,14 +6606,13 @@ ndps_error(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int foffset
else /* Extended Error */
{
/* Start of objectidentifier */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Extended Error");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Extended Error");
foffset = objectidentifier(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of objectidentifier */
}
foffset = objectidentification(tvb, ndps_tree, foffset);
- foffset = attribute_value(tvb, ndps_tree, foffset); /* Object Attribute Set */
+ foffset = attribute_value(tvb, pinfo, ndps_tree, foffset); /* Object Attribute Set */
proto_tree_add_item(ndps_tree, hf_ndps_lib_error, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
proto_tree_add_item(ndps_tree, hf_ndps_other_error, tvb, foffset, 4, ENC_BIG_ENDIAN);
@@ -6835,8 +6634,7 @@ ndps_error(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int foffset
else /* Extended Error */
{
/* Start of objectidentifier */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Extended Error");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Extended Error");
foffset = objectidentifier(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of objectidentifier */
@@ -6854,8 +6652,7 @@ ndps_error(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int foffset
else /* Extended Error */
{
/* Start of objectidentifier */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Extended Error");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Extended Error");
foffset = objectidentifier(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of objectidentifier */
@@ -6873,14 +6670,13 @@ ndps_error(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int foffset
else /* Extended Error */
{
/* Start of objectidentifier */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Extended Error");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Extended Error");
foffset = objectidentifier(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of objectidentifier */
}
foffset = objectidentification(tvb, ndps_tree, foffset);
- foffset = attribute_value(tvb, ndps_tree, foffset); /* Object Attribute Set */
+ foffset = attribute_value(tvb, pinfo, ndps_tree, foffset); /* Object Attribute Set */
break;
case 5: /* Document Access Error */
proto_tree_add_item(ndps_tree, hf_problem_type, tvb, foffset, 4, ENC_BIG_ENDIAN);
@@ -6893,8 +6689,7 @@ ndps_error(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int foffset
else /* Extended Error */
{
/* Start of objectidentifier */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Extended Error");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Extended Error");
foffset = objectidentifier(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of objectidentifier */
@@ -6903,16 +6698,15 @@ ndps_error(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int foffset
break;
case 6: /* Attribute Error */
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Item %d", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Item %d", ii+1);
proto_tree_add_item(atree, hf_problem_type, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
if (tvb_get_ntohl(tvb, foffset-4)==0) /* Standard Error */
@@ -6923,13 +6717,12 @@ ndps_error(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int foffset
else /* Extended Error */
{
/* Start of objectidentifier */
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Extended Error");
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree(atree, tvb, foffset, -1, ett_ndps, &bitem, "Extended Error");
foffset = objectidentifier(tvb, btree, foffset);
proto_item_set_end(bitem, tvb, foffset);
/* End of objectidentifier */
}
- foffset = attribute_value(tvb, atree, foffset); /* Object Attribute Set */
+ foffset = attribute_value(tvb, pinfo, atree, foffset); /* Object Attribute Set */
proto_item_set_end(aitem, tvb, foffset);
}
break;
@@ -6944,8 +6737,7 @@ ndps_error(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int foffset
else /* Extended Error */
{
/* Start of objectidentifier */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Extended Error");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Extended Error");
foffset = objectidentifier(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of objectidentifier */
@@ -7090,8 +6882,7 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
proto_tree_add_item(ndps_tree, hf_ndps_session, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "PSM Name");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "PSM Name");
foffset = qualifiedname(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
break;
@@ -7130,17 +6921,15 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
number_of_items = tvb_get_ntohl(tvb, foffset);
proto_tree_add_uint(ndps_tree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items);
foffset += 4;
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Object Attribute Set");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Object Attribute Set");
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, aitem, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Attribute %d", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
- foffset = attribute_value(tvb, btree, foffset); /* Object Attribute Set */
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Attribute %d", ii+1);
+ foffset = attribute_value(tvb, pinfo, btree, foffset); /* Object Attribute Set */
proto_item_set_end(bitem, tvb, foffset);
}
proto_item_set_end(aitem, tvb, foffset);
@@ -7154,19 +6943,17 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
proto_tree_add_item(ndps_tree, hf_answer_time, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
/* Continuation Option */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Continuation Option");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Continuation Option");
number_of_items=tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(atree, hf_ndps_num_options, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(atree, hf_ndps_num_options, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Option %d", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Option %d", ii+1);
length=tvb_get_ntohl(tvb, foffset);
length_remaining = tvb_length_remaining(tvb, foffset);
if(length_remaining == -1 || (guint32) length_remaining < length)
@@ -7179,56 +6966,51 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
}
proto_item_set_end(aitem, tvb, foffset);
/* Limit Encountered Option */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Limit Encountered Option");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Limit Encountered Option");
proto_tree_add_item(atree, hf_ndps_len, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
proto_tree_add_item(atree, hf_ndps_limit_enc, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
proto_item_set_end(aitem, tvb, foffset);
/* Object Results Set */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Object Results Set");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Object Results Set");
number_of_items=tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(atree, hf_ndps_num_results, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(atree, hf_ndps_num_results, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated Result]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Results: (%d)", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Results: (%d)", ii+1);
if (ii>0) {
foffset += 2;
}
foffset = objectidentification(tvb, btree, foffset);
number_of_items2 = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(btree, hf_ndps_num_objects, tvb, foffset, 4, number_of_items2);
+ expert_item = proto_tree_add_uint(btree, hf_ndps_num_objects, tvb, foffset, 4, number_of_items2);
foffset += 4;
for (jj = 0; jj < number_of_items2; jj++ )
{
if (jj >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(btree, tvb, foffset, -1, "[Truncated Object]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- citem = proto_tree_add_text(btree, tvb, foffset, -1, "Object: (%d)", jj+1);
- ctree = proto_item_add_subtree(citem, ett_ndps);
+ ctree = proto_tree_add_subtree_format(btree, tvb, foffset, -1, ett_ndps, &citem, "Object: (%d)", jj+1);
foffset = objectidentifier(tvb, ctree, foffset);
foffset += align_4(tvb, foffset);
number_of_items3 = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ctree, hf_ndps_num_values, tvb, foffset, 4, number_of_items3);
+ expert_item = proto_tree_add_uint(ctree, hf_ndps_num_values, tvb, foffset, 4, number_of_items3);
foffset += 4;
for (kk = 0; kk < number_of_items3; kk++ )
{
if (kk >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ctree, tvb, foffset, -1, "[Truncated Value]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- ditem = proto_tree_add_text(ctree, tvb, foffset, -1, "Value: (%d)", kk+1);
- dtree = proto_item_add_subtree(ditem, ett_ndps);
- foffset = attribute_value(tvb, dtree, foffset);
+ dtree = proto_tree_add_subtree_format(ctree, tvb, foffset, -1, ett_ndps, &ditem, "Value: (%d)", kk+1);
+ foffset = attribute_value(tvb, pinfo, dtree, foffset);
proto_item_set_end(ditem, tvb, foffset);
}
proto_tree_add_item(ctree, hf_ndps_qualifier, tvb, foffset, 4, ENC_BIG_ENDIAN);
@@ -7251,8 +7033,7 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
case 0x00000009: /* Interrupt */
case 0x0000000a: /* Pause */
/* Start of NWDPPrtContainedObjectId */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Job ID");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Job ID");
foffset = ndps_string(tvb, hf_ndps_pa_name, atree, foffset, NULL);
proto_tree_add_item(atree, hf_local_id, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
@@ -7262,17 +7043,15 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
number_of_items = tvb_get_ntohl(tvb, foffset);
proto_tree_add_uint(ndps_tree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items);
foffset += 4;
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Object Attribute Set");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Object Attribute Set");
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, aitem, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Attribute %d", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
- foffset = attribute_value(tvb, btree, foffset); /* Object Attribute Set */
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Attribute %d", ii+1);
+ foffset = attribute_value(tvb, pinfo, btree, foffset); /* Object Attribute Set */
proto_item_set_end(bitem, tvb, foffset);
}
proto_item_set_end(aitem, tvb, foffset);
@@ -7306,27 +7085,23 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
number_of_items = tvb_get_ntohl(tvb, foffset); /* Start of ResubmitJob Set */
proto_tree_add_uint(ndps_tree, hf_ndps_num_jobs, tvb, foffset, 4, number_of_items);
foffset += 4;
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Resubmit Job");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Resubmit Job");
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, aitem, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Job %d", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Job %d", ii+1);
/* Start of NWDPPrtContainedObjectId */
- citem = proto_tree_add_text(btree, tvb, foffset, -1, "Old Job");
- ctree = proto_item_add_subtree(citem, ett_ndps);
+ ctree = proto_tree_add_subtree(btree, tvb, foffset, -1, ett_ndps, &citem, "Old Job");
foffset = ndps_string(tvb, hf_ndps_pa_name, ctree, foffset, NULL);
proto_tree_add_item(ctree, hf_local_id, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
proto_item_set_end(citem, tvb, foffset);
/* End of NWDPPrtContainedObjectId */
/* Start of NWDPPrtContainedObjectId */
- citem = proto_tree_add_text(btree, tvb, foffset, -1, "New Job");
- ctree = proto_item_add_subtree(citem, ett_ndps);
+ ctree = proto_tree_add_subtree(btree, tvb, foffset, -1, ett_ndps, &citem, "New Job");
foffset = ndps_string(tvb, hf_ndps_pa_name, ctree, foffset, NULL);
proto_tree_add_item(ctree, hf_local_id, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
@@ -7336,17 +7111,15 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
number_of_items2 = tvb_get_ntohl(tvb, foffset);
proto_tree_add_uint(ctree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items2);
foffset += 4;
- citem = proto_tree_add_text(btree, tvb, foffset, -1, "Job Status");
- ctree = proto_item_add_subtree(citem, ett_ndps);
+ ctree = proto_tree_add_subtree(btree, tvb, foffset, -1, ett_ndps, &citem, "Job Status");
for (jj = 0; jj < number_of_items2; jj++ )
{
if (jj >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ctree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, citem, &ei_ndps_truncated);
break;
}
- ditem = proto_tree_add_text(ctree, tvb, foffset, -1, "Object %d", jj+1);
- dtree = proto_item_add_subtree(ditem, ett_ndps);
- foffset = attribute_value(tvb, dtree, foffset); /* Object Attribute Set */
+ dtree = proto_tree_add_subtree_format(ctree, tvb, foffset, -1, ett_ndps, &ditem, "Object %d", jj+1);
+ foffset = attribute_value(tvb, pinfo, dtree, foffset); /* Object Attribute Set */
proto_item_set_end(ditem, tvb, foffset);
}
proto_item_set_end(citem, tvb, foffset);
@@ -7362,20 +7135,18 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
break;
case 0x00000015: /* Reorder Job */
/* Start of AttributeSet */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Job Status");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Job Status");
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Object %d", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
- foffset = attribute_value(tvb, btree, foffset); /* Object Attribute Set */
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Object %d", ii+1);
+ foffset = attribute_value(tvb, pinfo, btree, foffset); /* Object Attribute Set */
proto_item_set_end(bitem, tvb, foffset);
}
proto_item_set_end(aitem, tvb, foffset);
@@ -7388,20 +7159,18 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
case 0x00000016: /* Pause PA */
case 0x00000017: /* Resume PA */
/* Start of AttributeSet */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Printer Status");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Printer Status");
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Object %d", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
- foffset = attribute_value(tvb, btree, foffset); /* Object Attribute Set */
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Object %d", ii+1);
+ foffset = attribute_value(tvb, pinfo, btree, foffset); /* Object Attribute Set */
proto_item_set_end(bitem, tvb, foffset);
}
proto_item_set_end(aitem, tvb, foffset);
@@ -7432,8 +7201,7 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
foffset += 4;
proto_tree_add_item(ndps_tree, hf_ndps_persistence, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Consumer Name");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Consumer Name");
foffset = qualifiedname(tvb, atree, foffset);
length = tvb_get_ntohl(tvb, foffset);
foffset += 4;
@@ -7446,29 +7214,26 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
foffset += 4;
proto_item_set_end(aitem, tvb, foffset);
/* Start of NameorID */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Method ID");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Method ID");
foffset = name_or_id(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of NameorID */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Delivery Addresses");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Delivery Addresses");
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_delivery_add_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_delivery_add_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Address %d", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Address %d", ii+1);
foffset = address_item(tvb, btree, foffset);
proto_item_set_end(bitem, tvb, foffset);
}
proto_item_set_end(aitem, tvb, foffset);
- foffset = event_object_set(tvb, ndps_tree, foffset);
+ foffset = event_object_set(tvb, pinfo, ndps_tree, foffset);
/* End of Eventhandling */
length = tvb_get_ntohl(tvb, foffset);
foffset += 4;
@@ -7484,8 +7249,7 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
}
break;
case 0x00000022: /* Map GUID to NDS Name */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "NDS Printer Name");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "NDS Printer Name");
foffset = qualifiedname(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
if(error_val != 0)
@@ -7505,31 +7269,28 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
break;
case 0x00000024: /* ListEventProfiles2 */
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_num_events, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_num_events, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Event %d", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Event %d", ii+1);
/* Start of Eventhandling2 */
proto_tree_add_item(atree, hf_ndps_profile_id, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
proto_tree_add_item(atree, hf_ndps_persistence, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Consumer Name");
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree(atree, tvb, foffset, -1, ett_ndps, &bitem, "Consumer Name");
foffset = qualifiedname(tvb, btree, foffset);
foffset = ndps_string(tvb, hf_ndps_supplier_name, atree, foffset, NULL);
proto_tree_add_item(atree, hf_ndps_language_id, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
proto_item_set_end(bitem, tvb, foffset);
/* Start of NameorID */
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Method ID");
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree(atree, tvb, foffset, -1, ett_ndps, &bitem, "Method ID");
foffset = name_or_id(tvb, btree, foffset);
foffset += align_4(tvb, foffset);
proto_item_set_end(bitem, tvb, foffset);
@@ -7537,39 +7298,34 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
number_of_items = tvb_get_ntohl(tvb, foffset);
proto_tree_add_uint(atree, hf_ndps_delivery_add_count, tvb, foffset, 4, number_of_items);
foffset += 4;
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Delivery Addresses");
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree(atree, tvb, foffset, -1, ett_ndps, &bitem, "Delivery Addresses");
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(btree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, bitem, &ei_ndps_truncated);
break;
}
- citem = proto_tree_add_text(btree, tvb, foffset, -1, "Address %d", ii+1);
- ctree = proto_item_add_subtree(citem, ett_ndps);
+ ctree = proto_tree_add_subtree_format(btree, tvb, foffset, -1, ett_ndps, &citem, "Address %d", ii+1);
foffset = address_item(tvb, ctree, foffset);
proto_item_set_end(citem, tvb, foffset);
}
proto_item_set_end(bitem, tvb, foffset);
- foffset = event_object_set(tvb, atree, foffset);
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Account");
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ foffset = event_object_set(tvb, pinfo, atree, foffset);
+ btree = proto_tree_add_subtree(atree, tvb, foffset, -1, ett_ndps, &bitem, "Account");
foffset = qualifiedname(tvb, btree, foffset);
proto_item_set_end(bitem, tvb, foffset);
/* Start of object identifier set */
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Notify Attributes");
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree(atree, tvb, foffset, -1, ett_ndps, &bitem, "Notify Attributes");
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(btree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(btree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(btree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- citem = proto_tree_add_text(btree, tvb, foffset, -1, "Attribute %d", ii+1);
- ctree = proto_item_add_subtree(citem, ett_ndps);
+ ctree = proto_tree_add_subtree_format(btree, tvb, foffset, -1, ett_ndps, &citem, "Attribute %d", ii+1);
foffset = objectidentifier(tvb, ctree, foffset);
proto_item_set_end(citem, tvb, foffset);
}
@@ -7614,16 +7370,15 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
break;
case 0x00000003: /* List Services */
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_num_services, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_num_services, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Service %d", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Service %d", ii+1);
proto_tree_add_item(atree, hf_ndps_service_type, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
proto_tree_add_item(atree, hf_ndps_service_enabled, tvb, foffset, 4, ENC_BIG_ENDIAN);
@@ -7650,16 +7405,15 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
{
case 0x00000001: /* Bind */
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Attribute %d", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Attribute %d", ii+1);
length = tvb_get_ntohl(tvb, foffset);
foffset += 4;
if (length!=0)
@@ -7683,17 +7437,16 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
case 0x00000008: /* List Local Servers */
case 0x00000009: /* List Servers */
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Item %d", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
- foffset = server_entry(tvb, atree, foffset);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Item %d", ii+1);
+ foffset = server_entry(tvb, pinfo, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
}
length = tvb_get_ntohl(tvb, foffset);
@@ -7708,12 +7461,12 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
break;
case 0x0000000a: /* List Known Registries */
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_item(ndps_tree, hf_ndps_item_count, tvb, foffset, 4, ENC_BIG_ENDIAN);
+ expert_item = proto_tree_add_item(ndps_tree, hf_ndps_item_count, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
aitem = proto_tree_add_item(ndps_tree, hf_ndps_client_server_type, tvb, foffset, 4, ENC_BIG_ENDIAN);
@@ -7733,8 +7486,7 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
foffset = return_code(tvb, pinfo, ndps_tree, foffset);
break;
case 0x0000000b: /* Get Registry NDS Object Name */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "NDS Printer Name");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "NDS Printer Name");
foffset = qualifiedname(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
foffset = return_code(tvb, pinfo, ndps_tree, foffset);
@@ -7755,16 +7507,15 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
{
case 0x00000001: /* Notify Bind */
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_num_attributes, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Attribute %d", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Attribute %d", ii+1);
length = tvb_get_ntohl(tvb, foffset);
foffset += 4;
if (length!=0)
@@ -7781,7 +7532,7 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
case 0x00000003: /* Register Supplier */
proto_tree_add_item(ndps_tree, hf_ndps_session, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
- foffset = event_object_set(tvb, ndps_tree, foffset);
+ foffset = event_object_set(tvb, pinfo, ndps_tree, foffset);
foffset = return_code(tvb, pinfo, ndps_tree, foffset);
break;
case 0x00000004: /* Deregister Supplier */
@@ -7792,13 +7543,13 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
case 0x00000005: /* Add Profile */
proto_tree_add_item(ndps_tree, hf_ndps_profile_id, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
- foffset = event_object_set(tvb, ndps_tree, foffset);
+ foffset = event_object_set(tvb, pinfo, ndps_tree, foffset);
foffset = return_code(tvb, pinfo, ndps_tree, foffset);
break;
case 0x00000006: /* Remove Profile */
case 0x00000007: /* Modify Profile */
case 0x00000009: /* Report Event */
- foffset = event_object_set(tvb, ndps_tree, foffset);
+ foffset = event_object_set(tvb, pinfo, ndps_tree, foffset);
foffset = return_code(tvb, pinfo, ndps_tree, foffset);
break;
case 0x00000008: /* List Profiles */
@@ -7810,8 +7561,7 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
foffset += 4;
proto_tree_add_item(ndps_tree, hf_ndps_persistence, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Consumer Name");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Consumer Name");
foffset = qualifiedname(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
length = tvb_get_ntohl(tvb, foffset);
@@ -7824,29 +7574,26 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
proto_tree_add_item(ndps_tree, hf_ndps_language_id, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
/* Start of NameorID */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Method ID");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Method ID");
foffset = name_or_id(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of NameorID */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Delivery Addresses");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Delivery Addresses");
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_delivery_add_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_delivery_add_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Address %d", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Address %d", ii+1);
foffset = address_item(tvb, btree, foffset);
proto_item_set_end(bitem, tvb, foffset);
}
proto_item_set_end(aitem, tvb, foffset);
- foffset = event_object_set(tvb, ndps_tree, foffset);
+ foffset = event_object_set(tvb, pinfo, ndps_tree, foffset);
/* End of Eventhandling */
/* End of ProfileResultSet */
length = tvb_get_ntohl(tvb, foffset);
@@ -7873,8 +7620,7 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
break;
case 0x0000000c: /* Add Delivery Method */
/* Start of NameorID */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Method ID");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Method ID");
foffset = name_or_id(tvb, atree, foffset);
proto_item_set_end(aitem, tvb, foffset);
/* End of NameorID */
@@ -7883,20 +7629,18 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
case 0x0000000e: /* List Delivery Methods */
/* Start of DeliveryMethodSet */
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_delivery_method_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_delivery_method_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
/* Start of DeliveryMethod */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Method %d", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Method %d", ii+1);
/* Start of NameorID */
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Method ID");
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Method ID");
foffset = name_or_id(tvb, btree, foffset);
foffset += align_4(tvb, foffset);
proto_item_set_end(bitem, tvb, foffset);
@@ -7915,8 +7659,7 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
case 0x0000000f: /* Get Delivery Method Information */
/* Start of DeliveryMethod */
/* Start of NameorID */
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Method ID");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Method ID");
foffset = name_or_id(tvb, atree, foffset);
/* End of NameorID */
foffset = ndps_string(tvb, hf_ndps_method_name, atree, foffset, NULL);
@@ -7929,16 +7672,14 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
number_of_items = tvb_get_ntohl(tvb, foffset);
proto_tree_add_uint(ndps_tree, hf_ndps_delivery_add_count, tvb, foffset, 4, number_of_items);
foffset += 4;
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Delivery Addresses");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Delivery Addresses");
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, aitem, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Address %d", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Address %d", ii+1);
foffset = address_item(tvb, btree, foffset);
proto_item_set_end(bitem, tvb, foffset);
}
@@ -8003,16 +7744,15 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
case 1: /* Printer Definitions */
case 2: /* Printer Definitions Short */
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_printer_def_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_printer_def_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Definition %d", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Definition %d", ii+1);
if (tvb_get_ntohl(tvb, foffset)==0) { /* Offset for old type support */
foffset += 2;
}
@@ -8033,48 +7773,45 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
break;
case 3: /* Banner Page Files */
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Banner %d", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Banner %d", ii+1);
foffset = ndps_string(tvb, hf_ndps_banner_name, atree, foffset, NULL);
proto_item_set_end(aitem, tvb, foffset);
}
break;
case 4: /* Font Types */
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_font_type_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_font_type_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Font %d", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Font %d", ii+1);
foffset = ndps_string(tvb, hf_font_type_name, atree, foffset, NULL);
proto_item_set_end(aitem, tvb, foffset);
}
break;
case 7: /* Font Files */
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_font_file_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_font_file_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Font File %d", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Font File %d", ii+1);
foffset = ndps_string(tvb, hf_font_file_name, atree, foffset, NULL);
proto_item_set_end(aitem, tvb, foffset);
}
@@ -8083,16 +7820,15 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
case 12: /* Printer Driver Files 2 */
case 9: /* Generic Files */
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_printer_def_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_printer_def_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "File %d", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "File %d", ii+1);
foffset = ndps_string(tvb, hf_ndps_prn_file_name, atree, foffset, NULL);
foffset = ndps_string(tvb, hf_ndps_prn_dir_name, atree, foffset, NULL);
foffset = ndps_string(tvb, hf_ndps_inf_file_name, atree, foffset, NULL);
@@ -8101,42 +7837,39 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
break;
case 6: /* Printer Definition File */
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_printer_def_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_printer_def_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Definition %d", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Definition %d", ii+1);
foffset = ndps_string(tvb, hf_ndps_prn_file_name, atree, foffset, NULL);
foffset = ndps_string(tvb, hf_ndps_prn_dir_name, atree, foffset, NULL);
foffset = ndps_string(tvb, hf_ndps_inf_file_name, atree, foffset, NULL);
proto_item_set_end(aitem, tvb, foffset);
}
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Item %d", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Item %d", ii+1);
foffset = ndps_string(tvb, hf_ndps_def_file_name, atree, foffset, NULL);
number_of_items2 = tvb_get_ntohl(tvb, foffset);
proto_tree_add_uint(atree, hf_ndps_num_win31_keys, tvb, foffset, 4, number_of_items2);
- bitem = proto_tree_add_text(atree, tvb, foffset, 4, "Windows 3.1 Keys");
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree(atree, tvb, foffset, 4, ett_ndps, &bitem, "Windows 3.1 Keys");
foffset += 4;
for (jj = 0; jj < number_of_items2; jj++ )
{
if (jj >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, bitem, &ei_ndps_truncated);
break;
}
foffset = ndps_string(tvb, hf_ndps_windows_key, btree, foffset, NULL);
@@ -8144,13 +7877,12 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
proto_item_set_end(bitem, tvb, foffset);
number_of_items2 = tvb_get_ntohl(tvb, foffset);
proto_tree_add_uint(atree, hf_ndps_num_win95_keys, tvb, foffset, 4, number_of_items2);
- bitem = proto_tree_add_text(atree, tvb, foffset, 4, "Windows 95 Keys");
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree(atree, tvb, foffset, 4, ett_ndps, &bitem, "Windows 95 Keys");
foffset += 4;
for (jj = 0; jj < number_of_items2; jj++ )
{
if (jj >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(btree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, bitem, &ei_ndps_truncated);
break;
}
foffset = ndps_string(tvb, hf_ndps_windows_key, btree, foffset, NULL);
@@ -8162,29 +7894,27 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
case 10: /* Printer Definition File 2 */
foffset = ndps_string(tvb, hf_ndps_def_file_name, ndps_tree, foffset, NULL);
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_os_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_os_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "OS %d", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "OS %d", ii+1);
proto_tree_add_item(atree, hf_os_type, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
number_of_items2 = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(atree, hf_ndps_num_windows_keys, tvb, foffset, 4, number_of_items2);
+ expert_item = proto_tree_add_uint(atree, hf_ndps_num_windows_keys, tvb, foffset, 4, number_of_items2);
foffset += 4;
for (jj = 0; jj < number_of_items2; jj++ )
{
if (jj >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Key %d", jj+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Key %d", jj+1);
foffset = ndps_string(tvb, hf_ndps_windows_key, btree, foffset, NULL);
proto_item_set_end(bitem, tvb, foffset);
}
@@ -8195,16 +7925,15 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
case 11: /* Printer Driver Types 2 */
case 13: /* Printer Driver Types Archive */
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_printer_type_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_printer_type_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Type %d", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Type %d", ii+1);
foffset = ndps_string(tvb, hf_ndps_printer_manuf, atree, foffset, NULL);
foffset = ndps_string(tvb, hf_ndps_printer_type, atree, foffset, NULL);
foffset = ndps_string(tvb, hf_ndps_prn_file_name, atree, foffset, NULL);
@@ -8218,16 +7947,15 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
break;
case 14: /* Languages Available */
number_of_items = tvb_get_ntohl(tvb, foffset);
- proto_tree_add_uint(ndps_tree, hf_ndps_language_count, tvb, foffset, 4, number_of_items);
+ expert_item = proto_tree_add_uint(ndps_tree, hf_ndps_language_count, tvb, foffset, 4, number_of_items);
foffset += 4;
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(ndps_tree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, expert_item, &ei_ndps_truncated);
break;
}
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Language %d", ii+1);
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree_format(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Language %d", ii+1);
proto_tree_add_item(atree, hf_ndps_language_id, tvb, foffset, 4, ENC_BIG_ENDIAN);
foffset += 4;
proto_item_set_end(aitem, tvb, foffset);
@@ -8317,16 +8045,14 @@ dissect_ndps_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *ndps_tree, int
number_of_items=tvb_get_ntohl(tvb, foffset);
proto_tree_add_uint(ndps_tree, hf_ndps_item_count, tvb, foffset, 4, number_of_items);
foffset += 4;
- aitem = proto_tree_add_text(ndps_tree, tvb, foffset, -1, "Failed Items");
- atree = proto_item_add_subtree(aitem, ett_ndps);
+ atree = proto_tree_add_subtree(ndps_tree, tvb, foffset, -1, ett_ndps, &aitem, "Failed Items");
for (ii = 0; ii < number_of_items; ii++ )
{
if (ii >= NDPS_MAX_ITEMS) {
- proto_tree_add_text(atree, tvb, foffset, -1, "[Truncated]");
+ expert_add_info(pinfo, aitem, &ei_ndps_truncated);
break;
}
- bitem = proto_tree_add_text(atree, tvb, foffset, -1, "Item %d", ii+1);
- btree = proto_item_add_subtree(bitem, ett_ndps);
+ btree = proto_tree_add_subtree_format(atree, tvb, foffset, -1, ett_ndps, &bitem, "Item %d", ii+1);
length=tvb_get_ntohl(tvb, foffset);
length_remaining = tvb_length_remaining(tvb, foffset);
if(length_remaining == -1 || (guint32) length_remaining < length)
@@ -9804,6 +9530,7 @@ proto_register_ndps(void)
{ &ei_ndps_problem_type, { "ndps.problem_type.expert", PI_RESPONSE_CODE, PI_NOTE, "Fault", EXPFILL }},
{ &ei_ndps_return_code, { "ndps.return_code.expert", PI_RESPONSE_CODE, PI_NOTE, "Fault", EXPFILL }},
{ &ei_ndps_rpc_acc_stat, { "ndps.rpc_acc_stat.expert", PI_RESPONSE_CODE, PI_NOTE, "Fault", EXPFILL }},
+ { &ei_ndps_truncated, { "ndps.truncated", PI_PROTOCOL, PI_WARN, "Truncated", EXPFILL }},
};
module_t *ndps_module;