|
ascii-chat 0.8.38
Real-time terminal-based video chat with ASCII art conversion
|
Parallel mDNS and ACDS session discovery implementation. More...
Go to the source code of this file.
Data Structures | |
| struct | discovery_thread_state_t |
| Thread-safe result sharing between discovery threads. More... | |
| struct | mdns_query_state_t |
| Internal state for collecting discovered services. More... | |
| struct | mdns_thread_context_t |
| Context for mDNS discovery thread. More... | |
| struct | acds_thread_context_t |
| Context for ACDS discovery thread. More... | |
Functions | |
| void | pubkey_to_hex (const uint8_t pubkey[32], char hex_out[65]) |
| asciichat_error_t | hex_to_pubkey (const char *hex_str, uint8_t pubkey_out[32]) |
| discovery_tui_server_t * | discovery_mdns_query (int timeout_ms, int max_servers, bool quiet, int *out_count) |
| Public mDNS query function used by both parallel discovery and TUI wrapper. | |
| void | discovery_mdns_destroy (discovery_tui_server_t *servers) |
| Free memory from mDNS discovery results. | |
| void | discovery_config_init_defaults (discovery_config_t *config) |
| asciichat_error_t | discover_session_parallel (const char *session_string, const discovery_config_t *config, discovery_result_t *result) |
Parallel mDNS and ACDS session discovery implementation.
This module provides automated discovery of ascii-chat servers via parallel mDNS (local LAN) and ACDS (internet) lookups.
Architecture:
Definition in file discovery.c.
| asciichat_error_t discover_session_parallel | ( | const char * | session_string, |
| const discovery_config_t * | config, | ||
| discovery_result_t * | result | ||
| ) |
Definition at line 518 of file discovery.c.
References discovery_thread_state_t::acds_done, asciichat_thread_create(), asciichat_thread_join(), acds_thread_context_t::config, mdns_thread_context_t::expected_pubkey, discovery_thread_state_t::found, is_session_string(), discovery_thread_state_t::lock, discovery_thread_state_t::mdns_done, mutex_destroy(), mutex_init(), discovery_thread_state_t::result, mdns_thread_context_t::session_string, acds_thread_context_t::session_string, discovery_thread_state_t::signal, mdns_thread_context_t::state, and acds_thread_context_t::state.
| void discovery_config_init_defaults | ( | discovery_config_t * | config | ) |
Definition at line 496 of file discovery.c.
References discovery_config_t::acds_port.
| void discovery_mdns_destroy | ( | discovery_tui_server_t * | servers | ) |
Free memory from mDNS discovery results.
Definition at line 267 of file discovery.c.
Referenced by discovery_tui_free_results().
| discovery_tui_server_t * discovery_mdns_query | ( | int | timeout_ms, |
| int | max_servers, | ||
| bool | quiet, | ||
| int * | out_count | ||
| ) |
Public mDNS query function used by both parallel discovery and TUI wrapper.
| timeout_ms | Query timeout in milliseconds |
| max_servers | Maximum servers to discover |
| quiet | If true, suppresses progress messages |
| out_count | Output: number of servers discovered |
Definition at line 179 of file discovery.c.
References asciichat_mdns_destroy(), asciichat_mdns_init(), asciichat_mdns_query(), asciichat_mdns_update(), mdns_query_state_t::capacity, mdns_query_state_t::count, mdns_query_state_t::query_complete, mdns_query_state_t::servers, mdns_query_state_t::start_time_ms, time_get_ns(), and mdns_query_state_t::timeout_ms.
Referenced by discovery_tui_query().
| asciichat_error_t hex_to_pubkey | ( | const char * | hex_str, |
| uint8_t | pubkey_out[32] | ||
| ) |
Definition at line 58 of file discovery.c.
| void pubkey_to_hex | ( | const uint8_t | pubkey[32], |
| char | hex_out[65] | ||
| ) |
Definition at line 49 of file discovery.c.
References safe_snprintf().
Referenced by client_crypto_handshake(), and server_crypto_handshake().