dusk/src/server/serverclient.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");
}
}