From 8b0307a6218fccb9be5a1e099699b2e96c784392 Mon Sep 17 00:00:00 2001 From: Guillaume Lucas Date: Tue, 30 Nov 2010 13:21:50 +0000 Subject: stk: Add busy error for the display text command According to the sequence 1.2 of the ETSI TS 102 384 a busy screen error should be returns for the display text proactive command when the ME is not able to display the text. --- src/stkagent.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/stkagent.c') diff --git a/src/stkagent.c b/src/stkagent.c index 83150400..e1a6f483 100644 --- a/src/stkagent.c +++ b/src/stkagent.c @@ -41,6 +41,7 @@ enum allowed_error { ALLOWED_ERROR_GO_BACK = 0x1, ALLOWED_ERROR_TERMINATE = 0x2, + ALLOWED_ERROR_BUSY = 0x4, }; struct stk_agent { @@ -62,6 +63,7 @@ struct stk_agent { #define ERROR_PREFIX OFONO_SERVICE ".Error" #define GOBACK_ERROR ERROR_PREFIX ".GoBack" #define TERMINATE_ERROR ERROR_PREFIX ".EndSession" +#define BUSY_ERROR ERROR_PREFIX ".Busy" static void stk_agent_send_noreply(struct stk_agent *agent, const char *method) { @@ -194,6 +196,12 @@ static int check_error(struct stk_agent *agent, DBusMessage *reply, goto out; } + if ((allowed_errors & ALLOWED_ERROR_BUSY) && + g_str_equal(err.name, BUSY_ERROR)) { + *out_result = STK_AGENT_RESULT_BUSY; + goto out; + } + result = -EINVAL; out: @@ -376,8 +384,8 @@ static void display_text_cb(DBusPendingCall *call, void *data) gboolean remove_agent; if (check_error(agent, reply, - ALLOWED_ERROR_GO_BACK | ALLOWED_ERROR_TERMINATE, - &result) == -EINVAL) { + ALLOWED_ERROR_GO_BACK | ALLOWED_ERROR_TERMINATE | + ALLOWED_ERROR_BUSY, &result) == -EINVAL) { remove_agent = TRUE; goto error; } -- cgit v1.2.3