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;
 }