hsomodem: Fix up radio-settings driver

This commit is contained in:
Denis Kenzior 2010-08-13 13:53:25 -05:00
parent 72bc61976c
commit bdc9cdaaf6
1 changed files with 16 additions and 13 deletions

View File

@ -52,23 +52,24 @@ static void opsys_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, "_OPSYS:") == 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:
@ -87,7 +88,12 @@ static void opsys_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 hso_query_rat_mode(struct ofono_radio_settings *rs,
@ -108,13 +114,10 @@ static void opsys_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 hso_set_rat_mode(struct ofono_radio_settings *rs,