[Feature][T8TSK-81]Merge MR3.0 New changes to commit ID:2b1db87cbf754219ab0e1cb48c663067ed55b7b3;GSW commit ID:4b1cf725e8037c2d878c85388384a0f5c8129274
Change-Id: Icbf9845e92b3564ad7f1d127c13c896b93a42c5b
diff --git a/meta-sdk/meta/meta-mediatek-ivt/recipes-core/busybox/busybox/ring_buf.patch b/meta-sdk/meta/meta-mediatek-ivt/recipes-core/busybox/busybox/ring_buf.patch
index 8a3ecbc..88f6a27 100755
--- a/meta-sdk/meta/meta-mediatek-ivt/recipes-core/busybox/busybox/ring_buf.patch
+++ b/meta-sdk/meta/meta-mediatek-ivt/recipes-core/busybox/busybox/ring_buf.patch
@@ -16,7 +16,7 @@
write_pidfile(CONFIG_PID_FILE_PATH "/syslogd.pid");
+ G.logFileSize = 15*1024*1024;
-+ G.logFileRotate = 2;
++ G.logFileRotate = 1;
+
do_syslogd();
/* return EXIT_SUCCESS; */
diff --git a/meta-sdk/meta/meta-mediatek-ivt/recipes-core/busybox/busybox/ring_buf_GSW.patch b/meta-sdk/meta/meta-mediatek-ivt/recipes-core/busybox/busybox/ring_buf_GSW.patch
index 43e9fc9..a85d2e0 100755
--- a/meta-sdk/meta/meta-mediatek-ivt/recipes-core/busybox/busybox/ring_buf_GSW.patch
+++ b/meta-sdk/meta/meta-mediatek-ivt/recipes-core/busybox/busybox/ring_buf_GSW.patch
@@ -9,17 +9,18 @@
#if ENABLE_FEATURE_REMOTE_LOG
#include <netinet/in.h>
-@@ -176,6 +178,9 @@
+@@ -176,6 +178,10 @@
#include <sys/shm.h>
#endif
+#define ENABLE_FEATURE_SYSLOGD_CFG 1
+#define ENABLE_FEATURE_ROTATE_LOGFILE 1
+int (*lynq_get_value)(char *file, char *section, char *key, char *tmp);
++int (*lynq_set_value)(char *section, char *key, char *value);
#define DEBUG 0
-@@ -1102,6 +1107,13 @@
+@@ -1102,6 +1113,13 @@
{
int opts;
char OPTION_DECL;
@@ -33,13 +34,14 @@
#if ENABLE_FEATURE_REMOTE_LOG
llist_t *remoteAddrList = NULL;
#endif
-@@ -1157,6 +1169,27 @@
+@@ -1157,6 +1175,38 @@
//umask(0); - why??
write_pidfile(CONFIG_PID_FILE_PATH "/syslogd.pid");
+ handle_uci = dlopen(lynq_libpath_uci,RTLD_NOW);
+ lynq_get_value = (int (*)(void))dlsym(handle_uci,"lynq_get_value");
-+ if(NULL != lynq_get_value)
++ lynq_set_value = (int (*)(char *section, char *key, char *value))dlsym(handle_uci,"lynq_set_value");
++ if(NULL != lynq_get_value && (NULL != lynq_set_value))
+ {
+ memset(get_propty_log_data,0,64);
+ if(0 == lynq_get_value("lynq_uci","lynq_log","syslog_flie_size",get_propty_log_data))
@@ -47,12 +49,22 @@
+ lynq_syslog_filesize = atoi(get_propty_log_data);
+ printf("lynq_syslog_filesize:%d\n",lynq_syslog_filesize);
+ }
++ else
++ {
++ snprintf(get_propty_log_data,sizeof(get_propty_log_data),"%d",lynq_syslog_filesize);
++ lynq_set_value("lynq_log","syslog_flie_size", get_propty_log_data);
++ }
+ memset(get_propty_log_data,0,64);
+ if(0 == lynq_get_value("lynq_uci","lynq_log","syslog_flie_rotate",get_propty_log_data))
+ {
+ lynq_syslog_rotate = atoi(get_propty_log_data);
+ printf("lynq_syslog_rotate:%d\n",lynq_syslog_rotate);
+ }
++ else
++ {
++ snprintf(get_propty_log_data,sizeof(get_propty_log_data),"%d",lynq_syslog_rotate);
++ lynq_set_value("lynq_log","syslog_flie_rotate", get_propty_log_data);
++ }
+ }
+
+ G.logFileSize = lynq_syslog_filesize;
diff --git a/meta/meta-mediatek-ivt/recipes-core/busybox/busybox/ring_buf.patch b/meta/meta-mediatek-ivt/recipes-core/busybox/busybox/ring_buf.patch
index 44dfe12..328a721 100755
--- a/meta/meta-mediatek-ivt/recipes-core/busybox/busybox/ring_buf.patch
+++ b/meta/meta-mediatek-ivt/recipes-core/busybox/busybox/ring_buf.patch
@@ -16,7 +16,7 @@
write_pidfile(CONFIG_PID_FILE_PATH "/syslogd.pid");
+ G.logFileSize = 15*1024*1024;
-+ G.logFileRotate = 2;
++ G.logFileRotate = 1;
+
do_syslogd();
/* return EXIT_SUCCESS; */
diff --git a/meta/meta-mediatek-ivt/recipes-core/busybox/busybox/ring_buf_GSW.patch b/meta/meta-mediatek-ivt/recipes-core/busybox/busybox/ring_buf_GSW.patch
index 43e9fc9..a85d2e0 100755
--- a/meta/meta-mediatek-ivt/recipes-core/busybox/busybox/ring_buf_GSW.patch
+++ b/meta/meta-mediatek-ivt/recipes-core/busybox/busybox/ring_buf_GSW.patch
@@ -9,17 +9,18 @@
#if ENABLE_FEATURE_REMOTE_LOG
#include <netinet/in.h>
-@@ -176,6 +178,9 @@
+@@ -176,6 +178,10 @@
#include <sys/shm.h>
#endif
+#define ENABLE_FEATURE_SYSLOGD_CFG 1
+#define ENABLE_FEATURE_ROTATE_LOGFILE 1
+int (*lynq_get_value)(char *file, char *section, char *key, char *tmp);
++int (*lynq_set_value)(char *section, char *key, char *value);
#define DEBUG 0
-@@ -1102,6 +1107,13 @@
+@@ -1102,6 +1113,13 @@
{
int opts;
char OPTION_DECL;
@@ -33,13 +34,14 @@
#if ENABLE_FEATURE_REMOTE_LOG
llist_t *remoteAddrList = NULL;
#endif
-@@ -1157,6 +1169,27 @@
+@@ -1157,6 +1175,38 @@
//umask(0); - why??
write_pidfile(CONFIG_PID_FILE_PATH "/syslogd.pid");
+ handle_uci = dlopen(lynq_libpath_uci,RTLD_NOW);
+ lynq_get_value = (int (*)(void))dlsym(handle_uci,"lynq_get_value");
-+ if(NULL != lynq_get_value)
++ lynq_set_value = (int (*)(char *section, char *key, char *value))dlsym(handle_uci,"lynq_set_value");
++ if(NULL != lynq_get_value && (NULL != lynq_set_value))
+ {
+ memset(get_propty_log_data,0,64);
+ if(0 == lynq_get_value("lynq_uci","lynq_log","syslog_flie_size",get_propty_log_data))
@@ -47,12 +49,22 @@
+ lynq_syslog_filesize = atoi(get_propty_log_data);
+ printf("lynq_syslog_filesize:%d\n",lynq_syslog_filesize);
+ }
++ else
++ {
++ snprintf(get_propty_log_data,sizeof(get_propty_log_data),"%d",lynq_syslog_filesize);
++ lynq_set_value("lynq_log","syslog_flie_size", get_propty_log_data);
++ }
+ memset(get_propty_log_data,0,64);
+ if(0 == lynq_get_value("lynq_uci","lynq_log","syslog_flie_rotate",get_propty_log_data))
+ {
+ lynq_syslog_rotate = atoi(get_propty_log_data);
+ printf("lynq_syslog_rotate:%d\n",lynq_syslog_rotate);
+ }
++ else
++ {
++ snprintf(get_propty_log_data,sizeof(get_propty_log_data),"%d",lynq_syslog_rotate);
++ lynq_set_value("lynq_log","syslog_flie_rotate", get_propty_log_data);
++ }
+ }
+
+ G.logFileSize = lynq_syslog_filesize;
diff --git a/meta/meta-mediatek-mt2735/recipes-core/initial/files/lynq_data_recover b/meta/meta-mediatek-mt2735/recipes-core/initial/files/lynq_data_recover
index ac817fb..e27cba3 100644
--- a/meta/meta-mediatek-mt2735/recipes-core/initial/files/lynq_data_recover
+++ b/meta/meta-mediatek-mt2735/recipes-core/initial/files/lynq_data_recover
@@ -87,6 +87,8 @@
cd /
echo "$TAG: Before recover radio_property" > /dev/kmsg
+rm -rf /etc/config/.lynq_uci.*
+rm -rf /etc/config/.radio_property.*
cp /data_backup/radio_property /etc/config/radio_property
mkdir -p /data/atsvc
cp /data_backup/lynq_atsvc_plugin.xml /data/atsvc/lynq_atsvc_plugin.xml
diff --git a/meta/meta-mediatek-mt2735/recipes-kernel/modules/files/wifi/wg870/cyw989570fcref_rev1.58.txt b/meta/meta-mediatek-mt2735/recipes-kernel/modules/files/wifi/wg870/cyw989570fcref_rev1.58.txt
index 805b986..ebdbd7e 100755
--- a/meta/meta-mediatek-mt2735/recipes-kernel/modules/files/wifi/wg870/cyw989570fcref_rev1.58.txt
+++ b/meta/meta-mediatek-mt2735/recipes-kernel/modules/files/wifi/wg870/cyw989570fcref_rev1.58.txt
@@ -183,16 +183,16 @@
# SINGLE RANGE TPC/TSSI
#2G OFDM
-#pa2ga0=-106,6424,-703
+#pa2ga0=-89,6036,-654
pa2ga0=-129,5802,-662
#pa2ga1=-120,6301,-702
-pa2ga1=-120,5960,-669
+pa2ga1=-123,6120,-688
#2G CCK
-pa2ga2=-100,6347,-701
-pa2ga3=-112,6411,-721
+pa2ga2=-91,6576,-737
+pa2ga3=-106,6697,-748
#5G High pwr
-pa5ga0=-200,6256,-774,-177,6168,-750,-184,6098,-747,-171,5929,-707
-pa5ga1=-186,6086,-743,-162,6493,-771,-184,6140,-756,-188,5943,-734
+pa5ga0=-195,5950,-731,-177,6168,-750,-183,6006,-736,-185,5910,-731
+pa5ga1=-179,6049,-724,-162,6493,-771,-196,6016,-752,-197,6161,-764
#5G Low pwr
pa5ga2=-239,4574,-587,-233,5017,-643,-225,5518,-705,-231,5352,-684
pa5ga3=-229,5269,-675,-239,4366,-560,-234,4693,-603,-225,5414,-693
diff --git a/meta/meta-mediatek-mt2735/recipes-telephony/mdlogger/files/mdlogger.config b/meta/meta-mediatek-mt2735/recipes-telephony/mdlogger/files/mdlogger.config
index 9e01ff6..d4567a8 100755
--- a/meta/meta-mediatek-mt2735/recipes-telephony/mdlogger/files/mdlogger.config
+++ b/meta/meta-mediatek-mt2735/recipes-telephony/mdlogger/files/mdlogger.config
@@ -3,5 +3,5 @@
config mdlog 'property'
option md_start '1'
- option md_cyclic_size '200'
+ option md_cyclic_size '180'
option md_log_size '20'
\ No newline at end of file
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);
diff --git a/src/telephonyware/3.0/atcid/atci/src/lynq-private/lynq_atsvc_controller.c b/src/telephonyware/3.0/atcid/atci/src/lynq-private/lynq_atsvc_controller.c
index 3cd6be5..5952c5a 100755
--- a/src/telephonyware/3.0/atcid/atci/src/lynq-private/lynq_atsvc_controller.c
+++ b/src/telephonyware/3.0/atcid/atci/src/lynq-private/lynq_atsvc_controller.c
@@ -1,4 +1,5 @@
#include <stdio.h>
+#include <unistd.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <sys/types.h>
@@ -22,7 +23,7 @@
char register_atcmd_buff[SOCKET_BUF_SIZE] = {0};
char *white_list[] = {"AT","ATD","ATV","ATA","ATE","ATH","ATL","ATI","ATP","ATO","ATQ",NULL};
int g_atsvc_socket_fd = 0;
-int g_atsvc_client_connect = 0;
+int g_atsvc_client_connect = -1;
//struct sockaddr_in server_addr;
//struct sockaddr_in lynqClient_addr;
static pthread_mutex_t s_startupMutex = PTHREAD_MUTEX_INITIALIZER;
@@ -30,6 +31,8 @@
struct sockaddr_un g_remote_addr = {0};
struct sockaddr_un g_local_addr = {0};
+int g_create_socket = 0;
+
typedef enum
{
INIT_SUCCESS=0,
@@ -101,14 +104,27 @@
}
if (remove(socket_name) == -1 && errno != ENOENT)
{
- ALOGD("remove-%s fail and errno:%d", socket_name,errno);
+ ALOGD("remove-%s fail and errno:%d", socket_name,errno);
+ }
+ while(access(socket_name, R_OK)==0)
+ {
+ ALOGD("%s still exist", socket_name);
+ usleep(10);
}
ALOGD("remove %s", socket_name);
local_addr->sun_family = AF_UNIX;
sprintf(local_addr->sun_path, socket_name);
- if(bind(socket_fd, (struct sockaddr *)local_addr, sizeof(struct sockaddr_un)) == -1)
+ // local_addr->sun_family = AF_UNIX;
+ // memset(local_addr->sun_path,'\0',sizeof(local_addr->sun_path));
+ // strncpy(local_addr->sun_path, socket_name, sizeof(local_addr->sun_path) - 1);
+ // unlink(socket_name);
+ //sprintf(local_addr->sun_path, socket_name);
+ //strncpy(local_addr.sun_path, socket_name)
+ if(bind(socket_fd, (struct sockaddr *)local_addr, sizeof(struct sockaddr_un)) < 0)
{
- ALOGD("[%d][%s]bind fail and errno: %d",LINE,FUNC,errno);
+ ALOGD("bind failed name=[%s] reason=[%s]\n", socket_name, strerror(errno));
+ //ALOGD("[%d][%s]bind fail and errno: %d",LINE,FUNC,errno);
+ close(g_atsvc_socket_fd);
return -1;
}
if(type == SOCK_STREAM)
@@ -116,6 +132,7 @@
if(listen(socket_fd,backlog) == -1)
{
ALOGD("[%d]listen fd: %dfail",LINE);
+ close(g_atsvc_socket_fd);
return -1;
}
}
@@ -337,40 +354,51 @@
LOGATCI(LOG_ERR, "lose data when send to atci service. errno = %d", errno);
return -1;
}
- LOGATCI(LOG_DEBUG, "send to app demo: %s", atcmd);
+ LOGATCI(LOG_DEBUG, "service send to app demo: %s", atcmd);
return 0;
}
int actsvc_cmd_recv(int fd, char *buf, int len)
{
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)
- {
- ALOGE("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);
+ // int res = -1;
+ // ret = select(fd + 1, &rfds, NULL, NULL, NULL);
+ // if (ret <= 0)
+ // {
+ // ALOGE("acti_cmd_recv service select error, ret=%d, error=%s(%d),fd=%d", ret,strerror(errno), errno, fd);
+ // return SOCKET_FAIL;
+ // }
+ // res = FD_ISSET(fd, &rfds);
+ // ALOGE("FD_ISSET num is %d ", res);
+ // if (res)
+ // {
+ ALOGE("[%d][%s] recv before",LINE,FUNC);
ret = recv(fd, buf, len, 0);
+ ALOGE("[%d][%s] recv before",LINE,FUNC);
if (ret < 0)
{
- ALOGE("acti_cmd_recv select error, ret=%d, error=%s(%d),fd=%d", ret,strerror(errno), errno, fd);
+ ALOGE("acti_cmd_recv service select error, ret=%d, error=%s(%d),fd=%d", ret,strerror(errno), errno, fd);
return SOCKET_FAIL;
}
else if(ret == 0)
{
- ALOGE("acti_cmd_recv recv error, ret=%d, error=%s(%d),fd=%d", ret,strerror(errno), errno, fd);
+ ALOGE("acti_cmd_recv service recv error, ret=%d, error=%s(%d),fd=%d", ret,strerror(errno), errno, fd);
return SOCKET_ZERO;
}
else
{
ALOGD("[%d][%s] buf is:%s",LINE,FUNC,buf);
+ return SOCKET_SUCC;
}
- }
- return SOCKET_SUCC;
+ // }
+ // else
+ // {
+ // ALOGE("FD_ISSET is error num is %d ", res);
+ // return SOCKET_ZERO;
+ // }
+ //return SOCKET_SUCC;
}
void *start_at_extension_Socket(void * param)
@@ -379,13 +407,27 @@
socklen_t client_len;
int ret;
char parser_buf[SOCKET_BUF_SIZE];
+ TryNewSocket:
g_atsvc_socket_fd = create_socket(AF_UNIX, SOCK_STREAM,0, 0, NULL,RIL_SOCKET_NAME, (void *)&g_local_addr, 2);
if(0 > g_atsvc_socket_fd)
{
ALOGD("init socket fail and fd:%d",g_atsvc_socket_fd);
- return NULL;
+ g_create_socket++;
+ if(g_create_socket == 10)
+ {
+ ALOGD("create_socket max try count is %d\n", g_create_socket);
+ return NULL;
+ }
+ else
+ {
+ ALOGD("create_socket try again %d\n", g_create_socket);
+ usleep(500*1000);
+ goto TryNewSocket;
+ }
}
+ g_create_socket = 0;
TryNewLink:
+ ALOGE("[%d][%s] TryNewLink!", LINE,FUNC);
client_len = sizeof(g_local_addr);
int conn = accept(g_atsvc_socket_fd,(struct sockaddr *) &g_local_addr, &client_len);
if (conn <= 0)
@@ -399,7 +441,7 @@
{
ALOGE("g_atsvc_client_connect need close!");
close(g_atsvc_client_connect);
- g_atsvc_client_connect = -1;
+ //g_atsvc_client_connect = -1;
}
g_atsvc_client_connect = conn;
/* tranlate data */
@@ -411,6 +453,7 @@
memset(register_atcmd_buff, 0, sizeof(register_atcmd_buff));
ret = actsvc_cmd_recv(conn, register_atcmd_buff, SOCKET_BUF_SIZE);
upper_string(register_atcmd_buff);
+ ALOGE("[%d][%s] ret %d has_registe_cmd %d",LINE,FUNC,ret,has_registe_cmd);
if (ret < 0)
{
ALOGE("[%d][%s]receive CMD error",LINE,FUNC);
@@ -426,6 +469,7 @@
else
{
ret = actsvc_cmd_recv(conn, parser_buf, SOCKET_BUF_SIZE);
+ ALOGE("[%d][%s] ret %d has_registe_cmd %d",LINE,FUNC,ret,has_registe_cmd);
if (ret < 0)
{
ALOGE("[%d][%s]receive CMD error",LINE,FUNC);