Lidgren.Network.NetConnection.ValidateHandshakeData C# (CSharp) Method

ValidateHandshakeData() private method

private ValidateHandshakeData ( int ptr, int payloadLength, byte &hail ) : bool
ptr int
payloadLength int
hail byte
return bool
        private bool ValidateHandshakeData(int ptr, int payloadLength, out byte[] hail)
        {
            hail = null;

            // create temporary incoming message
            NetIncomingMessage msg = m_peer.SetupReadHelperMessage(ptr, payloadLength);
            try
            {
                string remoteAppIdentifier = msg.ReadString();
                long remoteUniqueIdentifier = msg.ReadInt64();
                InitializeRemoteTimeOffset(msg.ReadSingle());

                int remainingBytes = payloadLength - (msg.PositionInBytes - ptr);
                if (remainingBytes > 0)
                    hail = msg.ReadBytes(remainingBytes);

                if (remoteAppIdentifier != m_peer.m_configuration.AppIdentifier)
                {
                    ExecuteDisconnect("Wrong application identifier!", true);
                    return false;
                }

                m_remoteUniqueIdentifier = remoteUniqueIdentifier;
            }
            catch(Exception ex)
            {
                // whatever; we failed
                ExecuteDisconnect("Handshake data validation failed", true);
                m_peer.LogWarning("ReadRemoteHandshakeData failed: " + ex.Message);
                return false;
            }
            return true;
        }