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: golang/net
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.30.0
Choose a base ref
...
head repository: golang/net
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.32.0
Choose a head ref
  • 17 commits
  • 55 files changed
  • 9 contributors

Commits on Oct 10, 2024

  1. http2: support ResponseController.EnableFullDuplex

    The ResponseController.EnableFullDuplex method indicates that an HTTP
    handler intends to interleave reads from a request body with writes
    to the response body.
    
    Add an EnableFullDuplex method to the ResponseWriter so we don't
    return a not-supported error. The HTTP/2 server always supports
    full duplex, so this is a no-op.
    
    For golang/go#57786
    
    Change-Id: I6529e6ce01d59b8b48fb67ba7c244255df57c174
    Reviewed-on: https://go-review.googlesource.com/c/net/+/472717
    Reviewed-by: Cherry Mui <cherryyz@google.com>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    Reviewed-by: Дарья Бочкар <dasha7vanya@gmail.com>
    neild committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    42b1186 View commit details
    Browse the repository at this point in the history

Commits on Oct 11, 2024

  1. internal/socket: execute gofmt

    Change-Id: Ifc793d535c31da3ba183ee44e1808e0072d7f099
    Reviewed-on: https://go-review.googlesource.com/c/net/+/619595
    Reviewed-by: Damien Neil <dneil@google.com>
    Auto-Submit: Damien Neil <dneil@google.com>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Reviewed-by: Ian Lance Taylor <iant@google.com>
    cuishuang authored and gopherbot committed Oct 11, 2024
    Configuration menu
    Copy the full SHA
    5716b98 View commit details
    Browse the repository at this point in the history

Commits on Oct 21, 2024

  1. http2: limit 1xx based on size, do not limit when delivered

    Replace Transport's limit of 5 1xx responses with a limit based
    on the maximum header size: The total size of all 1xx response
    headers must not exceed the limit we use on the size of the
    final response headers.
    
    (This differs slightly from the corresponding HTTP/1 change,
    which imposes a limit on all 1xx response headers *plus* the
    final response headers. The difference isn't substantial,
    and this implementation fits better with the HTTP/2 framer.)
    
    When the user is reading 1xx responses using a Got1xxResponse
    client trace hook, disable the limit: Each 1xx response is
    individually limited by the header size limit, but there
    is no limit on the total number of responses. The user is
    responsible for imposing a limit if they want one.
    
    For golang/go#65035
    
    Change-Id: I9c19dbf068e0f580789d952f63113b3d21ad86fc
    Reviewed-on: https://go-review.googlesource.com/c/net/+/615295
    Reviewed-by: Cherry Mui <cherryyz@google.com>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Auto-Submit: Damien Neil <dneil@google.com>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    neild authored and gopherbot committed Oct 21, 2024
    Configuration menu
    Copy the full SHA
    4783315 View commit details
    Browse the repository at this point in the history

Commits on Oct 29, 2024

  1. html: add Node.{Ancestors,ChildNodes,Descendants}()

    Adds iterators for the parents, immediate children, and all children of a Node respectively.
    
    Fixes golang/go#62113
    
    Change-Id: Iab015872cc3a20fe5e7cae3bc90b89cba68cc3f8
    GitHub-Last-Rev: d99de58
    GitHub-Pull-Request: #215
    Reviewed-on: https://go-review.googlesource.com/c/net/+/594195
    Reviewed-by: Ian Lance Taylor <iant@google.com>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Auto-Submit: Ian Lance Taylor <iant@google.com>
    Reviewed-by: Damien Neil <dneil@google.com>
    earthboundkid authored and gopherbot committed Oct 29, 2024
    Configuration menu
    Copy the full SHA
    511cc3a View commit details
    Browse the repository at this point in the history

