Exemplo n.º 1
0
        private void RaiseUserquakeEvent(Packet packet)
        {
            if (packet.Code != Code.USERQUAKE)
            {
                return;
            }

            if (packet.Data == null || packet.Data.Length < 6)
            {
                return;
            }

            string[] data = packet.Data[5].Split(',');
            if (data.Length < 2)
            {
                return;
            }

            EPSPUserquakeEventArgs e = new EPSPUserquakeEventArgs()
            {
                ReceivedAt = ProtocolTime()
            };

            Verifier.VerifyResult result = Verifier.VerifyUserquake(packet.Data[5], packet.Data[1], packet.Data[0], packet.Data[2], packet.Data[3], packet.Data[4], ProtocolTime());
            e.IsExpired          = result.isExpired;
            e.IsInvalidSignature = !result.isValidSignature;

            e.PublicKey = packet.Data[2];
            e.AreaCode  = data[1];
            OnUserquake(this, e);
        }
Exemplo n.º 2
0
 private void PeerManager_OnUserquake(object sender, EPSPUserquakeEventArgs e)
 {
     OnUserquake(sender, e);
 }