[Bugfix][API-478][Sim/Call/Data]Sim, CALL, and DATA modules repeatedly call initialization, logout, and one of the module's other apis, T800 will block

Change-Id: I3d98c8d7633ec1314d04a107342b9a6a580cf0a5
diff --git a/src/lynq/lib/liblynq-call/lynq_call.cpp b/src/lynq/lib/liblynq-call/lynq_call.cpp
index 0775118..b90b44b 100755
--- a/src/lynq/lib/liblynq-call/lynq_call.cpp
+++ b/src/lynq/lib/liblynq-call/lynq_call.cpp
@@ -1146,6 +1146,10 @@
 

 int lynq_call(int* handle,char addr[])

 {

+    if(g_lynq_call_init_flag == 0)

+    {

+        return -1;

+    }

     Parcel p;

     lynq_client_t client;

     int resp_type = -1;

@@ -1227,6 +1231,10 @@
 }

 int lynq_call_answer()

 {

+    if(g_lynq_call_init_flag == 0)

+    {

+        return -1;

+    }

     Parcel p;

     lynq_client_t client;

     int resp_type = -1;

@@ -1252,6 +1260,10 @@
 }

 int lynq_call_hungup(int* handle)

 {

+    if(g_lynq_call_init_flag == 0)

+    {

+        return -1;

+    }

     Parcel p;

     lynq_client_t client;

     int resp_type = -1;

@@ -1294,6 +1306,10 @@
 }

 int lynq_call_hungup_all()

 {

+    if(g_lynq_call_init_flag == 0)

+    {

+        return -1;

+    }

     Parcel p;

     lynq_client_t client;

     int resp_type = -1;

@@ -1319,6 +1335,10 @@
 }

 int lynq_wait_incoming_call(int *handle)

 {

+    if(g_lynq_call_init_flag == 0)

+    {

+        return -1;

+    }

     waitIncomingCall();

     *handle = lynqIncomingCallId;

     LYINFLOG("lynq incoming call id:%d",lynqIncomingCallId);

@@ -1327,12 +1347,20 @@
 

 int lynq_set_auto_answercall(const int mode)

 {

+    if(g_lynq_call_init_flag == 0)

+    {

+        return -1;

+    }

     global_call_auto_answer = mode;

     LYINFLOG("auto answer call mode =%d",mode);

     return 0;

 }

 int lynq_get_current_call_state(int *handle,    int *call_state,int *toa,int *direction,char addr[])

 {

+    if(g_lynq_call_init_flag == 0)

+    {

+        return -1;

+    }

     int lynq_call_id = 0;

     LYINFLOG("lynq_get_current_call_state begin ");

     if(handle==NULL)

@@ -1366,6 +1394,10 @@
 

 int lynq_set_mute_mic(const int enable)

 {   

+    if(g_lynq_call_init_flag == 0)

+    {

+        return -1;

+    }

     if(!judge_mic(enable)){

         return LYNQ_E_CONFLICT;

     }

@@ -1373,6 +1405,10 @@
 }

 int lynq_get_mute_mic(int *status)

 {

+    if(g_lynq_call_init_flag == 0)

+    {

+        return -1;

+    }

     return lynq_get_common_request(54,status);//RIL_REQUEST_GET_MUTE    

 }

 

@@ -1401,6 +1437,10 @@
 

 int lynq_switch_waiting_or_holding_and_active(void)

 {

+    if(g_lynq_call_init_flag == 0)

+    {

+        return -1;

+    }

     Parcel p;

     lynq_client_t client;

     int resp_type = -1;

@@ -1427,6 +1467,10 @@
 

 int lynq_hangup_waiting_or_background(void)

 {

+    if(g_lynq_call_init_flag == 0)

+    {

+        return -1;

+    }

     Parcel p;

     lynq_client_t client;

     int resp_type = -1;

@@ -1453,6 +1497,10 @@
 

 int lynq_hangup_foreground_resume_background(void)

 {

+    if(g_lynq_call_init_flag == 0)

+    {

+        return -1;

+    }

     Parcel p;

     lynq_client_t client;

     int resp_type = -1;

@@ -1479,6 +1527,10 @@
 

 int lynq_set_DTMF(const char callnum)

 {

+    if(g_lynq_call_init_flag == 0)

+    {

+        return -1;

+    }

     if(!judge_dtmf(callnum))

     {

         return LYNQ_E_CONFLICT;

@@ -1806,6 +1858,10 @@
 

 void* lynq_start_rtp_cmd(void *arg)

 {

+    if(g_lynq_call_init_flag == 0)

+    {

+        return -1;

+    }

     int* rtp_mode= (int*) arg;

     char cmd[384];

     LYINFLOG("lynq_start_rtp_cmd: rtp_mode is %d",(*rtp_mode));    

@@ -1849,6 +1905,10 @@
 /*set*/

 int lynq_set_voice_audio_mode(const LYNQ_Audio_Mode audio_mode)

 {

+    if(g_lynq_call_init_flag == 0)

+    {

+        return -1;

+    }

     int ret;

     int i;

     

@@ -1954,6 +2014,10 @@
 /*get*/

 LYNQ_Audio_Mode lynq_get_voice_audio_mode()

 {

+    if(g_lynq_call_init_flag == 0)

+    {

+        return -1;

+    }

     if(g_rtp_thread_valid[0])

     {

         return AUDIO_MODE_RTP;

@@ -1965,6 +2029,10 @@
 }

 int lynq_get_remote_rtp_ip(char* ip, const int ip_length)

 {

+    if(g_lynq_call_init_flag == 0)

+    {

+        return -1;

+    }

     if(ip==NULL)

     {

         LYERRLOG("ip is NULL");

@@ -1982,6 +2050,10 @@
 }

 int lynq_get_rtp_port(const LYNQ_Rtp_Mode rtp_mode, int* port)

 {

+    if(g_lynq_call_init_flag == 0)

+    {

+        return -1;

+    }

     if(port==NULL)

     {

         return 1;

@@ -1998,6 +2070,10 @@
 }

 int lynq_get_rtp_param(int* clock_rate, int* channels, int* latency)//only for client mode

 {

+    if(g_lynq_call_init_flag == 0)

+    {

+        return -1;

+    }

     if(clock_rate == NULL || channels ==NULL || latency ==NULL)

     {

         LYERRLOG("input parameter is NULL");

diff --git a/src/lynq/lib/liblynq-sim/src/lynq_sim.cpp b/src/lynq/lib/liblynq-sim/src/lynq_sim.cpp
index b9f12ea..76403e1 100755
--- a/src/lynq/lib/liblynq-sim/src/lynq_sim.cpp
+++ b/src/lynq/lib/liblynq-sim/src/lynq_sim.cpp
@@ -136,6 +136,10 @@
 /*If you need to use any API under lynq_sim, you mustfirst call the lynq_sim_init() function to initialize these functions.*/
 int lynq_get_sim_status(int *card_status)
 {   
+    if(g_lynq_sim_init_flag == 0)
+    {
+        return -1;
+    }
     int ret = -1;
     if(card_status == NULL)
         return ret;
@@ -181,6 +185,10 @@
 
 int lynq_get_imsi(char buf[])
 {   
+    if(g_lynq_sim_init_flag == 0)
+    {
+        return -1;
+    }
     int ret = -1;
     if(buf == NULL)
         return ret;
@@ -230,6 +238,10 @@
 /*add by lei*/
 
 int lynq_get_iccid(char buf[]){
+    if(g_lynq_sim_init_flag == 0)
+    {
+        return -1;
+    }
     int ret = -1;
     if(buf == NULL)
         return ret;
@@ -274,6 +286,10 @@
 }
 
 int lynq_enable_pin(char *pin){
+    if(g_lynq_sim_init_flag == 0)
+    {
+        return -1;
+    }
     int ret = -1;
     if(pin == NULL)
         return ret;
@@ -316,6 +332,10 @@
 }
 
 int lynq_disable_pin(char *pin){
+    if(g_lynq_sim_init_flag == 0)
+    {
+        return -1;
+    }
     int ret = -1;
     if(pin == NULL)
         return ret;
@@ -355,6 +375,10 @@
 }
 
 int lynq_query_pin_lock(char *pin,int buf[]){
+    if(g_lynq_sim_init_flag == 0)
+    {
+        return -1;
+    }
     int ret = -1;
     if(pin == NULL)
         return ret;
@@ -405,6 +429,10 @@
 }
 
 int lynq_verify_pin(char *pin){
+    if(g_lynq_sim_init_flag == 0)
+    {
+        return -1;
+    }
     int ret = -1;
     if(pin == NULL)
         return ret;
@@ -445,6 +473,10 @@
 }
 
 int lynq_change_pin(char *old_pin, char *new_pin){
+    if(g_lynq_sim_init_flag == 0)
+    {
+        return -1;
+    }
     int ret = -1;
     if(old_pin == NULL || new_pin == NULL)
         return ret;
@@ -489,6 +521,10 @@
 }
 
 int lynq_unlock_pin(char *puk, char *pin){
+    if(g_lynq_sim_init_flag == 0)
+    {
+        return -1;
+    }
     int ret = -1;
     if(puk == NULL || pin == NULL)
         return ret;
@@ -587,6 +623,10 @@
 }
 
 int lynq_query_phone_number(char buf[]){
+    if(g_lynq_sim_init_flag == 0)
+    {
+        return -1;
+    }
     int ret = -1;
     if(buf == NULL)
         return ret;
@@ -654,7 +694,11 @@
 }
 
 int lynq_get_imei(char buf[])
-{   
+{
+    if(g_lynq_sim_init_flag == 0)
+    {
+        return -1;
+    }
     int ret = -1;
     if(buf == NULL)
         return ret;
@@ -714,6 +758,10 @@
 }
 
 int lynq_switch_card(int slot){
+    if(g_lynq_sim_init_flag == 0)
+    {
+        return -1;
+    }
     int ret = -1;
     if(!judge(slot))
         return ret;
@@ -734,6 +782,10 @@
 }
 
 int lynq_screen(int num){
+    if(g_lynq_sim_init_flag == 0)
+    {
+        return -1;
+    }
     int ret = -1;
     if(!judge(num))
         return ret;
@@ -817,7 +869,11 @@
 }
 
 int lynq_req_sim_io(int list[5], char *path, char *data, char *pin2, char *aidPtr, int sw[2], char *simResponse)
-{   
+{
+    if(g_lynq_sim_init_flag == 0)
+    {
+        return -1;
+    }
     int ret = -1;
     if(judge_illegal(list, path, data, pin2, aidPtr, sw, simResponse))
     {
diff --git a/src/lynq/lib/liblynq-sms/src/lynq_sms.cpp b/src/lynq/lib/liblynq-sms/src/lynq_sms.cpp
index 0a44eba..ff92141 100755
--- a/src/lynq/lib/liblynq-sms/src/lynq_sms.cpp
+++ b/src/lynq/lib/liblynq-sms/src/lynq_sms.cpp
@@ -156,6 +156,10 @@
 }

 int lynq_wait_receive_new_sms(int *handle)

 {

+    if(g_lynq_sms_init_flag == 0)

+    {

+        return -1;

+    }

     if(handle==NULL)

     {

         LYERRLOG("handle is null!!!");

@@ -387,6 +391,10 @@
 

 int lynq_send_sms(char telephony_num[TELEPHONE_NUM_LEN], int charset, char *msg)

 {

+    if(g_lynq_sms_init_flag == 0)

+    {

+        return -1;

+    }

     lynq_client_t client;

     int ret = SMS_OK;

     if (NULL == msg)

@@ -413,6 +421,10 @@
 

 int lynq_read_sms(int index,int *status,int *charset,char smsc[SMSC_MAX_LEN],int *smscLen,int *smslen,char message[MSG_MAX_LEN],char teleNum[TELEPHONE_NUM_LEN],int *numLen,int *current,int *total)

 {

+    if(g_lynq_sms_init_flag == 0)

+    {

+        return -1;

+    }

     lynq_client_t client;

     lynq_sms_msg_info_t sms_msg_info;

     int lenTemp = -1;

@@ -453,6 +465,10 @@
 

 int lynq_get_smsc_address(char service_num[SMSC_MAX_LEN])

 {

+    if(g_lynq_sms_init_flag == 0)

+    {

+        return -1;

+    }

     if(NULL == service_num)

     {

         return -1;

@@ -473,6 +489,10 @@
 

 int lynq_set_smsc_address(const char* service_num)

 {

+    if(g_lynq_sms_init_flag == 0)

+    {

+        return -1;

+    }

     if(NULL == service_num)

     {

         return -1;

@@ -499,6 +519,10 @@
 

 int lynq_list_sms(char index_list[SMS_NUM_MAX])

 {

+    if(g_lynq_sms_init_flag == 0)

+    {

+        return -1;

+    }

     lynq_client_t client;

     int ret = SMS_OK;

     client.request = LYNQ_REQUEST_LIST_SMS_FROM_MEMORY;

@@ -513,6 +537,10 @@
 

 int lynq_delete_sms(int index)

 {

+    if(g_lynq_sms_init_flag == 0)

+    {

+        return -1;

+    }

     lynq_client_t client;

     int ret = SMS_OK;

     client.request = LYNQ_REQUEST_DELETE_SMS_FROM_MEMORY;