Uses of Class
io.github.mahmoudimus.quic.QuicException
Packages that use QuicException
Package
Description
A dependency-free QUIC transport (RFC 9000, 9001, 9002, 9221, 9369).
The sans-I/O QUIC connection and endpoint, ported from quinn-proto: the
Connection state machine (handshake, packet assembly and
processing, key updates, closing and draining), the Endpoint that routes datagrams and answers with Version
Negotiation, Retry and stateless resets, their configurations (TransportConfig, ServerConfig, ClientConfig, EndpointConfig), and the building blocks they are made of:
range sets (RangeSet), reassembly of received data
(Assembler), buffering of sent data (SendBuffer), streams and flow control (StreamsState), packet number spaces and ACK generation
(PacketSpace), loss detection (Recovery), pacing (Pacer), path MTU discovery (MtuDiscovery) and timers (TimerTable).QUIC frames (RFC 9000 section 19, RFC 9221 DATAGRAM, and the ACK frequency extension): a sealed
Frame hierarchy, its encoders and a validating decoder.QUIC packets (RFC 9000 section 17, RFC 9369): header encoding and partial decoding, packet
number truncation and recovery, coalesced datagrams, and protecting and unprotecting whole
packets in place.
QUIC transport parameters (RFC 9000 section 18), carried in the TLS
quic_transport_parameters extension.A TLS 1.3 handshake (RFC 8446) for QUIC (RFC 9001), client and server, ported from rustls with
quinn's session interface.
Address validation tokens (RFC 9000 section 8.1), ported from quinn-proto's
token.rs and
bloom_token_log.rs: Retry and NEW_TOKEN tokens sealed with AES-256-GCM under a key the
server holds (TokenKey), their validation with expiry
and address binding (TokenValidator), and a bounded
replay log (BloomTokenLog); on the client, where
NEW_TOKEN tokens wait for the next connection (TokenStore,
TokenMemoryCache).-
Uses of QuicException in io.github.mahmoudimus.quic
Methods in io.github.mahmoudimus.quic that return QuicException -
Uses of QuicException in io.github.mahmoudimus.quic.connection
Methods in io.github.mahmoudimus.quic.connection with parameters of type QuicExceptionModifier and TypeMethodDescriptionstatic ConnectionErrorConnectionError.transport(QuicException e) A protocol error this endpoint detected.Methods in io.github.mahmoudimus.quic.connection that throw QuicExceptionModifier and TypeMethodDescriptionbooleanAckFrequencyState.ackFrequencyReceived(Frame.AckFrequency frame, PendingAcks pendingAcks) Applies a received ACK_FREQUENCY frame, unless an equal or newer one was applied already.voidRejects an ACK of the skipped packet number.voidRecovery.onAckReceived(long now, SpaceId id, Frame.Ack ack, Recovery.Listener listener) Processes an ACK frame (RFC 9002 section 6 and appendix A.7): acknowledges packets, takes an RTT sample, detects loss, validates ECN counts and rearms the loss detection timer.RemoteCidQueue.onNewConnectionId(Frame.NewConnectionId frame, Retransmits pending) Processes a NEW_CONNECTION_ID frame as the connection does: stores the ID and queues RETIRE_CONNECTION_ID frames for the IDs it retires.LocalCidState.onRetireConnectionId(long sequence, ConnectionId packetDestinationId, long peerActiveConnectionIdLimit) Processes a RETIRE_CONNECTION_ID frame.booleanStreamsState.received(Frame.Stream frame, int payloadLength) Processes a STREAM frame.voidStreamsState.receivedMaxStreamData(StreamId id, long offset) Processes a MAX_STREAM_DATA frame.voidStreamsState.receivedMaxStreams(Dir dir, long count) Processes a MAX_STREAMS frame.booleanStreamsState.receivedReset(Frame.ResetStream frame) Processes a RESET_STREAM frame.voidStreamsState.receivedStopSending(Frame.StopSending frame) Processes a STOP_SENDING frame.voidStreamsState.receivedStreamDataBlocked(Frame.StreamDataBlocked frame) Processes a STREAM_DATA_BLOCKED frame, which needs no response.voidStreamsState.receivedStreamsBlocked(Frame.StreamsBlocked frame) Processes a STREAMS_BLOCKED frame, which needs no response.voidRetransmits.retireCids(long start, long end) Queues RETIRE_CONNECTION_ID frames for a range of sequence numbers. -
Uses of QuicException in io.github.mahmoudimus.quic.frame
Subclasses of QuicException in io.github.mahmoudimus.quic.frameModifier and TypeClassDescriptionfinal classA connection error caused by a received frame, carrying the frame type for the Frame Type field of the CONNECTION_CLOSE frame that reports it (RFC 9000 section 19.19). -
Uses of QuicException in io.github.mahmoudimus.quic.packet
Methods in io.github.mahmoudimus.quic.packet that throw QuicExceptionModifier and TypeMethodDescriptionOpens the payload in place, once header protection is removed.ProtectedPacket.unprotect(DirectionalKeys keys, long largestPacketNumber) Removes header and payload protection in one step, for levels without key phases. -
Uses of QuicException in io.github.mahmoudimus.quic.params
Methods in io.github.mahmoudimus.quic.params that throw QuicExceptionModifier and TypeMethodDescriptionvoidTransportParameters.authenticateConnectionIds(boolean sentByServer, ConnectionId peerInitialSourceId, ConnectionId originalDestinationId, ConnectionId retrySourceId) Authenticates the connection IDs of the handshake (RFC 9000 section 7.3): both endpoints must sendinitial_source_connection_idmatching the Source Connection ID of their first Initial; a server must sendoriginal_destination_connection_id, andretry_source_connection_idif and only if it sent a Retry.static TransportParametersTransportParameters.decode(byte[] encoded, boolean sentByServer) Decodes and validates the peer's transport parameters from an array.static TransportParametersTransportParameters.decode(ByteBuffer in, boolean sentByServer) Decodes and validates the peer's transport parameters.voidTransportParameters.validateResumptionFrom(TransportParameters remembered) Checks, on a client whose 0-RTT data the server accepted, that the server's new parameters allow all it may have sent under the remembered ones (quinn'svalidate_resumption_from). -
Uses of QuicException in io.github.mahmoudimus.quic.tls
Methods in io.github.mahmoudimus.quic.tls that throw QuicExceptionModifier and TypeMethodDescriptionvoidTlsSession.readHandshake(EncryptionLevel level, ByteBuffer data) Feeds CRYPTO stream bytes received at an encryption level, in stream order. -
Uses of QuicException in io.github.mahmoudimus.quic.token
Methods in io.github.mahmoudimus.quic.token that throw QuicExceptionModifier and TypeMethodDescriptionTokenValidator.validate(byte[] token, ConnectionId destinationId, InetSocketAddress remote) Checks the token of a client's first Initial packet.