ifx: Modify XLEMA behavior

XLEMA reports emergency numbers that are hardcoded (e.g. 112 and 911)
and that are already read from EFecc.  The additional emergency numbers
we are interested in should only come from the NVM or the network NITZ
update.
This commit is contained in:
Denis Kenzior 2012-02-09 22:34:02 -06:00
parent e2fe4e4940
commit 7e42c5bbb0
1 changed files with 18 additions and 3 deletions

View File

@ -811,6 +811,18 @@ static void xlema_notify(GAtResult *result, gpointer user_data)
if (!g_at_result_iter_next_string(&iter, &number))
return;
/* Skip category */
if (g_at_result_iter_skip_next(&iter) == FALSE)
goto done;
/* Skip presence */
if (g_at_result_iter_skip_next(&iter) == FALSE)
goto done;
/* If we succeed here, then the number is from NVM or NITZ */
if (g_at_result_iter_skip_next(&iter) == FALSE)
goto done;
if (vd->en_list == NULL)
vd->en_list = g_new0(char *, total_cnt + 1);
@ -821,13 +833,16 @@ static void xlema_notify(GAtResult *result, gpointer user_data)
} else
vd->en_list[count] = g_strdup(number);
done:
if (index != total_cnt)
return;
ofono_voicecall_en_list_notify(vc, vd->en_list);
if (vd->en_list) {
ofono_voicecall_en_list_notify(vc, vd->en_list);
g_strfreev(vd->en_list);
vd->en_list = NULL;
g_strfreev(vd->en_list);
vd->en_list = NULL;
}
}
static void xlema_read(gboolean ok, GAtResult *result, gpointer user_data)