45 char server_address[256];
100 char server_address[64];
108 char session_string[49];
181 char error_message[129];
183 char server_address[65];
247 const char *session_string,
uint8_t signature_out[64]);
261 const char *session_string,
const uint8_t signature[64]);
asciichat_error_t acds_verify_session_create(const uint8_t identity_pubkey[32], uint64_t timestamp, uint8_t capabilities, uint8_t max_participants, const uint8_t signature[64])
Verify SESSION_CREATE signature.
asciichat_error_t acds_session_lookup(acds_client_t *client, const char *session_string, acds_session_lookup_result_t *result)
Look up session by string.
asciichat_error_t acds_verify_session_join(const uint8_t identity_pubkey[32], uint64_t timestamp, const char *session_string, const uint8_t signature[64])
Verify SESSION_JOIN signature.
void acds_client_config_init_defaults(acds_client_config_t *config)
Initialize ACDS client configuration with defaults.
asciichat_error_t acds_session_create(acds_client_t *client, const acds_session_create_params_t *params, acds_session_create_result_t *result)
Create a new session on the discovery server.
asciichat_error_t acds_sign_session_join(const uint8_t identity_seckey[64], uint64_t timestamp, const char *session_string, uint8_t signature_out[64])
Sign a SESSION_JOIN message.
asciichat_error_t acds_session_join(acds_client_t *client, const acds_session_join_params_t *params, acds_session_join_result_t *result)
Join an existing session.
bool acds_validate_timestamp(uint64_t timestamp_ms, uint32_t window_seconds)
Check if timestamp is within acceptable window.
asciichat_error_t acds_client_connect(acds_client_t *client, const acds_client_config_t *config)
Connect to ACDS server.
asciichat_error_t acds_sign_session_create(const uint8_t identity_seckey[64], uint64_t timestamp, uint8_t capabilities, uint8_t max_participants, uint8_t signature_out[64])
Sign a SESSION_CREATE message.
void acds_client_disconnect(acds_client_t *client)
Disconnect from ACDS server.
⚠️‼️ Error and/or exit() when things go bad.
unsigned long long uint64_t
asciichat_error_t
Error and exit codes - unified status values (0-255)
ASCII-Chat Discovery Service (ACDS) Protocol Message Formats.
Cross-platform socket interface for ascii-chat.
uint8_t participant_id[16]
ACDS client connection configuration.
uint32_t timeout_ms
Connection timeout in milliseconds.
uint16_t server_port
ACDS server port (default: 27225)
ACDS client connection handle.
acds_client_config_t config
bool connected
Connection status.
socket_t socket
TCP socket to ACDS server.
Session creation request parameters.
const char * reserved_string
Optional reserved string (NULL = auto-generate)
uint16_t server_port
Server port where clients should connect.
bool acds_expose_ip
Explicitly allow public IP disclosure (–acds-expose-ip opt-in)
uint8_t max_participants
Maximum participants (1-8)
bool has_password
Password protection enabled.
uint8_t capabilities
Bit 0: video, Bit 1: audio.
uint8_t session_type
acds_session_type_t: 0=DIRECT_TCP (default), 1=WEBRTC
uint64_t expires_at
Expiration timestamp (Unix ms)
bool has_password
Password provided.
const char * session_string
Session to join.
uint8_t error_code
Error code (if !success)
uint8_t session_type
acds_session_type_t: 0=DIRECT_TCP, 1=WEBRTC (if success)
bool success
Join succeeded.
uint16_t server_port
Server port (if success)
uint8_t capabilities
Session capabilities.
bool found
Session exists.
bool require_client_verify
ACDS policy: client must verify server identity.
bool has_password
Password required to join.
uint64_t expires_at
Expiration timestamp (Unix ms)
uint8_t max_participants
Maximum participants.
bool require_server_verify
ACDS policy: server must verify client identity.
uint64_t created_at
Creation timestamp (Unix ms)
uint8_t current_participants
Current participant count.