X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Faxwin4_src%2FServer%2FCIPCChannel_AcessIPCPipe.cpp;h=0d894e3d25c9ccab0386e28780cb6097a9bee2b6;hb=8b72370eae1a3cfa8916136fd8ffc1460e9291ba;hp=a9818cdb13dad33e1b0725316de79cc3aede58ac;hpb=aa5e13445f3d9ab6e0c0049780f38daed443104f;p=tpg%2Facess2.git diff --git a/Usermode/Applications/axwin4_src/Server/CIPCChannel_AcessIPCPipe.cpp b/Usermode/Applications/axwin4_src/Server/CIPCChannel_AcessIPCPipe.cpp index a9818cdb..0d894e3d 100644 --- a/Usermode/Applications/axwin4_src/Server/CIPCChannel_AcessIPCPipe.cpp +++ b/Usermode/Applications/axwin4_src/Server/CIPCChannel_AcessIPCPipe.cpp @@ -83,8 +83,7 @@ void CIPCChannel_AcessIPCPipe::HandleSelect(const fd_set& rfds) CClient_AcessIPCPipe::CClient_AcessIPCPipe(::AxWin::IIPCChannel& channel, int fd): CClient(channel), - m_fd(fd), - m_rxbuf(0x1000) + m_fd(fd) { } @@ -99,17 +98,22 @@ void CClient_AcessIPCPipe::SendMessage(CSerialiser& message) const ::std::vector& data = message.Compact(); _SysDebug("CClient_AcessIPCPipe::SendMessage - %i bytes to %i", data.size(), m_fd); + //_SysDebugHex("CClient_AcessIPCPipe::SendMessage", data.data(), data.size()); _SysWrite(m_fd, data.data(), data.size()); } void CClient_AcessIPCPipe::HandleReceive() { - size_t len = _SysRead(m_fd, &m_rxbuf[0], m_rxbuf.capacity()); + ::std::vector rxbuf(0x1000); + size_t len = _SysRead(m_fd, rxbuf.data(), rxbuf.capacity()); if( len == (size_t)-1 ) throw ::std::system_error(errno, ::std::system_category()); + _SysDebug("CClient_AcessIPCPipe::HandleReceive - Rx %i/%i bytes", len, rxbuf.capacity()); + //_SysDebugHex("CClient_AcessIPCPipe::HandleReceive", rxbuf.data(), len); + rxbuf.resize(len); - CDeserialiser message(len, &m_rxbuf[0]); - CClient::HandleMessage(message); + CDeserialiser msg( ::std::move(rxbuf) ); + CClient::HandleMessage( msg ); } };