TcpTunnelBuilder

Struct TcpTunnelBuilder 

Source
pub struct TcpTunnelBuilder { /* private fields */ }
Expand description

A builder for a tunnel backing a TCP endpoint.

https://ngrok.com/docs/tcp/

Implementations§

Source§

impl TcpTunnelBuilder

The options for a TCP edge.

Source

pub fn allow_cidr(&mut self, cidr: impl Into<String>) -> &mut Self

Add the provided CIDR to the allowlist.

https://ngrok.com/docs/tcp/ip-restrictions/

Source

pub fn deny_cidr(&mut self, cidr: impl Into<String>) -> &mut Self

Add the provided CIDR to the denylist.

https://ngrok.com/docs/tcp/ip-restrictions/

Source

pub fn proxy_proto(&mut self, proxy_proto: ProxyProto) -> &mut Self

Sets the PROXY protocol version for connections over this tunnel.

Source

pub fn metadata(&mut self, metadata: impl Into<String>) -> &mut Self

Sets the opaque metadata string for this tunnel.

https://ngrok.com/docs/api/resources/tunnels/#tunnel-fields

Source

pub fn binding(&mut self, binding: impl Into<String>) -> &mut Self

Sets the ingress configuration for this endpoint.

Valid binding values are:

  • "public" - Publicly accessible endpoint
  • "internal" - Internal-only endpoint
  • "kubernetes" - Kubernetes cluster binding

If not specified, the ngrok service will use its default binding configuration.

§Panics

Panics if called more than once or if an invalid binding value is provided.

§Examples
let session = Session::builder().authtoken_from_env().connect().await?;

// Using string
let tunnel = session.tcp_endpoint().binding("internal").listen().await?;

// Using typed enum
use ngrok::config::Binding;
let tunnel = session.tcp_endpoint().binding(Binding::Public).listen().await?;
Source

pub fn forwards_to(&mut self, forwards_to: impl Into<String>) -> &mut Self

Sets the ForwardsTo string for this tunnel. This can be viewed via the API or dashboard.

This overrides the default process info if using TunnelBuilder::listen, and is in turn overridden by the url provided to ForwarderBuilder::listen_and_forward.

https://ngrok.com/docs/api/resources/tunnels/#tunnel-fields

Source

pub fn verify_upstream_tls(&mut self, verify_upstream_tls: bool) -> &mut Self

Disables backend TLS certificate verification for forwards from this tunnel.

Source

pub fn remote_addr(&mut self, remote_addr: impl Into<String>) -> &mut Self

Sets the TCP address to request for this edge.

https://ngrok.com/docs/network-edge/domains-and-tcp-addresses/#tcp-addresses

Source

pub fn policy<S>(&mut self, s: S) -> Result<&mut Self, S::Error>
where S: TryInto<Policy>,

DEPRECATED: use traffic_policy instead.

Source

pub fn traffic_policy(&mut self, policy_str: impl Into<String>) -> &mut Self

Set policy for this edge.

Source

pub fn pooling_enabled(&mut self, pooling_enabled: impl Into<bool>) -> &mut Self

Allows the endpoint to pool with other endpoints with the same host/port/binding

Trait Implementations§

Source§

impl Clone for TcpTunnelBuilder

Source§

fn clone(&self) -> TcpTunnelBuilder

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl ForwarderBuilder for TcpTunnelBuilder

Source§

fn listen_and_forward<'life0, 'async_trait>( &'life0 self, to_url: Url, ) -> Pin<Box<dyn Future<Output = Result<Forwarder<TcpTunnel>, RpcError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Start listening for new connections on this tunnel and forward all connections to the provided URL. Read more
Source§

impl From<Session> for TcpTunnelBuilder

Source§

fn from(session: Session) -> Self

Converts to this type from the input type.
Source§

impl TunnelBuilder for TcpTunnelBuilder

Source§

type Tunnel = TcpTunnel

The ngrok tunnel type that this builder produces.
Source§

fn listen<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<TcpTunnel, RpcError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Begin listening for new connections on this tunnel.

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<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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FromRef<T> for T
where T: Clone,

§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
§

impl<T> Instrument for T

§

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

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

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> ErasedDestructor for T
where T: 'static,