pub struct UdpProxy { /* private fields */ }Expand description
The UDP proxy. Holds the listeners, one UdpManager per listener token, the
shared BackendMap, the session slab and a cloned registry. Does NOT
implement ProxyConfiguration / L7Proxy; the server drives it through the
inherent notify plus the activate/give-back helpers.
Implementations§
Source§impl UdpProxy
impl UdpProxy
pub fn new( registry: Registry, sessions: Rc<RefCell<SessionManager>>, pool: Rc<RefCell<Pool>>, backends: Rc<RefCell<BackendMap>>, max_connections: usize, buffer_size: usize, ) -> UdpProxy
Sourcepub fn health_poll(&mut self)
pub fn health_poll(&mut self)
Drive the UDP health prober one event-loop step (server calls this once
per iteration, mirroring HealthChecker::poll). Non-blocking.
Sourcepub fn health_ready(&mut self, token: Token)
pub fn health_ready(&mut self, token: Token)
Record mio readiness for a UDP health-probe socket.
Sourcepub fn health_owns_token(&self, token: Token) -> bool
pub fn health_owns_token(&self, token: Token) -> bool
Whether token is a UDP health-probe socket this proxy owns.
pub fn add_listener( &mut self, config: UdpListenerConfig, token: Token, ) -> Result<Token, ProxyError>
pub fn remove_listener(&mut self, address: SocketAddr) -> bool
pub fn activate_listener( &self, addr: &SocketAddr, udp_socket: Option<UdpSocket>, ) -> Result<Token, ProxyError>
Sourcepub fn build_session(
&mut self,
token: Token,
) -> Option<Rc<RefCell<UdpListenerSession>>>
pub fn build_session( &mut self, token: Token, ) -> Option<Rc<RefCell<UdpListenerSession>>>
Build the UdpListenerSession that drives this listener’s datagrams.
The server inserts the returned session into the slab at the listener
token, replacing the ListenSession placeholder, so the generic
readiness path reaches UdpListenerSession::update_readiness. Returns
None if the listener token is unknown.
pub fn give_back_listeners(&mut self) -> Vec<(SocketAddr, UdpSocket)>
pub fn give_back_listener( &mut self, address: SocketAddr, ) -> Result<(Token, UdpSocket), ProxyError>
pub fn update_listener( &mut self, patch: UpdateUdpListenerConfig, ) -> Result<(), ProxyError>
pub fn add_udp_front( &mut self, front: RequestUdpFrontend, ) -> Result<(), ProxyError>
pub fn remove_udp_front( &mut self, front: RequestUdpFrontend, ) -> Result<(), ProxyError>
Sourcepub fn notify(&mut self, message: WorkerRequest) -> WorkerResponse
pub fn notify(&mut self, message: WorkerRequest) -> WorkerResponse
Inherent dispatch entry point — the server calls this directly (UDP does
not implement ProxyConfiguration). Handles UDP frontends, cluster
config, listener removal, and stop. No accept / create_session.