save raw server config sent by the server

This commit is contained in:
Marten Seemann
2016-11-09 17:56:11 +07:00
parent c03f15dfdd
commit a89a7de4c4
2 changed files with 23 additions and 1 deletions

View File

@@ -10,6 +10,7 @@ import (
)
type serverConfigClient struct {
raw []byte
ID []byte
obit []byte
expiry time.Time
@@ -29,7 +30,7 @@ func parseServerConfig(data []byte) (*serverConfigClient, error) {
return nil, errMessageNotServerConfig
}
scfg := &serverConfigClient{}
scfg := &serverConfigClient{raw: data}
err = scfg.parseValues(tagMap)
if err != nil {
return nil, err
@@ -116,3 +117,7 @@ func (s *serverConfigClient) parseValues(tagMap map[Tag][]byte) error {
return nil
}
func (s *serverConfigClient) Get() []byte {
return s.raw
}

View File

@@ -22,6 +22,23 @@ var _ = Describe("Server Config", func() {
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() {
It("rejects a handshake message with the wrong message tag", func() {
var serverConfig bytes.Buffer