Skip to main content

UdpProxy

Struct UdpProxy 

Source
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

Source

pub fn new( registry: Registry, sessions: Rc<RefCell<SessionManager>>, pool: Rc<RefCell<Pool>>, backends: Rc<RefCell<BackendMap>>, max_connections: usize, buffer_size: usize, ) -> UdpProxy

Source

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.

Source

pub fn health_ready(&mut self, token: Token)

Record mio readiness for a UDP health-probe socket.

Source

pub fn health_owns_token(&self, token: Token) -> bool

Whether token is a UDP health-probe socket this proxy owns.

Source

pub fn add_listener( &mut self, config: UdpListenerConfig, token: Token, ) -> Result<Token, ProxyError>

Source

pub fn remove_listener(&mut self, address: SocketAddr) -> bool

Source

pub fn activate_listener( &self, addr: &SocketAddr, udp_socket: Option<UdpSocket>, ) -> Result<Token, ProxyError>

Source

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.

Source

pub fn give_back_listeners(&mut self) -> Vec<(SocketAddr, UdpSocket)>

Source

pub fn give_back_listener( &mut self, address: SocketAddr, ) -> Result<(Token, UdpSocket), ProxyError>

Source

pub fn update_listener( &mut self, patch: UpdateUdpListenerConfig, ) -> Result<(), ProxyError>

Source

pub fn add_udp_front( &mut self, front: RequestUdpFrontend, ) -> Result<(), ProxyError>

Source

pub fn remove_udp_front( &mut self, front: RequestUdpFrontend, ) -> Result<(), ProxyError>

Source

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.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more