Fixing receive function.

This commit is contained in:
lotodore
2011-01-17 11:05:59 +00:00
parent 0f86071f4b
commit 0055e02905
+3 -2
View File
@@ -59,7 +59,7 @@ receiveMessage(tcp::socket &socket)
do do
{ {
asn_dec_rval_t retVal = ber_decode(0, &asn_DEF_PokerTHMessage, (void **)&msg, recBuf.data(), recBufPos); asn_dec_rval_t retVal = ber_decode(0, &asn_DEF_PokerTHMessage, (void **)&msg, recBuf.data(), recBufPos);
if(retVal.code == RC_OK) if(retVal.code == RC_OK && msg != NULL)
{ {
if (retVal.consumed < recBufPos) if (retVal.consumed < recBufPos)
{ {
@@ -75,9 +75,10 @@ receiveMessage(tcp::socket &socket)
{ {
// Free the partially decoded message (if applicable). // Free the partially decoded message (if applicable).
ASN_STRUCT_FREE(asn_DEF_PokerTHMessage, msg); ASN_STRUCT_FREE(asn_DEF_PokerTHMessage, msg);
msg = NULL;
recBufPos += socket.receive(boost::asio::buffer(recBuf.c_array() + recBufPos, BUF_SIZE - recBufPos)); recBufPos += socket.receive(boost::asio::buffer(recBuf.c_array() + recBufPos, BUF_SIZE - recBufPos));
} }
} while (recBufPos < BUF_SIZE && msg == NULL); } while (msg == NULL);
return msg; return msg;
} }