-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Comparing changes
Open a pull request
base repository: golang/net
base: v0.12.0
head repository: golang/net
compare: v0.13.0
- 18 commits
- 46 files changed
- 4 contributors
Commits on Jul 5, 2023
-
http2: handle trailing colon in authorityAddr
This change modifies the authorityAddr result for authorities with empty port information, such as "example.com:". Previously, such authorities passed through the function unchanged. This conflicts with the result from net/http's canonicalAddr, which returns "example.com:443" (for HTTPS). net/http's canonicalAddr result is passed to http2's upgradeFn (defined inside http2.configureTransports) from net/http's (*Transport).dialConn. The connection is then added to http2's cache under the canonicalAddr key. However, cache lookups are performed in (*Transport).RoundTripOpt using the result from authorityAddr applied directly to the input URL. The lookup thus fails if authorityAddr and canonicalAddr don't agree. http2's lookup error propagates upwards to net/http's (*Transport).roundTrip, where the request is retried. The end result is an infinite loop of the request being repeated, each time with a freshly dialed connection, that can only be stopped by a timeout. Aligning the results of http2's authorityAddr and net/http's canonicalAddr fixes the bug. While an authority with a trailing colon is invalid per URL specifications, I have personally come across misconfigured web servers emitting such URLs as redirects. This is how I discovered this issue in http2. Change-Id: If47aa61b8d256d76a3451090076e6eb5ff596c9e GitHub-Last-Rev: cb04701 GitHub-Pull-Request: #170 Reviewed-on: https://go-review.googlesource.com/c/net/+/487915 Run-TryBot: Damien Neil <dneil@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Damien Neil <dneil@google.com>
Configuration menu - View commit details
-
Copy full SHA for a1613c2 - Browse repository at this point
Copy the full SHA a1613c2View commit details
Commits on Jul 7, 2023
-
dns/dnsmessage: update Parser docs
The current API returns ErrSectionDone, not (nil,nil). Change-Id: I95c721c6c198e7302b9154bc39617b502e3d62f9 GitHub-Last-Rev: c66bcff GitHub-Pull-Request: #181 Reviewed-on: https://go-review.googlesource.com/c/net/+/507955 Run-TryBot: Ian Lance Taylor <iant@google.com> Auto-Submit: Ian Lance Taylor <iant@google.com> Reviewed-by: Ian Lance Taylor <iant@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Damien Neil <dneil@google.com>
Configuration menu - View commit details
-
Copy full SHA for 8126108 - Browse repository at this point
Copy the full SHA 8126108View commit details -
After CL 443215 pack(unpack(msg)) should never fail, so we can add a fuzz test to prove that. Change-Id: Ia2abfc30e2b2a492b4dd5de6ca6f29d2324bd737 GitHub-Last-Rev: 1d9812a GitHub-Pull-Request: #177 Reviewed-on: https://go-review.googlesource.com/c/net/+/500296 Auto-Submit: Ian Lance Taylor <iant@golang.org> Reviewed-by: Joedian Reid <joedian@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Damien Neil <dneil@google.com> Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> Run-TryBot: Mateusz Poliwczak <mpoliwczak34@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for d8f9c01 - Browse repository at this point
Copy the full SHA d8f9c01View commit details
Commits on Jul 11, 2023
-
For golang/go#58547 Change-Id: I79f06d22fc010bf2e339df47abed3df170d18339 Reviewed-on: https://go-review.googlesource.com/c/net/+/506075 Reviewed-by: Ian Lance Taylor <iant@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Damien Neil <dneil@google.com>
Configuration menu - View commit details
-
Copy full SHA for 9475ce1 - Browse repository at this point
Copy the full SHA 9475ce1View commit details -
quic: tracking of received packets and acks to send
RFC 9000, Section 13.2. For golang/go#58547 Change-Id: I0aad4c03fabb9087964dc9030bb8777d5159360c Reviewed-on: https://go-review.googlesource.com/c/net/+/506595 Run-TryBot: Damien Neil <dneil@google.com> Reviewed-by: Jonathan Amsterdam <jba@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
Configuration menu - View commit details
-
Copy full SHA for 304cc91 - Browse repository at this point
Copy the full SHA 304cc91View commit details
Commits on Jul 12, 2023
-
Each side of a QUIC connection chooses the connection IDs used by its peer. In our case, we use 8-byte random IDs. A connection has a list of connection IDs that it may receive packets on, and a list that it may send packets to. Add a minimal data structure for tracking these lists, and handling of the connection IDs tracked across Initial and Handshake packets. This does not yet handle post-handshake connection ID changes made in NEW_CONNECTION_ID and RETIRE_CONNECTION_ID frames. RFC 9000, Section 5.1. For golang/go#58547 Change-Id: I3e059393cacafbcea04a1b4131c0c7dc28acad5e Reviewed-on: https://go-review.googlesource.com/c/net/+/506675 Run-TryBot: Damien Neil <dneil@google.com> Reviewed-by: Jonathan Amsterdam <jba@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
Configuration menu - View commit details
-
Copy full SHA for 57553cb - Browse repository at this point
Copy the full SHA 57553cbView commit details
Commits on Jul 14, 2023
-
quic: basic connection event loop
Add the Conn type, representing a QUIC connection. A Conn's behavior is driven by an event loop goroutine. This goroutine owns most Conn state. External events (datagrams received, user operations such as writing to streams) send events to the loop goroutine on a message channel. The testConn type, used in tests, wraps a Conn and takes control of its event loop. The testConn permits tests to interact with a Conn synchronously, sending it events, observing the result, and controlling the Conn's view of time passing. Add a very minimal implementation of connection idle timeouts (RFC 9000, Section 10.1) to test the implementation of synthetic time. For golang/go#58547 Change-Id: Ic517e5e7bb019f4a677f892a807ca0417d6e19b1 Reviewed-on: https://go-review.googlesource.com/c/net/+/506678 TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Damien Neil <dneil@google.com> Reviewed-by: Jonathan Amsterdam <jba@google.com>
Configuration menu - View commit details
-
Copy full SHA for 4a3f925 - Browse repository at this point
Copy the full SHA 4a3f925View commit details -
quic: print better stacks on SIGQUIT
When handling an uncaught SIGQUIT (C-\), the runtime prints stacks with GOTRACEBACK=all. This is more detail than we need or want when debugging a hung test by killing it with C-\. Add a signal handler in tests to print stacks with GOTRACEBACK=all instead. For golang/go#58547 Change-Id: I8b381cec41a645568aa2eb675ca7f936f35e145a Reviewed-on: https://go-review.googlesource.com/c/net/+/509016 Run-TryBot: Damien Neil <dneil@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Jonathan Amsterdam <jba@google.com>
Configuration menu - View commit details
-
Copy full SHA for 16cc77a - Browse repository at this point
Copy the full SHA 16cc77aView commit details
Commits on Jul 18, 2023
-
quic: send and receive datagrams
Add the ability for Conns to send and receive datagrams. No socket handling yet; this only functions in tests for now. Extend testConn to permit tests to send packets to Conns and observe the packets Conns send. There's a circular dependency here: We can't test Handshake and 1-RTT packets until we have the handshake implemented, but we can't implement the handshake without the ability to send and receive Handshake and 1-RTT packets. This CL adds the ability to send and receive those packets; tests for those paths will follow with the handshake implementation. For golang/go#58547 Change-Id: I4e7f88f5f039baf7e01f68a53639022866786af9 Reviewed-on: https://go-review.googlesource.com/c/net/+/509017 Run-TryBot: Damien Neil <dneil@google.com> Reviewed-by: Jonathan Amsterdam <jba@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
Configuration menu - View commit details
-
Copy full SHA for 0adcadf - Browse repository at this point
Copy the full SHA 0adcadfView commit details -
quic: transport parameter encoding and decoding
Transport parameters are passed in the extension_data field of the quic_transport_parameters TLS extension. RFC 9000, Section 18. RFC 9001, Section 8.2. For golang/go#58547 Change-Id: I294ab6cdef19256f5db02dc269e8b417b1d5e54b Reviewed-on: https://go-review.googlesource.com/c/net/+/510575 Auto-Submit: Damien Neil <dneil@google.com> Reviewed-by: Jonathan Amsterdam <jba@google.com> Run-TryBot: Damien Neil <dneil@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
Configuration menu - View commit details
-
Copy full SHA for 8db2ead - Browse repository at this point
Copy the full SHA 8db2eadView commit details -
Streams (including CRYPTO streams) are an ordered byte sequence. Both outgoing and incoming streams require random access to a portion of that sequence. Outbound packets may be lost, requiring us to resend the data in the lost packet. Inbound packets may arrive out of order. Add a "pipe" type as a building block for both inbound and outbound streams. A pipe is a window into a portion of a stream, permitting random read and write access within that window (unlike bufio.Reader or bufio.Writer). Pipes are implemented as a linked list of blocks. Block sizes are uniform and allocations are pooled, avoiding non-pool allocations in the steady state. Pipe memory consumption is proportional to the current window, and goes to zero when the window has been fully consumed (unlike bytes.Buffer). For golang/go#58547 Change-Id: I0c16707552c9c46f31055daea2396590a924fc60 Reviewed-on: https://go-review.googlesource.com/c/net/+/510615 Run-TryBot: Damien Neil <dneil@google.com> Reviewed-by: Jonathan Amsterdam <jba@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
Configuration menu - View commit details
-
Copy full SHA for d0912d4 - Browse repository at this point
Copy the full SHA d0912d4View commit details
Commits on Jul 21, 2023
-
internal/quic: deflake TestConnTestConn
Sending a message to a connection returns an error when the connection event loop had exited. This is unreliable, since a sent to the conn's message channel can succeed after the event loop exits, writing the message to the channel buffer. Drop the error return from Conn.sendMsg; it isn't useful, since it's always possible for the connection to exit with messages still in the channel buffer. Fixes golang/go#61485 Change-Id: Ic8351f984df827af881cf7b6d93d97031d2e615c Reviewed-on: https://go-review.googlesource.com/c/net/+/511658 TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Jonathan Amsterdam <jba@google.com> Auto-Submit: Damien Neil <dneil@google.com> Run-TryBot: Damien Neil <dneil@google.com>
Configuration menu - View commit details
-
Copy full SHA for dd5bc96 - Browse repository at this point
Copy the full SHA dd5bc96View commit details -
CRYPTO frames carry TLS handshake messages. Add a cryptoStream type which manages the TLS handshake stream, including retransmission of lost data, processing out-of-order received data, etc. For golang/go#58547 Change-Id: I8defa38e22d9c1bb8753f3a44d5ae0853fa56de8 Reviewed-on: https://go-review.googlesource.com/c/net/+/510616 Reviewed-by: Jonathan Amsterdam <jba@google.com> Run-TryBot: Damien Neil <dneil@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
Configuration menu - View commit details
-
Copy full SHA for 5e678bb - Browse repository at this point
Copy the full SHA 5e678bbView commit details
Commits on Jul 27, 2023
-
Exchange TLS handshake data in CRYPTO frames. Receive packet protection keys from the TLS layer. Discard packet protection keys as the handshake progresses. Send and receive HANDSHAKE_DONE frames (used by the server to inform the client of the handshake completing). Add a very minimal implementation of CONNECTION_CLOSE, just enough to let us write tests that trigger immediate close of connections. For golang/go#58547 Change-Id: I77496ca65bd72977565733739d563eaa2bb7d8d3 Reviewed-on: https://go-review.googlesource.com/c/net/+/510915 Reviewed-by: Jonathan Amsterdam <jba@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Damien Neil <dneil@google.com> Auto-Submit: Damien Neil <dneil@google.com>
Configuration menu - View commit details
-
Copy full SHA for dd0aa33 - Browse repository at this point
Copy the full SHA dd0aa33View commit details -
quic: debug logging of packets
Log every packet sent and received to stdout when GODEBUG=quiclogpackets=1. For golang/go#58547 Change-Id: I904336017ea646ad6459557b44702bfe4c732ba9 Reviewed-on: https://go-review.googlesource.com/c/net/+/513439 Reviewed-by: Jonathan Amsterdam <jba@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Damien Neil <dneil@google.com>
Configuration menu - View commit details
-
Copy full SHA for 08001cc - Browse repository at this point
Copy the full SHA 08001ccView commit details
Commits on Jul 28, 2023
-
quic: fill out connection id handling
Add support for sending and receiving NEW_CONNECTION_ID and RETIRE_CONNECTION_ID frames. Keep the peer supplied with up to 4 connection IDs. Retire connection IDs as required by the peer. Support connection IDs provided in the preferred_address transport parameter. RFC 9000, Section 5.1. For golang/go#58547 Change-Id: I015a69b94c40a6396e9f117a92c88acaf83c594e Reviewed-on: https://go-review.googlesource.com/c/net/+/513440 TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Damien Neil <dneil@google.com> Reviewed-by: Jonathan Amsterdam <jba@google.com>
Configuration menu - View commit details
-
Copy full SHA for bd8ac9e - Browse repository at this point
Copy the full SHA bd8ac9eView commit details
Commits on Jul 31, 2023
-
quic: gate and queue synchronization primitives
Add a form of monitor (in the sense of the synchronization primitive) for controlling access to queues and streams. We call this a "gate". A gate acts as a mutex and condition variable with one bit of state. A gate may be locked and unlocked. Lock operations may optionally block on the gate condition being set. Unlock operations always record the new value of the condition. Gates play nicely with contexts. Unlike traditional condition variables, gates do not suffer from spurious wakeups: A goroutine waiting for a gate condition is not woken before the condition is set. Gates are inspired by the queue design from Bryan Mills's talk, Rethinking Classical Concurrency Patterns. Add a queue implemented with a gate. For golang/go#58547 Change-Id: Ibec6d1f29a2c03a7184fca7392ed5639f96b6485 Reviewed-on: https://go-review.googlesource.com/c/net/+/513955 TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Jonathan Amsterdam <jba@google.com> Run-TryBot: Damien Neil <dneil@google.com>
Configuration menu - View commit details
-
Copy full SHA for 63fe334 - Browse repository at this point
Copy the full SHA 63fe334View commit details
Commits on Aug 1, 2023
-
html: only render content literally in the HTML namespace
Per the WHATWG HTML specification, section 13.3, only append the literal content of a text node if we are in the HTML namespace. Thanks to Mohammad Thoriq Aziz for reporting this issue. Fixes golang/go#61615 Fixes CVE-2023-3978 Change-Id: I332152904d4e7646bd2441602bcbe591fc655fa4 Reviewed-on: https://team-review.git.corp.google.com/c/golang/go-private/+/1942896 Reviewed-by: Tatiana Bradley <tatianabradley@google.com> Run-TryBot: Roland Shoemaker <bracewell@google.com> Reviewed-by: Damien Neil <dneil@google.com> TryBot-Result: Security TryBots <security-trybots@go-security-trybots.iam.gserviceaccount.com> Reviewed-on: https://go-review.googlesource.com/c/net/+/514896 Reviewed-by: Roland Shoemaker <roland@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Damien Neil <dneil@google.com>
Configuration menu - View commit details
-
Copy full SHA for 8ffa475 - Browse repository at this point
Copy the full SHA 8ffa475View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v0.12.0...v0.13.0