feat(core): implement multi-transport listeners with ListenerConfig and Vec<ListenerConfig>
- Add ListenerConfig struct with transport_kind, listen_addr, per-transport config - Add Dns and WebTransport variants to TransportKind (tags only, no behavior) - Add .listeners() builder method to ServeOptions for multi-listener config - Keep .transport_mode() backwards compatible (creates single-element listeners vec) - Update Server::run() to use listeners from Server struct (first listener) - Add Server::listeners() accessor for multi-transport listener configs - Update StaticConfig to support listeners field, converted from ServeOptions - All listeners share Arc<ArcSwap<DynamicConfig>>, ConnectionRateLimiter, and IdentityProvider - Graceful shutdown terminates accept loop via existing shutdown signal - TOML [[listeners]] array-of-tables syntax supported via ListenerConfig in StaticConfig - Add comprehensive tests for ListenerConfig, multi-listener ServeOptions, Server creation
This commit is contained in:
@@ -68,5 +68,5 @@ pub use config::{
|
||||
ForwardingRule, RateLimitConfig, StaticConfig,
|
||||
};
|
||||
pub use error::{AuthError, ChannelError, ConfigError, ForwardError, TransportError};
|
||||
pub use server::serve::{ServeError, ServeOptions, ServeTransportMode, Server};
|
||||
pub use server::serve::{ListenerConfig, ServeError, ServeOptions, ServeTransportMode, Server};
|
||||
pub use transport::{Transport, TransportAcceptor, TransportInfo, TransportKind};
|
||||
|
||||
Reference in New Issue
Block a user