+ if (clientcount < max(1, sv_maxplayers.integer) && clientnum < MAX_SCOREBOARD)
+ {
+ // allocate and prepare the client struct
+ if ((client = Mem_Alloc(sv_clients_mempool, sizeof(client_t))))
+ {
+ if ((client->entitydatabase4 = EntityFrame4_AllocDatabase(sv_clients_mempool)))
+ {
+ if ((conn = NetConn_Open(mysocket, peeraddress)))
+ {
+ // allocated connection
+ LHNETADDRESS_ToString(peeraddress, conn->address, sizeof(conn->address), true);
+ if (developer.integer)
+ Con_Printf("Datagram_ParseConnectionless: sending \"accept\" to %s.\n", conn->address);
+ NetConn_WriteString(mysocket, "\377\377\377\377accept", peeraddress);
+ // now set up the client struct
+ svs.connectedclients[clientnum] = client;
+ SV_ConnectClient(clientnum, conn);
+ NetConn_Heartbeat(1);
+ }
+ else
+ {
+ EntityFrame4_FreeDatabase(client->entitydatabase4);
+ Mem_Free(client);
+ }
+ }
+ else
+ Mem_Free(client);
+ }
+ }
+ else