[Bugfix]Fix API-339

Change-Id: I005e0a21665334c26efbaff80616a86d61295040
diff --git a/src/lynq/lib/liblynq-network/lynq_network.cpp b/src/lynq/lib/liblynq-network/lynq_network.cpp
index ff297f6..a67b4dd 100755
--- a/src/lynq/lib/liblynq-network/lynq_network.cpp
+++ b/src/lynq/lib/liblynq-network/lynq_network.cpp
@@ -66,6 +66,13 @@
 static pthread_mutex_t signal_state_change_mutex = PTHREAD_MUTEX_INITIALIZER;

 static pthread_cond_t signal_state_change_cond = PTHREAD_COND_INITIALIZER;

 

+/**g_lynq_network_sendto_mutex

+* @brief mark network send request mutex

+*/

+static pthread_mutex_t g_lynq_network_sendto_mutex;

+

+//static pthread_mutex_t g_lynq_network_recv_mutex;

+

 typedef enum{

     LYNQ_E_CARDSTATE_ERROR=8000,

     /* The voice service state is out of service*/

@@ -311,6 +318,7 @@
         LYERRLOG("init socket urc fail!!!");

         return -1;

     }

+    pthread_mutex_init(&g_lynq_network_sendto_mutex, NULL);

     return 0;

 }

 

@@ -472,6 +480,7 @@
     client_t.uToken = network_Global_uToken;

     memset(client_t.param,0,sizeof(client_t.param));

 

