wangzhengquan
2021-01-19 438a5decf4cc7049876ce84dc31a47e39719cf15
src/socket/net_mod_socket.cpp
@@ -240,12 +240,12 @@
            mpool->conns[i].fd = -1;
            
          }
          else if(n == -1)  {
          else if(n == EBUS_NET)  {
            // 网络错误
            mpool->closeConn( connfd);
            // mpool->conns[i].fd = -1;
          } else {
            // 对方key是关闭的
            // 代理服务没有转发成功
             mpool->conns[i].fd = -1;
          }
@@ -263,7 +263,6 @@
// printf("poll POLLERR %d\n", connfd);
          mpool->nready--;
          mpool->closeConn( connfd);
          // mpool->conns[i].fd = -1;
        }
      }
    }
@@ -274,7 +273,6 @@
    if ( (connfd = mpool->conns[i].fd) > 0 ) {
      // 关闭并清除写入或读取失败的连接
      mpool->closeConn( connfd);
      // mpool->conns[i].fd = -1;
    }
  }
@@ -347,6 +345,7 @@
    if(ret == 0 ) {
      n_pub_suc++;
    }
    return n_pub_suc;
  }
  for (i = 0; i < arrlen; i++) {
@@ -376,7 +375,7 @@
      }
      request_head.mod = BUS;
      memcpy(request_head.host, node->host, sizeof(request_head.host));
      request_head.key = node->key;
      request_head.key = SHM_BUS_KEY;
      request_head.content_length = content_size;
      request_head.topic_length = strlen(topic) + 1;
      request_head.timeout = msec;
@@ -411,11 +410,11 @@
            mpool->conns[i].fd = -1;
            n_pub_suc++;
          } 
          else if(ret == -1)  {
          else if(ret == EBUS_NET)  {
            // 网络连接错误
             mpool->closeConn( connfd);
          } else {
            // 对方的key是关闭的
            // 代理服务没有转发成功
            mpool->conns[i].fd = -1;
          }
          n_resp++;
@@ -693,7 +692,7 @@
}
/**
 * @return 0 成功, 1 对方没有对应的key, -1 网络错误
 * @return 0 成功,   EBUS_NET 网络错误, 其他值 代理服务没有转发成功。
 *
 */
int NetModSocket::read_response(int connfd, net_mod_recv_msg_t *recv_msg) {
@@ -712,7 +711,7 @@
// printf(">>>> read_response %s\n", response_head.host);
  if(response_head.code != 0) {
    // 代理服务没能成功发送给对应的key
    return 1;
    return response_head.code;
  }
  recv_buf = malloc(response_head.content_length);
@@ -722,8 +721,8 @@
  }
  if ( (recv_size = rio_readn(connfd, recv_buf, response_head.content_length) ) !=  response_head.content_length) {
    LoggerFactory::getLogger()->error(errno, "NetModSocket::read_response  rio_readnb recv_buf");
    return -1;
    //网络错误
    return EBUS_NET;
  }
  strcpy( recv_msg->host, response_head.host);