ascii-chat 0.11.33
Video chat in your terminal
Loading...
Searching...
No Matches
server_like.h
Go to the documentation of this file.
1
66#pragma once
67
77#include <stdbool.h>
78
79/* ============================================================================
80 * Callback Types
81 * ============================================================================ */
82
96
110typedef void (*session_server_like_interrupt_fn)(int sig);
111
121typedef void (*session_server_like_cleanup_fn)(void *user_data);
122
136typedef void (*session_server_like_status_fn)(void *user_data, ui_status_t *out_status);
137
138/* ============================================================================
139 * Configuration Structure
140 * ============================================================================ */
141
150 /* ================================================================ */
151 /* Required Callbacks */
152 /* ================================================================ */
153
157
160
161 /* ================================================================ */
162 /* Optional Callbacks */
163 /* ================================================================ */
164
168
172
173 /* ================================================================ */
174 /* TCP Server */
175 /* ================================================================ */
176
179
182
183 /* ================================================================ */
184 /* WebSocket Server (optional) */
185 /* ================================================================ */
186
187 struct {
190
193
197
198 /* ================================================================ */
199 /* mDNS (optional) */
200 /* ================================================================ */
201
202 struct {
204 bool enabled;
205
207 const char *service_name;
208
210 const char *service_type;
212
213 /* ================================================================ */
214 /* UPnP (optional) */
215 /* ================================================================ */
216
217 struct {
219 bool enabled;
220
222 const char *description;
224
225 /* ================================================================ */
226 /* System */
227 /* ================================================================ */
228
231
234
236
237/* ============================================================================
238 * Entry Point
239 * ============================================================================ */
240
286
287/* ============================================================================
288 * Accessors (for use by mode callbacks)
289 * ============================================================================ */
290
301
312
323
338
339/* ============================================================================
340 * Helpers (for use by mode callbacks)
341 * ============================================================================ */
342
356ASCIICHAT_API asciichat_error_t session_server_like_mdns_advertise(const char *name, const char *type, uint16_t port,
357 const char **txt, size_t txt_count);
358
375 acip_transport_t *transport);
376
DLL export/import macros for cross-platform symbol visibility.
⚠️‼️ Comprehensive thread-local error context system for ascii-chat
Common declarations and data structures for cryptographic handshake.
unsigned short uint16_t
Definition common.h:57
asciichat_error_t
Error and exit codes - unified status values (0-255)
Definition error_codes.h:49
#define ASCIICHAT_API
Export symbols on Unix platforms (Linux, macOS)
Definition api.h:82
void *(* tcp_client_handler_fn)(void *arg)
Client handler thread function type.
WebSocket server for accepting browser client connections.
void *(* websocket_client_handler_fn)(void *arg)
Client handler function type.
websocket_server_t * session_server_like_get_websocket_server(void)
asciichat_error_t session_server_like_handshake(crypto_handshake_context_t *ctx, acip_transport_t *transport)
bool session_server_like_shutdown_requested(void)
struct session_server_like_config session_server_like_config_t
void(* session_server_like_cleanup_fn)(void *user_data)
asciichat_mdns_t * session_server_like_get_mdns_ctx(void)
void(* session_server_like_status_fn)(void *user_data, ui_status_t *out_status)
tcp_server_t * session_server_like_get_tcp_server(void)
asciichat_error_t(* session_server_like_init_fn)(void *user_data)
Definition server_like.h:95
asciichat_error_t session_server_like_mdns_advertise(const char *name, const char *type, uint16_t port, const char **txt, size_t txt_count)
asciichat_error_t session_server_like_run(const session_server_like_config_t *config)
nat_upnp_context_t * session_server_like_get_upnp_ctx(void)
void(* session_server_like_interrupt_fn)(int sig)
📊 Status screen display and management for server/discovery service modes
ClangTool/LibTooling compatibility shim for stdbool.h.
Transport instance structure.
Definition transport.h:214
Internal mDNS context structure.
Cryptographic handshake context structure.
Handle to UPnP context.
Definition upnp.h:25
struct session_server_like_config::@12 upnp
session_server_like_interrupt_fn interrupt_fn
struct session_server_like_config::@10 websocket
struct session_server_like_config::@11 mdns
tcp_client_handler_fn tcp_handler
session_server_like_init_fn init_fn
session_server_like_cleanup_fn cleanup_fn
session_server_like_status_fn status_fn
websocket_client_handler_fn handler
Status information for server/discovery service modes.
Definition status.h:30
Transport abstraction layer for ACIP protocol.
UPnP/NAT-PMP port mapping for direct TCP connectivity.