+    pthread_mutex_lock(&g_lynq_network_sendto_mutex);

     send_num = sendto(network_sock_fd,&client_t,sizeof(client_t),0,(struct sockaddr *)&network_addr_serv,network_len_addr_serv);

     if(send_num<0)

     {

@@ -481,6 +490,7 @@
 

     //get data

     recv_num = recvfrom(network_sock_fd,res_data,sizeof(res_data),0,(struct sockaddr *)&network_addr_serv,(socklen_t *)&network_len_addr_serv);

+    pthread_mutex_unlock(&g_lynq_network_sendto_mutex);

     if(recv_num == 0 ||recv_num <0)

     {

         LYERRLOG("recvfrom error");

@@ -542,6 +552,7 @@
     client_t.uToken = network_Global_uToken;

 

     memset(client_t.param,0,sizeof(client_t.param));

+    pthread_mutex_lock(&g_lynq_network_sendto_mutex);

     send_num = sendto(network_sock_fd,&client_t,sizeof(client_t),0,(struct sockaddr *)&network_addr_serv,network_len_addr_serv);

     if(send_num<0)

     {

@@ -551,6 +562,7 @@
 

     //get data

     recv_num = recvfrom(network_sock_fd,res_data,sizeof(res_data),0,(struct sockaddr *)&network_addr_serv,(socklen_t *)&network_len_addr_serv);

+    pthread_mutex_unlock(&g_lynq_network_sendto_mutex);

     if(recv_num == 0 ||recv_num <0)

     {

         LYERRLOG("recvfrom error");

@@ -616,7 +628,7 @@
         return ret;

     }

 

-

+    pthread_mutex_lock(&g_lynq_network_sendto_mutex);

     send_num = sendto(network_sock_fd,&client_t,sizeof(client_t),0,(struct sockaddr *)&network_addr_serv,network_len_addr_serv);

     if(send_num<0)

     {

@@ -625,6 +637,7 @@
     }

 

     recv_num = recvfrom(network_sock_fd,res_data,sizeof(res_data),0,(struct sockaddr *)&network_addr_serv,(socklen_t *)&network_len_addr_serv);

+    pthread_mutex_unlock(&g_lynq_network_sendto_mutex);

     if(recv_num == 0 ||recv_num <0)

     {

         LYERRLOG("recvfrom error");

@@ -659,7 +672,7 @@
     client_t.paramLen = 0;

     client_t.uToken = network_Global_uToken;

     memset(client_t.param,0,sizeof(client_t.param));

-

+    pthread_mutex_lock(&g_lynq_network_sendto_mutex);

     send_num = sendto(network_sock_fd,&client_t,sizeof(client_t),0,(struct sockaddr *)&network_addr_serv,network_len_addr_serv);

     if(send_num<0)

     {

@@ -669,6 +682,7 @@
 

     //get data

     recv_num = recvfrom(network_sock_fd,res_data,sizeof(res_data),0,(struct sockaddr *)&network_addr_serv,(socklen_t *)&network_len_addr_serv);

+    pthread_mutex_unlock(&g_lynq_network_sendto_mutex);

     if(recv_num == 0 ||recv_num <0)

     {

         LYERRLOG("recvfrom error");

@@ -752,6 +766,7 @@
     client_t.uToken = network_Global_uToken;

     memset(client_t.param,0,sizeof(client_t.param));

 

+    pthread_mutex_lock(&g_lynq_network_sendto_mutex);

     send_num = sendto(network_sock_fd,&client_t,sizeof(client_t),0,(struct sockaddr *)&network_addr_serv,network_len_addr_serv);

     if(send_num<0)

     {

@@ -761,6 +776,7 @@
 

     //get data

     recv_num = recvfrom(network_sock_fd,res_data,sizeof(res_data),0,(struct sockaddr *)&network_addr_serv,(socklen_t *)&network_len_addr_serv);

+    pthread_mutex_unlock(&g_lynq_network_sendto_mutex);

     if(recv_num == 0 ||recv_num <0)

     {

         LYERRLOG("recvfrom error");

@@ -842,7 +858,7 @@
     client_t.paramLen = 0;

     client_t.uToken = network_Global_uToken;

     memset(client_t.param,0,sizeof(client_t.param));

-

+    pthread_mutex_lock(&g_lynq_network_sendto_mutex);

     send_num = sendto(network_sock_fd,&client_t,sizeof(client_t),0,(struct sockaddr *)&network_addr_serv,network_len_addr_serv);

     if(send_num<0)

     {

@@ -852,6 +868,7 @@
 

     //get data 

     recv_num = recvfrom(network_sock_fd,res_data,sizeof(res_data),0,(struct sockaddr *)&network_addr_serv,(socklen_t *)&network_len_addr_serv);

+    pthread_mutex_unlock(&g_lynq_network_sendto_mutex);

     if(recv_num == 0 ||recv_num <0)

     {

         LYERRLOG("recvfrom error");

@@ -891,6 +908,7 @@
     client_t.paramLen = 1;

     client_t.uToken = network_Global_uToken;

     sprintf(client_t.param,"%d",preffertype);

+    pthread_mutex_lock(&g_lynq_network_sendto_mutex);

     send_num = sendto(network_sock_fd,&client_t,sizeof(client_t),0,(struct sockaddr *)&network_addr_serv,network_len_addr_serv);

     if(send_num<0)

     {

@@ -899,6 +917,7 @@
     }

 

     recv_num = recvfrom(network_sock_fd,res_data,sizeof(res_data),0,(struct sockaddr *)&network_addr_serv,(socklen_t *)&network_len_addr_serv);

+    pthread_mutex_unlock(&g_lynq_network_sendto_mutex);

     if(recv_num == 0 ||recv_num <0)

     {

         LYERRLOG("recvfrom error");

@@ -935,6 +954,7 @@
     client_t.paramLen = 0;

     client_t.uToken = network_Global_uToken;

     memset(client_t.param,0,sizeof(client_t.param));

+    pthread_mutex_lock(&g_lynq_network_sendto_mutex);

     send_num = sendto(network_sock_fd,&client_t,sizeof(client_t),0,(struct sockaddr *)&network_addr_serv,network_len_addr_serv);

     if(send_num<0)

     {

@@ -944,6 +964,7 @@
 

     //get data

     recv_num = recvfrom(network_sock_fd,res_data,sizeof(res_data),0,(struct sockaddr *)&network_addr_serv,(socklen_t *)&network_len_addr_serv);

+    pthread_mutex_unlock(&g_lynq_network_sendto_mutex);

     if(recv_num == 0 ||recv_num <0)

     {

         LYERRLOG("recvfrom error");

@@ -987,7 +1008,7 @@
     client_t.paramLen = 1;

     client_t.uToken = network_Global_uToken;

     sprintf(client_t.param,"%d",rate);

-

+    pthread_mutex_lock(&g_lynq_network_sendto_mutex);

     send_num = sendto(network_sock_fd,&client_t,sizeof(client_t),0,(struct sockaddr *)&network_addr_serv,network_len_addr_serv);

     if(send_num<0)

     {

@@ -995,7 +1016,9 @@
         return ret;

     }

     

+

     recv_num = recvfrom(network_sock_fd,res_data,sizeof(res_data),0,(struct sockaddr *)&network_addr_serv,(socklen_t *)&network_len_addr_serv);

+    pthread_mutex_unlock(&g_lynq_network_sendto_mutex);

     if(recv_num == 0 ||recv_num <0)

     {

         LYERRLOG("recvfrom error");

@@ -1028,7 +1051,7 @@
     client_t.paramLen = 1;

     client_t.uToken = network_Global_uToken;

     sprintf(client_t.param,"%d",bandmode);

-

+    pthread_mutex_lock(&g_lynq_network_sendto_mutex);

     send_num = sendto(network_sock_fd,&client_t,sizeof(client_t),0,(struct sockaddr *)&network_addr_serv,network_len_addr_serv);

     if(send_num<0)

     {

@@ -1037,6 +1060,7 @@
     }

     

     recv_num = recvfrom(network_sock_fd,res_data,sizeof(res_data),0,(struct sockaddr *)&network_addr_serv,(socklen_t *)&network_len_addr_serv);

+    pthread_mutex_unlock(&g_lynq_network_sendto_mutex);

     if(recv_num == 0 ||recv_num <0)

     {

         LYERRLOG("recvfrom error");

@@ -1073,6 +1097,7 @@
     client_t.paramLen = 0;

     client_t.uToken = network_Global_uToken;

     memset(client_t.param,0,sizeof(client_t.param));

+    pthread_mutex_lock(&g_lynq_network_sendto_mutex);

     send_num = sendto(network_sock_fd,&client_t,sizeof(client_t),0,(struct sockaddr *)&network_addr_serv,network_len_addr_serv);

     if(send_num<0)

     {

@@ -1082,6 +1107,7 @@
 

     //get data

     recv_num = recvfrom(network_sock_fd,res_data,sizeof(res_data),0,(struct sockaddr *)&network_addr_serv,(socklen_t *)&network_len_addr_serv);

+    pthread_mutex_unlock(&g_lynq_network_sendto_mutex);

     if(recv_num == 0 ||recv_num <0)

     {

         LYERRLOG("recvfrom error");

@@ -1133,7 +1159,7 @@
     client_t.paramLen = 1;

     client_t.uToken = network_Global_uToken;

     sprintf(client_t.param,"%d",data);

-

+    pthread_mutex_lock(&g_lynq_network_sendto_mutex);

     send_num = sendto(network_sock_fd,&client_t,sizeof(client_t),0,(struct sockaddr *)&network_addr_serv,network_len_addr_serv);

     if(send_num<0)

     {

@@ -1142,6 +1168,7 @@
     }

 

     recv_num = recvfrom(network_sock_fd,res_data,sizeof(res_data),0,(struct sockaddr *)&network_addr_serv,(socklen_t *)&network_len_addr_serv);

+    pthread_mutex_unlock(&g_lynq_network_sendto_mutex); 

     if(recv_num == 0 ||recv_num <0)

     {

         LYERRLOG("recvfrom error");

@@ -1177,7 +1204,7 @@
     client_t.paramLen = 0;

     client_t.uToken = network_Global_uToken;

     memset(client_t.param,0,sizeof(client_t.param));

-

+    pthread_mutex_lock(&g_lynq_network_sendto_mutex);

     send_num = sendto(network_sock_fd,&client_t,sizeof(client_t),0,(struct sockaddr *)&network_addr_serv,network_len_addr_serv);

     if(send_num<0)

     {

@@ -1186,6 +1213,7 @@
     }

 

     recv_num = recvfrom(network_sock_fd,res_data,sizeof(res_data),0,(struct sockaddr *)&network_addr_serv,(socklen_t *)&network_len_addr_serv);

+    pthread_mutex_unlock(&g_lynq_network_sendto_mutex);

     if(recv_num == 0 ||recv_num <0)

     {

         LYERRLOG("recvfrom error");

@@ -1232,6 +1260,7 @@
     client_t.uToken = network_Global_uToken;

     memset(client_t.param,0,sizeof(client_t.param));

 

+    pthread_mutex_lock(&g_lynq_network_sendto_mutex);

     send_num = sendto(network_sock_fd,&client_t,sizeof(client_t),0,(struct sockaddr *)&network_addr_serv,network_len_addr_serv);

     if(send_num<0)

     {

@@ -1241,6 +1270,7 @@
 

     //get data 

     recv_num = recvfrom(network_sock_fd,res_data,sizeof(res_data),0,(struct sockaddr *)&network_addr_serv,(socklen_t *)&network_len_addr_serv);

+    pthread_mutex_unlock(&g_lynq_network_sendto_mutex);

     if(recv_num == 0 ||recv_num <0)

     {

         LYERRLOG("recvfrom error");

@@ -1343,7 +1373,7 @@
     client_t.paramLen = 1;

     client_t.uToken = network_Global_uToken;

     sprintf(client_t.param,"%d",ims_mode);

-

+    pthread_mutex_lock(&g_lynq_network_sendto_mutex);

     send_num = sendto(network_sock_fd,&client_t,sizeof(client_t),0,(struct sockaddr *)&network_addr_serv,network_len_addr_serv);

     if (send_num<0)

     {

@@ -1352,6 +1382,7 @@
     }

 

     recv_num = recvfrom(network_sock_fd,res_data,sizeof(res_data),0,(struct sockaddr *)&network_addr_serv,(socklen_t *)&network_len_addr_serv);

+    pthread_mutex_unlock(&g_lynq_network_sendto_mutex);

     if (recv_num == 0 || recv_num < 0)

     {

         LYERRLOG("recvfrom error");