diff options
author | Denis Kenzior <denkenz@gmail.com> | 2015-11-05 10:54:50 -0600 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2015-11-05 10:54:50 -0600 |
commit | b25ff340db5921a78492c7506bc0c4094a5d9709 (patch) | |
tree | d910dc742ae7a13f396e5922f67d4298eec973a2 /drivers | |
parent | 4b5ccc56a341384006589e61ce0fd99978a3b201 (diff) | |
download | ofono-b25ff340db5921a78492c7506bc0c4094a5d9709.tar.bz2 |
rilmodem: Implement ril_call_barring_set_cb inline
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/rilmodem/call-barring.c | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/drivers/rilmodem/call-barring.c b/drivers/rilmodem/call-barring.c index 21e2a77b..6ee14ecc 100644 --- a/drivers/rilmodem/call-barring.c +++ b/drivers/rilmodem/call-barring.c @@ -117,16 +117,30 @@ static void ril_call_barring_set_cb(struct ril_msg *message, gpointer user_data) struct cb_data *cbd = user_data; ofono_call_barring_set_cb_t cb = cbd->cb; struct barring_data *bd = cbd->user; + struct parcel rilp; + int retries; - if (message->error != RIL_E_SUCCESS) { - ofono_error("%s: set failed, err: %s", __func__, - ril_error_to_string(message->error)); + if (message->error != RIL_E_SUCCESS) goto error; - } - /* Just for printing return value */ - g_ril_reply_parse_set_facility_lock(bd->ril, message); + g_ril_init_parcel(message, &rilp); + + /* mako reply has no payload for call barring */ + if (parcel_data_avail(&rilp) == 0) + goto done; + + if (parcel_r_int32(&rilp) != 1) + goto error; + + retries = parcel_r_int32(&rilp); + + if (rilp.malformed) + goto error; + + g_ril_append_print_buf(bd->ril, "{%d}", retries); + g_ril_print_response(bd->ril, message); +done: CALLBACK_WITH_SUCCESS(cb, cbd->data); return; |