forked from quic-go/quic-go
save raw server config sent by the server
This commit is contained in:
@@ -10,6 +10,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type serverConfigClient struct {
|
type serverConfigClient struct {
|
||||||
|
raw []byte
|
||||||
ID []byte
|
ID []byte
|
||||||
obit []byte
|
obit []byte
|
||||||
expiry time.Time
|
expiry time.Time
|
||||||
@@ -29,7 +30,7 @@ func parseServerConfig(data []byte) (*serverConfigClient, error) {
|
|||||||
return nil, errMessageNotServerConfig
|
return nil, errMessageNotServerConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
scfg := &serverConfigClient{}
|
scfg := &serverConfigClient{raw: data}
|
||||||
err = scfg.parseValues(tagMap)
|
err = scfg.parseValues(tagMap)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -116,3 +117,7 @@ func (s *serverConfigClient) parseValues(tagMap map[Tag][]byte) error {
|
|||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *serverConfigClient) Get() []byte {
|
||||||
|
return s.raw
|
||||||
|
}
|
||||||
|
|||||||
@@ -22,6 +22,23 @@ var _ = Describe("Server Config", func() {
|
|||||||
tagMap[TagEXPY] = bytes.Repeat([]byte{0}, 8)
|
tagMap[TagEXPY] = bytes.Repeat([]byte{0}, 8)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
It("returns the parsed server config", func() {
|
||||||
|
tagMap[TagSCID] = []byte{0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf}
|
||||||
|
b := &bytes.Buffer{}
|
||||||
|
WriteHandshakeMessage(b, TagSCFG, tagMap)
|
||||||
|
scfg, err := parseServerConfig(b.Bytes())
|
||||||
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
Expect(scfg.ID).To(Equal(tagMap[TagSCID]))
|
||||||
|
})
|
||||||
|
|
||||||
|
It("saves the raw server config", func() {
|
||||||
|
b := &bytes.Buffer{}
|
||||||
|
WriteHandshakeMessage(b, TagSCFG, tagMap)
|
||||||
|
scfg, err := parseServerConfig(b.Bytes())
|
||||||
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
Expect(scfg.raw).To(Equal(b.Bytes()))
|
||||||
|
})
|
||||||
|
|
||||||
Context("parsing the server config", func() {
|
Context("parsing the server config", func() {
|
||||||
It("rejects a handshake message with the wrong message tag", func() {
|
It("rejects a handshake message with the wrong message tag", func() {
|
||||||
var serverConfig bytes.Buffer
|
var serverConfig bytes.Buffer
|
||||||
|
|||||||
Reference in New Issue
Block a user