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: hyperium/h2
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.3.15
Choose a base ref
...
head repository: hyperium/h2
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.3.17
Choose a head ref
  • 17 commits
  • 48 files changed
  • 13 contributors

Commits on Oct 29, 2022

  1. Fix docs of enable_push (#646)

    Remove redundant and misleading phrase in
    client::Builder::enable_push documentation.
    
    Resolves #645
    vi authored Oct 29, 2022
    Configuration menu
    Copy the full SHA
    294000c View commit details
    Browse the repository at this point in the history

Commits on Dec 2, 2022

  1. fix issue#648: drop frame if stream is released (#651)

    Co-authored-by: p00512853 <pankangtian@huawei.com>
    silence-coding and p00512853 authored Dec 2, 2022
    Configuration menu
    Copy the full SHA
    af47a08 View commit details
    Browse the repository at this point in the history

Commits on Dec 12, 2022

  1. Configuration menu
    Copy the full SHA
    c1ce37e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    07d20b1 View commit details
    Browse the repository at this point in the history

Commits on Jan 10, 2023

  1. Configuration menu
    Copy the full SHA
    68e4403 View commit details
    Browse the repository at this point in the history

Commits on Jan 20, 2023

  1. Add Protocol extension to Request on Extended CONNECT (#655)

    This exposes the :protocol pseudo header as Request extension.
    
    Fixes #347
    cloneable authored Jan 20, 2023
    Configuration menu
    Copy the full SHA
    b84c244 View commit details
    Browse the repository at this point in the history

Commits on Feb 13, 2023

  1. fix: panic in when there is connection window available, but not stre…

    …am (#657)
    
    We met the panic in our production environment, so handle this panic
        condition before panic. The stack backtrace:
    
    Co-authored-by: winters.zc <winters.zc@antfin.com>
    aftersnow and winters.zc authored Feb 13, 2023
    Configuration menu
    Copy the full SHA
    73bea23 View commit details
    Browse the repository at this point in the history

Commits on Feb 20, 2023

  1. Avoid spurious wakeups when stream capacity is not available (#661)

    Fixes #628
    
    Sometimes `poll_capacity` returns `Ready(Some(0))` - in which case
    caller will have no way to wait for the stream capacity to become available.
    The previous attempt on the fix has addressed only a part of the problem.
    
    The root cause - in a nutshell - is the race condition between the
    application tasks that performs stream I/O and the task that serves
    the underlying HTTP/2 connection. The application thread that is about
    to send data calls `reserve_capacity/poll_capacity`, is provided
    with some send capacity and proceeds to `send_data`.
    
    Meanwhile the service thread may send some buffered data and/or
    receive some window updates - either way the stream's effective
    allocated send capacity may not change, but, since the capacity still
    available, `send_capacity_inc` flag may be set.
    
    The sending task calls `send_data` and uses the entire allocated
    capacity, leaving the flag set. Next time `poll_capacity` returns
    `Ready(Some(0))`.
    
    This change sets the flag and dispatches the wakeup event only in
    cases when the effective capacity reported by `poll_capacity` actually
    increases.
    vadim-eg authored Feb 20, 2023
    Configuration menu
    Copy the full SHA
    7323190 View commit details
    Browse the repository at this point in the history

Commits on Feb 22, 2023

  1. Add a message for EOF-related broken pipe errors (#615)

    It's quite confusing from production logs when all I get is
    "broken pipe" and I don't know which path was taken for that error
    to be logged.
    nox authored Feb 22, 2023
    Configuration menu
    Copy the full SHA
    96caf4f View commit details
    Browse the repository at this point in the history

Commits on Feb 27, 2023

  1. v0.3.16

    seanmonstar committed Feb 27, 2023
    Configuration menu
    Copy the full SHA
    b9dcd39 View commit details
    Browse the repository at this point in the history

Commits on Feb 28, 2023

  1. Configuration menu
    Copy the full SHA
    45b9bcc View commit details
    Browse the repository at this point in the history

Commits on Apr 12, 2023

  1. Configuration menu
    Copy the full SHA
    d3d50ef View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    481c31d View commit details
    Browse the repository at this point in the history

Commits on Apr 13, 2023

  1. Configuration menu
    Copy the full SHA
    8088ca6 View commit details
    Browse the repository at this point in the history
  2. fix: limit the amount of pending-accept reset streams

    Streams that have been received by the peer, but not accepted by the
    user, can also receive a RST_STREAM. This is a legitimate pattern: one
    could send a request and then shortly after, realize it is not needed,
    sending a CANCEL.
    
    However, since those streams are now "closed", they don't count towards
    the max concurrent streams. So, they will sit in the accept queue, using
    memory.
    
    In most cases, the user is calling `accept` in a loop, and they can
    accept requests that have been reset fast enough that this isn't an
    issue in practice.
    
    But if the peer is able to flood the network faster than the server
    accept loop can run (simply accepting, not processing requests; that
    tends to happen in a separate task), the memory could grow.
    
    So, this introduces a maximum count for streams in the pending-accept
    but remotely-reset state. If the maximum is reached, a GOAWAY frame with
    the error code of ENHANCE_YOUR_CALM is sent, and the connection marks
    itself as errored.
    
    ref CVE-2023-26964
    ref GHSA-f8vr-r385-rh5r
    
    Closes hyperium/hyper#2877
    seanmonstar committed Apr 13, 2023
    Configuration menu
    Copy the full SHA
    5bc8e72 View commit details
    Browse the repository at this point in the history
  3. feat: add max_pending_accept_reset_streams(n) options

    The new option is available to both client and server `Builder`s.
    seanmonstar committed Apr 13, 2023
    Configuration menu
    Copy the full SHA
    d3f37e9 View commit details
    Browse the repository at this point in the history
  4. v0.3.17

    seanmonstar committed Apr 13, 2023
    Configuration menu
    Copy the full SHA
    af4bcac View commit details
    Browse the repository at this point in the history
Loading