rilmodem: Use ril_util_build_deactivate_data_call

This commit is contained in:
Denis Kenzior 2015-11-20 22:45:47 -06:00
parent 7172e5cc19
commit 45d59d04a9
2 changed files with 23 additions and 49 deletions

View File

@ -341,9 +341,7 @@ static gboolean retry_deactivate(gpointer user_data)
ofono_gprs_context_cb_t cb = cbd->cb;
struct ofono_gprs_context *gc = cbd->user;
struct gprs_context_data *gcd = ofono_gprs_context_get_data(gc);
struct req_deactivate_data_call request;
struct parcel rilp;
struct ofono_error error;
gcd->retry_ev_id = 0;
@ -357,14 +355,12 @@ static gboolean retry_deactivate(gpointer user_data)
return FALSE;
}
request.cid = gcd->active_rild_cid;
request.reason = RIL_DEACTIVATE_DATA_CALL_NO_REASON;
g_ril_request_deactivate_data_call(gcd->ril, &request, &rilp, &error);
ril_util_build_deactivate_data_call(gcd->ril, &rilp,
gcd->active_rild_cid,
RIL_DEACTIVATE_DATA_CALL_NO_REASON);
if (g_ril_send(gcd->ril, RIL_REQUEST_DEACTIVATE_DATA_CALL, &rilp,
ril_deactivate_data_call_cb, cbd, g_free) == 0) {
ofono_error("%s: send DEACTIVATE_DATA_CALL failed for apn: %s",
__func__, gcd->apn);
if (cb)
@ -388,7 +384,6 @@ static void ril_deactivate_data_call_cb(struct ril_msg *message,
DBG("*gc: %p", gc);
if (message->error == RIL_E_SUCCESS) {
g_ril_print_response_no_args(gcd->ril, message);
active_ctx_cid = gcd->active_ctx_cid;
@ -444,9 +439,6 @@ static void ril_gprs_context_deactivate_primary(struct ofono_gprs_context *gc,
struct gprs_context_data *gcd = ofono_gprs_context_get_data(gc);
struct cb_data *cbd = NULL;
struct parcel rilp;
struct req_deactivate_data_call request;
struct ofono_error error;
int ret = 0;
DBG("*gc: %p cid: %d active_rild_cid: %d", gc, id,
gcd->active_rild_cid);
@ -471,32 +463,23 @@ static void ril_gprs_context_deactivate_primary(struct ofono_gprs_context *gc,
__func__, gcd->apn);
}
request.cid = gcd->active_rild_cid;
request.reason = RIL_DEACTIVATE_DATA_CALL_NO_REASON;
if (g_ril_request_deactivate_data_call(gcd->ril, &request,
&rilp, &error) == FALSE) {
ofono_error("%s: couldn't build DEACTIVATE_DATA_CALL"
" request for apn: %s.",
__func__, gcd->apn);
goto error;
}
gcd->deact_retries = NUM_DEACTIVATION_RETRIES;
ret = g_ril_send(gcd->ril, RIL_REQUEST_DEACTIVATE_DATA_CALL, &rilp,
ril_deactivate_data_call_cb, cbd, g_free);
ril_util_build_deactivate_data_call(gcd->ril, &rilp,
gcd->active_rild_cid,
RIL_DEACTIVATE_DATA_CALL_NO_REASON);
error:
if (ret == 0) {
/* TODO: should we force state to disconnected here? */
if (g_ril_send(gcd->ril, RIL_REQUEST_DEACTIVATE_DATA_CALL, &rilp,
ril_deactivate_data_call_cb, cbd, g_free) > 0)
return;
ofono_error("%s: send DEACTIVATE_DATA_CALL failed for apn: %s",
/* TODO: should we force state to disconnected here? */
ofono_error("%s: send DEACTIVATE_DATA_CALL failed for apn: %s",
__func__, gcd->apn);
g_free(cbd);
if (cb)
if (cb)
CALLBACK_WITH_FAILURE(cb, data);
}
g_free(cbd);
}
static void ril_gprs_context_detach_shutdown(struct ofono_gprs_context *gc,
@ -538,14 +521,11 @@ static void ril_gprs_context_remove(struct ofono_gprs_context *gc)
DBG("*gc: %p", gc);
if (gcd->state != STATE_IDLE && gcd->state != STATE_DISABLING) {
struct req_deactivate_data_call request;
struct parcel rilp;
struct ofono_error error;
request.cid = gcd->active_rild_cid;
request.reason = RIL_DEACTIVATE_DATA_CALL_NO_REASON;
g_ril_request_deactivate_data_call(gcd->ril, &request,
&rilp, &error);
ril_util_build_deactivate_data_call(gcd->ril, &rilp,
gcd->active_rild_cid,
RIL_DEACTIVATE_DATA_CALL_NO_REASON);
g_ril_send(gcd->ril, RIL_REQUEST_DEACTIVATE_DATA_CALL,
&rilp, NULL, NULL, NULL);

View File

@ -335,22 +335,16 @@ static void drop_data_call_cb(struct ril_msg *message, gpointer user_data)
static int drop_data_call(struct ofono_gprs *gprs, int cid)
{
struct ril_gprs_data *gd = ofono_gprs_get_data(gprs);
struct req_deactivate_data_call request;
struct parcel rilp;
struct ofono_error error;
request.cid = cid;
request.reason = RIL_DEACTIVATE_DATA_CALL_NO_REASON;
g_ril_request_deactivate_data_call(gd->ril, &request, &rilp, &error);
ril_util_build_deactivate_data_call(gd->ril, &rilp, cid,
RIL_DEACTIVATE_DATA_CALL_NO_REASON);
if (g_ril_send(gd->ril, RIL_REQUEST_DEACTIVATE_DATA_CALL,
&rilp, drop_data_call_cb, gprs, NULL) == 0) {
ofono_error("%s: send failed", __func__);
return -1;
}
&rilp, drop_data_call_cb, gprs, NULL) > 0)
return 0;
return 0;
return -1;
}
static void get_active_data_calls_cb(struct ril_msg *message,