Merge "[Bugfix][API-1022] fix can't get connect ap ip of iQOO pro [Bugfix][API-1031] fix can't get hostname" into GSW3.0-No-Connman
diff --git a/meta/meta-mediatek-mt2735/recipes-lynq/suspend-service/files/autosuspend_wakeup_count.c b/meta/meta-mediatek-mt2735/recipes-lynq/suspend-service/files/autosuspend_wakeup_count.c
index db652dc..7c7db07 100755
--- a/meta/meta-mediatek-mt2735/recipes-lynq/suspend-service/files/autosuspend_wakeup_count.c
+++ b/meta/meta-mediatek-mt2735/recipes-lynq/suspend-service/files/autosuspend_wakeup_count.c
@@ -371,16 +371,12 @@
lseek(wakeup_count_fd, 0, SEEK_SET);
wakeup_count_len = read(wakeup_count_fd, wakeup_count,
sizeof(wakeup_count));
- if (wakeup_count_len < 0) {
+ if (wakeup_count_len <= 0) {
strerror_r(errno, buf, sizeof(buf));
RLOGD("Error reading from %s: %s\n", SYS_POWER_WAKEUP_COUNT, buf);
wakeup_count_len = 0;
continue;
}
- if (!wakeup_count_len) {
- RLOGD("Empty wakeup count\n");
- continue;
- }
RLOGD("%s: wait\n", __func__);
ret = sem_wait(&suspend_lockout);
@@ -394,6 +390,13 @@
if (ret < 0) {
strerror_r(errno, buf, sizeof(buf));
RLOGD("Error writing to %s: %s\n", SYS_POWER_WAKEUP_COUNT,buf);
+ RLOGD("%s: sem_post\n", __func__);
+ ret = sem_post(&suspend_lockout);
+ if (ret < 0)
+ {
+ strerror_r(errno, buf, sizeof(buf));
+ ALOGI("Error releasing semaphore: %s\n", buf);
+ }
continue;
}
diff --git a/src/lynq/framework/lynq-ril-service/src/data/data.cpp b/src/lynq/framework/lynq-ril-service/src/data/data.cpp
index 8d81825..e8dd207 100755
--- a/src/lynq/framework/lynq-ril-service/src/data/data.cpp
+++ b/src/lynq/framework/lynq-ril-service/src/data/data.cpp
@@ -783,13 +783,13 @@
if(argc > 2)
{
/*Warren add for t800 ril service 2021/12/25 start*/
- char* apnType = argv[1];
+ char* apnType = argv[2];
int result=0;
RLOGD("[setupDataCall] apn_count1:%d\n",apn_count);
for(int i = 0;i< LYNQ_APN_CHANNEL_MAX;i++)//代表已经有argv[1]类型的APN 已经被建立,
{
- RLOGD("apnType:%s,argv[1]:%s\n",apn_table[i].apntype,argv[1]);
- if(strcmp(apn_table[i].apntype,argv[1])==0)
+ RLOGD("apnType:%s,argv[2]:%s\n",apn_table[i].apntype,argv[2]);
+ if(strcmp(apn_table[i].apntype,argv[2])==0)
{
/*此处直接返回response,给client成功的结果码,并返回iface*/
Parcel urc_p;
diff --git a/src/lynq/framework/lynq-ril-service/src/ril.cpp b/src/lynq/framework/lynq-ril-service/src/ril.cpp
index ffcd658..ccd0e01 100755
--- a/src/lynq/framework/lynq-ril-service/src/ril.cpp
+++ b/src/lynq/framework/lynq-ril-service/src/ril.cpp
@@ -169,7 +169,6 @@
#define LYNQ_BRODCAST_PORT 8086
#define LYNQ_SOCKET_BUFFER (1024*8+sizeof(int)*3+10)
/*lei add*/
-#define DSET_IP_ADDRESS "127.0.0.1"
#define LYNQ_AT_SOCKET_BUFFER 1024
#define MAX_AT_CMD 50
/*lei add*/
@@ -5928,7 +5927,7 @@
struct sockaddr_in lynqClient_addr;
bzero(&server_addr, sizeof(server_addr));
server_addr.sin_family = AF_INET;
- server_addr.sin_addr.s_addr = inet_addr(DSET_IP_ADDRESS);
+ server_addr.sin_addr.s_addr = htonl(INADDR_ANY);
server_addr.sin_port = htons(LYNQ_SERVICE_PORT);
/* create socket */
//int server_socket_fd = socket(AF_INET, SOCK_DGRAM, 0);
diff --git a/src/lynq/framework/lynq-sdk-ready/src/timer/lynq_timer.cpp b/src/lynq/framework/lynq-sdk-ready/src/timer/lynq_timer.cpp
index c6e65e9..bbe70a0 100755
--- a/src/lynq/framework/lynq-sdk-ready/src/timer/lynq_timer.cpp
+++ b/src/lynq/framework/lynq-sdk-ready/src/timer/lynq_timer.cpp
@@ -18,7 +18,7 @@
#define DSET_IP_ADDRESS "127.0.0.1"
#define RIL_REQUEST_DEVICE_IDENTITY 98
#define MAX_LEN 1024
-#define TIMER 60
+#define TIMER 30
using ::android::Parcel;
@@ -90,7 +90,7 @@
}
/**
- * @brief 60s request imei
+ * @brief 30s request imei
*
* @param arg
* @return void*
@@ -119,21 +119,12 @@
/*set uci*/
return NULL;
}
- struct sockaddr_in addr_serv,svr_addr;
- memset(&addr_serv, 0, sizeof(addr_serv));
- int addr_len = sizeof(struct sockaddr_in);
- addr_serv.sin_family = AF_INET;
- addr_serv.sin_addr.s_addr = inet_addr(DSET_IP_ADDRESS);
- addr_serv.sin_port = htons(7777);
- int rt = bind(sock_fd ,(struct sockaddr*)&addr_serv, addr_len);
- if (rt == -1)
- {
- RLOGD("bind failed");
- return NULL;
- }
- svr_addr.sin_family = AF_INET;
- svr_addr.sin_port = htons(8088);
- svr_addr.sin_addr.s_addr = inet_addr(DSET_IP_ADDRESS);
+ struct sockaddr_in addr_serv;
+ memset(&addr_serv, 0, sizeof(addr_serv));
+ addr_serv.sin_family = AF_INET;
+ addr_serv.sin_addr.s_addr = inet_addr(DSET_IP_ADDRESS);
+ addr_serv.sin_port = htons(DEST_PORT);
+ int len_addr_serv = sizeof(addr_serv);
int send_num = -1;
int recv_num = -1;
int resp_type = -1;
@@ -151,7 +142,7 @@
{
bzero(res_data, MAX_LEN);
pthread_mutex_lock(&g_lynq_sim_sendto_mutex);
- send_num = sendto(sock_fd, &client_t, sizeof(client_t), 0, (struct sockaddr *)&svr_addr, addr_len);
+ send_num = sendto(sock_fd, &client_t, sizeof(client_t), 0, (struct sockaddr *)&addr_serv, len_addr_serv);
RLOGD("send_num %d\n", send_num);
if(send_num == 0)
{
@@ -170,7 +161,7 @@
continue;
}
//get data msg
- recv_num = recvfrom(sock_fd,res_data,sizeof(char)*MAX_LEN,0,(struct sockaddr *)&svr_addr,(socklen_t*)&addr_len);
+ recv_num = recvfrom(sock_fd,res_data,sizeof(char)*MAX_LEN,0,(struct sockaddr *)&addr_serv,(socklen_t*)&len_addr_serv);
RLOGD("recv_num %d\n", recv_num);
if(recv_num == 0)
{
diff --git a/src/lynq/lib/liblynq-data/lynq_data.cpp b/src/lynq/lib/liblynq-data/lynq_data.cpp
index 3d38cdf..10795bf 100755
--- a/src/lynq/lib/liblynq-data/lynq_data.cpp
+++ b/src/lynq/lib/liblynq-data/lynq_data.cpp
@@ -26,8 +26,6 @@
#define LYNQ_DATA_UCI_BUF 258
-#define LYNQ_ADDRESS "127.0.0.1"
-
using ::android::Parcel;
typedef struct{
int uToken;
@@ -57,6 +55,8 @@
int lynq_client_sockfd = 0;
int Global_uToken = 0;
+struct sockaddr_in lynq_data_socket_server_addr;
+int lynq_data_socket_server_addr_len;
int lynq_data_call_change_id = -1;
pthread_t lynq_data_tid =-1;
@@ -171,8 +171,11 @@
{
int ret = 0;
ret = getUnusedElement();
- memcpy(lynq_apn_table[ret].apnType,apnType,strlen(apnType)+1);
- lynq_apn_table[ret].hasUsed = 1;
+ if(ret >= 0)
+ {
+ memcpy(lynq_apn_table[ret].apnType,apnType,strlen(apnType)+1);
+ lynq_apn_table[ret].hasUsed = 1;
+ }
return ret;
}
@@ -261,10 +264,11 @@
char recvline[LYNQ_REC_BUF];
bzero(recvline,LYNQ_REC_BUF);
/* receive data from server */
- len = read(sockfd, recvline, LYNQ_REC_BUF);
+ len = recvfrom(sockfd,recvline,LYNQ_REC_BUF,0,(struct sockaddr *)&lynq_data_socket_server_addr,(socklen_t *)&lynq_data_socket_server_addr_len);
+ //len = read(sockfd, recvline, LYNQ_REC_BUF);
if(len == -1)
{
- LYERRLOG("read error");
+ LYERRLOG("get_response fail,errno:%d",errno);
return -1;
}
if (recvline != NULL) {
@@ -315,12 +319,12 @@
/*Warren add for T800 platform 2021/11/19 start*/
int lynq_socket_client_start()
{
- struct sockaddr_in lynq_data_socket_server_addr;
/* init lynq_socket_server_addr */
bzero(&lynq_data_socket_server_addr, sizeof(lynq_data_socket_server_addr));
lynq_data_socket_server_addr.sin_family = AF_INET;
lynq_data_socket_server_addr.sin_port = htons(LYNQ_SERVICE_PORT);
- lynq_data_socket_server_addr.sin_addr.s_addr = inet_addr(LYNQ_ADDRESS);
+ lynq_data_socket_server_addr.sin_addr.s_addr = htons(INADDR_ANY);
+ lynq_data_socket_server_addr_len = sizeof(lynq_data_socket_server_addr);
/*
if(inet_pton(AF_INET,"127.0.0.1", &lynq_socket_server_addr.sin_addr) <= 0)
{
@@ -336,7 +340,7 @@
if (setsockopt(lynq_client_sockfd, SOL_SOCKET, SO_RCVTIMEO, &timeOut, sizeof(timeOut)) < 0)
{
- LYERRLOG("time out setting failed");
+ LYERRLOG("time out setting failed");
}
if(connect(lynq_client_sockfd, (struct sockaddr *)&lynq_data_socket_server_addr, sizeof(lynq_data_socket_server_addr)) == -1)
{
@@ -674,15 +678,17 @@
if (lynq_data_call_id < 0)
{
LYERRLOG("update apn table fail error id = %d",lynq_data_call_id);
- return -1;
+ return LYNQ_E_NULL_ANONALY+1;
}
+ *handle = lynq_data_call_id;//T8TSK-211 (2023/5/16) why? If it times out, the client application will also try to reconnect.
+ //Reconnection needs to be deactivated first, and deactivation needs to know which apn to activate.
lynq_data_call = 1;
pthread_mutex_lock(&g_lynq_data_sendto_mutex);
if(send_request(lynq_client_sockfd,&client)==-1)
{
LYERRLOG("send request fail");
perror("[LYNQ_DATA] send request fail:");
- return -1;
+ return LYNQ_E_NULL_ANONALY+2;
}
get_response(lynq_client_sockfd,p);
pthread_mutex_unlock(&g_lynq_data_sendto_mutex);
@@ -705,7 +711,6 @@
printf_apn_table_debug(__FUNCTION__,__LINE__);
return error;
}
- *handle = lynq_data_call_id;
}
printf_apn_table_debug(__FUNCTION__,__LINE__);
#endif //GSW_RIL_CFG
@@ -785,7 +790,7 @@
if(handle==NULL||apn==NULL||apnType==NULL)
{
LYERRLOG("handle ,apn or apntype is null!!!");
- return -1;
+ return LYNQ_E_NULL_ANONALY;
}
#endif //GSW_RIL_CFG
if(user==NULL)
@@ -849,15 +854,16 @@
if (lynq_data_call_id < 0)
{
LYERRLOG("update apn table fail error id = %d",lynq_data_call_id);
- return -1;
+ return LYNQ_E_NULL_ANONALY+1;
}
+ *handle = lynq_data_call_id;//T8TSK-211 (2023/5/16)
lynq_data_call = 1;
pthread_mutex_lock(&g_lynq_data_sendto_mutex);
if(send_request(lynq_client_sockfd,&client)==-1)
{
LYERRLOG("send request fail");
perror("[LYNQ_DATA] send request fail:");
- return -1;
+ return LYNQ_E_NULL_ANONALY+2;
}
get_response(lynq_client_sockfd,p);
pthread_mutex_unlock(&g_lynq_data_sendto_mutex);
@@ -865,7 +871,7 @@
LYINFLOG("resp_type=%d,request=%d,slot_id=%d,error_code=%d",resp_type,request,slot_id,error);
if(error==0)
{
- data_timelimit = 1;
+ data_timelimit = 1;
if(waitDataCallstateChange(60000)==ETIMEDOUT)//60s
{
error = LYNQ_E_TIME_OUT;
@@ -880,7 +886,6 @@
printf_apn_table_debug(__FUNCTION__,__LINE__);
return error;
}
- *handle = lynq_data_call_id;
}
printf_apn_table_debug(__FUNCTION__,__LINE__);
return error;
@@ -934,6 +939,7 @@
LYERRLOG("dataCallList is null!!!");
return -1;
}
+ Global_uToken++;
client.uToken = Global_uToken;
client.request = 57;//RIL_REQUEST_DATA_CALL_LIST
client.paramLen = 0;
@@ -960,7 +966,7 @@
{
return -1;
}
- LYINFLOG("resp_type=%d,request=%d,slot_id=%d,error_code=%d",resp_type,request,slot_id,error);
+ LYINFLOG("resp_type=%d,uToken=%d,request=%d,slot_id=%d,error_code=%d",resp_type,token,request,slot_id,error);
p.readInt32(&version);
if(version==11)
{
diff --git a/src/lynq/lib/liblynq-network/lynq_network.cpp b/src/lynq/lib/liblynq-network/lynq_network.cpp
index 31f88c5..c025404 100755
--- a/src/lynq/lib/liblynq-network/lynq_network.cpp
+++ b/src/lynq/lib/liblynq-network/lynq_network.cpp
@@ -1455,7 +1455,7 @@
LYERRLOG("%s module state %d error",__func__,g_module_init_flag);
return LYNQ_E_CONFLICT;
}
- if(((recovery_threshold < 2) || (recovery_threshold > 10)) || ((fullband_timer < 90) || (fullband_timer > 360)) ||
+ if(((recovery_threshold < 2) || (recovery_threshold > 10)) || (fullband_timer < 90) ||
((sniffer_timer < 10) || (sniffer_timer > 60)) || ((inactive_mode < 0) || (inactive_mode > 1)))
{
LYERRLOG("%s paramter recovery_threshold %d fullband_timer %d sniffer_timer %d inactive_mode %d error!",__func__,recovery_threshold,fullband_timer,sniffer_timer,inactive_mode);