ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
Application Limits

Limits for clients, frame rates, display names, and other constraints. More...

Files

file  limits.h
 Application limits and constraints.

Macros

#define MAX_CONFIGURED_STUN_SERVERS   4
#define MAX_CONFIGURED_TURN_SERVERS   4
#define IP_ADDRESS_BUFFER_SIZE   64
#define PORT_STRING_BUFFER_SIZE   6
#define SESSION_ID_SIZE   16
#define MAX_SESSION_PARTICIPANTS   128
#define MAX_SESSION_KEYS   32
#define MAX_HOSTNAME_LENGTH   253
#define MAX_HOSTNAME_LABEL_LENGTH   63
#define HOSTNAME_BUFFER_SIZE   256
#define MAX_URL_LENGTH   4095
#define URL_BUFFER_SIZE   (MAX_URL_LENGTH + 1)
#define MEDIA_URL_CACHE_SIZE   2048
#define MEDIA_STREAM_URL_SIZE   8192
#define MAX_DISPLAY_NAME_LEN   32
 Maximum display name length in characters.
#define MAX_CLIENT_ID_LEN   64
 Maximum client ID length - format: "noun.N (transport:port)" e.g., "mountain.0 (tcp:48036)".
#define MAX_CLIENTS   MAX_SESSION_PARTICIPANTS
 Maximum possible clients (static array size) - actual runtime limit set by –max-clients (1-128).
#define DEFAULT_MAX_FPS   60
 Default maximum frame rate (frames per second).
#define FRAME_INTERVAL_MS   (1000 / DEFAULT_MAX_FPS)
 Frame interval in milliseconds based on default FPS (compile-time constant).
#define FRAME_BUFFER_CAPACITY   (DEFAULT_MAX_FPS / 4)
 Frame buffer capacity based on default FPS (compile-time constant).

Detailed Description

Limits for clients, frame rates, display names, and other constraints.

Macro Definition Documentation

◆ DEFAULT_MAX_FPS

◆ FRAME_BUFFER_CAPACITY

#define FRAME_BUFFER_CAPACITY   (DEFAULT_MAX_FPS / 4)

#include <include/ascii-chat/common/limits.h>

Frame buffer capacity based on default FPS (compile-time constant).

Definition at line 72 of file common/limits.h.

◆ FRAME_INTERVAL_MS

#define FRAME_INTERVAL_MS   (1000 / DEFAULT_MAX_FPS)

#include <include/ascii-chat/common/limits.h>

Frame interval in milliseconds based on default FPS (compile-time constant).

Definition at line 69 of file common/limits.h.

◆ HOSTNAME_BUFFER_SIZE

#define HOSTNAME_BUFFER_SIZE   256

#include <include/ascii-chat/common/limits.h>

Existing endpoint/OS hostname storage capacity, including NUL. Also holds bracketed IPv6 literals and zone identifiers; do not use it as DNS validation.

Definition at line 41 of file common/limits.h.

Referenced by dns_test_connectivity(), hostname_to_ascii(), https_get(), parallel_connect(), parse_address_with_optional_port(), session_server_like_mdns_advertise(), and url_parse().

◆ IP_ADDRESS_BUFFER_SIZE

#define IP_ADDRESS_BUFFER_SIZE   64

#include <include/ascii-chat/common/limits.h>

Existing IP text storage budget, including NUL and room for common scope IDs.

Definition at line 19 of file common/limits.h.

Referenced by compare_ip_port_strings().

◆ MAX_CLIENT_ID_LEN

#define MAX_CLIENT_ID_LEN   64

#include <include/ascii-chat/common/limits.h>

Maximum client ID length - format: "noun.N (transport:port)" e.g., "mountain.0 (tcp:48036)".

Definition at line 60 of file common/limits.h.

Referenced by add_transport_client(), client_audio_render_thread(), and client_video_render_thread().

◆ MAX_CLIENTS

◆ MAX_CONFIGURED_STUN_SERVERS

#define MAX_CONFIGURED_STUN_SERVERS   4

#include <include/ascii-chat/common/limits.h>

Definition at line 15 of file common/limits.h.

◆ MAX_CONFIGURED_TURN_SERVERS

#define MAX_CONFIGURED_TURN_SERVERS   4

#include <include/ascii-chat/common/limits.h>

Definition at line 16 of file common/limits.h.

◆ MAX_DISPLAY_NAME_LEN

#define MAX_DISPLAY_NAME_LEN   32

#include <include/ascii-chat/common/limits.h>

Maximum display name length in characters.

