[Bugfix]add mutex to data and sms

Change-Id: I280974cb0f6a8609c4d0720041910c2a0abbfaa6
diff --git a/src/lynq/lib/liblynq-data/lynq_data.cpp b/src/lynq/lib/liblynq-data/lynq_data.cpp
index a20513a..220463a 100755
--- a/src/lynq/lib/liblynq-data/lynq_data.cpp
+++ b/src/lynq/lib/liblynq-data/lynq_data.cpp
@@ -59,6 +59,11 @@
 static pthread_mutex_t s_lynq_apn_change_mutex = PTHREAD_MUTEX_INITIALIZER;
 static pthread_cond_t s_lynq_apn_change_cond = PTHREAD_COND_INITIALIZER;
 
+/**g_lynq_data_sendto_mutex
+* @brief mark data send request mutex
+*/
+static pthread_mutex_t g_lynq_data_sendto_mutex;
+
 /**g_lynq_data_init_flag
 * @brief mark data initialization state
 * 0:deinit status
@@ -515,6 +520,7 @@
     LYLOGSET(LOG_INFO);
     LYLOGEINIT(USER_LOG_TAG);
     result = lynq_socket_client_start();
+    pthread_mutex_init(&g_lynq_data_sendto_mutex, NULL);
     if(result!=0)
     {
         LYERRLOG("init socket client fail!!!");
@@ -581,6 +587,7 @@
     client.paramLen = 0;
     bzero(client.param,LYNQ_REQUEST_PARAM_BUF);
     LYINFLOG("uToken=%d,request=%d,paralen=%d,param=%s",client.uToken,client.request,client.paramLen,client.param);
+    pthread_mutex_lock(&g_lynq_data_sendto_mutex);
     if(send_request(lynq_client_sockfd,&client)==-1)
     {
         LYERRLOG("send request fail");
@@ -588,6 +595,7 @@
         return -1;
     }
     get_response(lynq_client_sockfd,p);
+    pthread_mutex_unlock(&g_lynq_data_sendto_mutex);
     JumpHeader(p,&resp_type,&request,&slot_id,&error);
     LYINFLOG("resp_type=%d,request=%d,slot_id=%d,error_code=%d",resp_type,request,slot_id,error);
     lynq_data_call_id = updateApn("default");
@@ -634,6 +642,7 @@
         sprintf(client.param,"%s",lynq_apn_table[lynq_data_call_id].apnType);
     }
     LYINFLOG("uToken=%d,request=%d,paralen=%d,param=%s",client.uToken,client.request,client.paramLen,client.param);
+    pthread_mutex_lock(&g_lynq_data_sendto_mutex);
     if(send_request(lynq_client_sockfd,&client)==-1)
     {
         LYERRLOG("send request fail");
@@ -641,6 +650,7 @@
         return -1;
     }
     get_response(lynq_client_sockfd,p);
+    pthread_mutex_unlock(&g_lynq_data_sendto_mutex);
     JumpHeader(p,&resp_type,&request,&slot_id,&error);
     LYINFLOG("resp_type=%d,request=%d,slot_id=%d,error_code=%d",resp_type,request,slot_id,error);
     cleanOnceApnTable(lynq_data_call_id);
@@ -708,6 +718,7 @@
     bzero(client.param,LYNQ_REQUEST_PARAM_BUF);
     sprintf(client.param,"%s %s %s %s %s %s %s",apn,apnType,argv[1],argv[2],argv[3],argv[4],argv[5]);
     LYINFLOG("uToken=%d,request=%d,paralen=%d,param=%s",client.uToken,client.request,client.paramLen,client.param);
+    pthread_mutex_lock(&g_lynq_data_sendto_mutex);
     if(send_request(lynq_client_sockfd,&client)==-1)
     {
         LYERRLOG("send request fail");
@@ -715,6 +726,7 @@
         return -1;
     }
     get_response(lynq_client_sockfd,p);
+    pthread_mutex_unlock(&g_lynq_data_sendto_mutex);
     JumpHeader(p,&resp_type,&request,&slot_id,&error);
     LYINFLOG("resp_type=%d,request=%d,slot_id=%d,error_code=%d",resp_type,request,slot_id,error);
     lynq_data_call_id = updateApn(apnType);
@@ -786,6 +798,7 @@
     client.paramLen = 0;
     bzero(client.param,LYNQ_REQUEST_PARAM_BUF);
     LYINFLOG("uToken=%d,request=%d,paralen=%d,param=%s",client.uToken,client.request,client.paramLen,client.param);
+    pthread_mutex_lock(&g_lynq_data_sendto_mutex);
     if(send_request(lynq_client_sockfd,&client)==-1)
     {
         LYERRLOG("send request fail");
@@ -793,6 +806,7 @@
         return -1;
     }
     get_response(lynq_client_sockfd,p);
+    pthread_mutex_unlock(&g_lynq_data_sendto_mutex);
     JumpHeader(p,&resp_type,&request,&slot_id,&error);
     LYINFLOG("resp_type=%d,request=%d,slot_id=%d,error_code=%d",resp_type,request,slot_id,error);
     p.readInt32(&version);
@@ -1103,11 +1117,13 @@
         return -1;
     }
     LYINFLOG("uToken=%d,request=%d,paralen=%d,param=%s",client.uToken,client.request,client.paramLen,client.param);
+    pthread_mutex_lock(&g_lynq_data_sendto_mutex);
     if(send_request(lynq_client_sockfd,&client)==-1)
     {
         LYERRLOG("send request fail");
         return -1;
     }
+    pthread_mutex_unlock(&g_lynq_data_sendto_mutex);
     waitApnResult();
     strcpy(out, g_lynq_apn_result);
     LYINFLOG(">>>>>output info:%s",out);
@@ -1127,11 +1143,13 @@
     client.paramLen = 0;
     bzero(client.param, LYNQ_REQUEST_PARAM_BUF);
     LYINFLOG("uToken=%d,request=%d,paralen=%d,param=%s", client.uToken, client.request, client.paramLen, client.param);
+    pthread_mutex_lock(&g_lynq_data_sendto_mutex);
     if (send_request(lynq_client_sockfd, &client) == -1)
     {
         LYERRLOG("send request fail");
         return -1;
     }
+    pthread_mutex_unlock(&g_lynq_data_sendto_mutex);
     waitApnResult();
     strcpy(result, g_lynq_apn_result);
     LYINFLOG(">>>>>result:%s",result);
diff --git a/src/lynq/lib/liblynq-sms/src/lynq_sms.cpp b/src/lynq/lib/liblynq-sms/src/lynq_sms.cpp
index c006819..209c65d 100755
--- a/src/lynq/lib/liblynq-sms/src/lynq_sms.cpp
+++ b/src/lynq/lib/liblynq-sms/src/lynq_sms.cpp
@@ -89,6 +89,11 @@
 * 1:initialized

 */

 static int g_lynq_sms_init_flag = 0;

