From 26ed48c4e616014ee760fd13d13dbdc8539c34e3 Mon Sep 17 00:00:00 2001 From: wangzhengquan <wangzhengquan85@126.com> Date: 星期二, 22 十二月 2020 19:21:55 +0800 Subject: [PATCH] 解决sendandrecv发送到一个不存在key的情况 --- src/socket/net_mod_socket.c | 37 +++++++++++++++++++++---------------- 1 files changed, 21 insertions(+), 16 deletions(-) diff --git a/src/socket/net_mod_socket.c b/src/socket/net_mod_socket.c index 1e1fc27..48b0e7c 100644 --- a/src/socket/net_mod_socket.c +++ b/src/socket/net_mod_socket.c @@ -85,7 +85,7 @@ int i, n, recv_size, connfd; net_node_t *node; - void *recv_buf; + void *recv_buf = NULL; net_mod_request_head_t request_head = {}; @@ -131,13 +131,15 @@ node = &node_arr[i]; if(node->host == NULL || strcmp(node->host, "") == 0 ) { // 鏈湴鍙戦�� - shmModSocket.sendandrecv(send_buf, send_size, node->key, &recv_buf, &recv_size); - strcpy( ret_arr[n_recv_suc].host,""); - ret_arr[n_recv_suc].port = 0; - ret_arr[n_recv_suc].key = node->key; - ret_arr[n_recv_suc].content = recv_buf; - ret_arr[n_recv_suc].content_length = recv_size; - n_recv_suc++; + if(shmModSocket.sendandrecv(send_buf, send_size, node->key, &recv_buf, &recv_size) == 0) { + strcpy( ret_arr[n_recv_suc].host,""); + ret_arr[n_recv_suc].port = 0; + ret_arr[n_recv_suc].key = node->key; + ret_arr[n_recv_suc].content = recv_buf; + ret_arr[n_recv_suc].content_length = recv_size; + n_recv_suc++; + } + continue; } @@ -234,6 +236,17 @@ return n_recv_suc; } + + +void NetModSocket::free_recv_msg_arr(net_mod_recv_msg_t * arr, size_t size) { + + for(int i =0; i< size; i++) { + if(arr[i].content != NULL) + free(arr[i].content); + } + free(arr); +} + int NetModSocket::pub(net_node_t *node_arr, int arrlen, char *topic, int topic_size, void *content, int content_size) { return _pub_(node_arr, arrlen, topic, topic_size, content, content_size, -1); @@ -631,14 +644,6 @@ return shmModSocket.get_key(); } - -void NetModSocket::free_recv_msg_arr(net_mod_recv_msg_t * arr, size_t size) { - - for(int i =0; i< size; i++) { - free(arr[i].content); - } - free(arr); -} -- Gitblit v1.8.0