forked from quic-go/quic-go
always qlog the original_destination_connection_id for the server's TPs
This commit is contained in:
@@ -325,6 +325,7 @@ func (e eventKeyRetired) MarshalJSONObject(enc *gojay.Encoder) {
|
||||
|
||||
type eventTransportParameters struct {
|
||||
Owner owner
|
||||
SentBy protocol.Perspective
|
||||
|
||||
OriginalDestinationConnectionID protocol.ConnectionID
|
||||
StatelessResetToken *[16]byte
|
||||
@@ -351,12 +352,12 @@ func (e eventTransportParameters) IsNil() bool { return false }
|
||||
|
||||
func (e eventTransportParameters) MarshalJSONObject(enc *gojay.Encoder) {
|
||||
enc.StringKey("owner", e.Owner.String())
|
||||
if e.OriginalDestinationConnectionID != nil {
|
||||
if e.SentBy == protocol.PerspectiveServer {
|
||||
enc.StringKey("original_destination_connection_id", connectionID(e.OriginalDestinationConnectionID).String())
|
||||
}
|
||||
if e.StatelessResetToken != nil {
|
||||
enc.StringKey("stateless_reset_token", fmt.Sprintf("%x", e.StatelessResetToken[:]))
|
||||
}
|
||||
}
|
||||
enc.BoolKey("disable_active_migration", e.DisableActiveMigration)
|
||||
enc.FloatKeyOmitEmpty("max_idle_timeout", milliseconds(e.MaxIdleTimeout))
|
||||
enc.Uint64KeyNullEmpty("max_udp_payload_size", uint64(e.MaxUDPPayloadSize))
|
||||
|
||||
11
qlog/qlog.go
11
qlog/qlog.go
@@ -162,17 +162,22 @@ func (t *tracer) ClosedConnection(r CloseReason) {
|
||||
}
|
||||
|
||||
func (t *tracer) SentTransportParameters(tp *wire.TransportParameters) {
|
||||
t.recordTransportParameters(ownerLocal, tp)
|
||||
t.recordTransportParameters(t.perspective, tp)
|
||||
}
|
||||
|
||||
func (t *tracer) ReceivedTransportParameters(tp *wire.TransportParameters) {
|
||||
t.recordTransportParameters(ownerRemote, tp)
|
||||
t.recordTransportParameters(t.perspective.Opposite(), tp)
|
||||
}
|
||||
|
||||
func (t *tracer) recordTransportParameters(owner owner, tp *wire.TransportParameters) {
|
||||
func (t *tracer) recordTransportParameters(sentBy protocol.Perspective, tp *wire.TransportParameters) {
|
||||
owner := ownerLocal
|
||||
if sentBy != t.perspective {
|
||||
owner = ownerRemote
|
||||
}
|
||||
t.mutex.Lock()
|
||||
t.recordEvent(time.Now(), &eventTransportParameters{
|
||||
Owner: owner,
|
||||
SentBy: sentBy,
|
||||
OriginalDestinationConnectionID: tp.OriginalDestinationConnectionID,
|
||||
StatelessResetToken: tp.StatelessResetToken,
|
||||
DisableActiveMigration: tp.DisableActiveMigration,
|
||||
|
||||
@@ -206,6 +206,19 @@ var _ = Describe("Tracer", func() {
|
||||
Expect(ev).To(HaveKeyWithValue("initial_max_streams_uni", float64(20)))
|
||||
})
|
||||
|
||||
It("records the server's transport parameters, without a stateless reset token", func() {
|
||||
tracer.SentTransportParameters(&wire.TransportParameters{
|
||||
OriginalDestinationConnectionID: protocol.ConnectionID{0xde, 0xad, 0xc0, 0xde},
|
||||
ActiveConnectionIDLimit: 7,
|
||||
})
|
||||
entry := exportAndParseSingle()
|
||||
Expect(entry.Time).To(BeTemporally("~", time.Now(), scaleDuration(10*time.Millisecond)))
|
||||
Expect(entry.Category).To(Equal("transport"))
|
||||
Expect(entry.Name).To(Equal("parameters_set"))
|
||||
ev := entry.Event
|
||||
Expect(ev).ToNot(HaveKey("stateless_reset_token"))
|
||||
})
|
||||
|
||||
It("records received transport parameters", func() {
|
||||
tracer.ReceivedTransportParameters(&wire.TransportParameters{})
|
||||
entry := exportAndParseSingle()
|
||||
@@ -214,6 +227,7 @@ var _ = Describe("Tracer", func() {
|
||||
Expect(entry.Name).To(Equal("parameters_set"))
|
||||
ev := entry.Event
|
||||
Expect(ev).To(HaveKeyWithValue("owner", "remote"))
|
||||
Expect(ev).ToNot(HaveKey("original_destination_connection_id"))
|
||||
})
|
||||
|
||||
It("records a sent packet, without an ACK", func() {
|
||||
|
||||
Reference in New Issue
Block a user