forked from quic-go/quic-go
fix qlogging of version mismatches on the connection_closed event
This commit is contained in:
@@ -96,7 +96,6 @@ func (e eventConnectionClosed) Name() string { return "connection_closed"
|
|||||||
func (e eventConnectionClosed) IsNil() bool { return false }
|
func (e eventConnectionClosed) IsNil() bool { return false }
|
||||||
|
|
||||||
func (e eventConnectionClosed) MarshalJSONObject(enc *gojay.Encoder) {
|
func (e eventConnectionClosed) MarshalJSONObject(enc *gojay.Encoder) {
|
||||||
// TODO: add version mismatch
|
|
||||||
if token, ok := e.Reason.StatelessReset(); ok {
|
if token, ok := e.Reason.StatelessReset(); ok {
|
||||||
enc.StringKey("owner", ownerRemote.String())
|
enc.StringKey("owner", ownerRemote.String())
|
||||||
enc.StringKey("trigger", "stateless_reset")
|
enc.StringKey("trigger", "stateless_reset")
|
||||||
@@ -124,6 +123,10 @@ func (e eventConnectionClosed) MarshalJSONObject(enc *gojay.Encoder) {
|
|||||||
enc.StringKey("owner", owner.String())
|
enc.StringKey("owner", owner.String())
|
||||||
enc.StringKey("connection_code", transportError(code).String())
|
enc.StringKey("connection_code", transportError(code).String())
|
||||||
}
|
}
|
||||||
|
if _, ok := e.Reason.VersionNegotiation(); ok {
|
||||||
|
enc.StringKey("owner", ownerRemote.String())
|
||||||
|
enc.StringKey("trigger", "version_negotiation")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type eventPacketSent struct {
|
type eventPacketSent struct {
|
||||||
|
|||||||
@@ -205,6 +205,17 @@ var _ = Describe("Tracing", func() {
|
|||||||
Expect(ev).To(HaveKeyWithValue("stateless_reset_token", "00112233445566778899aabbccddeeff"))
|
Expect(ev).To(HaveKeyWithValue("stateless_reset_token", "00112233445566778899aabbccddeeff"))
|
||||||
})
|
})
|
||||||
|
|
||||||
|
It("records connection closing due to version negotiation failure", func() {
|
||||||
|
tracer.ClosedConnection(logging.NewVersionNegotiationError([]logging.VersionNumber{1, 2, 3}))
|
||||||
|
entry := exportAndParseSingle()
|
||||||
|
Expect(entry.Time).To(BeTemporally("~", time.Now(), scaleDuration(10*time.Millisecond)))
|
||||||
|
Expect(entry.Name).To(Equal("transport:connection_closed"))
|
||||||
|
ev := entry.Event
|
||||||
|
Expect(ev).To(HaveLen(2))
|
||||||
|
Expect(ev).To(HaveKeyWithValue("owner", "remote"))
|
||||||
|
Expect(ev).To(HaveKeyWithValue("trigger", "version_negotiation"))
|
||||||
|
})
|
||||||
|
|
||||||
It("records application errors", func() {
|
It("records application errors", func() {
|
||||||
tracer.ClosedConnection(logging.NewApplicationCloseReason(1337, true))
|
tracer.ClosedConnection(logging.NewApplicationCloseReason(1337, true))
|
||||||
entry := exportAndParseSingle()
|
entry := exportAndParseSingle()
|
||||||
|
|||||||
Reference in New Issue
Block a user