[go: up one dir, main page]

Struct quinn::Connecting

source ·
pub struct Connecting { /* private fields */ }
Expand description

In-progress connection attempt future

Implementations

Convert into a 0-RTT or 0.5-RTT connection at the cost of weakened security

Opens up the connection for use before the handshake finishes, allowing the API user to send data with 0-RTT encryption if the necessary key material is available. This is useful for reducing start-up latency by beginning transmission of application data without waiting for the handshake’s cryptographic security guarantees to be established.

When the ZeroRttAccepted future completes, the connection has been fully established.

Security

On outgoing connections, this enables transmission of 0-RTT data, which might be vulnerable to replay attacks, and should therefore never invoke non-idempotent operations.

On incoming connections, this enables transmission of 0.5-RTT data, which might be intercepted by a man-in-the-middle. If this occurs, the handshake will not complete successfully.

Errors

Outgoing connections are only 0-RTT-capable when a cryptographic session ticket cached from a previous connection to the same server is available, and includes a 0-RTT key. If no such ticket is found, self is returned unmodified.

For incoming connections, a 0.5-RTT connection will always be successfully constructed.

Parameters negotiated during the handshake

The dynamic type returned is determined by the configured Session. For the default rustls session, the return value can be downcast to a crypto::rustls::HandshakeData.

The local IP address which was used when the peer established the connection

This can be different from the address the endpoint is bound to, in case the endpoint is bound to a wildcard address like 0.0.0.0 or ::.

This will return None for clients.

Retrieving the local IP address is currently supported on the following platforms:

  • Linux

On all non-supported platforms the local IP address will not be available, and the method will return None.

The peer’s UDP address.

Will panic if called after poll has returned Ready.

Trait Implementations

Formats the value using the given formatter. Read more
The type of value produced on completion.
Attempt to resolve the future to a final value, registering the current task for wakeup if the value is not yet available. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

A convenience for calling Future::poll() on !Unpin types.
Returns the result of self or other future, preferring self if both are ready. Read more
Returns the result of self or other future, with no preference if both are ready. Read more
Catches panics while polling the future. Read more
Boxes the future and changes its type to dyn Future + Send + 'a. Read more
Boxes the future and changes its type to dyn Future + 'a. Read more
Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

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

The output that the future will produce on completion.
Which kind of future are we turning this into?
Creates a future from a value. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type of successful values yielded by this future
The type of failures yielded by this future
Poll this TryFuture as if it were a Future. Read more
The type returned in the event of a conversion error.
Performs the conversion.
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more