forked from quic-go/quic-go
make it possible to log DATAGRAM frames
This commit is contained in:
@@ -23,6 +23,10 @@ func ConvertFrame(frame wire.Frame) logging.Frame {
|
||||
Length: f.DataLen(),
|
||||
Fin: f.Fin,
|
||||
}
|
||||
case *wire.DatagramFrame:
|
||||
return &logging.DatagramFrame{
|
||||
Length: logging.ByteCount(len(f.Data)),
|
||||
}
|
||||
default:
|
||||
return logging.Frame(frame)
|
||||
}
|
||||
|
||||
@@ -34,6 +34,13 @@ var _ = Describe("CRYPTO frame", func() {
|
||||
Expect(sf.Fin).To(BeTrue())
|
||||
})
|
||||
|
||||
It("converts DATAGRAM frames", func() {
|
||||
f := ConvertFrame(&wire.DatagramFrame{Data: []byte("foobar")})
|
||||
Expect(f).To(BeAssignableToTypeOf(&logging.DatagramFrame{}))
|
||||
df := f.(*logging.DatagramFrame)
|
||||
Expect(df.Length).To(Equal(logging.ByteCount(6)))
|
||||
})
|
||||
|
||||
It("converts other frames", func() {
|
||||
f := ConvertFrame(&wire.MaxDataFrame{MaximumData: 1234})
|
||||
Expect(f).To(BeAssignableToTypeOf(&logging.MaxDataFrame{}))
|
||||
|
||||
@@ -59,3 +59,8 @@ type StreamFrame struct {
|
||||
Length ByteCount
|
||||
Fin bool
|
||||
}
|
||||
|
||||
// A DatagramFrame is a DATAGRAM frame.
|
||||
type DatagramFrame struct {
|
||||
Length ByteCount
|
||||
}
|
||||
|
||||
@@ -57,6 +57,8 @@ func (f frame) MarshalJSONObject(enc *gojay.Encoder) {
|
||||
marshalConnectionCloseFrame(enc, frame)
|
||||
case *logging.HandshakeDoneFrame:
|
||||
marshalHandshakeDoneFrame(enc, frame)
|
||||
case *logging.DatagramFrame:
|
||||
marshalDatagramFrame(enc, frame)
|
||||
default:
|
||||
panic("unknown frame type")
|
||||
}
|
||||
@@ -218,3 +220,8 @@ func marshalConnectionCloseFrame(enc *gojay.Encoder, f *logging.ConnectionCloseF
|
||||
func marshalHandshakeDoneFrame(enc *gojay.Encoder, _ *logging.HandshakeDoneFrame) {
|
||||
enc.StringKey("frame_type", "handshake_done")
|
||||
}
|
||||
|
||||
func marshalDatagramFrame(enc *gojay.Encoder, f *logging.DatagramFrame) {
|
||||
enc.StringKey("frame_type", "datagram")
|
||||
enc.Int64Key("length", int64(f.Length))
|
||||
}
|
||||
|
||||
@@ -364,4 +364,14 @@ var _ = Describe("Frames", func() {
|
||||
},
|
||||
)
|
||||
})
|
||||
|
||||
It("marshals DATAGRAM frames", func() {
|
||||
check(
|
||||
&logging.DatagramFrame{Length: 1337},
|
||||
map[string]interface{}{
|
||||
"frame_type": "datagram",
|
||||
"length": 1337,
|
||||
},
|
||||
)
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user