45 lines
1.1 KiB
C
45 lines
1.1 KiB
C
/**
|
|
* Copyright (c) 2025 Dominic Masters
|
|
*
|
|
* This software is released under the MIT License.
|
|
* https://opensource.org/licenses/MIT
|
|
*/
|
|
|
|
#include "server.h"
|
|
#include "assert/assert.h"
|
|
#include "util/memory.h"
|
|
#include "console/console.h"
|
|
|
|
errorret_t serverClientAccept(
|
|
serverclient_t *client,
|
|
const serverclientaccept_t accept
|
|
) {
|
|
memoryZero(client, sizeof(serverclient_t));
|
|
assertNotNull(accept.server, "Server is NULL");
|
|
assertNotMainThread("Server client accept must not be main thread");
|
|
|
|
client->server = accept.server;
|
|
|
|
switch(accept.server->type) {
|
|
case SERVER_TYPE_NETWORKED:
|
|
return networkedClientAccept(client, accept);
|
|
break;
|
|
|
|
default:
|
|
assertUnreachable("Unknown server type");
|
|
}
|
|
}
|
|
|
|
void serverClientClose(serverclient_t *client) {
|
|
assertNotNull(client, "Client is NULL");
|
|
assertIsMainThread("Server client close must be on main thread");
|
|
if(client->state == SERVER_CLIENT_STATE_DISCONNECTED) return;
|
|
|
|
switch(client->server->type) {
|
|
case SERVER_TYPE_NETWORKED:
|
|
networkedClientClose(client);
|
|
break;
|
|
default:
|
|
assertUnreachable("Unknown server type");
|
|
}
|
|
} |