mirror of git://git.sysmocom.de/ofono
rilmodem: Use ril_util_build_deactivate_data_call
This commit is contained in:
parent
7172e5cc19
commit
45d59d04a9
|
@ -341,9 +341,7 @@ static gboolean retry_deactivate(gpointer user_data)
|
||||||
ofono_gprs_context_cb_t cb = cbd->cb;
|
ofono_gprs_context_cb_t cb = cbd->cb;
|
||||||
struct ofono_gprs_context *gc = cbd->user;
|
struct ofono_gprs_context *gc = cbd->user;
|
||||||
struct gprs_context_data *gcd = ofono_gprs_context_get_data(gc);
|
struct gprs_context_data *gcd = ofono_gprs_context_get_data(gc);
|
||||||
struct req_deactivate_data_call request;
|
|
||||||
struct parcel rilp;
|
struct parcel rilp;
|
||||||
struct ofono_error error;
|
|
||||||
|
|
||||||
gcd->retry_ev_id = 0;
|
gcd->retry_ev_id = 0;
|
||||||
|
|
||||||
|
@ -357,14 +355,12 @@ static gboolean retry_deactivate(gpointer user_data)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
request.cid = gcd->active_rild_cid;
|
ril_util_build_deactivate_data_call(gcd->ril, &rilp,
|
||||||
request.reason = RIL_DEACTIVATE_DATA_CALL_NO_REASON;
|
gcd->active_rild_cid,
|
||||||
|
RIL_DEACTIVATE_DATA_CALL_NO_REASON);
|
||||||
g_ril_request_deactivate_data_call(gcd->ril, &request, &rilp, &error);
|
|
||||||
|
|
||||||
if (g_ril_send(gcd->ril, RIL_REQUEST_DEACTIVATE_DATA_CALL, &rilp,
|
if (g_ril_send(gcd->ril, RIL_REQUEST_DEACTIVATE_DATA_CALL, &rilp,
|
||||||
ril_deactivate_data_call_cb, cbd, g_free) == 0) {
|
ril_deactivate_data_call_cb, cbd, g_free) == 0) {
|
||||||
|
|
||||||
ofono_error("%s: send DEACTIVATE_DATA_CALL failed for apn: %s",
|
ofono_error("%s: send DEACTIVATE_DATA_CALL failed for apn: %s",
|
||||||
__func__, gcd->apn);
|
__func__, gcd->apn);
|
||||||
if (cb)
|
if (cb)
|
||||||
|
@ -388,7 +384,6 @@ static void ril_deactivate_data_call_cb(struct ril_msg *message,
|
||||||
DBG("*gc: %p", gc);
|
DBG("*gc: %p", gc);
|
||||||
|
|
||||||
if (message->error == RIL_E_SUCCESS) {
|
if (message->error == RIL_E_SUCCESS) {
|
||||||
|
|
||||||
g_ril_print_response_no_args(gcd->ril, message);
|
g_ril_print_response_no_args(gcd->ril, message);
|
||||||
|
|
||||||
active_ctx_cid = gcd->active_ctx_cid;
|
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 gprs_context_data *gcd = ofono_gprs_context_get_data(gc);
|
||||||
struct cb_data *cbd = NULL;
|
struct cb_data *cbd = NULL;
|
||||||
struct parcel rilp;
|
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,
|
DBG("*gc: %p cid: %d active_rild_cid: %d", gc, id,
|
||||||
gcd->active_rild_cid);
|
gcd->active_rild_cid);
|
||||||
|
@ -471,32 +463,23 @@ static void ril_gprs_context_deactivate_primary(struct ofono_gprs_context *gc,
|
||||||
__func__, gcd->apn);
|
__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;
|
gcd->deact_retries = NUM_DEACTIVATION_RETRIES;
|
||||||
ret = g_ril_send(gcd->ril, RIL_REQUEST_DEACTIVATE_DATA_CALL, &rilp,
|
ril_util_build_deactivate_data_call(gcd->ril, &rilp,
|
||||||
ril_deactivate_data_call_cb, cbd, g_free);
|
gcd->active_rild_cid,
|
||||||
|
RIL_DEACTIVATE_DATA_CALL_NO_REASON);
|
||||||
|
|
||||||
error:
|
if (g_ril_send(gcd->ril, RIL_REQUEST_DEACTIVATE_DATA_CALL, &rilp,
|
||||||
if (ret == 0) {
|
ril_deactivate_data_call_cb, cbd, g_free) > 0)
|
||||||
/* TODO: should we force state to disconnected here? */
|
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);
|
__func__, gcd->apn);
|
||||||
g_free(cbd);
|
|
||||||
if (cb)
|
if (cb)
|
||||||
CALLBACK_WITH_FAILURE(cb, data);
|
CALLBACK_WITH_FAILURE(cb, data);
|
||||||
}
|
|
||||||
|
g_free(cbd);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ril_gprs_context_detach_shutdown(struct ofono_gprs_context *gc,
|
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);
|
DBG("*gc: %p", gc);
|
||||||
|
|
||||||
if (gcd->state != STATE_IDLE && gcd->state != STATE_DISABLING) {
|
if (gcd->state != STATE_IDLE && gcd->state != STATE_DISABLING) {
|
||||||
struct req_deactivate_data_call request;
|
|
||||||
struct parcel rilp;
|
struct parcel rilp;
|
||||||
struct ofono_error error;
|
|
||||||
|
|
||||||
request.cid = gcd->active_rild_cid;
|
ril_util_build_deactivate_data_call(gcd->ril, &rilp,
|
||||||
request.reason = RIL_DEACTIVATE_DATA_CALL_NO_REASON;
|
gcd->active_rild_cid,
|
||||||
g_ril_request_deactivate_data_call(gcd->ril, &request,
|
RIL_DEACTIVATE_DATA_CALL_NO_REASON);
|
||||||
&rilp, &error);
|
|
||||||
|
|
||||||
g_ril_send(gcd->ril, RIL_REQUEST_DEACTIVATE_DATA_CALL,
|
g_ril_send(gcd->ril, RIL_REQUEST_DEACTIVATE_DATA_CALL,
|
||||||
&rilp, NULL, NULL, NULL);
|
&rilp, NULL, NULL, NULL);
|
||||||
|
|
|
@ -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)
|
static int drop_data_call(struct ofono_gprs *gprs, int cid)
|
||||||
{
|
{
|
||||||
struct ril_gprs_data *gd = ofono_gprs_get_data(gprs);
|
struct ril_gprs_data *gd = ofono_gprs_get_data(gprs);
|
||||||
struct req_deactivate_data_call request;
|
|
||||||
struct parcel rilp;
|
struct parcel rilp;
|
||||||
struct ofono_error error;
|
|
||||||
|
|
||||||
request.cid = cid;
|
ril_util_build_deactivate_data_call(gd->ril, &rilp, cid,
|
||||||
request.reason = RIL_DEACTIVATE_DATA_CALL_NO_REASON;
|
RIL_DEACTIVATE_DATA_CALL_NO_REASON);
|
||||||
|
|
||||||
g_ril_request_deactivate_data_call(gd->ril, &request, &rilp, &error);
|
|
||||||
|
|
||||||
if (g_ril_send(gd->ril, RIL_REQUEST_DEACTIVATE_DATA_CALL,
|
if (g_ril_send(gd->ril, RIL_REQUEST_DEACTIVATE_DATA_CALL,
|
||||||
&rilp, drop_data_call_cb, gprs, NULL) == 0) {
|
&rilp, drop_data_call_cb, gprs, NULL) > 0)
|
||||||
ofono_error("%s: send failed", __func__);
|
return 0;
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void get_active_data_calls_cb(struct ril_msg *message,
|
static void get_active_data_calls_cb(struct ril_msg *message,
|
||||||
|
|
Loading…
Reference in New Issue