ascii-chat 0.11.33
Video chat in your terminal
Loading...
Searching...
No Matches
discovery_session_t Struct Reference

Discovery session context. More...

#include <src/discovery/session.h>

Data Fields

discovery_state_t state
 
asciichat_error_t error
 
uint64_t waiting_peer_start_ns
 Timestamp when entered WAITING_PEER state (for timeout)
 
uint8_t session_id [16]
 
uint8_t participant_id [16]
 
uint8_t initiator_id [16]
 
char session_string [SESSION_STRING_BUFFER_SIZE]
 
char password [128]
 Session password used when joining password-protected sessions.
 
bool is_initiator
 
bool is_host
 
bool host_elected
 True if we've been elected as host (even if waiting for peer)
 
uint8_t identity_pubkey [32]
 Ed25519 public key for this participant (primary key)
 
uint8_t identity_seckey [64]
 Ed25519 secret key for signing (primary key)
 
uint8_t identity_pubkeys [MAX_IDENTITY_KEYS][32]
 All public keys for multi-key protocol.
 
size_t num_identity_keys
 Number of identity keys loaded.
 
acip_transport_t * acds_transport
 Persistent transport for ACDS communication.
 
uint64_t last_acds_keepalive_ns
 Last keepalive sent to the discovery service.
 
char acds_address [64]
 
uint16_t acds_port
 
