forked from quic-go/quic-go
always qlog the original_destination_connection_id for the server's TPs
This commit is contained in:
@@ -324,7 +324,8 @@ func (e eventKeyRetired) MarshalJSONObject(enc *gojay.Encoder) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type eventTransportParameters struct {
|
type eventTransportParameters struct {
|
||||||
Owner owner
|
Owner owner
|
||||||
|
SentBy protocol.Perspective
|
||||||
|
|
||||||
OriginalDestinationConnectionID protocol.ConnectionID
|
OriginalDestinationConnectionID protocol.ConnectionID
|
||||||
StatelessResetToken *[16]byte
|
StatelessResetToken *[16]byte
|
||||||
@@ -351,11 +352,11 @@ func (e eventTransportParameters) IsNil() bool { return false }
|
|||||||
|
|
||||||
func (e eventTransportParameters) MarshalJSONObject(enc *gojay.Encoder) {
|
func (e eventTransportParameters) MarshalJSONObject(enc *gojay.Encoder) {
|
||||||
enc.StringKey("owner", e.Owner.String())
|
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())
|
enc.StringKey("original_destination_connection_id", connectionID(e.OriginalDestinationConnectionID).String())
|
||||||
}
|
if e.StatelessResetToken != nil {
|
||||||
if e.StatelessResetToken != nil {
|
enc.StringKey("stateless_reset_token", fmt.Sprintf("%x", e.StatelessResetToken[:]))
|
||||||
enc.StringKey("stateless_reset_token", fmt.Sprintf("%x", e.StatelessResetToken[:]))
|
}
|
||||||
}
|
}
|
||||||
enc.BoolKey("disable_active_migration", e.DisableActiveMigration)
|
enc.BoolKey("disable_active_migration", e.DisableActiveMigration)
|
||||||
enc.FloatKeyOmitEmpty("max_idle_timeout", milliseconds(e.MaxIdleTimeout))
|
enc.FloatKeyOmitEmpty("max_idle_timeout", milliseconds(e.MaxIdleTimeout))
|
||||||
|
|||||||
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) {
|
func (t *tracer) SentTransportParameters(tp *wire.TransportParameters) {
|
||||||
t.recordTransportParameters(ownerLocal, tp)
|
t.recordTransportParameters(t.perspective, tp)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *tracer) ReceivedTransportParameters(tp *wire.TransportParameters) {
|
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.mutex.Lock()
|
||||||
t.recordEvent(time.Now(), &eventTransportParameters{
|
t.recordEvent(time.Now(), &eventTransportParameters{
|
||||||
Owner: owner,
|
Owner: owner,
|
||||||
|
SentBy: sentBy,
|
||||||
OriginalDestinationConnectionID: tp.OriginalDestinationConnectionID,
|
OriginalDestinationConnectionID: tp.OriginalDestinationConnectionID,
|
||||||
StatelessResetToken: tp.StatelessResetToken,
|
StatelessResetToken: tp.StatelessResetToken,
|
||||||
DisableActiveMigration: tp.DisableActiveMigration,
|
DisableActiveMigration: tp.DisableActiveMigration,
|
||||||
|
|||||||
@@ -206,6 +206,19 @@ var _ = Describe("Tracer", func() {
|
|||||||
Expect(ev).To(HaveKeyWithValue("initial_max_streams_uni", float64(20)))
|
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() {
|
It("records received transport parameters", func() {
|
||||||
tracer.ReceivedTransportParameters(&wire.TransportParameters{})
|
tracer.ReceivedTransportParameters(&wire.TransportParameters{})
|
||||||
entry := exportAndParseSingle()
|
entry := exportAndParseSingle()
|
||||||
@@ -214,6 +227,7 @@ var _ = Describe("Tracer", func() {
|
|||||||
Expect(entry.Name).To(Equal("parameters_set"))
|
Expect(entry.Name).To(Equal("parameters_set"))
|
||||||
ev := entry.Event
|
ev := entry.Event
|
||||||
Expect(ev).To(HaveKeyWithValue("owner", "remote"))
|
Expect(ev).To(HaveKeyWithValue("owner", "remote"))
|
||||||
|
Expect(ev).ToNot(HaveKey("original_destination_connection_id"))
|
||||||
})
|
})
|
||||||
|
|
||||||
It("records a sent packet, without an ACK", func() {
|
It("records a sent packet, without an ACK", func() {
|
||||||
|
|||||||
Reference in New Issue
Block a user