aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-mbim.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2013-12-24 00:20:09 +0000
committerGuy Harris <guy@alum.mit.edu>2013-12-24 00:20:09 +0000
commit0d7a48a8bfb2b9f954d0f6b37172bb28e0239a92 (patch)
tree1ed37fc09109411f1581cc5ae34a32b28a5d80cc /epan/dissectors/packet-mbim.c
parent57c6542aaf3e0c60a46dd60f9d0c6a814928bc8d (diff)
Add a ENC_3GPP_TS_23_038 encoding, for the standard SMS alphabet in a
bit-packed string, and use it in some places. svn path=/trunk/; revision=54428
Diffstat (limited to 'epan/dissectors/packet-mbim.c')
-rw-r--r--epan/dissectors/packet-mbim.c26
1 files changed, 6 insertions, 20 deletions
diff --git a/epan/dissectors/packet-mbim.c b/epan/dissectors/packet-mbim.c
index 2addee5300..b1a6ec1963 100644
--- a/epan/dissectors/packet-mbim.c
+++ b/epan/dissectors/packet-mbim.c
@@ -3069,10 +3069,8 @@ mbim_dissect_set_ussd(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint
proto_tree *subtree;
gint base_offset;
guint32 ussd_payload_offset, ussd_payload_length;
- guint8 encoding, *ussd;
+ guint8 encoding;
tvbuff_t *ussd_tvb;
- int out_len;
- gchar *utf8_text;
base_offset = offset;
proto_tree_add_item(tree, hf_mbim_set_ussd_ussd_action, tvb, offset, 4, ENC_LITTLE_ENDIAN);
@@ -3095,13 +3093,8 @@ mbim_dissect_set_ussd(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint
switch (encoding) {
case SMS_ENCODING_7BIT:
case SMS_ENCODING_7BIT_LANG:
- ussd = (guint8*)wmem_alloc(wmem_packet_scope(), ussd_payload_length+1);
- out_len = gsm_sms_char_7bit_unpack(0, ussd_payload_length, ussd_payload_length,
- tvb_get_ptr(ussd_tvb, 0, ussd_payload_length), ussd);
- ussd[out_len] = '\0';
- utf8_text = gsm_sms_chars_to_utf8(ussd, out_len);
- proto_tree_add_string(subtree, hf_mbim_set_ussd_ussd_payload_text,
- ussd_tvb, 0, ussd_payload_length, utf8_text);
+ proto_tree_add_item(subtree, hf_mbim_set_ussd_ussd_payload_text,
+ ussd_tvb, 0, ussd_payload_length, ENC_3GPP_TS_23_038|ENC_NA);
break;
case SMS_ENCODING_8BIT:
/* XXX - ASCII, or some extended ASCII? */
@@ -3126,10 +3119,8 @@ mbim_dissect_ussd_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint
proto_tree *subtree;
gint base_offset;
guint32 ussd_payload_offset, ussd_payload_length;
- guint8 encoding, *ussd;
+ guint8 encoding;
tvbuff_t *ussd_tvb;
- int out_len;
- gchar *utf8_text;
base_offset = offset;
proto_tree_add_item(tree, hf_mbim_ussd_info_ussd_response, tvb, offset, 4, ENC_LITTLE_ENDIAN);
@@ -3154,13 +3145,8 @@ mbim_dissect_ussd_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint
switch (encoding) {
case SMS_ENCODING_7BIT:
case SMS_ENCODING_7BIT_LANG:
- ussd = (guint8*)wmem_alloc(wmem_packet_scope(), ussd_payload_length+1);
- out_len = gsm_sms_char_7bit_unpack(0, ussd_payload_length, ussd_payload_length,
- tvb_get_ptr(ussd_tvb, 0, ussd_payload_length), ussd);
- ussd[out_len] = '\0';
- utf8_text = gsm_sms_chars_to_utf8(ussd, out_len);
- proto_tree_add_string(subtree, hf_mbim_ussd_info_ussd_payload_text,
- ussd_tvb, 0, ussd_payload_length, utf8_text);
+ proto_tree_add_item(subtree, hf_mbim_ussd_info_ussd_payload_text,
+ ussd_tvb, 0, ussd_payload_length, ENC_3GPP_TS_23_038|ENC_NA);
break;
case SMS_ENCODING_8BIT:
/* XXX - ASCII, or some extended ASCII? */