private bool CheckTCPHostBan(TCPConnectionManager.PendingClient player, ref string reason) { if (IsAddressBanned == null) { return(false); } bool banned = IsAddressBanned(player.HostEntry.HostName, false, ref reason); if (banned) { PlayerAddressBanned?.Invoke(this, player); } return(banned); }
protected virtual void BZFSProtocolConnectionAccepted(object sender, TCPConnectionManager.PendingClient e) { var player = AcceptTCPConnection(e); if (player == null) // could not make a player for some reason { e.ClientConnection.Client.Disconnect(false); return; } UDPConnections.AddAcceptalbePlayer(e.GetIPAddress(), player); player.WriteUDP = UDPConnections.WriteUDP; // send them into the restricted zone until they validate SecurityArea.AddPendingConnection(player); Logger.Log1("PlayerID " + player.PlayerID.ToString() + " accepted from " + player.GetTCPRemoteAddresString()); }
protected virtual ServerPlayer AcceptTCPConnection(TCPConnectionManager.PendingClient client) { ServerPlayer p = NewPlayerRecord(client); Logger.Log3("Socket " + p.GetTCPRemoteAddresString() + " Connected "); p.Disconnected += P_Disconnected; p.PlayerID = FindPlayerID(); if (p.PlayerID < 0) { return(null); } lock (ConnectedPlayers) ConnectedPlayers.Add(p.PlayerID, p); NewConnection?.Invoke(this, p); return(p); }
protected virtual ServerPlayer NewPlayerRecord(TCPConnectionManager.PendingClient client) { return(new ServerPlayer(client.ClientConnection)); }