| | |
| | | if (recv_done) { |
| | | LOG_TRACE() << "tcp server recv request data, size: " << size; |
| | | MQInfo remote = {head.dest().mq_id(), head.dest().abs_addr()}; |
| | | if (remote.id_ && remote.offset_) { |
| | | auto self(shared_from_this()); |
| | | auto onRecv = [this, self](ShmSocket &sock, MsgI &imsg, BHMsgHead &head) { |
| | | send_buffer_ = imsg.content(); |
| | |
| | | auto &scenter = *pscenter_; |
| | | if (scenter->PassRemoteRequestToLocal(remote, head, body_content, onRecv)) { |
| | | return; |
| | | } |
| | | } else { |
| | | LOG_DEBUG() << "no address"; |
| | | } |
| | | Close(); |
| | | |
| | | } |
| | | } else { // not complete, read again |
| | | LOG_TRACE() << "not complete, read again " << recv_buffer_.size(); |
| | | socket_.async_read_some(Buffer(recv_buffer_, recv_len_), TcpCBSize(*this, [this](size_t size) { OnRead(size); })); |