summaryrefslogtreecommitdiffstats
path: root/src/voicecall.c
diff options
context:
space:
mode:
authorFrédéric Danis <frederic.danis@linux.intel.com>2011-07-21 16:58:09 +0200
committerDenis Kenzior <denkenz@gmail.com>2011-07-21 20:26:43 -0500
commitc7610c44afcd7f8da4831128e3869a09e51d51dc (patch)
treed919c156a353ed7059c7c23cd2dbdbad2174d5b6 /src/voicecall.c
parented4a5ac1746afc862641682b67f36837867ae135 (diff)
downloadofono-c7610c44afcd7f8da4831128e3869a09e51d51dc.tar.bz2
voicecall: remove usage of em_atd_number
as emulator atom can only run with a 'ready' SIM, use saved number instead of em_atd_number
Diffstat (limited to 'src/voicecall.c')
-rw-r--r--src/voicecall.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/voicecall.c b/src/voicecall.c
index 9160ce8d..f4c2358b 100644
--- a/src/voicecall.c
+++ b/src/voicecall.c
@@ -74,7 +74,6 @@ struct ofono_voicecall {
ofono_voicecall_cb_t release_queue_done_cb;
struct ofono_emulator *pending_em;
unsigned int pending_id;
- char *em_atd_number;
};
struct voicecall {
@@ -1506,14 +1505,14 @@ static int voicecall_dial(struct ofono_voicecall *vc, const char *number,
string_to_phone_number(number, &ph);
- vc->driver->dial(vc, &ph, clir, cb, vc);
-
if (vc->settings) {
g_key_file_set_string(vc->settings, SETTINGS_GROUP,
"Number", number);
storage_sync(vc->imsi, SETTINGS_STORE, vc->settings);
}
+ vc->driver->dial(vc, &ph, clir, cb, vc);
+
return 0;
}
@@ -3154,13 +3153,18 @@ static void emulator_dial_callback(const struct ofono_error *error, void *data)
struct ofono_voicecall *vc = data;
gboolean need_to_emit;
struct voicecall *v;
+ const char *number;
+ GError *err = NULL;
+
+ number = g_key_file_get_string(vc->settings, SETTINGS_GROUP,
+ "Number", &err);
- v = dial_handle_result(vc, error, vc->em_atd_number, &need_to_emit);
+ v = dial_handle_result(vc, error, number, &need_to_emit);
if (v == NULL) {
struct ofono_modem *modem = __ofono_atom_get_modem(vc->atom);
- if (is_emergency_number(vc, vc->em_atd_number) == TRUE)
+ if (is_emergency_number(vc, number) == TRUE)
__ofono_modem_dec_emergency_mode(modem);
}
@@ -3168,8 +3172,6 @@ static void emulator_dial_callback(const struct ofono_error *error, void *data)
ofono_emulator_send_final(vc->pending_em, error);
vc->pending_em = NULL;
- g_free(vc->em_atd_number);
- vc->em_atd_number = NULL;
notify_emulator_call_status(vc);
@@ -3191,7 +3193,6 @@ static void emulator_dial(struct ofono_emulator *em, struct ofono_voicecall *vc,
}
vc->pending_em = em;
- vc->em_atd_number = g_strdup(number);
err = voicecall_dial(vc, number, OFONO_CLIR_OPTION_DEFAULT,
emulator_dial_callback, vc);
@@ -3200,8 +3201,6 @@ static void emulator_dial(struct ofono_emulator *em, struct ofono_voicecall *vc,
return;
vc->pending_em = NULL;
- g_free(vc->em_atd_number);
- vc->em_atd_number = NULL;
switch (err) {
case -ENETDOWN: