diff options
author | Denis Kenzior <denkenz@gmail.com> | 2010-09-15 11:58:00 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-09-15 11:58:00 -0500 |
commit | a0d476281dda0cbcd416b64637f3efc3a7ff1bb6 (patch) | |
tree | bc722318324df8823a7b56e1492f05b1cd352221 /src | |
parent | 47ddc4b70d9015a4fc9b22437d163446cc901027 (diff) | |
download | ofono-a0d476281dda0cbcd416b64637f3efc3a7ff1bb6.tar.bz2 |
stkutil: Don't include USSD text unless needed
Diffstat (limited to 'src')
-rw-r--r-- | src/stkutil.c | 14 | ||||
-rw-r--r-- | src/stkutil.h | 1 |
2 files changed, 12 insertions, 3 deletions
diff --git a/src/stkutil.c b/src/stkutil.c index 3cfe06ae..cdd6b4e9 100644 --- a/src/stkutil.c +++ b/src/stkutil.c @@ -4177,11 +4177,19 @@ static gboolean build_dataobj_ussd_text(struct stk_tlv_builder *tlv, const struct stk_ussd_text *text = data; unsigned char tag = STK_DATA_OBJECT_TYPE_TEXT; - stk_tlv_builder_open_container(tlv, cr, tag, TRUE); + if (text->has_text == FALSE) + return TRUE; + + if (stk_tlv_builder_open_container(tlv, cr, tag, TRUE) != TRUE) + return FALSE; if (text->len > 0) { - stk_tlv_builder_append_byte(tlv, text->dcs); - stk_tlv_builder_append_bytes(tlv, text->text, text->len); + if (stk_tlv_builder_append_byte(tlv, text->dcs) != TRUE) + return FALSE; + + if (stk_tlv_builder_append_bytes(tlv, text->text, + text->len) != TRUE) + return FALSE; } return stk_tlv_builder_close_container(tlv); diff --git a/src/stkutil.h b/src/stkutil.h index c432df87..36b18f0c 100644 --- a/src/stkutil.h +++ b/src/stkutil.h @@ -1377,6 +1377,7 @@ struct stk_answer_text { }; struct stk_ussd_text { + ofono_bool_t has_text; const unsigned char *text; int dcs; int len; |