nwemodem: Fix up radio-settings driver

This commit is contained in:
Denis Kenzior 2010-08-13 13:57:18 -05:00
parent bdc9cdaaf6
commit f51b8af585
1 changed files with 16 additions and 13 deletions

View File

@ -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,