Commits on Nov 1, 2024

  1. README: don't recommend go get

    These days people will just import the packages and the go tool will
    do the right thing. We don't need to explain it.
    
    Add a pointer to the git repo, though.
    
    For golang/go#62645
    
    Change-Id: Ia5a16d8d66395e3feee2029ea1c3140b4d3939e7
    Reviewed-on: https://go-review.googlesource.com/c/net/+/624175
    Auto-Submit: Ian Lance Taylor <iant@google.com>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Reviewed-by: Damien Neil <dneil@google.com>
    Reviewed-by: Ian Lance Taylor <iant@google.com>
    ianlancetaylor authored and gopherbot committed Nov 1, 2024
    Configuration menu
    Copy the full SHA
    e883dae View commit details
    Browse the repository at this point in the history
  2. http2: detect hung client connections by confirming stream resets

    Consider the case of an unresponsive client connection, where
    the server has stopped responding. We send an infinite sequence of
    requests to the connection in sequence, each with a timeout.
    Each request counts against the concurrency limit for the
    connection while active, but when a request times out we send
    a RST_STREAM and free up the concurrency slot it was using.
    
    We continue to try to send requests to the connection forever (or
    until the kernel closes the underlying TCP connection, or until
    ReadIdleTimeout/WriteByteTimeout results in us closing the connection).
    
    Defend against this scenario by counting a canceled request
    against the connection concurrency limit until we confirm the
    server is responding. Specifically:
    
    Track the number of in-flight request cancellations in cc.pendingResets.
    This total counts against the connection concurrency limit.
    
    When sending a RST_STREAM for a canceled request, increment
    cc.pendingResets. Send a PING frame to the server, unless a PING
    is already in flight.
    
    When receiving a PING response, set cc.pendingResets to 0.
    
    A hung connection will be used for at most
    SETTINGS_MAX_CONCURRENT_STREAMS requests.
    
    When StrictMaxConcurrentStreams is false, we will create a
    new connection after reaching the concurrency limit for a hung one.
    
    When StrictMaxConcurrentStreams is true, we will continue to
    wait for the existing connection until some timeout closes it
    or it becomes responsive again.
    
    For golang/go#59690
    
    Change-Id: I0151f9a594af14b32bcb6005a239fa19eb103704
    Reviewed-on: https://go-review.googlesource.com/c/net/+/617655
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    Reviewed-by: Jonathan Amsterdam <jba@google.com>
    Reviewed-by: Carlos Amedee <carlos@golang.org>
    neild committed Nov 1, 2024
    Configuration menu
    Copy the full SHA
    f35fec9 View commit details
    Browse the repository at this point in the history

Commits on Nov 5, 2024

  1. http2: support unencrypted HTTP/2 handoff from net/http

    Allow net/http to pass unencrypted net.Conns to Server/Transport.
    We don't have an existing way to pass a conn other than a *tls.Conn
    into this package, so (ab)use TLSNextProto to pass unencrypted
    connections:
    
    The http2 package adds an "unencrypted_http2" entry to the
    TLSNextProto maps. The net/http package calls this function
    with a *tls.Conn wrapping a net.Conn with an UnencryptedNetConn
    method returning the underlying, unencrypted net.Conn.
    
    For golang/go#67816
    
    Change-Id: I31f9c1ba31a17c82c8ed651382bd94193acf09b9
    Reviewed-on: https://go-review.googlesource.com/c/net/+/625175
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Reviewed-by: David Chase <drchase@google.com>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    neild committed Nov 5, 2024
    Configuration menu
    Copy the full SHA
    0aa844c View commit details
    Browse the repository at this point in the history

