Hi Jeevaka,
On 09/09/2010 02:06 PM, Jeevaka Badrappan wrote:
---
src/stkutil.c | 23 +++++++++++++++++++++++
1 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/src/stkutil.c b/src/stkutil.c
index ae4cc32..c69ebba 100644
--- a/src/stkutil.c
+++ b/src/stkutil.c
@@ -4170,6 +4170,22 @@ static gboolean build_dataobj_text(struct stk_tlv_builder *tlv,
return stk_tlv_builder_close_container(tlv);
}
+/* Defined in TS 102.223 Section 8.15 - USSD specific case*/
+static gboolean build_dataobj_ussd_text(struct stk_tlv_builder *tlv,
+ const void *data, gboolean cr)
+{
+ const struct stk_ussd_text *text = data;
+ unsigned char tag = STK_DATA_OBJECT_TYPE_TEXT;
+
+ if (!text->text)
+ return TRUE;
This still does not handle empty data. We should do something like:
open_container()
if (text->len > 0) {
append_byte(dcs);
append_bytes(text);
}
close_container()
+
+ return stk_tlv_builder_open_container(tlv, cr, tag, TRUE) &&
+ stk_tlv_builder_append_byte(tlv, text->dcs) &&
+ stk_tlv_builder_append_bytes(tlv, text->text, text->len) &&
+ stk_tlv_builder_close_container(tlv);
+}
+
Regards,
-Denis