private static void HandshakeReceived(bool successful, int transferred, object state)
{
var data = (ReceiveMessageState) state;
PeerMessage message = null;
if (successful)
{
data.Decryptor.Decrypt(data.Buffer, 0, transferred);
message = new HandshakeMessage();
message.Decode(data.Buffer, 0, transferred);
}
data.Callback(successful, message, data.State);
ClientEngine.BufferManager.FreeBuffer(data.Buffer);
ReceiveCache.Enqueue(data);
}