[Bugfix][API-834][At-extension]at extension not work
Change-Id: Icc9f4cbb4868d91ffafd6e05be4c344f95d05833
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..28d9a4a 100755
--- a/src/lynq/lib/liblynq-at-extension/lynq_at.cpp
+++ b/src/lynq/lib/liblynq-at-extension/lynq_at.cpp
@@ -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/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..3b3b249 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
@@ -22,7 +22,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;
@@ -103,6 +103,11 @@
{
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);
@@ -337,40 +342,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)
@@ -386,6 +402,7 @@
return NULL;
}
TryNewLink:
+ ALOGE("[%d][%s] TryNewLink!");
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 +416,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 +428,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 +444,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);