+/**g_lynq_sms_sendto_mutex

+* @brief mark sms send request mutex

+*/

+static pthread_mutex_t g_lynq_sms_sendto_mutex;

+

 static char *strdupReadString(Parcel &p) {

     size_t stringlen;

     const char16_t *s16;

@@ -113,6 +118,7 @@
     sms_instance.addrfrom.sin_family=AF_INET;

     sms_instance.addrfrom.sin_addr.s_addr = inet_addr(SERVER_IP);

     sms_instance.addrfrom.sin_port=htons(SERVER_PORT);

+    pthread_mutex_init(&g_lynq_sms_sendto_mutex, NULL);

 

     return ret;

 }

@@ -386,8 +392,10 @@
     client.paramLen = 3;

 

     sprintf(client.param, "%s %d %s\n", telephony_num, charset, msg);

+    pthread_mutex_lock(&g_lynq_sms_sendto_mutex);

     ret = send_buff_to_service((char *)&client, sizeof(client));

     ret = recvfrom_server(NULL);

+    pthread_mutex_unlock(&g_lynq_sms_sendto_mutex);

 

     return ret;

 }

@@ -402,8 +410,10 @@
     client.uToken = GuToken;

     client.paramLen = 1;

     sprintf(client.param, "%d", index);

+    pthread_mutex_lock(&g_lynq_sms_sendto_mutex);

     ret = send_buff_to_service((char *)&client, sizeof(client));

     ret = recvfrom_server((void *)&sms_msg_info);

+    pthread_mutex_unlock(&g_lynq_sms_sendto_mutex);

     if(ret == 0)

     {

         *charset = sms_msg_info.charset;

@@ -441,8 +451,10 @@
     client.request = RIL_REQUEST_GET_SMSC_ADDRESS;

     client.uToken = GuToken;

     client.paramLen = 0;

+    pthread_mutex_lock(&g_lynq_sms_sendto_mutex);

     ret = send_buff_to_service((char *)&client, sizeof(client));

     ret = recvfrom_server(service_num);

+    pthread_mutex_unlock(&g_lynq_sms_sendto_mutex);

 

     return ret;

 }

@@ -464,8 +476,10 @@
     client.uToken = GuToken;

     client.paramLen = 1;

     sprintf(client.param, "%s", service_num);

+    pthread_mutex_lock(&g_lynq_sms_sendto_mutex);

     send_buff_to_service((char *)&client, sizeof(client));

     ret = recvfrom_server(NULL);

+    pthread_mutex_unlock(&g_lynq_sms_sendto_mutex);

 

     return ret;

 }

@@ -477,8 +491,10 @@
     client.request = LYNQ_REQUEST_LIST_SMS_FROM_MEMORY;

     client.uToken = GuToken;

     client.paramLen = 0;

+    pthread_mutex_lock(&g_lynq_sms_sendto_mutex);

     ret = send_buff_to_service((char *)&client, sizeof(client));

     ret = recvfrom_server((void *)index_list);

+    pthread_mutex_unlock(&g_lynq_sms_sendto_mutex);

     return ret;

 }

 

@@ -490,7 +506,9 @@
     client.uToken = GuToken;

     client.paramLen = 1;

     sprintf(client.param, "%d", index);

+    pthread_mutex_lock(&g_lynq_sms_sendto_mutex);

     ret = send_buff_to_service((char *)&client, sizeof(client));

     ret = recvfrom_server(NULL);

+    pthread_mutex_unlock(&g_lynq_sms_sendto_mutex);

     return ret;

 }