Hi,
I "stole" this patch from Andrew, and handled some more cases in send ss and
send ussd. As he is off these days and I need this patch for my code, so I dig it out and
resubmit here.
I declare Andrew still has the copyright of this patch :)
-----Original Message-----
From: Yang Gu [mailto:gyagp0@gmail.com]
Sent: Friday, July 09, 2010 10:52 PM
To: ofono(a)ofono.org
Cc: Gu, Yang
Subject: [PATCH 3/3] Interpret "" Alpha Id as empty data object
There needs to be a way to distinguish between no alphaid and "empty
data object" because on some occasions they have different meanings. In
the Call Control envelope, no Alpha Identifier means the terminal can
inform the user about the call being modified by SIM while empty data
object means no hint should be given.
---
src/stkutil.c | 4 +++-
unit/test-stkutil.c | 18 ++++++++++++++----
2 files changed, 17 insertions(+), 5 deletions(-)
diff --git a/src/stkutil.c b/src/stkutil.c
index 94ff182..c45f985 100644
--- a/src/stkutil.c
+++ b/src/stkutil.c
@@ -297,8 +297,10 @@ static gboolean parse_dataobj_alpha_id(struct
comprehension_tlv_iter *iter,
char *utf8;
len = comprehension_tlv_iter_get_length(iter);
- if (len == 0)
+ if (len == 0) {
+ *alpha_id = g_try_malloc0(1);
return TRUE;
+ }
data = comprehension_tlv_iter_get_data(iter);
utf8 = sim_string_to_utf8(data, len);
diff --git a/unit/test-stkutil.c b/unit/test-stkutil.c
index 0b95265..dbd5b5e 100644
--- a/unit/test-stkutil.c
+++ b/unit/test-stkutil.c
@@ -4974,7 +4974,8 @@ static struct setup_menu_test setup_menu_data_112 = {
static struct setup_menu_test setup_menu_data_113 = {
.pdu = setup_menu_113,
.pdu_len = sizeof(setup_menu_113),
- .qualifier = 0x00
+ .qualifier = 0x00,
+ .alpha_id = ""
};
static struct setup_menu_test setup_menu_data_121 = {
@@ -5442,7 +5443,8 @@ static struct setup_menu_test setup_menu_data_712 = {
static struct setup_menu_test setup_menu_data_713 = {
.pdu = setup_menu_713,
.pdu_len = sizeof(setup_menu_713),
- .qualifier = 0x00
+ .qualifier = 0x00,
+ .alpha_id = ""
};
static struct setup_menu_test setup_menu_data_811 = {
@@ -5472,7 +5474,8 @@ static struct setup_menu_test setup_menu_data_812 = {
static struct setup_menu_test setup_menu_data_813 = {
.pdu = setup_menu_813,
.pdu_len = sizeof(setup_menu_813),
- .qualifier = 0x00
+ .qualifier = 0x00,
+ .alpha_id = ""
};
static struct setup_menu_test setup_menu_data_911 = {
@@ -5502,7 +5505,8 @@ static struct setup_menu_test setup_menu_data_912 = {
static struct setup_menu_test setup_menu_data_913 = {
.pdu = setup_menu_913,
.pdu_len = sizeof(setup_menu_913),
- .qualifier = 0x00
+ .qualifier = 0x00,
+ .alpha_id = ""
};
static struct setup_menu_test setup_menu_data_neg_1 = {
@@ -7957,6 +7961,7 @@ static struct send_sms_test send_sms_data_171 = {
.pdu = send_sms_171,
.pdu_len = sizeof(send_sms_171),
.qualifier = 0x00,
+ .alpha_id = "",
.gsm_sms = {
{
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
@@ -9474,6 +9479,7 @@ static struct send_ss_test send_ss_data_161 = {
.pdu = send_ss_161,
.pdu_len = sizeof(send_ss_161),
.qualifier = 0x00,
+ .alpha_id = "",
.ss = {
.ton_npi = 0x91,
.ss = "**21*01234567890123456789*10#"
@@ -10774,6 +10780,7 @@ static struct send_ussd_test send_ussd_data_181 = {
.pdu = send_ussd_181,
.pdu_len = sizeof(send_ussd_181),
.qualifier = 0x00,
+ .alpha_id = "",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890"
};
@@ -14621,6 +14628,7 @@ static struct run_at_command_test
run_at_command_data_121 = {
.pdu = run_at_command_121,
.pdu_len = sizeof(run_at_command_121),
.qualifier = 0x00,
+ .alpha_id = "",
.at_command = "AT+CGMI"
};
@@ -15319,6 +15327,7 @@ static struct send_dtmf_test send_dtmf_data_131 = {
.pdu = send_dtmf_131,
.pdu_len = sizeof(send_dtmf_131),
.qualifier = 0x00,
+ .alpha_id = "",
.dtmf = "1cccccccccc2"
};
@@ -16039,6 +16048,7 @@ static struct launch_browser_test
launch_browser_data_121 = {
.pdu = launch_browser_121,
.pdu_len = sizeof(launch_browser_121),
.qualifier = 0x00,
+ .alpha_id = "",
.url = "http://xxx.yyy.zzz"
};
--
1.7.0.4
Regards,
-Yang