add a SetQuicHeaders function to h2quic.Server

fixes #156
This commit is contained in:
Lucas Clemente
2016-05-31 15:38:21 +02:00
parent ae778fc042
commit a7afffe700
4 changed files with 86 additions and 0 deletions

View File

@@ -3,6 +3,7 @@ package protocol
import (
"bytes"
"encoding/binary"
"strconv"
)
// VersionNumber is a version number as int
@@ -16,6 +17,9 @@ var SupportedVersions = []VersionNumber{
// SupportedVersionsAsTags is needed for the SHLO crypto message
var SupportedVersionsAsTags []byte
// SupportedVersionsAsString is needed for the Alt-Scv HTTP header
var SupportedVersionsAsString string
// VersionNumberToTag maps version numbers ('32') to tags ('Q032')
func VersionNumberToTag(vn VersionNumber) uint32 {
v := uint32(vn)
@@ -45,4 +49,11 @@ func init() {
b.Write(s)
}
SupportedVersionsAsTags = b.Bytes()
for i := len(SupportedVersions) - 1; i >= 0; i-- {
SupportedVersionsAsString += strconv.Itoa(int(SupportedVersions[i]))
if i != 0 {
SupportedVersionsAsString += ","
}
}
}

View File

@@ -22,6 +22,10 @@ var _ = Describe("Version", func() {
Expect(protocol.SupportedVersionsAsTags).To(Equal([]byte("Q030Q031Q032Q033")))
})
It("has proper version list", func() {
Expect(protocol.SupportedVersionsAsString).To(Equal("33,32,31,30"))
})
It("recognizes supported versions", func() {
Expect(protocol.IsSupportedVersion(0)).To(BeFalse())
Expect(protocol.IsSupportedVersion(protocol.SupportedVersions[0])).To(BeTrue())