summaryrefslogtreecommitdiffstats
path: root/src/isi-sms.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/isi-sms.c')
-rw-r--r--src/isi-sms.c24
1 files changed, 11 insertions, 13 deletions
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);