Skip to main content

Module proxy

Module proxy 

Source
Expand description

Transparent proxy orchestrator β€” accept loop and session management.

The proxy binds a single listener that accepts raw-QUIC MoQT and WebTransport clients simultaneously, negotiated via ALPN. Each accepted connection is handed to a ProxySession that forwards traffic to the configured upstream relay.

Re-exportsΒ§

use std::collections::HashMap; πŸ”’
use std::net::SocketAddr; πŸ”’
use std::sync::atomic::AtomicU64; πŸ”’
use std::sync::atomic::Ordering; πŸ”’
use std::sync::Arc; πŸ”’
use std::time::Duration; πŸ”’
use tokio_util::sync::CancellationToken; πŸ”’
use crate::control::ControlPlane; πŸ”’
use crate::control::LegSetup; πŸ”’
use crate::control::ProxyControl; πŸ”’
use crate::error::ProxyError; πŸ”’
use crate::event::ProxyEvent; πŸ”’
use crate::event::SessionId; πŸ”’
use crate::hook::NoOpHook; πŸ”’
use crate::hook::ProxyHook; πŸ”’
use crate::listener::ClientRequest; πŸ”’
use crate::listener::Handshake; πŸ”’
use crate::listener::Listener; πŸ”’
use crate::listener::ListenerConfig; πŸ”’
use crate::listener::Rejection; πŸ”’
use crate::observer::ProxyObserver; πŸ”’
use crate::session::ProxySession; πŸ”’
use crate::session::ProxySessionConfig; πŸ”’
use crate::session::UpstreamTransportType; πŸ”’

StructsΒ§

ProxyConfig
Configuration for the transparent proxy.
RouteRequest
One client, as a Router sees it.
Spawner πŸ”’
What one client’s task needs from its proxy.
TransparentProxy
A transparent MoQT proxy that accepts client connections and forwards traffic to an upstream relay.

EnumsΒ§

RouteClient
What a client asked for.

ConstantsΒ§

HANDSHAKE_TIMEOUT
How long a client may take from its first packet to a finished handshake (for WebTransport, to its session request).

TraitsΒ§

Router
Decides, for each client, where its session goes and how it runs.

FunctionsΒ§

rejection_reason πŸ”’
The close reason a refused raw-QUIC client is given.