/* * [5c22fc7f][unpack]: 1 * [5c22fc7f][test]: token=4294967295 res=3569422453 * [5c22fc7f][test]: bytes=520 accept 0 1 * [5c22fc7f][unpack]: 8 * [5c22fc7f][test]: token=157418043 res=4168385603 * [5c22fc7f][check]: cur=157418043 seed=1257701721 * [5c22fc7f][test]: bytes=22 accept 1 8 * */ public override int ProcessMessage(IPEndPoint endPoint, ChunkConstruct packet) { var broadcastResponse = false; // TODO ODODODO if (packet.Token != TokenHelper.TokenNone && !CheckToken(endPoint, packet.Token, packet.ResponseToken, ref broadcastResponse)) { return(0); } var verified = packet.Token != TokenHelper.TokenNone; var tokenMessage = packet.Flags.HasFlag(PacketFlags.Control) && packet.Data[0] == (int)ConnectionMessages.Token; if (packet.Flags.HasFlag(PacketFlags.Connless)) { return((verified && !broadcastResponse) ? 1 : 0); } if (!tokenMessage) { return((verified && !broadcastResponse) ? 1 : 0); } if (verified) { return(broadcastResponse ? -1 : 1); } if (packet.DataSize >= TokenHelper.TokenRequestDataSize) { NetworkHelper.SendConnectionMsgWithToken(Client, endPoint, packet.ResponseToken, 0, ConnectionMessages.Token, GenerateToken(endPoint), false); } return(0); }
public override void FetchToken(IPEndPoint endPoint) { NetworkHelper.SendConnectionMsgWithToken(Client, endPoint, TokenHelper.TokenNone, 0, ConnectionMessages.Token, TokenManager.GenerateToken(endPoint), true); }
protected override void SendConnectionMsgWithToken(ConnectionMessages msg) { LastSendTime = Time.Get(); NetworkHelper.SendConnectionMsgWithToken(UdpClient, EndPoint, PeerToken, 0, msg, Token, true); }