Definition at line 57 of file common/limits.h.

Referenced by handle_client_join_packet(), and threaded_send_client_join_packet().

◆ MAX_HOSTNAME_LABEL_LENGTH

#define MAX_HOSTNAME_LABEL_LENGTH   63

#include <include/ascii-chat/common/limits.h>

Maximum bytes in an ASCII DNS label, excluding separators and NUL.

Definition at line 37 of file common/limits.h.

◆ MAX_HOSTNAME_LENGTH

#define MAX_HOSTNAME_LENGTH   253

#include <include/ascii-chat/common/limits.h>

Maximum ASCII DNS hostname bytes, excluding the NUL and a trailing root dot. Apply after IDNA conversion, not to UTF-8 input bytes or codepoint counts.

Definition at line 34 of file common/limits.h.

Referenced by hostname_to_ascii().

◆ MAX_SESSION_KEYS

#define MAX_SESSION_KEYS   32

#include <include/ascii-chat/common/limits.h>

Maximum Ed25519 identity keys in one session create sequence.

Definition at line 30 of file common/limits.h.

Referenced by acds_create_key_set_collect(), acds_protocol_create(), acip_server_validate_session_create(), discovery_session_create(), and options_collect_identity_keys().

◆ MAX_SESSION_PARTICIPANTS

◆ MAX_URL_LENGTH

#define MAX_URL_LENGTH   4095

#include <include/ascii-chat/common/limits.h>

Maximum normalized schemeless URL bytes, excluding NUL (includes added http://). Explicit-scheme URLs parsed into allocated components have no such fixed limit.

Definition at line 45 of file common/limits.h.

◆ MEDIA_STREAM_URL_SIZE

#define MEDIA_STREAM_URL_SIZE   8192

◆ MEDIA_URL_CACHE_SIZE

#define MEDIA_URL_CACHE_SIZE   2048

#include <include/ascii-chat/common/limits.h>

yt-dlp cache capacities, including NUL; these are not URL parser limits.

Definition at line 49 of file common/limits.h.

◆ PORT_STRING_BUFFER_SIZE

#define PORT_STRING_BUFFER_SIZE   6

#include <include/ascii-chat/common/limits.h>

Decimal TCP/UDP port storage (65535 plus NUL).

Definition at line 21 of file common/limits.h.

Referenced by nat_upnp_close().

◆ SESSION_ID_SIZE

#define SESSION_ID_SIZE   16

#include <include/ascii-chat/common/limits.h>

Binary UUID width shared by discovery, participants, and session identities.

Definition at line 24 of file common/limits.h.

Referenced by acds_on_host_announcement_ex(), acds_send_current_host(), consensus_coordinator_create(), consensus_coordinator_get_current_host(), consensus_coordinator_on_election_result(), consensus_coordinator_on_stats_update(), consensus_create_for_discovery(), consensus_election_choose_hosts(), consensus_election_verify(), consensus_handoff_decode(), consensus_handoff_encode(), consensus_handoff_encode(), consensus_handoff_host_lost(), consensus_handoff_init(), consensus_handoff_join(), consensus_handoff_leave(), consensus_handoff_receive(), consensus_handoff_tick(), consensus_metrics_measure(), consensus_state_create(), consensus_state_get_elected_backup(), consensus_state_get_elected_host(), consensus_state_store_election(), consensus_topology_create(), consensus_topology_get_all(), consensus_topology_get_leader(), consensus_topology_get_next(), consensus_topology_get_prev(), database_session_clear_host(), database_session_find_by_id(), database_session_is_migration_ready(), database_session_leave(), database_session_lookup(), database_session_start_migration(), database_session_transport_get(), database_session_transport_set(), database_session_update_host(), database_session_update_host_with_transport(), discovery_session_apply_handoff(), discovery_session_handle_host_disconnect(), discovery_session_stop(), discovery_webrtc_get_direct_signaling_callbacks(), discovery_webrtc_set_session_context(), negotiate_init(), session_consensus_create(), session_consensus_get_elected_host(), session_consensus_is_ready(), session_consensus_on_election_result(), session_consensus_on_stats_update(), session_consensus_set_topology(), signaling_broadcast(), DiscoveryBinding::snapshot(), webrtc_peer_manager_connect(), webrtc_peer_manager_dispatch_ready(), webrtc_peer_manager_get_state(), webrtc_peer_manager_handle_sdp(), webrtc_peer_manager_remove_peer(), and webrtc_set_session_context().

◆ URL_BUFFER_SIZE