Skip to main content

TcpSession

Struct TcpSession 

Source
pub struct TcpSession { /* private fields */ }

Implementations§

Source§

impl TcpSession

Source

pub fn upgrade(&mut self) -> bool

Source

pub fn test_back_socket(&mut self) -> bool

Source

pub fn cancel_timeouts(&mut self)

Trait Implementations§

Source§

impl ProxySession for TcpSession

Source§

fn targets(&self, target: &SessionTarget) -> bool

A TCP session is targeted by the backend it dialled last.

Source§

fn close(&mut self)

close a session, frontend and backend sockets, remove the entries from the session manager slab
Source§

fn timeout(&mut self, token: Token) -> bool

if a timeout associated with the session triggers, the event loop will call this method with the timeout’s token
Source§

fn protocol(&self) -> Protocol

indicates the protocol associated with the session Read more
Source§

fn update_readiness(&mut self, token: Token, events: Ready)

if the event loop got an event for a token associated with the session, it will call this method on the session
Source§

fn ready(&mut self, session: Rc<RefCell<dyn ProxySession>>) -> bool

if a session received an event or can still execute, the event loop will call this method. Its result indicates if it can still execute, needs to connect to a backend server, close the session
Source§

fn shutting_down(&mut self) -> bool

tell the session it has to shut down if possible Read more
Source§

fn last_event(&self) -> Instant

last time the session got an event
Source§

fn print_session(&self)

display the session’s internal state (for debugging purpose)
Source§

fn frontend_token(&self) -> Token

get the token associated with the frontend
Source§

fn cluster_id(&self) -> Option<ClusterId>

Best-effort identifier of the cluster currently routed to by this session. Returns None for ListenSession (no per-session cluster), and for client sessions before routing has resolved. H2 sessions multiplex many streams over one frontend token and may touch several clusters; the returned value is whichever cluster the session most recently keep-alive’d to. Used for log/metric attribution, not for accounting (the tracker keeps the canonical per-stream (cluster, IP) set).
Source§

fn session_address(&self) -> Option<SocketAddr>

Source address as observed by Sōzu, with proxy-protocol awareness. HTTP/HTTPS/TCP client sessions return the parsed PROXY-protocol source when present, else peer_addr. ListenSession returns None. Used to attribute per-(cluster, source-IP) tracking and access logs to the real client behind a layer-4 PROXY frontend.
Source§

fn needs_ready_pass(&self) -> bool

Whether the session has work that only a Self::ready pass can do although no socket event will arrive to trigger one. Read more
Source§

fn yielded(&mut self) -> bool

Whether the last Self::ready pass stopped at its iteration budget while still forwarding bytes, with work left that no socket event will announce again. Reading it clears it. Read more

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, 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 = !

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

fn try_from(value: U) -> Result<T, !>

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.