Commits on Nov 6, 2024

  1. http2: surface errors occurring very early in a client conn's lifetime

    When we create a new connection for a request, the request should
    fail if the connection attempt fails.
    
    There is a race condition which can cause this to not happen:
    
    - net/http sends a request to a http2.Transport
    - the http2.Transport returns ErrNoCachedConn
    - net/http creates a new tls.Conn and passes it to the http2.Transport
    - the http2.Transport adds the conn to its connection pool
    - the connection immediately encounters an error
    - the http2.Transport removes the conn from its connection pool
    - net/http resends the request to the http2.Transport
    - the http2.Transport returns ErrNoCachedConn, and the process repeates
    
    If the request is sent to the http2.Transport before the connection
    encounters an error, then the request fails. But otherwise, we get
    stuck in an infinite loop of the http2.Transport asking for a new
    connection, receiving one, and throwing it away.
    
    To fix this, leave a dead connection in the pool for a short while
    if it has never had a request sent to it. If a dead connection is
    used for a new request, return an error and remove the connection
    from the pool.
    
    Change-Id: I64eb15a8f1512a6bda52db423072b945fab6f4b5
    Reviewed-on: https://go-review.googlesource.com/c/net/+/625398
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Reviewed-by: Jonathan Amsterdam <jba@google.com>
    neild committed Nov 6, 2024
    Configuration menu
    Copy the full SHA
    858db1a View commit details
    Browse the repository at this point in the history
  2. quic: add LocalAddr and RemoteAddr to quic.Conn

    These are missing for quic.Conn.
    
    Fixes golang/go#70138
    
    Change-Id: Ia443ffe0e73e143be5c29233a1ceb7cb16951acd
    GitHub-Last-Rev: a326378
    GitHub-Pull-Request: #225
    Reviewed-on: https://go-review.googlesource.com/c/net/+/623157
    Reviewed-by: Damien Neil <dneil@google.com>
    Reviewed-by: David Chase <drchase@google.com>
    Auto-Submit: Damien Neil <dneil@google.com>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    jfgiorgi authored and gopherbot committed Nov 6, 2024
    Configuration menu
    Copy the full SHA
    d7f220d View commit details
    Browse the repository at this point in the history

Commits on Nov 8, 2024

  1. go.mod: update golang.org/x dependencies

    Update golang.org/x dependencies to their latest tagged versions.
    
    Change-Id: Ic3d15c610f766d40730157ea878be90dd9e9c084
    Reviewed-on: https://go-review.googlesource.com/c/net/+/626378
    Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
    Reviewed-by: David Chase <drchase@google.com>
    Auto-Submit: Gopher Robot <gobot@golang.org>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    gopherbot committed Nov 8, 2024
    Configuration menu
    Copy the full SHA
    334afa0 View commit details
    Browse the repository at this point in the history

Commits on Nov 22, 2024

  1. http2: add SETTINGS_ENABLE_CONNECT_PROTOCOL support

    For golang/go#49918
    
    Change-Id: Ibcd8fb189200c0976cf1bd03a796abae4afa4cfd
    GitHub-Last-Rev: cba5ecd
    GitHub-Pull-Request: #221
    Reviewed-on: https://go-review.googlesource.com/c/net/+/610977
    Reviewed-by: Damien Neil <dneil@google.com>
    Auto-Submit: Damien Neil <dneil@google.com>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Reviewed-by: Roland Shoemaker <roland@golang.org>
    WeidiDeng authored and gopherbot committed Nov 22, 2024
    Configuration menu
    Copy the full SHA
    9a51899 View commit details
    Browse the repository at this point in the history

Commits on Nov 25, 2024

  1. route: fix parse of zero-length sockaddrs in RIBs

    Zero-length sockaddrs were observed in RIBs within golang/go#70528.
    These records are to be skipped, and an invariant for later slice
    manipulation is to be enforced by a defensive check in parseAddr.
    
    Fixes golang/go#70528
    
    Change-Id: I4b8b5bd2339bbadc1d1be1ce14deeb6dd3b8e536
    GitHub-Last-Rev: 066ba8a
    GitHub-Pull-Request: #228
    Reviewed-on: https://go-review.googlesource.com/c/net/+/631475
    Auto-Submit: Ian Lance Taylor <iant@google.com>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Reviewed-by: Ian Lance Taylor <iant@google.com>
    Reviewed-by: Damien Neil <dneil@google.com>
    raggi authored and gopherbot committed Nov 25, 2024
    Configuration menu
    Copy the full SHA
    e9cd716 View commit details
    Browse the repository at this point in the history

