ascii-chat 0.6.0
Real-time terminal-based video chat with ASCII art conversion
Loading...
Searching...
No Matches
server/main.h
Go to the documentation of this file.
1
41#pragma once
42
44#include "network/tcp/server.h"
45#include "audio/mixer.h"
46#include "crypto/key_types.h"
47#include "stats.h"
48#include "client.h"
49
57
81typedef struct server_context_t {
82 // TCP server instance
84
85 // Rate limiting
87
88 // Client management
91
92 // Server lifecycle
93 atomic_bool *server_should_exit;
94
95 // Audio mixing
97
98 // Statistics
101
102 // Cryptography
108
131int server_main(void);
pthread_mutex_t mutex_t
Mutex type (POSIX: pthread_mutex_t)
Definition mutex.h:38
pthread_rwlock_t rwlock_t
Read-write lock type (POSIX: pthread_rwlock_t)
Definition rwlock.h:40
Multi-Source Audio Mixing and Processing System.
🚦 Rate limiting API with pluggable backends
rate_limiter_t * g_rate_limiter
Global connection rate limiter.
int server_main(void)
Server mode entry point for unified binary.
Per-client state management and lifecycle orchestration.
Server performance statistics tracking.
Global client manager structure for server-side client coordination.
Main mixer structure for multi-source audio processing.
Definition mixer.h:325
Private key structure (for server –ssh-key)
Definition key_types.h:91
Public key structure.
Definition key_types.h:69
Rate limiter structure.
Definition rate_limit.c:63
Server context - encapsulates all server state.
Definition server/main.h:81
tcp_server_t * tcp_server
TCP server managing connections.
Definition server/main.h:83
bool encryption_enabled
Whether encryption is enabled.
client_manager_t * client_manager
Client registry and state.
Definition server/main.h:89
mixer_t * audio_mixer
Multi-client audio mixer.
Definition server/main.h:96
size_t num_whitelisted_clients
Number of whitelisted clients.
mutex_t * stats_mutex
Mutex protecting stats.
public_key_t * client_whitelist
Whitelisted client public keys.
rwlock_t * client_manager_rwlock
RW lock protecting client manager.
Definition server/main.h:90
atomic_bool * server_should_exit
Shutdown flag.
Definition server/main.h:93
private_key_t * server_private_key
Server's private key.
server_stats_t * stats
Server statistics.
Definition server/main.h:99
rate_limiter_t * rate_limiter
Connection and packet rate limiter.
Definition server/main.h:86
Server performance statistics structure.
Definition stats.h:47
TCP server state.