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