Commits on Dec 2, 2024

  1. http2: limit number of PINGs bundled with RST_STREAMs

    gRPC has an unfortunate behavior of stictly rate limiting
    the number of PING frames that it will receive. The default is
    two PING frames every two hours when no requests are in flight;
    two PING frames every five minutes when a request is in flight;
    and the limit resets every time the gRPC endpoint sends a
    HEADERS or DATA frame.
    
    When sending a RST_STREAM frame, the Transport can bundle a PING
    frame with it to confirm the server is responding. When canceling
    several requests in succession, this can result in hitting the
    gRPC ping limit.
    
    Work around this gRPC behavior by sending at most one bundled
    PING per HEADERS or DATA  frame received. We already limit
    ourselves to one PING in flight at a time; now, when we receive
    a PING response, disable sending additional bundled PINGs
    until we read a HEADERS/DATA frame.
    
    This does not affect keep-alive pings.
    
    Fixes golang/go#70575.
    
    Change-Id: I7c4003039bd2dc52106b2806ca31eeeee37b7e09
    Reviewed-on: https://go-review.googlesource.com/c/net/+/632995
    Reviewed-by: Jonathan Amsterdam <jba@google.com>
    Auto-Submit: Damien Neil <dneil@google.com>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    neild authored and gopherbot committed Dec 2, 2024
    Configuration menu
    Copy the full SHA
    bc37675 View commit details
    Browse the repository at this point in the history
  2. route: change from syscall to x/sys/unix

    This lets us drop some of the defs files and cgo usage.
    
    Change-Id: I5a00e77610da36c752d28ea07e40b8a9c7c59ae4
    Reviewed-on: https://go-review.googlesource.com/c/net/+/632816
    Auto-Submit: Ian Lance Taylor <iant@google.com>
    TryBot-Result: Gopher Robot <gobot@golang.org>
    Reviewed-by: Ian Lance Taylor <iant@google.com>
    Run-TryBot: Ian Lance Taylor <iant@golang.org>
    Reviewed-by: Damien Neil <dneil@google.com>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    ianlancetaylor authored and gopherbot committed Dec 2, 2024
    Configuration menu
    Copy the full SHA
    4be1253 View commit details
    Browse the repository at this point in the history

Commits on Dec 3, 2024

  1. http2: fix benchmarks using common frame read/write functions

    CL 586249 unified frame read/write functions used by client
    and server tests, but inadvertently broke some benchmarks.
    Fix those benchmarks.
    
    This mostly restores the previous behavior of the affected
    benchmarks (for example, testing only to see that a DATA frame
    contains an END_STREAM marker, ignoring the number of bytes
    in the frame).
    
    Fixes golang/go#70647
    
    Change-Id: I2b0099c3513ac8754d11c4e37b7d63277a0fb0b1
    Reviewed-on: https://go-review.googlesource.com/c/net/+/633055
    Auto-Submit: Damien Neil <dneil@google.com>
    Reviewed-by: Jonathan Amsterdam <jba@google.com>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Reviewed-by: Antonio Ojea <aojea@google.com>
    neild authored and gopherbot committed Dec 3, 2024
    Configuration menu
    Copy the full SHA
    6e41410 View commit details
    Browse the repository at this point in the history
  2. route: remove unused sizeof* consts on freebsd

    The sizeofSockaddr* consts were replaced by the respective x/sys/unix
    consts by CL 632816.
    
    The sizeofIfDataFreeBSD* consts were never used since they were added.
    
    Cq-Include-Trybots: luci.golang.try:x_net-gotip-freebsd-amd64
    Change-Id: Ieb0e01353199e08659d45cdc3293e817b679fed5
    Reviewed-on: https://go-review.googlesource.com/c/net/+/633155
    Reviewed-by: Ian Lance Taylor <iant@google.com>
    Auto-Submit: Tobias Klauser <tobias.klauser@gmail.com>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Auto-Submit: Damien Neil <dneil@google.com>
    Reviewed-by: Damien Neil <dneil@google.com>
    tklauser authored and gopherbot committed Dec 3, 2024
    Configuration menu
    Copy the full SHA
    d0a1049 View commit details
    Browse the repository at this point in the history

Commits on Dec 4, 2024

  1. go.mod: update golang.org/x dependencies

    Update golang.org/x dependencies to their latest tagged versions.
    
    Change-Id: I5db578f0e340dbf37012f580b307155806d55993
    Reviewed-on: https://go-review.googlesource.com/c/net/+/633584
    Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
    Auto-Submit: Gopher Robot <gobot@golang.org>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Reviewed-by: David Chase <drchase@google.com>
    gopherbot committed Dec 4, 2024
    Configuration menu
    Copy the full SHA
    285e1cf View commit details
    Browse the repository at this point in the history
Loading