summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/isi-call.c3
-rw-r--r--src/isi-commgr.c3
-rw-r--r--src/isi-gpds.c3
-rw-r--r--src/isi-gps.c10
-rw-r--r--src/isi-gss.c3
-rw-r--r--src/isi-light.c3
-rw-r--r--src/isi-mtc.c3
-rw-r--r--src/isi-nameservice.c6
-rw-r--r--src/isi-network.c3
-rw-r--r--src/isi-phoneinfo.c3
-rw-r--r--src/isi-pipe.c3
-rw-r--r--src/isi-radiosettings.c3
-rw-r--r--src/isi-selftest.c3
-rw-r--r--src/isi-sim.c5
-rw-r--r--src/isi-simauth.c3
-rw-r--r--src/isi-sms.c24
-rw-r--r--src/isi-ss.c3
-rw-r--r--src/packet-isi.c4
18 files changed, 34 insertions, 54 deletions
diff --git a/src/isi-call.c b/src/isi-call.c
index 98a4839..91e20ca 100644
--- a/src/isi-call.c
+++ b/src/isi-call.c
@@ -420,8 +420,7 @@ static void dissect_isi_call(tvbuff_t *tvb, packet_info *pinfo, proto_item *isit
guint8 cmd;
if(isitree) {
- item = proto_tree_add_text(isitree, tvb, 0, -1, "Payload");
- tree = proto_item_add_subtree(item, ett_isi_msg);
+ tree = proto_tree_add_subtree_format(isitree, tvb, 0, -1, ett_isi_msg, &item, "Payload");
proto_tree_add_item(tree, hf_isi_call_cmd, tvb, 0, 1, FALSE);
cmd = tvb_get_guint8(tvb, 0);
diff --git a/src/isi-commgr.c b/src/isi-commgr.c
index c28245d..fc57ed2 100644
--- a/src/isi-commgr.c
+++ b/src/isi-commgr.c
@@ -80,8 +80,7 @@ static void dissect_isi_commgr(tvbuff_t *tvb, packet_info *pinfo, proto_item *is
guint8 cmd;
if(isitree) {
- item = proto_tree_add_text(isitree, tvb, 0, -1, "Payload");
- tree = proto_item_add_subtree(item, ett_isi_msg);
+ tree = proto_tree_add_subtree_format(isitree, tvb, 0, -1, ett_isi_msg, &item, "Payload");
proto_tree_add_item(tree, hf_isi_commgr_cmd, tvb, 0, 1, FALSE);
cmd = tvb_get_guint8(tvb, 0);
diff --git a/src/isi-gpds.c b/src/isi-gpds.c
index ef6cfba..cff6f0c 100644
--- a/src/isi-gpds.c
+++ b/src/isi-gpds.c
@@ -772,8 +772,7 @@ static void dissect_isi_gpds(tvbuff_t *tvb, packet_info *pinfo, proto_item *isit
guint8 cmd;
if(isitree) {
- item = proto_tree_add_text(isitree, tvb, 0, -1, "Payload");
- tree = proto_item_add_subtree(item, ett_isi_msg);
+ tree = proto_tree_add_subtree_format(isitree, tvb, 0, -1, ett_isi_msg, &item, "Payload");
proto_tree_add_item(tree, hf_isi_gpds_cmd, tvb, 0, 1, FALSE);
cmd = tvb_get_guint8(tvb, 0);
diff --git a/src/isi-gps.c b/src/isi-gps.c
index c262cf6..1e4acfd 100644
--- a/src/isi-gps.c
+++ b/src/isi-gps.c
@@ -543,8 +543,8 @@ static size_t dissect_isi_location_subpkg(tvbuff_t *tvb, packet_info *pinfo, pro
guint16 sptype = tvb_get_ntohs(tvb, offset+0);
guint16 splen = tvb_get_ntohs(tvb, offset+2);
- proto_item *subitem = proto_tree_add_text(tree, tvb, offset, splen, "Subpacket (%s)", val_to_str(sptype, isi_location_sub_id, "unknown: 0x%x"));
- proto_tree *subtree = proto_item_add_subtree(subitem, ett_isi_msg);
+ proto_item *subitem;
+ proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, offset, splen, ett_isi_msg, &subitem, "Subpacket (%s)", val_to_str(sptype, isi_location_sub_id, "unknown: 0x%x"));
proto_tree_add_item(subtree, hf_isi_location_sub_type, tvb, offset+0, 2, FALSE);
proto_tree_add_item(subtree, hf_isi_location_sub_len, tvb, offset+2, 2, FALSE);
@@ -646,8 +646,7 @@ static size_t dissect_isi_location_subpkg(tvbuff_t *tvb, packet_info *pinfo, pro
int sat;
for(sat = 0; sat < satellites ; sat++) {
int pos = offset+4+(sat*SAT_PKG_LEN);
- proto_item *satitem = proto_tree_add_text(subtree, tvb, pos, SAT_PKG_LEN, "Satellite %d", sat);
- proto_tree *sattree = proto_item_add_subtree(satitem, ett_isi_msg);
+ proto_tree *sattree = proto_tree_add_subtree_format(subtree, tvb, offset, splen, ett_isi_msg, NULL, "Satellite %d", sat);
float signal_strength = tvb_get_ntohs(tvb, pos+3) / 100.0;
float elevation = tvb_get_ntohs(tvb, pos+6) / 100.0;
@@ -692,8 +691,7 @@ static void dissect_isi_location(tvbuff_t *tvb, packet_info *pinfo, proto_item *
int i;
if(isitree) {
- item = proto_tree_add_text(isitree, tvb, 0, -1, "Payload");
- tree = proto_item_add_subtree(item, ett_isi_msg);
+ tree = proto_tree_add_subtree_format(isitree, tvb, 0, -1, ett_isi_msg, &item, "Payload");
proto_tree_add_item(tree, hf_isi_location_cmd, tvb, 0, 1, FALSE);
cmd = tvb_get_guint8(tvb, 0);
diff --git a/src/isi-gss.c b/src/isi-gss.c
index 9e977bf..aaab017 100644
--- a/src/isi-gss.c
+++ b/src/isi-gss.c
@@ -101,8 +101,7 @@ static void dissect_isi_gss(tvbuff_t *tvb, packet_info *pinfo, proto_item *isitr
guint8 cmd, code;
if(isitree) {
- item = proto_tree_add_text(isitree, tvb, 0, -1, "Payload");
- tree = proto_item_add_subtree(item, ett_isi_msg);
+ tree = proto_tree_add_subtree_format(isitree, tvb, 0, -1, ett_isi_msg, &item, "Payload");
proto_tree_add_item(tree, hf_isi_gss_message_id, tvb, 0, 1, FALSE);
cmd = tvb_get_guint8(tvb, 0);
diff --git a/src/isi-light.c b/src/isi-light.c
index 212355e..c65e5c8 100644
--- a/src/isi-light.c
+++ b/src/isi-light.c
@@ -121,8 +121,7 @@ static void dissect_isi_light(tvbuff_t *tvb, packet_info *pinfo, proto_item *isi
guint8 cmd;
if(isitree) {
- item = proto_tree_add_text(isitree, tvb, 0, -1, "Payload");
- tree = proto_item_add_subtree(item, ett_isi_msg);
+ tree = proto_tree_add_subtree_format(isitree, tvb, 0, -1, ett_isi_msg, &item, "Payload");
proto_tree_add_item(tree, hf_isi_light_cmd, tvb, 0, 1, FALSE);
cmd = tvb_get_guint8(tvb, 0);
diff --git a/src/isi-mtc.c b/src/isi-mtc.c
index 4306ffa..75300f3 100644
--- a/src/isi-mtc.c
+++ b/src/isi-mtc.c
@@ -296,8 +296,7 @@ static void dissect_isi_mtc(tvbuff_t *tvb, packet_info *pinfo, proto_item *isitr
guint8 cmd;
if(isitree) {
- item = proto_tree_add_text(isitree, tvb, 0, -1, "Payload");
- tree = proto_item_add_subtree(item, ett_isi_msg);
+ tree = proto_tree_add_subtree_format(isitree, tvb, 0, -1, ett_isi_msg, &item, "Payload");
proto_tree_add_item(tree, hf_isi_mtc_cmd, tvb, 0, 1, FALSE);
cmd = tvb_get_guint8(tvb, 0);
diff --git a/src/isi-nameservice.c b/src/isi-nameservice.c
index 53367b8..0d98066 100644
--- a/src/isi-nameservice.c
+++ b/src/isi-nameservice.c
@@ -98,8 +98,7 @@ void proto_register_isi_nameservice(void) {
static void dissect_isi_nameservice_name(guint32 count, guint32 offset, tvbuff_t *tvb, packet_info *pinfo, proto_item *tree) {
guint32 nr;
for(nr = 0; nr < count; nr++, count--) {
- proto_item *subitem = proto_tree_add_text(tree, tvb, offset, 0x08, "Entry %d", nr + 1);
- proto_tree *subtree = proto_item_add_subtree(subitem, ett_isi_msg);
+ proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, offset, 0x08, ett_isi_msg, NULL, "Entry %d", nr + 1);;
proto_tree_add_item(subtree, hf_isi_nameservice_name, tvb, 3, 4, FALSE);
proto_tree_add_item(subtree, hf_isi_nameservice_dev, tvb, 8, 1, FALSE);
proto_tree_add_item(subtree, hf_isi_nameservice_obj, tvb, 9, 1, FALSE);
@@ -114,8 +113,7 @@ static void dissect_isi_nameservice(tvbuff_t *tvb, packet_info *pinfo, proto_ite
guint8 cmd;
if(isitree) {
- item = proto_tree_add_text(isitree, tvb, 0, -1, "Payload");
- tree = proto_item_add_subtree(item, ett_isi_msg);
+ tree = proto_tree_add_subtree_format(isitree, tvb, 0, -1, ett_isi_msg, &item, "Payload");
proto_tree_add_item(tree, hf_isi_nameservice_cmd, tvb, 0, 1, FALSE);
cmd = tvb_get_guint8(tvb, 0);
diff --git a/src/isi-network.c b/src/isi-network.c
index f06102c..fe6c186 100644
--- a/src/isi-network.c
+++ b/src/isi-network.c
@@ -598,8 +598,7 @@ static void dissect_isi_network(tvbuff_t *tvb, packet_info *pinfo, proto_item *i
guint8 cmd;
if(isitree) {
- item = proto_tree_add_text(isitree, tvb, 0, -1, "Payload");
- tree = proto_item_add_subtree(item, ett_isi_msg);
+ tree = proto_tree_add_subtree_format(isitree, tvb, 0, -1, ett_isi_msg, &item, "Payload");
proto_tree_add_item(tree, hf_isi_network_cmd, tvb, 0, 1, FALSE);
cmd = tvb_get_guint8(tvb, 0);
diff --git a/src/isi-phoneinfo.c b/src/isi-phoneinfo.c
index c689d58..4eb203e 100644
--- a/src/isi-phoneinfo.c
+++ b/src/isi-phoneinfo.c
@@ -461,8 +461,7 @@ static void dissect_isi_phoneinfo(tvbuff_t *tvb, packet_info *pinfo, proto_item
guint8 cmd;
if(isitree) {
- item = proto_tree_add_text(isitree, tvb, 0, -1, "Payload");
- tree = proto_item_add_subtree(item, ett_isi_msg);
+ tree = proto_tree_add_subtree_format(isitree, tvb, 0, -1, ett_isi_msg, &item, "Payload");
proto_tree_add_item(tree, hf_isi_phoneinfo_cmd, tvb, 0, 1, FALSE);
cmd = tvb_get_guint8(tvb, 0);
diff --git a/src/isi-pipe.c b/src/isi-pipe.c
index 6c2ae8a..aa70fae 100644
--- a/src/isi-pipe.c
+++ b/src/isi-pipe.c
@@ -230,8 +230,7 @@ static void dissect_isi_pipe(tvbuff_t *tvb, packet_info *pinfo, proto_item *isit
guint8 cmd;
if(isitree) {
- item = proto_tree_add_text(isitree, tvb, 0, -1, "Payload");
- tree = proto_item_add_subtree(item, ett_isi_msg);
+ tree = proto_tree_add_subtree_format(isitree, tvb, 0, -1, ett_isi_msg, &item, "Payload");
proto_tree_add_item(tree, hf_isi_pipe_cmd, tvb, 0, 1, FALSE);
cmd = tvb_get_guint8(tvb, 0);
diff --git a/src/isi-radiosettings.c b/src/isi-radiosettings.c
index e8ec36b..647fac5 100644
--- a/src/isi-radiosettings.c
+++ b/src/isi-radiosettings.c
@@ -63,8 +63,7 @@ static void dissect_isi_radiosettings(tvbuff_t *tvb, packet_info *pinfo, proto_i
guint8 cmd;
if(isitree) {
- item = proto_tree_add_text(isitree, tvb, 0, -1, "Payload");
- tree = proto_item_add_subtree(item, ett_isi_msg);
+ tree = proto_tree_add_subtree_format(isitree, tvb, 0, -1, ett_isi_msg, &item, "Payload");
proto_tree_add_item(tree, hf_isi_radiosettings_cmd, tvb, 0, 1, FALSE);
cmd = tvb_get_guint8(tvb, 0);
diff --git a/src/isi-selftest.c b/src/isi-selftest.c
index fd68a97..2a0b5cf 100644
--- a/src/isi-selftest.c
+++ b/src/isi-selftest.c
@@ -311,8 +311,7 @@ static void dissect_isi_selftest(tvbuff_t *tvb, packet_info *pinfo, proto_item *
guint8 cmd;
if(isitree) {
- item = proto_tree_add_text(isitree, tvb, 0, -1, "Payload");
- tree = proto_item_add_subtree(item, ett_isi_msg);
+ tree = proto_tree_add_subtree_format(isitree, tvb, 0, -1, ett_isi_msg, &item, "Payload");
proto_tree_add_item(tree, hf_isi_selftest_cmd, tvb, 0, 1, FALSE);
cmd = tvb_get_guint8(tvb, 0);
diff --git a/src/isi-sim.c b/src/isi-sim.c
index d135302..e00fa19 100644
--- a/src/isi-sim.c
+++ b/src/isi-sim.c
@@ -237,8 +237,7 @@ static void dissect_isi_sim(tvbuff_t *tvb, packet_info *pinfo, proto_item *isitr
guint8 cmd, code;
if(isitree) {
- item = proto_tree_add_text(isitree, tvb, 0, -1, "Payload");
- tree = proto_item_add_subtree(item, ett_isi_msg);
+ tree = proto_tree_add_subtree_format(isitree, tvb, 0, -1, ett_isi_msg, &item, "Payload");
proto_tree_add_item(tree, hf_isi_sim_message_id, tvb, 0, 1, FALSE);
cmd = tvb_get_guint8(tvb, 0);
@@ -265,7 +264,7 @@ static void dissect_isi_sim(tvbuff_t *tvb, packet_info *pinfo, proto_item *isitr
code = tvb_get_guint8(tvb, 1);
switch(code) {
case 0x2F:
- dissect_e212_mcc_mnc(tvb, pinfo, tree, 3, 1);
+ dissect_e212_mcc_mnc(tvb, pinfo, tree, 3, E212_NONE, TRUE);
col_set_str(pinfo->cinfo, COL_INFO, "Network Information Response: Home PLMN");
break;
default:
diff --git a/src/isi-simauth.c b/src/isi-simauth.c
index 64e87c4..c8c38e3 100644
--- a/src/isi-simauth.c
+++ b/src/isi-simauth.c
@@ -136,8 +136,7 @@ static void dissect_isi_sim_auth(tvbuff_t *tvb, packet_info *pinfo, proto_item *
guint8 cmd, code;
if(isitree) {
- item = proto_tree_add_text(isitree, tvb, 0, -1, "Payload");
- tree = proto_item_add_subtree(item, ett_isi_msg);
+ tree = proto_tree_add_subtree_format(isitree, tvb, 0, -1, ett_isi_msg, &item, "Payload");
proto_tree_add_item(tree, hf_isi_sim_auth_cmd, tvb, 0, 1, FALSE);
cmd = tvb_get_guint8(tvb, 0);
diff --git a/src/isi-sms.c b/src/isi-sms.c
index 5ee7b7d..5bd0cce 100644
--- a/src/isi-sms.c
+++ b/src/isi-sms.c
@@ -214,6 +214,7 @@ static gint32 hf_isi_sms_addr_gsm0340_len = -1;
static gint32 hf_isi_sms_addr_gsm0340_fmt = -1;
static gint32 hf_isi_sms_data_bytes = -1;
static gint32 hf_isi_sms_data_chars = -1;
+static gint32 hf_isi_sms_message = -1;
static gint32 hf_isi_sms_parameters = -1;
static gint32 hf_isi_sms_reference = -1;
static gint32 hf_isi_sms_udh_len = -1;
@@ -282,6 +283,8 @@ void proto_register_isi_sms(void) {
{ "Common Data Bytes", "isi.sms.data.bytes", FT_UINT8, BASE_HEX, NULL, 0x0, "Common Data Bytes", HFILL }},
{ &hf_isi_sms_data_chars,
{ "Common Data Characters", "isi.sms.data.chars", FT_UINT8, BASE_HEX, NULL, 0x0, "Common Data Characters", HFILL }},
+ { &hf_isi_sms_message,
+ { "Message", "isi.sms.message", FT_STRING, BASE_NONE, NULL, 0x0, "SMS Message", HFILL }},
{ &hf_isi_sms_parameters,
{ "Message Parameters", "isi.sms.tp.type", FT_UINT8, BASE_HEX, isi_sms_tpdu_type, 0x0, "TPDU Type", HFILL }},
{ &hf_isi_sms_reference,
@@ -379,8 +382,7 @@ static void dissect_isi_sms_data(tvbuff_t *tvb, packet_info *pinfo, proto_item *
if(udhi) {
udh_size = tvb_get_guint8(tvb, offset+2)+1; /* UDH Length*/
- proto_item *subitem = proto_tree_add_text(tree, tvb, offset+2, udh_size, "User Data Header");
- proto_tree *subtree = proto_item_add_subtree(subitem, ett_isi_msg);
+ proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, offset+2, udh_size, ett_isi_msg, NULL, "User Data Header");
proto_tree_add_item(subtree, hf_isi_sms_udh_len, tvb, offset+2, 1, FALSE);
@@ -388,8 +390,8 @@ static void dissect_isi_sms_data(tvbuff_t *tvb, packet_info *pinfo, proto_item *
guint8 udh_iei = tvb_get_guint8(tvb, offset+2+b); /* Information Element Identifier */
guint8 udh_sub_len = tvb_get_guint8(tvb, offset+2+b+1)+2; /* subpkg len (excluding iei + len) */
- proto_item *elesubitem = proto_tree_add_text(subtree, tvb, offset+2+b, udh_sub_len, "Information Element");
- proto_tree *elesubtree = proto_item_add_subtree(elesubitem, ett_isi_msg);
+ proto_item *elesubitem;
+ proto_tree *elesubtree = proto_tree_add_subtree_format(subtree, tvb, offset+2+b, udh_sub_len, ett_isi_msg, &elesubitem, "Information Element");
dissect_isi_sms_iei(tvb, pinfo, elesubitem, elesubtree, offset+2+b, udh_iei, udh_sub_len);
@@ -447,7 +449,7 @@ static void dissect_isi_sms_data(tvbuff_t *tvb, packet_info *pinfo, proto_item *
/* decode character set */
char *message = sms_translate_charset(msg);
free(msg);
- proto_tree_add_text(tree, tvb, offset+2+udh_size, bytes, "Message: %s", message);
+ proto_tree_add_string(tree, hf_isi_sms_message, tvb, offset+2+udh_size, bytes, message);
}
static void dissect_isi_sms_addr(tvbuff_t *tvb, packet_info *pinfo, proto_item *item, proto_tree *tree, guint32 offset) {
@@ -549,8 +551,7 @@ static void dissect_isi_sms_submit(tvbuff_t *tvb, packet_info *pinfo, proto_item
guint8 sptype = tvb_get_guint8(tvb, offset+0);
guint8 splen = tvb_get_guint8(tvb, offset+1);
- proto_item *subitem = proto_tree_add_text(tree, tvb, offset, splen, "Sub-Subpacket (%s)", val_to_str(sptype, isi_sms_sub_id, "unknown: 0x%x"));
- proto_tree *subtree = proto_item_add_subtree(subitem, ett_isi_msg);
+ proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, offset, splen, ett_isi_msg, NULL, "Sub-Subpacket (%s)", val_to_str(sptype, isi_sms_sub_id, "unknown: 0x%x"));
proto_tree_add_item(subtree, hf_isi_sms_sub_sub_type, tvb, offset+0, 1, FALSE);
proto_tree_add_item(subtree, hf_isi_sms_sub_sub_len, tvb, offset+1, 1, FALSE);
@@ -578,8 +579,7 @@ static void dissect_isi_sms(tvbuff_t *tvb, packet_info *pinfo, proto_item *isitr
size_t offset;
if(isitree) {
- item = proto_tree_add_text(isitree, tvb, 0, -1, "Payload");
- tree = proto_item_add_subtree(item, ett_isi_msg);
+ tree = proto_tree_add_subtree_format(isitree, tvb, 0, -1, ett_isi_msg, &item, "Payload");
proto_tree_add_item(tree, hf_isi_sms_message_id, tvb, 0, 1, FALSE);
cmd = tvb_get_guint8(tvb, 0);
@@ -601,8 +601,7 @@ static void dissect_isi_sms(tvbuff_t *tvb, packet_info *pinfo, proto_item *isitr
guint8 sptype = tvb_get_guint8(tvb, offset+0);
guint8 splen = tvb_get_guint8(tvb, offset+1);
- proto_item *subitem = proto_tree_add_text(tree, tvb, offset, splen, "Subpacket (%s)", val_to_str(sptype, isi_sms_sub_id, "unknown: 0x%x"));
- proto_tree *subtree = proto_item_add_subtree(subitem, ett_isi_msg);
+ proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, offset, splen, ett_isi_msg, NULL, "Sub-Subpacket (%s)", val_to_str(sptype, isi_sms_sub_id, "unknown: 0x%x"));
proto_tree_add_item(subtree, hf_isi_sms_sub_type, tvb, offset+0, 1, FALSE);
proto_tree_add_item(subtree, hf_isi_sms_sub_len, tvb, offset+1, 1, FALSE);
@@ -631,8 +630,7 @@ static void dissect_isi_sms(tvbuff_t *tvb, packet_info *pinfo, proto_item *isitr
guint8 sptype = tvb_get_guint8(tvb, offset+0);
guint8 splen = tvb_get_guint8(tvb, offset+1);
- proto_item *subitem = proto_tree_add_text(tree, tvb, offset, splen, "Subpacket (%s)", val_to_str(sptype, isi_sms_sub_id, "unknown: 0x%x"));
- proto_tree *subtree = proto_item_add_subtree(subitem, ett_isi_msg);
+ proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, offset, splen, ett_isi_msg, NULL, "Sub-Subpacket (%s)", val_to_str(sptype, isi_sms_sub_id, "unknown: 0x%x"));
proto_tree_add_item(subtree, hf_isi_sms_sub_type, tvb, offset+0, 1, FALSE);
proto_tree_add_item(subtree, hf_isi_sms_sub_len, tvb, offset+1, 1, FALSE);
diff --git a/src/isi-ss.c b/src/isi-ss.c
index c98f031..b143020 100644
--- a/src/isi-ss.c
+++ b/src/isi-ss.c
@@ -158,8 +158,7 @@ static void dissect_isi_ss(tvbuff_t *tvb, packet_info *pinfo, proto_item *isitre
guint8 cmd, code;
if(isitree) {
- item = proto_tree_add_text(isitree, tvb, 0, -1, "Payload");
- tree = proto_item_add_subtree(item, ett_isi_msg);
+ tree = proto_tree_add_subtree_format(isitree, tvb, 0, -1, ett_isi_msg, &item, "Payload");
proto_tree_add_item(tree, hf_isi_ss_message_id, tvb, 0, 1, FALSE);
cmd = tvb_get_guint8(tvb, 0);
diff --git a/src/packet-isi.c b/src/packet-isi.c
index 0726227..6c11baa 100644
--- a/src/packet-isi.c
+++ b/src/packet-isi.c
@@ -474,8 +474,8 @@ void dissect_isi_subpacket(gint32 hf_sub_type, guint8 offset, tvbuff_t *tvb,
guint8 sptype = tvb_get_guint8(tvb, offset+0x00);
guint8 splen = tvb_get_guint8(tvb, offset+0x01);
- proto_item *subitem = proto_tree_add_text(tree, tvb, offset, splen, "Subpacket #%d", i+1);
- proto_tree *subtree = proto_item_add_subtree(subitem, ett_isi_msg);
+ proto_item *subitem;
+ proto_tree *subtree = proto_tree_add_subtree_format(tree, tvb, offset, splen, ett_isi_msg, &subitem, "Subpacket #%d", i+1);
proto_tree_add_item(subtree, hf_sub_type, tvb, offset+0x00, 1, FALSE);
proto_tree_add_item(subtree, hf_isi_sub_length, tvb, offset+0x01, 1, FALSE);