summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/stk.c27
1 files changed, 2 insertions, 25 deletions
diff --git a/src/stk.c b/src/stk.c
index c86cbfbe..8214b659 100644
--- a/src/stk.c
+++ b/src/stk.c
@@ -128,6 +128,7 @@ static int stk_respond(struct ofono_stk *stk, struct stk_response *rsp,
stk_command_free(stk->pending_cmd);
stk->pending_cmd = NULL;
stk->cancel_cmd = NULL;
+ stk->respond_on_exit = FALSE;
stk->driver->terminal_response(stk, tlv_len, tlv, cb, stk);
@@ -477,10 +478,8 @@ static void user_termination_cb(enum stk_agent_result result, void *user_data)
{
struct ofono_stk *stk = user_data;
- if (result == STK_AGENT_RESULT_TERMINATE) {
- stk->respond_on_exit = FALSE;
+ if (result == STK_AGENT_RESULT_TERMINATE)
send_simple_response(stk, STK_RESULT_TYPE_USER_TERMINATED);
- }
}
static void stk_alpha_id_set(struct ofono_stk *stk,
@@ -598,7 +597,6 @@ static void default_agent_notify(gpointer user_data)
stk->default_agent = NULL;
stk->current_agent = stk->session_agent;
- stk->respond_on_exit = FALSE;
}
static void session_agent_notify(gpointer user_data)
@@ -617,7 +615,6 @@ static void session_agent_notify(gpointer user_data)
stk->session_agent = NULL;
stk->current_agent = stk->default_agent;
- stk->respond_on_exit = FALSE;
if (stk->remove_agent_source) {
g_source_remove(stk->remove_agent_source);
@@ -1159,8 +1156,6 @@ static void request_selection_cb(enum stk_agent_result result, uint8_t id,
{
struct ofono_stk *stk = user_data;
- stk->respond_on_exit = FALSE;
-
switch (result) {
case STK_AGENT_RESULT_OK:
{
@@ -1243,8 +1238,6 @@ static void display_text_cb(enum stk_agent_result result, void *user_data)
static unsigned char screen_busy_result[] = { 0x01 };
static struct ofono_error error = { .type = OFONO_ERROR_TYPE_FAILURE };
- stk->respond_on_exit = FALSE;
-
/*
* There are four possible paths for DisplayText with immediate
* response flag set:
@@ -1386,8 +1379,6 @@ static void request_confirmation_cb(enum stk_agent_result result,
struct stk_command_get_inkey *cmd = &stk->pending_cmd->get_inkey;
struct stk_response rsp;
- stk->respond_on_exit = FALSE;
-
switch (result) {
case STK_AGENT_RESULT_OK:
memset(&rsp, 0, sizeof(rsp));
@@ -1442,8 +1433,6 @@ static void request_key_cb(enum stk_agent_result result, char *string,
struct stk_command_get_inkey *cmd = &stk->pending_cmd->get_inkey;
struct stk_response rsp;
- stk->respond_on_exit = FALSE;
-
switch (result) {
case STK_AGENT_RESULT_OK:
memset(&rsp, 0, sizeof(rsp));
@@ -1560,8 +1549,6 @@ static void request_string_cb(enum stk_agent_result result, char *string,
gboolean packed = (qualifier & (1 << 3)) != 0;
struct stk_response rsp;
- stk->respond_on_exit = FALSE;
-
switch (result) {
case STK_AGENT_RESULT_OK:
memset(&rsp, 0, sizeof(rsp));
@@ -1699,8 +1686,6 @@ static void confirm_call_cb(enum stk_agent_result result, gboolean confirm,
struct stk_response rsp;
int err;
- stk->respond_on_exit = FALSE;
-
switch (result) {
case STK_AGENT_RESULT_TIMEOUT:
confirm = FALSE;
@@ -2283,8 +2268,6 @@ static void send_dtmf_cancel(struct ofono_stk *stk)
struct ofono_voicecall *vc = NULL;
struct ofono_atom *vc_atom;
- stk->respond_on_exit = FALSE;
-
vc_atom = __ofono_modem_find_atom(__ofono_atom_get_modem(stk->atom),
OFONO_ATOM_TYPE_VOICECALL);
if (vc_atom)
@@ -2300,8 +2283,6 @@ static void dtmf_sent_cb(int error, void *user_data)
{
struct ofono_stk *stk = user_data;
- stk->respond_on_exit = FALSE;
-
stk_alpha_id_unset(stk);
if (error == ENOENT) {
@@ -2413,8 +2394,6 @@ static void play_tone_cb(enum stk_agent_result result, void *user_data)
{
struct ofono_stk *stk = user_data;
- stk->respond_on_exit = FALSE;
-
switch (result) {
case STK_AGENT_RESULT_OK:
case STK_AGENT_RESULT_TIMEOUT:
@@ -2547,8 +2526,6 @@ static void confirm_launch_browser_cb(enum stk_agent_result result,
struct ofono_error failure = { .type = OFONO_ERROR_TYPE_FAILURE };
struct stk_response rsp;
- stk->respond_on_exit = FALSE;
-
switch (result) {
case STK_AGENT_RESULT_TIMEOUT:
confirm = FALSE;