| 106 | } |
| 107 | |
| 108 | void NetworkServer::onReceivePacket(IUdpSocket& socket, std::unique_ptr<INetworkEndpoint> endpoint, const Packet& packet) |
| 109 | { |
| 110 | auto client = findClient(*endpoint); |
| 111 | if (client == nullptr) |
| 112 | { |
| 113 | auto connectPacket = packet.as<PacketKind::connect, ConnectPacket>(); |
| 114 | if (connectPacket != nullptr) |
| 115 | { |
| 116 | auto conn = std::make_unique<NetworkConnection>(&socket, std::move(endpoint)); |
| 117 | conn->receivePacket(packet); |
| 118 | |
| 119 | std::unique_lock<std::mutex> lk(_incomingConnectionsSync); |
| 120 | _incomingConnections.push_back(std::move(conn)); |
| 121 | } |
| 122 | } |
| 123 | else |
| 124 | { |
| 125 | client->connection->receivePacket(packet); |
| 126 | } |
| 127 | } |
| 128 | |
| 129 | void NetworkServer::onReceivePacketFromClient(Client& client, const Packet& packet) |
| 130 | { |
nothing calls this directly
no test coverage detected