ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
tui/mdns.h
Go to the documentation of this file.
1
8
9#pragma once
10
11/* Storage capacities in elements; text buffers include the terminating NUL. */
12#define TUI_MDNS_NAME_BUFFER_SIZE 256
13#define TUI_MDNS_SESSION_STRING_BUFFER_SIZE 256
14#define TUI_MDNS_ADDRESS_BUFFER_SIZE 256
15#define TUI_MDNS_IPV4_BUFFER_SIZE 16
16#define TUI_MDNS_IPV6_BUFFER_SIZE 46
17
18#include <stdbool.h>
19#include <stdint.h>
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25/* ============================================================================
26 * Log Management
27 * ========================================================================== */
28
37void ui_mdns_log_init(void);
38
44void ui_mdns_log_destroy(void);
45
52void ui_mdns_log_clear(void);
53
61void ui_mdns_log_append(const char *message);
62
75
79typedef struct {
82 bool quiet;
84
134ui_mdns_server_t *ui_mdns_query(const ui_mdns_config_t *config, int *out_count);
135
146
152int ui_mdns_prompt_selection(const ui_mdns_server_t *servers, int count);
153
159int ui_mdns_select(const ui_mdns_server_t *servers, int count);
160
162int ui_mdns_select_until(const ui_mdns_server_t *servers, int count, uint64_t deadline);
163
168int ui_mdns_select_live(const ui_mdns_server_t *servers, int count, uint64_t deadline, ui_mdns_server_t *chosen);
169
184const char *ui_mdns_get_best_address(const ui_mdns_server_t *server);
185
186#ifdef __cplusplus
187}
188#endif
unsigned short uint16_t
Definition common.h:61
unsigned int uint32_t
Definition common.h:62
unsigned long long uint64_t
Definition common.h:63
Configuration for TUI discovery.
Definition tui/mdns.h:79
int max_servers
Maximum servers to collect (default: 20).
Definition tui/mdns.h:81
int timeout_ms
Maximum time to wait for responses (default: 2000).
Definition tui/mdns.h:80
bool quiet
Suppress discovery messages (default: false).
Definition tui/mdns.h:82
Discovered server information from mDNS.
Definition tui/mdns.h:66
char name[256]
Service instance name (e.g., "swift-river-canyon").
Definition tui/mdns.h:67
uint32_t ttl
TTL remaining (seconds).
Definition tui/mdns.h:73
char ipv4[16]
IPv4 address (if available).
Definition tui/mdns.h:71
char ipv6[46]
IPv6 address (if available).
Definition tui/mdns.h:72
uint16_t port
Server port number.
Definition tui/mdns.h:70
char address[256]
Server address (IPv4, IPv6, or hostname).
Definition tui/mdns.h:69
char session_string[256]
Session identity advertised in TXT metadata.
Definition tui/mdns.h:68
ui_mdns_server_t * ui_mdns_query(const ui_mdns_config_t *config, int *out_count)
Discover ascii-chat servers on the local network via mDNS.
Definition tui/mdns.c:80
#define TUI_MDNS_NAME_BUFFER_SIZE
Definition tui/mdns.h:12
#define TUI_MDNS_IPV6_BUFFER_SIZE
Definition tui/mdns.h:16
#define TUI_MDNS_IPV4_BUFFER_SIZE
Definition tui/mdns.h:15
int ui_mdns_select_live(const ui_mdns_server_t *servers, int count, uint64_t deadline, ui_mdns_server_t *chosen)
Definition tui/mdns.c:419
#define TUI_MDNS_ADDRESS_BUFFER_SIZE
Definition tui/mdns.h:14
#define TUI_MDNS_SESSION_STRING_BUFFER_SIZE
Definition tui/mdns.h:13
void ui_mdns_free_results(ui_mdns_server_t *servers)
Free results from TUI discovery query.
Definition tui/mdns.c:100
int ui_mdns_select_until(const ui_mdns_server_t *servers, int count, uint64_t deadline)
Definition tui/mdns.c:415
void ui_mdns_log_append(const char *message)
Append message to mDNS discovery log buffer.
Definition tui/mdns.c:68
const char * ui_mdns_get_best_address(const ui_mdns_server_t *server)
Get best address representation for a discovered server.
Definition tui/mdns.c:439
void ui_mdns_log_init(void)
Discovered server information from mDNS.
Definition tui/mdns.c:52
int ui_mdns_select(const ui_mdns_server_t *servers, int count)
Definition tui/mdns.c:291
void ui_mdns_log_clear(void)
Clear mDNS discovery log buffer.
Definition tui/mdns.c:64
void ui_mdns_log_destroy(void)
Destroy mDNS discovery log buffer.
Definition tui/mdns.c:59
int ui_mdns_prompt_selection(const ui_mdns_server_t *servers, int count)
Interactive server selection.
Definition tui/mdns.c:107