data_call: 解决赛格在cfun=0模式下网卡不释放,无回调信息,自动重拨Bug
Change-Id: Icd8777dc04b2c5431b93460fb2af4ffa9077a1aa
diff --git a/mbtk/mbtk_rild/src/mbtk_info_server.c b/mbtk/mbtk_rild/src/mbtk_info_server.c
old mode 100644
new mode 100755
index 86ba2bb..69c1b1d
--- a/mbtk/mbtk_rild/src/mbtk_info_server.c
+++ b/mbtk/mbtk_rild/src/mbtk_info_server.c
@@ -51,6 +51,7 @@
info_cgact_wait_t cgact_wait;
static int cid_active[MBTK_APN_CID_MAX + 1] = {0};
bool at_process = false;
+bool at_cfun_command = false;
//mbtk wyq for data_call_ex add start
// |2----7|
//"00000000"+'\0'
@@ -4889,6 +4890,7 @@
}
else // Set
{
+ at_cfun_command = true;
uint8 radio_on = *(pack->data);
if(radio_on != 0 && radio_on != 1)
{
@@ -4906,6 +4908,7 @@
LOG("Set radio state fail.");
}
}
+ at_cfun_command = false;
}
break;
}
@@ -6483,18 +6486,21 @@
LOGD("Start active APN.");
at_process = true;
cgact_wait.act = true;
- for(cid = MBTK_APN_CID_MIN; cid <= MBTK_APN_CID_MAX && cid_active[cid]; cid++) {
- LOG("Active cid : %d", cid);
- cgact_wait.waitting = true;
- cgact_wait.cid = cid;
- net_ifc_state_change(false, cid);
- data_pdp = cid + 100;
- urc_msg_distribute(false, INFO_URC_MSG_PDP_STATE, &data_pdp, sizeof(uint8));
- req_data_call_start(cid, NULL);
- wait_cgact_complete(10);
- net_ifc_state_change(true, cid);
- data_pdp = cid + 220;
- urc_msg_distribute(false, INFO_URC_MSG_PDP_STATE, &data_pdp, sizeof(uint8));
+ for(cid = MBTK_APN_CID_MIN; cid <= MBTK_APN_CID_MAX; cid++) {
+ if(cid_active[cid])
+ {
+ LOG("Active cid : %d", cid);
+ cgact_wait.waitting = true;
+ cgact_wait.cid = cid;
+ net_ifc_state_change(false, cid);
+ data_pdp = cid + 100;
+ urc_msg_distribute(false, INFO_URC_MSG_PDP_STATE, &data_pdp, sizeof(uint8));
+ req_data_call_start(cid, NULL);
+ wait_cgact_complete(10);
+ net_ifc_state_change(true, cid);
+ data_pdp = cid + 220;
+ urc_msg_distribute(false, INFO_URC_MSG_PDP_STATE, &data_pdp, sizeof(uint8));
+ }
}
at_process = false;
}