feat: add TeamSpeak address resolver
This commit is contained in:
@@ -21,28 +21,24 @@
|
||||
//! Promoted from `poc/tsclientlib-connect-spike` on 2026-05-14
|
||||
//! as part of the Alpha build.
|
||||
//!
|
||||
//! ## Hostname resolution (A.1)
|
||||
//! ## Server address resolution (A.1)
|
||||
//!
|
||||
//! Upstream `tsclientlib` uses `hickory-resolver` which reads
|
||||
//! `/etc/resolv.conf`. That file does not exist on Android or iOS,
|
||||
//! and the Beta UI surfaced the resulting cryptic "connection task
|
||||
//! exited before signalling ready" errors. We side-step the issue by
|
||||
//! resolving hostnames ourselves with `tokio::net::lookup_host`,
|
||||
//! which uses platform `getaddrinfo` (works correctly on every
|
||||
//! supported platform), and feeding the resulting `SocketAddr`
|
||||
//! directly to `tsclientlib::Connection::build`. A small in-process
|
||||
//! positive-result cache keeps reconnects fast.
|
||||
//! `chanora_resolver` owns TeamSpeak client address resolution:
|
||||
//! server-name aliases, `_ts3._udp` SRV, TSDNS SRV/TCP, and DNS
|
||||
//! fallback. This crate asks it for a final IP `host:port` and feeds
|
||||
//! the resulting `SocketAddr` directly to `tsclientlib::Connection::build`
|
||||
//! so tsclientlib's own resolver is not used.
|
||||
|
||||
#![forbid(unsafe_code)]
|
||||
#![warn(missing_docs)]
|
||||
|
||||
mod adapter;
|
||||
mod dto;
|
||||
mod resolver;
|
||||
|
||||
pub use adapter::{ConnectConfig, DisconnectReason, InboundVoice, ProtocolClient, SnapshotProbe};
|
||||
pub use dto::{
|
||||
ChannelId, ChannelInfo, ChatMessage, ClientId, ClientInfo, MessageTarget, ServerSnapshot,
|
||||
ChannelId, ChannelInfo, ChatMessage, ClientId, ClientInfo, MessageTarget, ServerActivity,
|
||||
ServerSnapshot,
|
||||
};
|
||||
|
||||
// Re-export the upstream voice types so chanora_audio can build outbound
|
||||
|
||||
Reference in New Issue
Block a user