summaryrefslogtreecommitdiff
path: root/drivers/nwmodem
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2010-08-13 13:57:18 -0500
committerDenis Kenzior <denkenz@gmail.com>2010-08-13 14:00:43 -0500
commitf51b8af585ceb2ede7de167834a9fbc83e9795a2 (patch)
treea6ff94995ff5cc20e40e7bac79832d7b1f4a6f93 /drivers/nwmodem
parentbdc9cdaaf69e23bf26552015f4d2897c423dd614 (diff)
downloadofono-f51b8af585ceb2ede7de167834a9fbc83e9795a2.tar.gz
nwemodem: Fix up radio-settings driver
Diffstat (limited to 'drivers/nwmodem')
-rw-r--r--drivers/nwmodem/radio-settings.c29
1 files changed, 16 insertions, 13 deletions
diff --git a/drivers/nwmodem/radio-settings.c b/drivers/nwmodem/radio-settings.c
index 64ceaf34..179a0ad3 100644
--- a/drivers/nwmodem/radio-settings.c
+++ b/drivers/nwmodem/radio-settings.c
@@ -52,23 +52,24 @@ static void nwrat_query_cb(gboolean ok, GAtResult *result, gpointer user_data)
struct cb_data *cbd = user_data;
ofono_radio_settings_rat_mode_query_cb_t cb = cbd->cb;
enum ofono_radio_access_mode mode;
+ struct ofono_error error;
GAtResultIter iter;
int value;
+ decode_at_error(&error, g_at_result_final_response(result));
+
if (!ok) {
- CALLBACK_WITH_FAILURE(cb, -1, cbd->data);
+ cb(&error, -1, cbd->data);
return;
}
g_at_result_iter_init(&iter, result);
if (g_at_result_iter_next(&iter, "$NWRAT:") == FALSE)
- return;
+ goto error;
- if (g_at_result_iter_next_number(&iter, &value) == FALSE) {
- CALLBACK_WITH_FAILURE(cb, -1, cbd->data);
- return;
- }
+ if (g_at_result_iter_next_number(&iter, &value) == FALSE)
+ goto error;
switch (value) {
case 0:
@@ -85,7 +86,12 @@ static void nwrat_query_cb(gboolean ok, GAtResult *result, gpointer user_data)
return;
}
- CALLBACK_WITH_SUCCESS(cb, mode, cbd->data);
+ cb(&error, mode, cbd->data);
+
+ return;
+
+error:
+ CALLBACK_WITH_FAILURE(cb, -1, cbd->data);
}
static void nw_query_rat_mode(struct ofono_radio_settings *rs,
@@ -106,13 +112,10 @@ static void nwrat_modify_cb(gboolean ok, GAtResult *result, gpointer user_data)
{
struct cb_data *cbd = user_data;
ofono_radio_settings_rat_mode_set_cb_t cb = cbd->cb;
+ struct ofono_error error;
- if (!ok) {
- CALLBACK_WITH_FAILURE(cb, cbd->data);
- return;
- }
-
- CALLBACK_WITH_SUCCESS(cb, cbd->data);
+ decode_at_error(&error, g_at_result_final_response(result));
+ cb(&error, cbd->data);
}
static void nw_set_rat_mode(struct ofono_radio_settings *rs,