From c6b9aad87d21fb26808fd36467ebf601592346b2 Mon Sep 17 00:00:00 2001 From: Eduardo Bart Date: Sun, 28 Aug 2011 23:08:02 -0300 Subject: [PATCH] fix protocol crash --- src/framework/net/protocol.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/framework/net/protocol.cpp b/src/framework/net/protocol.cpp index a7e3cd1c..76c25b3c 100644 --- a/src/framework/net/protocol.cpp +++ b/src/framework/net/protocol.cpp @@ -61,14 +61,16 @@ void Protocol::send(OutputMessage& outputMessage) outputMessage.addU16(messageSize); // send - m_connection->write(outputMessage.getBuffer(), outputMessage.getMessageSize()); + if(m_connection) + m_connection->write(outputMessage.getBuffer(), outputMessage.getMessageSize()); } void Protocol::recv() { m_inputMessage.reset(); - m_connection->read(InputMessage::HEADER_LENGTH, std::bind(&Protocol::internalRecvHeader, asProtocol(), _1, _2)); + if(m_connection) + m_connection->read(InputMessage::HEADER_LENGTH, std::bind(&Protocol::internalRecvHeader, asProtocol(), _1, _2)); } void Protocol::internalRecvHeader(uint8* buffer, uint16 size) @@ -80,7 +82,8 @@ void Protocol::internalRecvHeader(uint8* buffer, uint16 size) m_inputMessage.setMessageSize(dataSize); // schedule read for message data - m_connection->read(dataSize, std::bind(&Protocol::internalRecvData, asProtocol(), _1, _2)); + if(m_connection) + m_connection->read(dataSize, std::bind(&Protocol::internalRecvData, asProtocol(), _1, _2)); } void Protocol::internalRecvData(uint8* buffer, uint16 size)