[Feature][T8TSK-81]Merge MR3.0 New changes to commit ID:2b1db87cbf754219ab0e1cb48c663067ed55b7b3;GSW commit ID:4b1cf725e8037c2d878c85388384a0f5c8129274
Change-Id: Icbf9845e92b3564ad7f1d127c13c896b93a42c5b
diff --git a/src/lynq/lib/liblynq-at-extension/include/lib_at/lynq_at.h b/src/lynq/lib/liblynq-at-extension/include/lib_at/lynq_at.h
index 0049eb1..1a17fe9 100755
--- a/src/lynq/lib/liblynq-at-extension/include/lib_at/lynq_at.h
+++ b/src/lynq/lib/liblynq-at-extension/include/lib_at/lynq_at.h
@@ -10,9 +10,9 @@
#ifndef __LYNQ_AT__
#define __LYNQ_AT__
-//#ifdef __cplusplus
-//extern "C" {
-//#endif
+#ifdef __cplusplus
+extern "C" {
+#endif
/**
* @brief
@@ -31,8 +31,8 @@
*/
int lynq_reg_third_at(const char *ext_at, LYNQ_AT_CALLBACK callback);
-//#ifdef __cplusplus
-//}
-//#endif
+#ifdef __cplusplus
+}
+#endif
#endif
\ No newline at end of file
diff --git a/src/lynq/lib/liblynq-at-extension/lynq_at.cpp b/src/lynq/lib/liblynq-at-extension/lynq_at.cpp
index 8785310..80c6588 100755
--- a/src/lynq/lib/liblynq-at-extension/lynq_at.cpp
+++ b/src/lynq/lib/liblynq-at-extension/lynq_at.cpp
@@ -95,7 +95,7 @@
if (connect(sockfd, (struct sockaddr *) &addr_server, sizeof(struct sockaddr_un)) < 0)
{
close(sockfd);
- LYDBGLOG("Can't connect to server side, path: %s, errno:%d", name, errno);
+ LYDBGLOG("Can't connect to server side, path: %s, %s", name, strerror(errno));
return -1;
}
LYINFLOG("[%d][%s] connect %s success",LINE,FUNC,name);
@@ -120,40 +120,43 @@
LYDBGLOG("lose data when send to atci service. errno = %d", errno);
return false;
}
- LYDBGLOG("send to app demo: %s", msg);
+ LYDBGLOG("client send to app demo: %s", msg);
return true;
}
int atsvc_cmd_recv(int fd, char *buf, int len)
{
+ LYINFLOG("[%d][%s] enter",LINE,FUNC);
int ret = 0;
- fd_set rfds;
- //FD_CLR(fd, &rfds);
- FD_SET(fd, &rfds);
- ret = select(fd + 1, &rfds, NULL, NULL, NULL);
- if (ret <= 0)
- {
- LYDBGLOG("acti_cmd_recv select error, ret=%d, error=%s(%d),fd=%d", ret,strerror(errno), errno, fd);
- return SOCKET_FAIL;
- }
- if (FD_ISSET(fd, &rfds))
- {
+ // fd_set rfds;
+ // //FD_CLR(fd, &rfds);
+ // FD_SET(fd, &rfds);
+ // ret = select(fd + 1, &rfds, NULL, NULL, NULL);
+ // if (ret <= 0)
+ // {
+ // LYDBGLOG("acti_cmd_recv client select error, ret=%d, error=%s(%d),fd=%d", ret,strerror(errno), errno, fd);
+ // return SOCKET_FAIL;
+ // }
+ // if (FD_ISSET(fd, &rfds))
+ // {
+ LYDBGLOG("[%d][%s] recv before",LINE,FUNC);
ret = recv(fd, buf, len, 0);
+ LYDBGLOG("[%d][%s] recv after",LINE,FUNC);
if (ret < 0)
{
- LYDBGLOG("acti_cmd_recv select error, ret=%d, error=%s(%d),fd=%d", ret,strerror(errno), errno, fd);
+ LYDBGLOG("acti_cmd_recv client select error, ret=%d, error=%s(%d),fd=%d", ret,strerror(errno), errno, fd);
return SOCKET_FAIL;
}
else if(ret == 0)
{
- LYDBGLOG("acti_cmd_recv recv error, ret=%d, error=%s(%d),fd=%d", ret,strerror(errno), errno, fd);
+ LYDBGLOG("acti_cmd_recv client recv error, ret=%d, error=%s(%d),fd=%d", ret,strerror(errno), errno, fd);
return SOCKET_ZERO;
}
- else
- {
- //buf[ret] = '\0';
- }
- }
+ // else
+ // {
+ // //buf[ret] = '\0';
+ // }
+// }
return SOCKET_SUCC;
}
/**
@@ -179,6 +182,7 @@
fd = socket_local_client(AT_EXTERSION_SOCKET_NAME);
if(fd <= 0)
{
+ LYDBGLOG("socket_local_client fail\n");
connect_state = false;
pthread_mutex_unlock(&s_startupMutex);
return NULL;
@@ -186,6 +190,7 @@
int len_buf = strlen(buffer_at);
if(!send_msg_to_service(fd,buffer_at,len_buf))
{
+ LYDBGLOG("send_msg_to_service fail\n");
connect_state = false;
pthread_mutex_unlock(&s_startupMutex);
return NULL;
diff --git a/src/lynq/lib/liblynq-call/lynq_call.cpp b/src/lynq/lib/liblynq-call/lynq_call.cpp
index d1e2293..741220e 100755
--- a/src/lynq/lib/liblynq-call/lynq_call.cpp
+++ b/src/lynq/lib/liblynq-call/lynq_call.cpp
@@ -422,12 +422,12 @@
{
update=0;
pthread_cond_wait(&s_notice_get_call_list_cond, &s_notice_get_call_list_mutex);
- LYDBGLOG("triggerGetCallList event!!!");
+ LYINFLOG("triggerGetCallList event %p!!!", pthread_self());
memset(call_list,0,sizeof(call_list));
ret = lynq_get_current_call_list(call_list);
if(ret != RESULT_OK)
{
- LYDBGLOG("get current call list failure!!!");
+ LYERRLOG("get current call list failure!!!");
continue;
}
LYINFLOG("++++++++++++++triggerGetCallList++++++++++++++");
@@ -595,10 +595,11 @@
void lynqNoticeGetModuleCallList()
{
+ LYINFLOG("RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED send start");
pthread_mutex_lock(&s_notice_get_call_list_mutex);
pthread_cond_signal(&s_notice_get_call_list_cond);
pthread_mutex_unlock(&s_notice_get_call_list_mutex);
-
+ LYINFLOG("RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED send end");
}
#if 0
diff --git a/src/lynq/lib/liblynq-sms/lynq_module_socket.cpp b/src/lynq/lib/liblynq-sms/lynq_module_socket.cpp
index 4b6f020..8d012da 100755
--- a/src/lynq/lib/liblynq-sms/lynq_module_socket.cpp
+++ b/src/lynq/lib/liblynq-sms/lynq_module_socket.cpp
@@ -24,7 +24,7 @@
#define LYNQ_REQUEST_PARAM_BUF 8192
#define LYNQ_REC_BUF 8192
-#define USER_LOG_TAG "LYNQ_NETWORK"
+#define USER_LOG_TAG "LYNQ_SMS"
typedef struct{
int uToken;
@@ -319,7 +319,7 @@
char urc_data[LYNQ_REC_BUF];
int res = 0;
lynq_head_t* phead;
-
+ int level,index,size;
LYINFLOG("urc recv thread is running");
while(module_urc_status)
{
@@ -330,7 +330,7 @@
LYERRLOG("thread_urc_recv step2 fail: res is %d",res);
continue;
}
- LYINFLOG("__FUNCTION__ %s __LINE__ %d\n", __FUNCTION__, __LINE__);
+ LYDBGLOG("__FUNCTION__ %s __LINE__ %d\n", __FUNCTION__, __LINE__);
phead=(lynq_head_t*) urc_data;
if(is_support_urc(phead->urcid)==false)
{
@@ -342,8 +342,8 @@
LYERRLOG("new parcel failure!!!");
continue;
}
- LYINFLOG("__FUNCTION__ %s __LINE__ %d\n", __FUNCTION__, __LINE__);
- int level,index,size;
+ LYDBGLOG("__FUNCTION__ %s __LINE__ %d\n", __FUNCTION__, __LINE__);
+
if(urc_data_is_in_shm_data(phead->resp_type,level,index,size))
{
LYINFLOG("__FUNCTION__ %s __LINE__ %d,use share memory\n", __FUNCTION__, __LINE__);
@@ -367,14 +367,14 @@
s_recv_urc_parcel_list.push_back(urc_p);
BLOCK_WAKEUP_PROCESS_URC_MSG();
BLOCK_PROCESS_URC_MSG_UNLOCK();
- LYINFLOG("__FUNCTION__ %s __LINE__ %d\n", __FUNCTION__, __LINE__);
+ LYDBGLOG("__FUNCTION__ %s __LINE__ %d\n", __FUNCTION__, __LINE__);
}
else
{
delete urc_p;
urc_p = NULL;
}
- LYINFLOG("__FUNCTION__ %s __LINE__ %d\n", __FUNCTION__, __LINE__);
+ LYDBGLOG("__FUNCTION__ %s __LINE__ %d\n", __FUNCTION__, __LINE__);
}
LYINFLOG("urc recv thread ended");
return NULL;
@@ -397,9 +397,9 @@
BLOCK_PROCESS_URC_MSG_LOCK();
while(s_recv_urc_parcel_list.empty())
{
- LYINFLOG("__FUNCTION__ %s __LINE__ %d\n", __FUNCTION__, __LINE__);
+ LYDBGLOG("__FUNCTION__ %s __LINE__ %d\n", __FUNCTION__, __LINE__);
BLOCK_WAIT_PROCESS_URC_MSG();
- LYINFLOG("__FUNCTION__ %s __LINE__ %d\n", __FUNCTION__, __LINE__);
+ LYDBGLOG("__FUNCTION__ %s __LINE__ %d\n", __FUNCTION__, __LINE__);
}
iter=s_recv_urc_parcel_list.begin();
urc_p=(*iter);
@@ -408,11 +408,11 @@
urc_p->setDataPosition(0);
if(urc_p->dataAvail()>0)
{
- LYINFLOG("__FUNCTION__ %s __LINE__ %d\n", __FUNCTION__, __LINE__);
+ LYDBGLOG("__FUNCTION__ %s __LINE__ %d\n", __FUNCTION__, __LINE__);
pthread_mutex_lock(&s_urc_mutex);
urc_msg_process(urc_p);
pthread_mutex_unlock(&s_urc_mutex);
- LYINFLOG("__FUNCTION__ %s __LINE__ %d\n", __FUNCTION__, __LINE__);
+ LYDBGLOG("__FUNCTION__ %s __LINE__ %d\n", __FUNCTION__, __LINE__);
}
delete urc_p;
urc_p = NULL;
diff --git a/src/lynq/lib/liblynq-sms/lynq_sms.cpp b/src/lynq/lib/liblynq-sms/lynq_sms.cpp
index 46f2119..ddf12b9 100755
--- a/src/lynq/lib/liblynq-sms/lynq_sms.cpp
+++ b/src/lynq/lib/liblynq-sms/lynq_sms.cpp
@@ -87,7 +87,7 @@
}
g_module_init_flag = MODULE_SWITCHING;
- LYLOGSET(LOG_DEBUG);
+ LYLOGSET(LOG_INFO);
LYLOGEINIT(USER_LOG_TAG);
g_module_Global_uToken = uToken;
diff --git a/src/lynq/lib/liblynq-wifi6/libwifi6.c b/src/lynq/lib/liblynq-wifi6/libwifi6.c
index d0c3c32..25e429b 100755
--- a/src/lynq/lib/liblynq-wifi6/libwifi6.c
+++ b/src/lynq/lib/liblynq-wifi6/libwifi6.c
@@ -370,7 +370,11 @@
usleep(300*1000);
system("wpa_cli -iwpa_wlan0_cmd -p/var/run/ IFNAME=ap0 disconnect");
}
-
+ ret = system("wl -i wlan0 PM 0");
+ if( ret != 0)
+ {
+ printf("Set sta PM work mode to 0 fail,ret is%d",ret);
+ }
if (g_ap_watcher_pid == 0 ) {
ret=pthread_create(&g_ap_watcher_pid,NULL,APWatcherThreadProc,NULL);
if(ret<0){
@@ -593,7 +597,7 @@
if (NULL == mac || NULL == ip)
return -1;
memset(ip, 0, ip_len);
- sprintf(cmd, "ip neigh | grep \"lladdr\" | grep \"tether\" | grep \"%s\" | head -1 | awk '{print $1}'", mac);
+ sprintf(cmd, "ip n s | grep \"lladdr\" | grep \"%s\" | head -1 | awk '{print $1}'", mac);
ret = exec_cmd(cmd, ip, ip_len);
p = strchr(ip, '\n');
if (NULL != p)
@@ -758,7 +762,7 @@
else if (strstr( flag, "NONE") != NULL) {
return LYNQ_WIFI_AUTH_OPEN;
}
- else if (strcmp( flag, "[ESS]") == 0) {
+ else if (strcmp( flag, "[ESS]") == 0 || strcmp( flag,"[WPS][ESS]") == 0) {
return LYNQ_WIFI_AUTH_OPEN;
}
}
@@ -930,6 +934,27 @@
return 0;
}
+
+static int lynq_check_frequencyby_country_code(int input_frequency)
+{
+ char str_cnc[]="CN";
+ char str_dest[20]="";
+
+ if( lynq_get_country_code(1,str_dest) != 0 )
+ {
+ printf("get country_code error\n");
+ return -1;
+ }
+ if( strncmp(str_dest,str_cnc,2) != 0 )
+ {
+ return 0;
+ }else if( 2473 < input_frequency && input_frequency < 5744)
+ {
+ printf("input frequency is bad\n");
+ return -1;
+ }
+ return 0;
+}
int lynq_wifi_ap_frequency_set(lynq_wifi_index_e idx,int lynq_wifi_frequency)
{
int check;
@@ -944,6 +969,13 @@
printf("do check frequency error\n");
return -1;
}
+ check = lynq_check_frequencyby_country_code(lynq_wifi_frequency);
+ if(check != 0)
+ {
+ printf("do check frequency error\n");
+ return -1;
+ }
+
if (lynq_check_network_number(idx, CTRL_AP, AP_NETWORK_0) != 0)
{
return -1;
@@ -1000,7 +1032,7 @@
}
case LYNQ_WIFI_BANDWIDTH_HT40:
{
- char lynq_cmd_bandwith[MAX_CMD]="wl chanspec 153u";
+ char lynq_cmd_bandwith[MAX_CMD]="wl chanspec 149/40";
sprintf(lynq_cmd_bandwith, "wl chanspec ");
system("wl down");
if (system(lynq_cmd_bandwith) != 0 ){
@@ -1011,7 +1043,7 @@
}
case LYNQ_WIFI_BANDWIDTH_HT80:
{
- char lynq_cmd_bandwith[MAX_CMD]="wl chanspec 36/80";
+ char lynq_cmd_bandwith[MAX_CMD]="wl chanspec 149/80";
system("wl down");
if (system(lynq_cmd_bandwith) != 0 ){
return -1;
@@ -1555,6 +1587,9 @@
break;
}
+ if (p == NULL)
+ return -1;
+
ssid = strstr(p, "ssid=");
if (ssid != NULL) {
ssid += strlen("ssid=");
@@ -1604,9 +1639,12 @@
continue;
}
- strcpy(password, p);
+ if (*p == '\"')
+ p++;
+ strncpy(password, p, 64);
- while(*password != '\0') {
+ p = password;
+ while(password - p < 64 && *password != '\0') {
if (*password == '\"') {
*password = '\0';
break;
@@ -2243,8 +2281,14 @@
CHECK_WPA_CTRL(CTRL_STA);
- DO_OK_FAIL_REQUEST(lynq_scan_cmd);
g_sta_scan_finish_flag = 0;
+ DO_REQUEST(lynq_scan_cmd);
+ if (reply_len >=9 && memcmp(cmd_reply, "FAIL-BUSY", 9) == 0 ) {
+ return 0;
+ } else if (reply_len >=2 && memcmp(cmd_reply, "OK", 2) != 0) {
+ g_sta_scan_finish_flag = 1;
+ return -1;
+ }
return 0;
}
diff --git a/src/lynq/lib/libpoweralarm/libpoweralarm.c b/src/lynq/lib/libpoweralarm/libpoweralarm.c
index 0cc3eb8..162484e 100644
--- a/src/lynq/lib/libpoweralarm/libpoweralarm.c
+++ b/src/lynq/lib/libpoweralarm/libpoweralarm.c
@@ -42,7 +42,7 @@
time_buff = (char*)malloc(100);
bzero(time_buff,100);
-
+ system("hwclock -w -f /dev/rtc0");
sprintf(time_buff,"echo +%ld > %s",sec,RTCFILE_POWERALARM); //write formatted data into time_buff
system(time_buff);
ALOGI(time_buff);
@@ -75,7 +75,7 @@
time_buff = (char*)malloc(100);
bzero(time_buff,100);
-
+ system("hwclock -w -f /dev/rtc0");
sprintf(time_buff,"echo +%ld > %s",sec,RTCFILE_WAKEALARM); //write formatted data into time_buff
system(time_buff);
ALOGI(time_buff);