diff options
author | fschildt <florian.schildt@protonmail.com> | 2025-08-22 15:23:11 +0200 |
---|---|---|
committer | fschildt <florian.schildt@protonmail.com> | 2025-08-22 15:23:11 +0200 |
commit | 2050c0e0576f05156f192aa4caf48834d2f28b14 (patch) | |
tree | ee58bd35b0df0a1bacfbc9700ed99ce80c99294e /src/server/client_connections.h |
Diffstat (limited to 'src/server/client_connections.h')
-rw-r--r-- | src/server/client_connections.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/server/client_connections.h b/src/server/client_connections.h new file mode 100644 index 0000000..0c0a275 --- /dev/null +++ b/src/server/client_connections.h @@ -0,0 +1,44 @@ +#ifndef CLIENT_CONNECTIONS_H +#define CLIENT_CONNECTIONS_H + +#include <basic/basic.h> +#include <basic/string32.h> +#include <os/os.h> +#include <messages/messages.h> + + +#define CLIENT_CONNECTION_INVALID_ID U32_MAX + + +typedef struct { + u32 id; + u32 secure_stream_id; + u32 recv_buff_size_used; + u8 recv_buff[1408]; + + String32 *username; + u8 username_buff[sizeof(String32) + MESSAGES_MAX_USERNAME_LEN * sizeof(u32)]; +} ClientConnection; + + +typedef struct { + EVP_PKEY *server_rsa_pri; + u32 listener_id; + int epoll_fd; + + size_t max_connection_count; + ClientConnection *connections; + + u32 free_id_count; + u32 *free_ids; +} ClientConnections; + + + +ClientConnections *client_connections_create(Arena *arena, u16 port); +void client_connections_manage(ClientConnections *connections); + +ClientConnection* client_connection_id_to_ptr(ClientConnections *connections, u32 id); + + +#endif // CLIENT_CONNECTIONS_H |