Revert "[Feature][T8TSK-189] chang urc report address to 127.0.0.1"
This reverts commit 2f5cd7b89a77d1bf4c69ddb49788efedaaec4fff.
Reason for revert: <INSERT REASONING HERE>
Change-Id: Ic90904e6501cb706c709fd3501ae13f96b1b048a
diff --git a/src/lynq/lib/liblynq-call/lynq_module_socket.cpp b/src/lynq/lib/liblynq-call/lynq_module_socket.cpp
index 2d5b0e8..ff45c02 100755
--- a/src/lynq/lib/liblynq-call/lynq_module_socket.cpp
+++ b/src/lynq/lib/liblynq-call/lynq_module_socket.cpp
@@ -16,12 +16,11 @@
#include "lynq_module_socket.h"
#include "liblog/lynq_deflog.h"
#include "lynq_shm.h"
-#include "lynq_urc_socket.h"
#define LYNQ_SERVICE_PORT 8088
#define LYNQ_ADDRESS "127.0.0.1"
-//#define LYNQ_URC_SERVICE_PORT 8086
-//#define LYNQ_URC_ADDRESS "0.0.0.0"
+#define LYNQ_URC_SERVICE_PORT 8086
+#define LYNQ_URC_ADDRESS "0.0.0.0"
#define LYNQ_REQUEST_PARAM_BUF 8192
#define LYNQ_REC_BUF 8192
@@ -51,11 +50,11 @@
lynq_resp_t response;
int module_len_rc_addr_serv;
-//int module_len_urc_addr_serv;
+int module_len_urc_addr_serv;
struct sockaddr_in module_rc_addr_serv;
-//struct sockaddr_in module_urc_addr_serv;
+struct sockaddr_in module_urc_addr_serv;
static int module_rc_sock_fd = -1;
-//static int module_urc_sock_fd = -1;
+static int module_urc_sock_fd = -1;
int module_urc_status = 1;
int module_rc_status = 1;
pthread_t module_urc_tid = -1;
@@ -130,11 +129,11 @@
* other:failure
*/
const int waitResponse(Parcel*& p, int token,int time_out)
-{
+{
int waitToken = token;
int wakeup_token=-1;
int resp_type;
- struct timeval now;
+ struct timeval now;
struct timespec timeout;
int ret;
std::list<Parcel*>::iterator iter;
@@ -142,8 +141,8 @@
gettimeofday(&now,NULL);
timeout.tv_sec = now.tv_sec+time_out; //timeout is 1min
- timeout.tv_nsec = now.tv_usec*1000;
-
+ timeout.tv_nsec = now.tv_usec*1000;
+
LYINFLOG("%s wait token is %d, wait time is %d",__func__,waitToken,time_out);
BLOCK_RECV_MSG_LOCK();
@@ -327,8 +326,7 @@
while(module_urc_status)
{
bzero(urc_data,LYNQ_REC_BUF);
- //res = recvfrom(module_urc_sock_fd,urc_data,sizeof(urc_data),0,(struct sockaddr *)&module_urc_addr_serv,(socklen_t*)&module_len_urc_addr_serv);
- res = lynq_recv_urc_msg(urc_data,sizeof(urc_data));
+ res = recvfrom(module_urc_sock_fd,urc_data,sizeof(urc_data),0,(struct sockaddr *)&module_urc_addr_serv,(socklen_t*)&module_len_urc_addr_serv);
if(res<sizeof(int32_t)*2)
{
LYERRLOG("thread_urc_recv step2 fail: res is %d",res);
@@ -462,46 +460,44 @@
int lynq_setup_urc_socket()
{
-// int on = 1;
-// int ret = 0;
-// module_len_urc_addr_serv = sizeof(sockaddr_in);
-// module_urc_sock_fd = socket(AF_INET, SOCK_DGRAM, 0);
-// if (module_urc_sock_fd <0){
-// LYERRLOG("urc socket error");
-// return RESULT_ERROR;
-// }
-// module_urc_addr_serv.sin_family = AF_INET;
-// module_urc_addr_serv.sin_port = htons(LYNQ_URC_SERVICE_PORT);
-// module_urc_addr_serv.sin_addr.s_addr = inet_addr(LYNQ_URC_ADDRESS);
-// /* Set socket to allow reuse of address and port, SO_REUSEADDR value is 2*/
-// ret = setsockopt(module_urc_sock_fd,SOL_SOCKET,SO_REUSEADDR,&on,sizeof on);
-// if(ret <0)
-// {
-// LYERRLOG("urc socket set error");
-// close(module_urc_sock_fd);
-// module_urc_sock_fd =-1;
-// return RESULT_ERROR;
-// }
-// ret = bind(module_urc_sock_fd ,(struct sockaddr*)&module_urc_addr_serv, sizeof(module_urc_addr_serv));
-// if(ret <0)
-// {
-// LYERRLOG("urc socket bind error");
-// close(module_urc_sock_fd);
-// module_urc_sock_fd =-1;
-// return RESULT_ERROR;
-// }
-
-// return RESULT_OK;
- return lynq_register_urc_socket() > 0 ? RESULT_OK : RESULT_ERROR;
+ int on = 1;
+ int ret = 0;
+ module_len_urc_addr_serv = sizeof(sockaddr_in);
+ module_urc_sock_fd = socket(AF_INET, SOCK_DGRAM, 0);
+ if (module_urc_sock_fd <0){
+ LYERRLOG("urc socket error");
+ return RESULT_ERROR;
+ }
+ module_urc_addr_serv.sin_family = AF_INET;
+ module_urc_addr_serv.sin_port = htons(LYNQ_URC_SERVICE_PORT);
+ module_urc_addr_serv.sin_addr.s_addr = inet_addr(LYNQ_URC_ADDRESS);
+ /* Set socket to allow reuse of address and port, SO_REUSEADDR value is 2*/
+ ret = setsockopt(module_urc_sock_fd,SOL_SOCKET,SO_REUSEADDR,&on,sizeof on);
+ if(ret <0)
+ {
+ LYERRLOG("urc socket set error");
+ close(module_urc_sock_fd);
+ module_urc_sock_fd =-1;
+ return RESULT_ERROR;
+ }
+ ret = bind(module_urc_sock_fd ,(struct sockaddr*)&module_urc_addr_serv, sizeof(module_urc_addr_serv));
+ if(ret <0)
+ {
+ LYERRLOG("urc socket bind error");
+ close(module_urc_sock_fd);
+ module_urc_sock_fd =-1;
+ return RESULT_ERROR;
+ }
+ return RESULT_OK;
}
void lynq_close_urc_socket()
{
-// if (module_urc_sock_fd >= 0)
-// {
-// close(module_urc_sock_fd);
-// module_urc_sock_fd =-1;
-// }
+ if (module_urc_sock_fd >= 0)
+ {
+ close(module_urc_sock_fd);
+ module_urc_sock_fd =-1;
+ }
}
int lynq_start_all_urc_socket_thread()
diff --git a/src/lynq/lib/liblynq-data/lynq_data_urc.cpp b/src/lynq/lib/liblynq-data/lynq_data_urc.cpp
index d527ed2..9f211eb 100755
--- a/src/lynq/lib/liblynq-data/lynq_data_urc.cpp
+++ b/src/lynq/lib/liblynq-data/lynq_data_urc.cpp
@@ -13,7 +13,6 @@
#include "lynq_data_urc.h"
#include "liblog/lynq_deflog.h"
#include "lynq_shm.h"
-#include "lynq_urc_socket.h"
#define LYNQ_REC_BUF 8192
@@ -77,8 +76,7 @@
while(data_urc_recive_status)
{
bzero(urc_data,LYNQ_REC_BUF);
-// res = recvfrom(lynq_urc_sockfd,urc_data,sizeof(urc_data),0,(struct sockaddr *)&urc_local_addr,(socklen_t*)&lynq_len_urc_addr_serv);
- res = lynq_recv_urc_msg(urc_data,sizeof(urc_data));
+ res = recvfrom(lynq_urc_sockfd,urc_data,sizeof(urc_data),0,(struct sockaddr *)&urc_local_addr,(socklen_t*)&lynq_len_urc_addr_serv);
if(res<sizeof(int32_t)*2)
{
@@ -167,38 +165,37 @@
int lynq_socket_recv_start()
{
-// int rt=0;
-// int on=1;
-// struct sockaddr_in urc_local_addr;
-// pthread_attr_t attr;
-// lynq_urc_sockfd = socket(AF_INET,SOCK_DGRAM,0);
-// if(lynq_urc_sockfd < 0)
-// {
-// LYERRLOG("create socket for udp fail");
-// return -1;
-// }
-// urc_local_addr.sin_family = AF_INET;
-// urc_local_addr.sin_port = htons(LYNQ_URC_SERVICE_PORT);
-// urc_local_addr.sin_addr.s_addr = htons(INADDR_ANY);
-// /* Set socket to allow reuse of address and port, SO_REUSEADDR value is 2*/
-// rt = setsockopt(lynq_urc_sockfd,SOL_SOCKET,SO_REUSEADDR,&on,sizeof on);
-// if(rt<0)
-// {
-// LYERRLOG("SO_REUSEADDR fail");
-// close(lynq_urc_sockfd);
-// lynq_urc_sockfd = -1;
-// return -1;
-// }
-// rt = bind(lynq_urc_sockfd ,(struct sockaddr*)&urc_local_addr, sizeof(urc_local_addr));
-// if (rt == -1)
-// {
-// LYERRLOG("bind failed");
-// close(lynq_urc_sockfd);
-// lynq_urc_sockfd = -1;
-// return -1;
-// }
-// return 0;
- return lynq_register_urc_socket() > 0 ? 0 : -1;
+ int rt=0;
+ int on=1;
+ struct sockaddr_in urc_local_addr;
+ pthread_attr_t attr;
+ lynq_urc_sockfd = socket(AF_INET,SOCK_DGRAM,0);
+ if(lynq_urc_sockfd < 0)
+ {
+ LYERRLOG("create socket for udp fail");
+ return -1;
+ }
+ urc_local_addr.sin_family = AF_INET;
+ urc_local_addr.sin_port = htons(LYNQ_URC_SERVICE_PORT);
+ urc_local_addr.sin_addr.s_addr = htons(INADDR_ANY);
+ /* Set socket to allow reuse of address and port, SO_REUSEADDR value is 2*/
+ rt = setsockopt(lynq_urc_sockfd,SOL_SOCKET,SO_REUSEADDR,&on,sizeof on);
+ if(rt<0)
+ {
+ LYERRLOG("SO_REUSEADDR fail");
+ close(lynq_urc_sockfd);
+ lynq_urc_sockfd = -1;
+ return -1;
+ }
+ rt = bind(lynq_urc_sockfd ,(struct sockaddr*)&urc_local_addr, sizeof(urc_local_addr));
+ if (rt == -1)
+ {
+ LYERRLOG("bind failed");
+ close(lynq_urc_sockfd);
+ lynq_urc_sockfd = -1;
+ return -1;
+ }
+ return 0;
}
int lynq_socket_recv_stop()
diff --git a/src/lynq/lib/liblynq-data/lynq_data_urc.h b/src/lynq/lib/liblynq-data/lynq_data_urc.h
index 80069e8..7ac4f75 100755
--- a/src/lynq/lib/liblynq-data/lynq_data_urc.h
+++ b/src/lynq/lib/liblynq-data/lynq_data_urc.h
@@ -27,4 +27,4 @@
bool is_support_urc(int urc_id);
void urc_msg_process(Parcel *p);
-#endif
+#endif
\ No newline at end of file
diff --git a/src/lynq/lib/liblynq-network/lynq_module_socket.cpp b/src/lynq/lib/liblynq-network/lynq_module_socket.cpp
index 48353dc..c3f7334 100755
--- a/src/lynq/lib/liblynq-network/lynq_module_socket.cpp
+++ b/src/lynq/lib/liblynq-network/lynq_module_socket.cpp
@@ -16,12 +16,11 @@
#include "lynq_module_socket.h"
#include "liblog/lynq_deflog.h"
#include "lynq_shm.h"
-#include "lynq_urc_socket.h"
#define LYNQ_SERVICE_PORT 8088
#define LYNQ_ADDRESS "127.0.0.1"
-//#define LYNQ_URC_SERVICE_PORT 8086
-//#define LYNQ_URC_ADDRESS "0.0.0.0"
+#define LYNQ_URC_SERVICE_PORT 8086
+#define LYNQ_URC_ADDRESS "0.0.0.0"
#define LYNQ_REQUEST_PARAM_BUF 8192
#define LYNQ_REC_BUF 8192
@@ -51,11 +50,11 @@
lynq_resp_t response;
int module_len_rc_addr_serv;
-//int module_len_urc_addr_serv;
+int module_len_urc_addr_serv;
struct sockaddr_in module_rc_addr_serv;
-//struct sockaddr_in module_urc_addr_serv;
+struct sockaddr_in module_urc_addr_serv;
static int module_rc_sock_fd = -1;
-//static int module_urc_sock_fd = -1;
+static int module_urc_sock_fd = -1;
int module_urc_status = 1;
int module_rc_status = 1;
pthread_t module_urc_tid = -1;
@@ -130,11 +129,11 @@
* other:failure
*/
const int waitResponse(Parcel*& p, int token,int time_out)
-{
+{
int waitToken = token;
int wakeup_token=-1;
int resp_type;
- struct timeval now;
+ struct timeval now;
struct timespec timeout;
int ret;
std::list<Parcel*>::iterator iter;
@@ -142,8 +141,8 @@
gettimeofday(&now,NULL);
timeout.tv_sec = now.tv_sec+time_out; //timeout is 1min
- timeout.tv_nsec = now.tv_usec*1000;
-
+ timeout.tv_nsec = now.tv_usec*1000;
+
LYINFLOG("%s wait token is %d, wait time is %d",__func__,waitToken,time_out);
BLOCK_RECV_MSG_LOCK();
@@ -327,8 +326,7 @@
while(module_urc_status)
{
bzero(urc_data,LYNQ_REC_BUF);
- //res = recvfrom(module_urc_sock_fd,urc_data,sizeof(urc_data),0,(struct sockaddr *)&module_urc_addr_serv,(socklen_t*)&module_len_urc_addr_serv);
- res = lynq_recv_urc_msg(urc_data,sizeof(urc_data));
+ res = recvfrom(module_urc_sock_fd,urc_data,sizeof(urc_data),0,(struct sockaddr *)&module_urc_addr_serv,(socklen_t*)&module_len_urc_addr_serv);
if(res<sizeof(int32_t)*2)
{
LYERRLOG("thread_urc_recv step2 fail: res is %d",res);
@@ -462,45 +460,44 @@
int lynq_setup_urc_socket()
{
-// int on = 1;
-// int ret = 0;
-// module_len_urc_addr_serv = sizeof(sockaddr_in);
-// module_urc_sock_fd = socket(AF_INET, SOCK_DGRAM, 0);
-// if (module_urc_sock_fd <0){
-// LYERRLOG("urc socket error");
-// return RESULT_ERROR;
-// }
-// module_urc_addr_serv.sin_family = AF_INET;
-// module_urc_addr_serv.sin_port = htons(LYNQ_URC_SERVICE_PORT);
-// module_urc_addr_serv.sin_addr.s_addr = inet_addr(LYNQ_URC_ADDRESS);
-// /* Set socket to allow reuse of address and port, SO_REUSEADDR value is 2*/
-// ret = setsockopt(module_urc_sock_fd,SOL_SOCKET,SO_REUSEADDR,&on,sizeof on);
-// if(ret <0)
-// {
-// LYERRLOG("urc socket set error");
-// close(module_urc_sock_fd);
-// module_urc_sock_fd =-1;
-// return RESULT_ERROR;
-// }
-// ret = bind(module_urc_sock_fd ,(struct sockaddr*)&module_urc_addr_serv, sizeof(module_urc_addr_serv));
-// if(ret <0)
-// {
-// LYERRLOG("urc socket bind error");
-// close(module_urc_sock_fd);
-// module_urc_sock_fd =-1;
-// return RESULT_ERROR;
-// }
-// return RESULT_OK;
- return lynq_register_urc_socket() > 0 ? RESULT_OK : RESULT_ERROR;
+ int on = 1;
+ int ret = 0;
+ module_len_urc_addr_serv = sizeof(sockaddr_in);
+ module_urc_sock_fd = socket(AF_INET, SOCK_DGRAM, 0);
+ if (module_urc_sock_fd <0){
+ LYERRLOG("urc socket error");
+ return RESULT_ERROR;
+ }
+ module_urc_addr_serv.sin_family = AF_INET;
+ module_urc_addr_serv.sin_port = htons(LYNQ_URC_SERVICE_PORT);
+ module_urc_addr_serv.sin_addr.s_addr = inet_addr(LYNQ_URC_ADDRESS);
+ /* Set socket to allow reuse of address and port, SO_REUSEADDR value is 2*/
+ ret = setsockopt(module_urc_sock_fd,SOL_SOCKET,SO_REUSEADDR,&on,sizeof on);
+ if(ret <0)
+ {
+ LYERRLOG("urc socket set error");
+ close(module_urc_sock_fd);
+ module_urc_sock_fd =-1;
+ return RESULT_ERROR;
+ }
+ ret = bind(module_urc_sock_fd ,(struct sockaddr*)&module_urc_addr_serv, sizeof(module_urc_addr_serv));
+ if(ret <0)
+ {
+ LYERRLOG("urc socket bind error");
+ close(module_urc_sock_fd);
+ module_urc_sock_fd =-1;
+ return RESULT_ERROR;
+ }
+ return RESULT_OK;
}
void lynq_close_urc_socket()
{
-// if (module_urc_sock_fd >= 0)
-// {
-// close(module_urc_sock_fd);
-// module_urc_sock_fd =-1;
-// }
+ if (module_urc_sock_fd >= 0)
+ {
+ close(module_urc_sock_fd);
+ module_urc_sock_fd =-1;
+ }
}
int lynq_start_all_urc_socket_thread()
diff --git a/src/lynq/lib/liblynq-shm/include/lynq_urc_socket.h b/src/lynq/lib/liblynq-shm/include/lynq_urc_socket.h
deleted file mode 100755
index 866d5c2..0000000
--- a/src/lynq/lib/liblynq-shm/include/lynq_urc_socket.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * @file shm.h
- * @author hq
- * @brief
- * @version 1.0
- * @date 2022-12-16
- *
- * @copyright Copyright (c) 2022
- *
- */
-#ifndef __LYNQ_URC_SOCKET__
-#define __LYNQ_URC_SOCKET__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-int lynq_open_broadcast_urc_socket();
-int lynq_broadcast_urc_msg(void * msg, int size);
-int lynq_register_urc_socket();
-int lynq_recv_urc_msg(void * buffer, int size);
-#ifdef __cplusplus
-}
-#endif
-#endif //#ifndef __LYNQ_URC_SOCKET__
diff --git a/src/lynq/lib/liblynq-shm/lynq_urc_socket.cpp b/src/lynq/lib/liblynq-shm/lynq_urc_socket.cpp
deleted file mode 100755
index 2ebf85f..0000000
--- a/src/lynq/lib/liblynq-shm/lynq_urc_socket.cpp
+++ /dev/null
@@ -1,278 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-//#include <binder/Parcel.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <errno.h>
-#include <stdbool.h>
-#include <sys/types.h>
-#include <unistd.h>
-#include "lynq_urc_socket.h"
-#include "log/log.h"
-#include <list>
-
-static int lynq_urc_socket_fd = 0;
-static int registered_urc_socket_port = 0;
-static int registered_urc_socket_fd = 0;
-
-static pthread_mutex_t s_urc_broadcast_mtx = PTHREAD_MUTEX_INITIALIZER;
-static std::list<struct sockaddr*> s_urc_broadcast_clients;
-
-static pthread_mutex_t s_urc_register_mtx = PTHREAD_MUTEX_INITIALIZER;
-
-#define LYNQ_URC_SERVER_LISTEN_PORT 8086
-#define LYNQ_URC_SERVER_LISTEN_ADDRESS "127.0.0.1"
-
-#define LYNQ_URC_CLIENT_PORT_START 7050
-#define LYNQ_URC_CLIENT_PORT_END 7099
-#define LYNQ_URC_CLIENT_LISTEN_ADDRESS "127.0.0.1"
-
-static void * receive_client_heartbeat(void *parm);
-static void find_all_client_to_notify_online();
-int lynq_open_broadcast_urc_socket()
-{
- int ret = 0;
- int on = 1;
- pthread_mutex_lock(&s_urc_broadcast_mtx);
-
- struct sockaddr_in addr_serv;
- //Creating a Socket object
- lynq_urc_socket_fd=socket(AF_INET,SOCK_DGRAM,0);
- memset(&addr_serv, 0, sizeof(addr_serv));
- addr_serv.sin_family =AF_INET;
- addr_serv.sin_port = htons(LYNQ_URC_SERVER_LISTEN_PORT);
- addr_serv.sin_addr.s_addr = inet_addr(LYNQ_URC_SERVER_LISTEN_ADDRESS);
- ret = setsockopt(lynq_urc_socket_fd,SOL_SOCKET,SO_REUSEADDR,&on,sizeof on);
- if (ret < 0){
- goto open_socket_exit;
- }
- ret = bind(lynq_urc_socket_fd,(struct sockaddr*)&addr_serv,sizeof(addr_serv));
- if (ret < 0){
- goto open_socket_exit;
- }
- //receive registion and display on at port
- pthread_t thid;
- if(pthread_create(&thid, NULL, receive_client_heartbeat, NULL) != 0) {
- RLOGE("thread creation failed\n");
- ret = -1;
- goto open_socket_exit;
- }
-
- find_all_client_to_notify_online();
-
-open_socket_exit:
- pthread_mutex_unlock(&s_urc_broadcast_mtx);
- return ret == 0 ? lynq_urc_socket_fd: -1;
-}
-
-int lynq_broadcast_urc_msg(void * msg, int size)
-{
- int all_ok = 1;
- pthread_mutex_lock(&s_urc_broadcast_mtx);
- for(auto it=s_urc_broadcast_clients.begin(); it != s_urc_broadcast_clients.end(); )
- {
- int len = sendto(lynq_urc_socket_fd, msg, size, 0, *it, sizeof(struct sockaddr_in));
- if (len < 0)
- {
- struct sockaddr_in *addr_cli = (struct sockaddr_in *) *it;
- printf("remove client %d now\n", ntohs(addr_cli->sin_port));
- it = s_urc_broadcast_clients.erase(it);
- free(addr_cli);
- all_ok = 0;
- continue;
- }
- it++;
- }
- pthread_mutex_unlock(&s_urc_broadcast_mtx);
- return all_ok;
-}
-
-int lynq_register_urc_socket()
-{
- int on = 0;
- int ret = 0;
- int len_s;
- struct sockaddr_in addr_serv;
- //Creating a Socket object
- pthread_mutex_lock(&s_urc_register_mtx);
- registered_urc_socket_fd=socket(AF_INET,SOCK_DGRAM,0);
- memset(&addr_serv, 0, sizeof(addr_serv));
- addr_serv.sin_family =AF_INET;
- addr_serv.sin_addr.s_addr = inet_addr(LYNQ_URC_CLIENT_LISTEN_ADDRESS);
- if (registered_urc_socket_port > 0) {
- on = 1;
- ret = setsockopt(registered_urc_socket_fd,SOL_SOCKET,SO_REUSEADDR,&on,sizeof on);
- addr_serv.sin_port = htons(registered_urc_socket_port);
- ret = bind(registered_urc_socket_fd,(struct sockaddr*)&addr_serv,sizeof(addr_serv));
- if (ret < 0){
- goto register_socket_exit;
- }
- }
- else
- {
- for(registered_urc_socket_port = LYNQ_URC_CLIENT_PORT_START; registered_urc_socket_port < LYNQ_URC_CLIENT_PORT_END; registered_urc_socket_port ++)
- {
- addr_serv.sin_port = htons(registered_urc_socket_port);
- ret = bind(registered_urc_socket_fd,(struct sockaddr*)&addr_serv,sizeof(addr_serv));
- if (ret < 0){
- printf("bind socket %d fail\n", registered_urc_socket_port);
- continue;
- }
- break;
- }
- }
-
- addr_serv.sin_port = htons(LYNQ_URC_SERVER_LISTEN_PORT);
- len_s = sendto(registered_urc_socket_fd, ®istered_urc_socket_port, sizeof(registered_urc_socket_port), 0, (struct sockaddr *)&addr_serv,sizeof(addr_serv));
- printf("send result %d %d\n", len_s, errno);
-register_socket_exit:
- pthread_mutex_unlock(&s_urc_register_mtx);
- printf("init result %d\n", ret);
- return ret ==0 ? registered_urc_socket_fd : -1;
-}
-
-int lynq_recv_urc_msg(void * buffer, int size)
-{
- int ret = 0;
- struct sockaddr_in addr_serv;
- socklen_t len_addr_serv = sizeof(addr_serv);
- memset(&addr_serv, 0, sizeof(addr_serv));
- printf("client %ul to recv now\n", pthread_self());
- pthread_mutex_lock(&s_urc_register_mtx);
- if (registered_urc_socket_fd <= 0) {
- pthread_mutex_unlock(&s_urc_register_mtx);
- return -1;
- }
- while(1)
- {
- memset(buffer, 0, 4);
- ret = recvfrom(registered_urc_socket_fd, buffer, size,0,(struct sockaddr *)&addr_serv,(socklen_t*)&len_addr_serv);
- if (ret > 0 && LYNQ_URC_SERVER_LISTEN_PORT == ntohs(addr_serv.sin_port))
- {
- if (ret == 4 && LYNQ_URC_SERVER_LISTEN_PORT == *((int*)buffer))
- {
- sendto(registered_urc_socket_fd, ®istered_urc_socket_port, sizeof(registered_urc_socket_port), 0, (struct sockaddr *)&addr_serv,sizeof(addr_serv));
- printf("to send ack of headbeat\n");
- continue;
- }
- }
- else
- {
- printf("not a server packet\n");
- continue;
- }
- break;
- }
- pthread_mutex_unlock(&s_urc_register_mtx);
- printf("client %ul recv %d\n", pthread_self(), ret);
- return ret;
-}
-
-static void *receive_client_heartbeat(void *parm)
-{
- RLOGE("receive_at thread start\n");
- int recv = 0;
- char buffer[1024] = {0};
- while(1)
- {
- RLOGE("receive third at cmd\n");
-
- socklen_t len = sizeof(struct sockaddr_in);
- struct sockaddr* cli = (struct sockaddr*)malloc(len);
- bzero(cli, len);
- printf("to recv now\n");
- recv = recvfrom(lynq_urc_socket_fd, buffer, 1024, 0, cli, &len);
- if(recv < 0)
- {
- RLOGE("recv fail\n");
- printf("recv fail\n");
- free(cli);
- continue;
- }
- printf("recv a packet %d \n", recv);
- struct sockaddr_in * register_socket = (struct sockaddr_in*)cli;
-
- int port = ntohs(register_socket->sin_port);
- if (recv == 4 && port == *((int*)buffer))
- {
- printf("port is %d\n", port);
- pthread_mutex_lock(&s_urc_broadcast_mtx);
- s_urc_broadcast_clients.push_back(cli);
- pthread_mutex_unlock(&s_urc_broadcast_mtx);
- RLOGE("recvfrom from client\n");
- }
- }
- return NULL;
-}
-static int exec_cmd(const char *str_cmd, char * str_cmd_ret, size_t max_len)
-{
- FILE *fp;
- //printf("to exec cmd:%s\n", str_cmd);
- if((fp=popen(str_cmd,"r"))==NULL)
- {
- perror("popen error!");
- return -1;
- }
- if((fread(str_cmd_ret,max_len,1,fp))<0)
- {
- perror("fread fail!");
- fclose(fp);
- return -1;
- }
- fclose(fp);
- return 0;
-}
-
-static int lynq_split(char * str, int len, char delimiter, char * results[]) {
- int ret = 0;
- char * end = str + len - 1;
- results[ret++] = str;
- while(str < end) {
- if (*str == delimiter) {
- *str++ = '\0';
- results[ret++] = str;
- continue;
- }
- str++;
- }
- if (*str == delimiter) {
- *str = '\0';
- }
-
- return ret;
-}
-
-static void find_all_client_to_notify_online()
-{
- char buffer[1024] = {0};
- char * split_lines[128]= {0};
- int count = 0;
- int port, len;
- int local_port = LYNQ_URC_SERVER_LISTEN_PORT;
- printf("find_all_client_to_notify_online\n");
- if (exec_cmd("netstat -an | grep -e \"127\\.0\\.0\\.1:70[5-9][0-9]\" | awk '{print $4}' | awk -F \":\" '{print $2}'", buffer, 1024) == 0)
- {
- count = lynq_split(buffer, 1024, '\n', split_lines);
- for(int i=0; i < count;i++)
- {
- port = atoi(split_lines[i]);
- printf("got %s port:%d\n", split_lines[i], port);
- if (port < LYNQ_URC_CLIENT_PORT_START || port > LYNQ_URC_CLIENT_PORT_END)
- continue;
-
- 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(LYNQ_URC_CLIENT_LISTEN_ADDRESS);
- addr_serv.sin_port = htons(port);
- len = sendto(lynq_urc_socket_fd, &local_port, sizeof(local_port), 0, (struct sockaddr *)&addr_serv,sizeof(addr_serv));
- printf("send result %d %d\n", len, errno);
- }
- }
- else
- {
- printf("net stat fail\n");
- }
-}
diff --git a/src/lynq/lib/liblynq-shm/makefile b/src/lynq/lib/liblynq-shm/makefile
index d49d358..806cc77 100755
--- a/src/lynq/lib/liblynq-shm/makefile
+++ b/src/lynq/lib/liblynq-shm/makefile
@@ -20,9 +20,8 @@
-L. \
-ldl \
-llog \
- -lpthread \
-
# -lbinder \
+ -lpthread \
# -lutils \
# -lcutils \
diff --git a/src/lynq/lib/liblynq-sms/lynq_module_socket.cpp b/src/lynq/lib/liblynq-sms/lynq_module_socket.cpp
index ce07df1..8d012da 100755
--- a/src/lynq/lib/liblynq-sms/lynq_module_socket.cpp
+++ b/src/lynq/lib/liblynq-sms/lynq_module_socket.cpp
@@ -16,12 +16,11 @@
#include "lynq_module_socket.h"
#include "liblog/lynq_deflog.h"
#include "lynq_shm.h"
-#include "lynq_urc_socket.h"
#define LYNQ_SERVICE_PORT 8088
#define LYNQ_ADDRESS "127.0.0.1"
-//#define LYNQ_URC_SERVICE_PORT 8086
-//#define LYNQ_URC_ADDRESS "0.0.0.0"
+#define LYNQ_URC_SERVICE_PORT 8086
+#define LYNQ_URC_ADDRESS "0.0.0.0"
#define LYNQ_REQUEST_PARAM_BUF 8192
#define LYNQ_REC_BUF 8192
@@ -51,11 +50,11 @@
lynq_resp_t response;
int module_len_rc_addr_serv;
-//int module_len_urc_addr_serv;
+int module_len_urc_addr_serv;
struct sockaddr_in module_rc_addr_serv;
-//struct sockaddr_in module_urc_addr_serv;
+struct sockaddr_in module_urc_addr_serv;
static int module_rc_sock_fd = -1;
-//static int module_urc_sock_fd = -1;
+static int module_urc_sock_fd = -1;
int module_urc_status = 1;
int module_rc_status = 1;
pthread_t module_urc_tid = -1;
@@ -325,8 +324,7 @@
while(module_urc_status)
{
bzero(urc_data,LYNQ_REC_BUF);
- //res = recvfrom(module_urc_sock_fd,urc_data,sizeof(urc_data),0,(struct sockaddr *)&module_urc_addr_serv,(socklen_t*)&module_len_urc_addr_serv);
- res = lynq_recv_urc_msg(urc_data,sizeof(urc_data));
+ res = recvfrom(module_urc_sock_fd,urc_data,sizeof(urc_data),0,(struct sockaddr *)&module_urc_addr_serv,(socklen_t*)&module_len_urc_addr_serv);
if(res<sizeof(int32_t)*2)
{
LYERRLOG("thread_urc_recv step2 fail: res is %d",res);
@@ -467,45 +465,44 @@
int lynq_setup_urc_socket()
{
-// int on = 1;
-// int ret = 0;
-// module_len_urc_addr_serv = sizeof(sockaddr_in);
-// module_urc_sock_fd = socket(AF_INET, SOCK_DGRAM, 0);
-// if (module_urc_sock_fd <0){
-// LYERRLOG("urc socket error");
-// return RESULT_ERROR;
-// }
-// module_urc_addr_serv.sin_family = AF_INET;
-// module_urc_addr_serv.sin_port = htons(LYNQ_URC_SERVICE_PORT);
-// module_urc_addr_serv.sin_addr.s_addr = inet_addr(LYNQ_URC_ADDRESS);
-// /* Set socket to allow reuse of address and port, SO_REUSEADDR value is 2*/
-// ret = setsockopt(module_urc_sock_fd,SOL_SOCKET,SO_REUSEADDR,&on,sizeof on);
-// if(ret <0)
-// {
-// LYERRLOG("urc socket set error");
-// close(module_urc_sock_fd);
-// module_urc_sock_fd =-1;
-// return RESULT_ERROR;
-// }
-// ret = bind(module_urc_sock_fd ,(struct sockaddr*)&module_urc_addr_serv, sizeof(module_urc_addr_serv));
-// if(ret <0)
-// {
-// LYERRLOG("urc socket bind error");
-// close(module_urc_sock_fd);
-// module_urc_sock_fd =-1;
-// return RESULT_ERROR;
-// }
-// return RESULT_OK;
- return lynq_register_urc_socket() > 0 ? RESULT_OK : RESULT_ERROR;
+ int on = 1;
+ int ret = 0;
+ module_len_urc_addr_serv = sizeof(sockaddr_in);
+ module_urc_sock_fd = socket(AF_INET, SOCK_DGRAM, 0);
+ if (module_urc_sock_fd <0){
+ LYERRLOG("urc socket error");
+ return RESULT_ERROR;
+ }
+ module_urc_addr_serv.sin_family = AF_INET;
+ module_urc_addr_serv.sin_port = htons(LYNQ_URC_SERVICE_PORT);
+ module_urc_addr_serv.sin_addr.s_addr = inet_addr(LYNQ_URC_ADDRESS);
+ /* Set socket to allow reuse of address and port, SO_REUSEADDR value is 2*/
+ ret = setsockopt(module_urc_sock_fd,SOL_SOCKET,SO_REUSEADDR,&on,sizeof on);
+ if(ret <0)
+ {
+ LYERRLOG("urc socket set error");
+ close(module_urc_sock_fd);
+ module_urc_sock_fd =-1;
+ return RESULT_ERROR;
+ }
+ ret = bind(module_urc_sock_fd ,(struct sockaddr*)&module_urc_addr_serv, sizeof(module_urc_addr_serv));
+ if(ret <0)
+ {
+ LYERRLOG("urc socket bind error");
+ close(module_urc_sock_fd);
+ module_urc_sock_fd =-1;
+ return RESULT_ERROR;
+ }
+ return RESULT_OK;
}
void lynq_close_urc_socket()
{
-// if (module_urc_sock_fd >= 0)
-// {
-// close(module_urc_sock_fd);
-// module_urc_sock_fd =-1;
-// }
+ if (module_urc_sock_fd >= 0)
+ {
+ close(module_urc_sock_fd);
+ module_urc_sock_fd =-1;
+ }
}
int lynq_start_all_urc_socket_thread()