forked from quic-go/quic-go
@@ -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 += ","
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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())
|
||||
|
||||
Reference in New Issue
Block a user