Quic.TLSDriver (elixir_quic v0.16.7)

Copy Markdown View Source

Serialized adapter around the public SSL.QUIC action protocol.

The driver owns CRYPTO offsets and sparse reassembly. A TLS adapter is injectable for deterministic tests; production defaults to SSL.QUIC.

Summary

Types

t()

@type t() :: %Quic.TLSDriver{
  adapter: term(),
  emitted_bytes: term(),
  facts: term(),
  future_bytes: term(),
  levels: term(),
  max_emitted_bytes: term(),
  max_future_bytes: term(),
  role: term(),
  terminal: term(),
  tls: term()
}

Functions

abort(state, reason)

facts(tls_driver)

feed(state, level, offset, bytes)

@spec feed(t(), atom(), non_neg_integer(), binary()) ::
  {:ok, t(), list()} | {:error, term(), t(), list()}

feed_crypto(state, level, offset, bytes)

info(state)

mark_address_validated(state)

mark_quic_confirmed(state)

new(role, opts \\ [])

@spec new(:client | :server, keyword()) :: {:ok, t(), list()} | {:error, term()}

retire_level(state, level)

@spec retire_level(t(), :initial | :handshake) :: t()

Release QUIC-owned CRYPTO buffers without changing the provider's private state.

retransmit(state, level, offset, length)

@spec retransmit(t(), atom(), non_neg_integer(), non_neg_integer()) ::
  {:ok, binary()} | {:error, atom()}