wangzhengquan
2020-10-12 bd9d61c39d04f5b5860418a2d558c07d9b0a69d0
src/socket/net_mod_server_socket.c
@@ -88,18 +88,21 @@
  int n;
  net_mod_request_head_t request_head;
  net_mod_response_head_t response_head;
  void *buf, *recv_buf;
  void  *recv_buf;
  static void *buf = NULL;
  int recv_size;
  size_t max_buf = 8096;
  buf = malloc(max_buf);
  static size_t max_buf = 1024;
  if(buf == NULL) {
    err_exit(errno, "process_client malloc");
    buf = malloc(max_buf);
    if(buf == NULL) {
      err_exit(errno, "process_client malloc");
    }
  }
  if ((n = rio_readnb(rio, &request_head, sizeof(net_mod_request_head_t))) !=  sizeof(net_mod_request_head_t))
  {
    free(buf);
    return -1;
  }
@@ -112,15 +115,16 @@
  }  
  if ((n = rio_readnb(rio, buf, request_head.content_length)) != request_head.content_length ) {
    free(buf);
    return -1;
  }
  shmModSocket.sendandrecv(buf, request_head.content_length, request_head.key, &recv_buf, &recv_size);
  response_head.content_length = recv_size;
  Rio_writen(connfd, &response_head, sizeof(response_head));
  Rio_writen(connfd, recv_buf, recv_size);
  free(buf);
  if(request_head.mod == REQ_REP) {
    shmModSocket.sendandrecv(buf, request_head.content_length, request_head.key, &recv_buf, &recv_size);
    response_head.content_length = recv_size;
    Rio_writen(connfd, &response_head, sizeof(response_head));
    Rio_writen(connfd, recv_buf, recv_size);
  }
  return 0;
  
}