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