diff options
author | Denis Kenzior <denkenz@gmail.com> | 2010-08-13 13:57:18 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-08-13 14:00:43 -0500 |
commit | f51b8af585ceb2ede7de167834a9fbc83e9795a2 (patch) | |
tree | a6ff94995ff5cc20e40e7bac79832d7b1f4a6f93 /drivers | |
parent | bdc9cdaaf69e23bf26552015f4d2897c423dd614 (diff) | |
download | ofono-f51b8af585ceb2ede7de167834a9fbc83e9795a2.tar.bz2 |
nwemodem: Fix up radio-settings driver
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/nwmodem/radio-settings.c | 29 |
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, |