From 973ea7eaee914ba2e296d97bdb0457b6732891e1 Mon Sep 17 00:00:00 2001 From: wangzhengquan <wangzhengquan85@126.com> Date: 星期五, 27 十一月 2020 18:55:58 +0800 Subject: [PATCH] update --- src/socket/net_mod_server_socket.c | 13 ++++++++----- 1 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/socket/net_mod_server_socket.c b/src/socket/net_mod_server_socket.c index 9448a39..bc5923a 100644 --- a/src/socket/net_mod_server_socket.c +++ b/src/socket/net_mod_server_socket.c @@ -4,6 +4,8 @@ #include "net_mod_socket_io.h" #include "net_mod_socket.h" +static Logger * logger = LoggerFactory::getLogger(); + NetModServerSocket::NetModServerSocket(int _port): listenfd(0), port(_port), max_buf(1024), max_topic_buf(256), max_response_buf(1024) { @@ -43,7 +45,7 @@ socklen_t clientlen; struct sockaddr_storage clientaddr; char portstr[32]; - if (signal(SIGPIPE, SIG_IGN) == SIG_ERR) err_msg(errno, "signal"); + if (Signal(SIGPIPE, SIG_IGN) == SIG_ERR) err_msg(errno, "signal"); //shmModSocket = new ShmModSocket; sprintf(portstr, "%d", port); @@ -134,6 +136,7 @@ } request_head = NetModSocket::decode_request_head(request_head_bs); +// printf("server received request from host = %s:%d\n", request_head.host, request_head.port); if(request_head.content_length > max_buf) { @@ -150,18 +153,19 @@ } if(request_head.mod == REQ_REP) { -// printf("server response===========\n"); + memcpy(response_head.host, request_head.host, NI_MAXHOST); response_head.port = request_head.port; response_head.key = request_head.key; if(shmModSocket.sendandrecv_unsafe(buf, request_head.content_length, request_head.key, &recv_buf, &recv_size) != 0) { - + // 娌℃湁瀵瑰簲鐨刱ey response_head.code = 1; response_head.content_length = 0; if( rio_writen(connfd, NetModSocket::encode_response_head(response_head), NET_MODE_RESPONSE_HEAD_LENGTH) != NET_MODE_RESPONSE_HEAD_LENGTH ) return -1; //Rio_writen(connfd, recv_buf, recv_size); } else { + // 鍙戦�佹垚鍔� response_head.code = 0; response_head.content_length = recv_size; @@ -188,6 +192,7 @@ } else if(request_head.mod == BUS) { + // TODO: pub response if(request_head.topic_length > max_topic_buf) { if( (topic_buf = realloc(topic_buf, request_head.topic_length)) == NULL ) { LoggerFactory::getLogger()->error(errno, "NetModServerSocket::process_client realloc topic_buf"); @@ -212,8 +217,6 @@ void NetModServerSocket::check_clients() { int i, connfd; - //rio_t *rio; - Logger * logger = LoggerFactory::getLogger(); for (i = 0; (i <= pool.maxi) && (pool.nready > 0); i++) { -- Gitblit v1.8.0