char acds_url [512]
 ACDS WebSocket URL (ws:// or wss://, if set uses WebSocket instead of TCP)
 
uint8_t host_id [16]
 
char host_address [64]
 
uint16_t host_port
 
uint8_t session_type
 0 = DIRECT_TCP, 1 = WEBRTC
 
char turn_username [128]
 
char turn_password [128]
 
negotiate_ctx_t negotiate
 
nat_quality_t cached_nat_quality
 
bool nat_quality_cached
 
asciichat_thread_t nat_detection_thread
 
bool nat_detection_in_progress
 
bool nat_detection_thread_started
 
mutex_t nat_quality_mutex
 
ring_consensus_t ring
 
host_liveness_t liveness
 
migration_ctx_t migration
 
struct webrtc_peer_manager * peer_manager
 WebRTC peer connection manager (NULL for TCP sessions)
 
bool webrtc_transport_ready
 True when DataChannel is open and transport created.
 
bool webrtc_connection_initiated
 True when we've called webrtc_peer_manager_connect()
 
int webrtc_retry_attempt
 Current retry attempt number (0 = initial, 1+ = retries)
 
uint64_t webrtc_last_attempt_time_ms
 Timestamp of last connection attempt (monotonic time)
 
uint64_t webrtc_disconnected_since_ms
 Start of a transient peer disconnection.
 
stun_server_t * stun_servers
 STUN servers from ACDS.
 
size_t stun_count
 Number of STUN servers.
 
turn_server_t * turn_servers
 TURN servers from ACDS.
 
size_t turn_count
 Number of TURN servers.
 
session_host_t * host_ctx
 
session_participant_t * participant_ctx
 
void(* on_state_change )(discovery_state_t new_state, void *user_data)
 
void(* on_session_ready )(const char *session_string, void *user_data)
 
void(* on_error )(asciichat_error_t error, const char *message, void *user_data)
 
void * callback_user_data
 
discovery_should_exit_fn should_exit_callback
 
void * exit_callback_data
 

Detailed Description

Discovery session context.

Definition at line 137 of file src/discovery/session.h.

Field Documentation

◆ acds_address

char discovery_session_t::acds_address[64]

Definition at line 164 of file src/discovery/session.h.

Referenced by discovery_session_create().

◆ acds_port

uint16_t discovery_session_t::acds_port

Definition at line 165 of file src/discovery/session.h.

Referenced by discovery_session_create().

◆ acds_transport

◆ acds_url

char discovery_session_t::acds_url[512]

ACDS WebSocket URL (ws:// or wss://, if set uses WebSocket instead of TCP)

Definition at line 166 of file src/discovery/session.h.

Referenced by discovery_session_create().

◆ cached_nat_quality

nat_quality_t discovery_session_t::cached_nat_quality

Definition at line 182 of file src/discovery/session.h.

◆ callback_user_data

void* discovery_session_t::callback_user_data

Definition at line 224 of file src/discovery/session.h.

Referenced by discovery_session_create(), and discovery_session_process().

◆ error

asciichat_error_t discovery_session_t::error

Definition at line 140 of file src/discovery/session.h.

Referenced by discovery_session_process().

◆ exit_callback_data

void* discovery_session_t::exit_callback_data

Definition at line 228 of file src/discovery/session.h.

Referenced by discovery_session_create(), and discovery_session_start().

◆ host_address

char discovery_session_t::host_address[64]

◆ host_ctx

◆ host_elected

bool discovery_session_t::host_elected

True if we've been elected as host (even if waiting for peer)

Definition at line 151 of file src/discovery/session.h.

◆ host_id

◆ host_port

uint16_t discovery_session_t::host_port

◆ identity_pubkey

uint8_t discovery_session_t::identity_pubkey[32]

Ed25519 public key for this participant (primary key)

Definition at line 154 of file src/discovery/session.h.

Referenced by discovery_session_create(), and discovery_session_start().

◆ identity_pubkeys

uint8_t discovery_session_t::identity_pubkeys[MAX_IDENTITY_KEYS][32]

All public keys for multi-key protocol.

Definition at line 158 of file src/discovery/session.h.

Referenced by discovery_session_create().

◆ identity_seckey

uint8_t discovery_session_t::identity_seckey[64]

Ed25519 secret key for signing (primary key)

Definition at line 155 of file src/discovery/session.h.

Referenced by discovery_session_create(), and discovery_session_start().

◆ initiator_id

uint8_t discovery_session_t::initiator_id[16]

Definition at line 146 of file src/discovery/session.h.

◆ is_host

◆ is_initiator

bool discovery_session_t::is_initiator

◆ last_acds_keepalive_ns

uint64_t discovery_session_t::last_acds_keepalive_ns

Last keepalive sent to the discovery service.

Definition at line 163 of file src/discovery/session.h.

Referenced by discovery_session_process().

◆ liveness

host_liveness_t discovery_session_t::liveness

◆ migration

◆ nat_detection_in_progress

bool discovery_session_t::nat_detection_in_progress

Definition at line 187 of file src/discovery/session.h.

◆ nat_detection_thread

asciichat_thread_t discovery_session_t::nat_detection_thread

Definition at line 186 of file src/discovery/session.h.

Referenced by discovery_session_destroy().

◆ nat_detection_thread_started

bool discovery_session_t::nat_detection_thread_started

Definition at line 188 of file src/discovery/session.h.

Referenced by discovery_session_destroy().

◆ nat_quality_cached

bool discovery_session_t::nat_quality_cached

Definition at line 183 of file src/discovery/session.h.

◆ nat_quality_mutex

mutex_t discovery_session_t::nat_quality_mutex

Definition at line 189 of file src/discovery/session.h.

Referenced by discovery_session_create(), and discovery_session_destroy().

◆ negotiate

negotiate_ctx_t discovery_session_t::negotiate

Definition at line 179 of file src/discovery/session.h.

Referenced by __attribute__(), and discovery_session_process().

◆ num_identity_keys

size_t discovery_session_t::num_identity_keys

Number of identity keys loaded.

Definition at line 159 of file src/discovery/session.h.

Referenced by discovery_session_create().

◆ on_error

void(* discovery_session_t::on_error) (asciichat_error_t error, const char *message, void *user_data)

Definition at line 223 of file src/discovery/session.h.

Referenced by discovery_session_create().

◆ on_session_ready

void(* discovery_session_t::on_session_ready) (const char *session_string, void *user_data)

Definition at line 222 of file src/discovery/session.h.

Referenced by discovery_session_create(), and discovery_session_process().

◆ on_state_change

void(* discovery_session_t::on_state_change) (discovery_state_t new_state, void *user_data)

Definition at line 221 of file src/discovery/session.h.

Referenced by discovery_session_create().

◆ participant_ctx

◆ participant_id

◆ password

char discovery_session_t::password[128]

Session password used when joining password-protected sessions.

Definition at line 148 of file src/discovery/session.h.

Referenced by discovery_session_create().

◆ peer_manager

struct webrtc_peer_manager* discovery_session_t::peer_manager

WebRTC peer connection manager (NULL for TCP sessions)

Definition at line 201 of file src/discovery/session.h.

Referenced by discovery_session_create(), discovery_session_destroy(), and discovery_session_process().

◆ ring

◆ session_id

◆ session_string

◆ session_type

uint8_t discovery_session_t::session_type

0 = DIRECT_TCP, 1 = WEBRTC

Definition at line 172 of file src/discovery/session.h.

Referenced by discovery_session_check_host_alive(), and discovery_session_process().

◆ should_exit_callback

discovery_should_exit_fn discovery_session_t::should_exit_callback

Definition at line 227 of file src/discovery/session.h.

Referenced by discovery_session_create(), and discovery_session_start().

◆ state

◆ stun_count

size_t discovery_session_t::stun_count

Number of STUN servers.

Definition at line 212 of file src/discovery/session.h.

Referenced by discovery_session_create(), and discovery_session_destroy().

◆ stun_servers

stun_server_t* discovery_session_t::stun_servers

STUN servers from ACDS.

Definition at line 211 of file src/discovery/session.h.

Referenced by discovery_session_create(), and discovery_session_destroy().

◆ turn_count

size_t discovery_session_t::turn_count

Number of TURN servers.

Definition at line 214 of file src/discovery/session.h.

Referenced by discovery_session_create(), and discovery_session_destroy().

◆ turn_password

char discovery_session_t::turn_password[128]

Definition at line 176 of file src/discovery/session.h.

◆ turn_servers

turn_server_t* discovery_session_t::turn_servers

TURN servers from ACDS.

Definition at line 213 of file src/discovery/session.h.

Referenced by discovery_session_create(), and discovery_session_destroy().

◆ turn_username

char discovery_session_t::turn_username[128]

Definition at line 175 of file src/discovery/session.h.

◆ waiting_peer_start_ns

uint64_t discovery_session_t::waiting_peer_start_ns

Timestamp when entered WAITING_PEER state (for timeout)

Definition at line 141 of file src/discovery/session.h.

Referenced by discovery_session_process().

◆ webrtc_connection_initiated

bool discovery_session_t::webrtc_connection_initiated

True when we've called webrtc_peer_manager_connect()

Definition at line 203 of file src/discovery/session.h.

Referenced by discovery_session_create(), and discovery_session_process().

◆ webrtc_disconnected_since_ms

uint64_t discovery_session_t::webrtc_disconnected_since_ms

Start of a transient peer disconnection.

Definition at line 206 of file src/discovery/session.h.

Referenced by discovery_session_create(), and discovery_session_process().

◆ webrtc_last_attempt_time_ms

uint64_t discovery_session_t::webrtc_last_attempt_time_ms

Timestamp of last connection attempt (monotonic time)

Definition at line 205 of file src/discovery/session.h.

Referenced by discovery_session_create(), and discovery_session_process().

◆ webrtc_retry_attempt

int discovery_session_t::webrtc_retry_attempt

Current retry attempt number (0 = initial, 1+ = retries)

Definition at line 204 of file src/discovery/session.h.

Referenced by discovery_session_create(), and discovery_session_process().

◆ webrtc_transport_ready

bool discovery_session_t::webrtc_transport_ready

True when DataChannel is open and transport created.

Definition at line 202 of file src/discovery/session.h.

Referenced by discovery_session_check_host_alive(), discovery_session_create(), and discovery_session_process().


The documentation for this struct was generated from the following file: