Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: cloudflare/quiche
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0.23.4
Choose a base ref
...
head repository: cloudflare/quiche
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 0.23.5
Choose a head ref
  • 20 commits
  • 25 files changed
  • 9 contributors

Commits on Mar 7, 2025

  1. Configuration menu
    Copy the full SHA
    a186a49 View commit details
    Browse the repository at this point in the history
  2. h3i: release 0.4.0

    ghedo committed Mar 7, 2025
    Configuration menu
    Copy the full SHA
    c6489c8 View commit details
    Browse the repository at this point in the history

Commits on Mar 17, 2025

  1. Fix typo in diagram (#1967)

    mendess authored Mar 17, 2025
    Configuration menu
    Copy the full SHA
    d0efd2c View commit details
    Browse the repository at this point in the history

Commits on Mar 26, 2025

  1. tokio-quiche: switch from feature to cfg flag for capture_keylogs

    Whether to capture keylogs (i.e., secrets) should only be decided by the
    final binary that incorporates tokio-quiche somewhere in its dependency
    graph. Using a feature allows any dependency to enable keylog capturing,
    whereas a cfg flag must be explicitly set in RUSTFLAGS or similar.
    
    I've opted to keep the feature flag around for now. We can remove it on
    the next major bump and this makes the migration a bit easier.
    TheJokr authored Mar 26, 2025
    Configuration menu
    Copy the full SHA
    d447cb3 View commit details
    Browse the repository at this point in the history
  2. fix now_or_never() spuriously returning None

    `now_or_never()` can spuriously return None even if the underlying is
    Future is ready.  This is due to tokio's cooperative scheduler returning
    Pending if a task's coop budget is exhausted. We can avoid this by
    wrapping the future in a `tokio::task::unconstrained()`
    gregor-cf authored and ghedo committed Mar 26, 2025
    Configuration menu
    Copy the full SHA
    3513025 View commit details
    Browse the repository at this point in the history
  3. properly enable tokio unconstrained()

    This was added in tokio 1.44 so we need to bump the minimum tokio
    version required, and it's gated behing the "rt" feature as well.
    
    Not entirely sure why this wasn't caught in CI before, but only by
    `cargo package`.
    ghedo committed Mar 26, 2025
    Configuration menu
    Copy the full SHA
    1065348 View commit details
    Browse the repository at this point in the history
  4. fix: Derive an additional default

    Missed this in #1931.
    larseggert authored and ghedo committed Mar 26, 2025
    Configuration menu
    Copy the full SHA
    0002c34 View commit details
    Browse the repository at this point in the history
  5. datagram-socket: release 0.1.1

    ghedo committed Mar 26, 2025
    Configuration menu
    Copy the full SHA
    603b77b View commit details
    Browse the repository at this point in the history
  6. tokio-quiche: release 0.2.2

    ghedo committed Mar 26, 2025
    Configuration menu
    Copy the full SHA
    1990653 View commit details
    Browse the repository at this point in the history

Commits on Mar 27, 2025

  1. tls: don't log nullbytes from log_ssl_error

    The function was always logging a 1024 byte long buffer padded with
    nullbytes. This doesn't look intentional, and may cause trouble for
    some logger implementations that don't expect nulls in &str.
    
    See also: rust-mobile/android_logger-rs#90
    Marcin Radomski authored and ghedo committed Mar 27, 2025
    Configuration menu
    Copy the full SHA
    db1d0fb View commit details
    Browse the repository at this point in the history
  2. tokio-quiche: Clean up packet router logging TODO

    I checked the last 7 days of these logs. While there are a few ten
    thousand of them, they were all instances of
    `quiche::Error::InvalidPacket`. Those are not unexpected errors, so I
    added an entry for them to QuicInvalidInitialPacketError.
    
    No other unexpected errors were observed at all in the last 7 days. I
    feel confident to remove the trial logging and pass those errors up to
    users of tokio-quiche now.
    TheJokr authored and evanrittenhouse committed Mar 27, 2025
    Configuration menu
    Copy the full SHA
    7789eff View commit details
    Browse the repository at this point in the history

Commits on Mar 28, 2025

  1. tokio-quiche: Add error log for failed packet router

    So far, server-side `InitialPacketRouter`s that stopped with an error
    (from the underlying UDP socket) closed without any notice. The only way
    to observe this is through the `QuicConnectionStream` closing. To help
    with debugging, this change adds an error log similar to the one we
    already have for client-side connections.
    TheJokr authored and ghedo committed Mar 28, 2025
    Configuration menu
    Copy the full SHA
    a63632b View commit details
    Browse the repository at this point in the history

Commits on Mar 31, 2025

  1. datagram-socket: add extra fields to SocketStats

    - `min_rtt_us`
    - `rtt_var_us`
    - `bytes_unsent`
    - `delivery_rate`
    
    `bytes_unsent` has been added for compatibility with TCP sockets but it is currently not provided by quiche.
    jrouviere authored and ghedo committed Mar 31, 2025
    Configuration menu
    Copy the full SHA
    040cdcc View commit details
    Browse the repository at this point in the history
  2. datagram-socket: release 0.2.0

    ghedo committed Mar 31, 2025
    Configuration menu
    Copy the full SHA
    8474a6c View commit details
    Browse the repository at this point in the history

Commits on Apr 1, 2025

  1. tokio-quiche: remove unconstrained() call

    This partially reverts 3513025 as the change was found to cause
    regressions on some internal deployments.
    ghedo committed Apr 1, 2025
    Configuration menu
    Copy the full SHA
    747abc5 View commit details
    Browse the repository at this point in the history
  2. tokio-quiche: Allow user-provided SocketCapabilities in connect

    We used to always apply maximum `SocketCapabilities` to UDP sockets
    passed into `connect_with_config()`. However, some NICs don't support
    hardware GSO and Linux currently doesn't provide a software fallback. To
    better support those setups, we now allow users to specify capabilities
    manually in our connected `Socket` struct. This matches the interface we
    have for server-side `QuicListener`s.
    
    The default changes to not apply any capabilities to avoid surprises.
    Client-side usage doesn't benefit as much from the capabilities anyway.
    TheJokr authored and ghedo committed Apr 1, 2025
    Configuration menu
    Copy the full SHA
    670aa3a View commit details
    Browse the repository at this point in the history
  3. tokio-quiche: fix private documentation

    Our CI jobs run lints on rustdoc. Warnings and errors get inserted inline
    into unrelated PRs, which is annoying.
    
    This change fixes doc warnings as best I could figure out. Run locally
    using:
    
    ```
    cargo doc --document-private-items
    ```
    LPardue authored and ghedo committed Apr 1, 2025
    Configuration menu
    Copy the full SHA
    40c5446 View commit details
    Browse the repository at this point in the history
  4. tokio-quiche: release 0.3.0

    ghedo committed Apr 1, 2025
    Configuration menu
    Copy the full SHA
    145e3f0 View commit details
    Browse the repository at this point in the history
  5. add mechanism to change connection settings from BoringSSL handshake …

    …callbacks
    
    It can be useful to tweak a specific connection's configuration based on
    information like SNI. However this is only available after the client's
    ClientHello is fully processed, which is not entirely apparent from an
    application PoV (e.g. ClientHello can be split across multiple Initial
    packets).
    
    BoringSSL provides a number of callbacks called during the TLS handshake
    and sometimes even before any packet has been sent (e.g.
    `select_cert_cb`) which is useful to tweak congestion control settings
    or transport parameters,  that provide the required information, but the
    underlying quiche connection is not exposed to application code from
    inside these callbacks currently.
    
    This change adds a mechanism to allow applications to change specific
    connection settings from inside these BoringSSL callbacks.
    ghedo committed Apr 1, 2025
    Configuration menu
    Copy the full SHA
    fd5c01a View commit details
    Browse the repository at this point in the history
  6. quiche: release 0.23.5

    ghedo committed Apr 1, 2025
    Configuration menu
    Copy the full SHA
    fde75a2 View commit details
    Browse the repository at this point in the history
Loading