diff --git a/README.md b/README.md index 4e7c6e461..d1d245dc6 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ [![Windows Build Status](https://img.shields.io/appveyor/ci/lucas-clemente/quic-go/master.svg?style=flat-square&label=windows+build)](https://ci.appveyor.com/project/lucas-clemente/quic-go/branch/master) [![Code Coverage](https://img.shields.io/codecov/c/github/lucas-clemente/quic-go/master.svg?style=flat-square)](https://codecov.io/gh/lucas-clemente/quic-go/) -quic-go is an implementation of the [QUIC](https://en.wikipedia.org/wiki/QUIC) protocol in Go. It implements the [IETF QUIC draft-29](https://tools.ietf.org/html/draft-ietf-quic-transport-29). +quic-go is an implementation of the [QUIC](https://en.wikipedia.org/wiki/QUIC) protocol in Go. It implements the [IETF QUIC draft-29](https://tools.ietf.org/html/draft-ietf-quic-transport-29) and [draft-32](https://tools.ietf.org/html/draft-ietf-quic-transport-32). ## Version compatibility diff --git a/internal/protocol/version.go b/internal/protocol/version.go index 20c4d7d06..8e233dec0 100644 --- a/internal/protocol/version.go +++ b/internal/protocol/version.go @@ -21,6 +21,8 @@ const ( VersionTLS VersionNumber = 0x51474fff VersionWhatever VersionNumber = 1 // for when the version doesn't matter VersionUnknown VersionNumber = math.MaxUint32 + VersionDraft29 VersionNumber = 0xff00001d + VersionDraft32 VersionNumber = 0xff000020 ) // SupportedVersions lists the versions that the server supports @@ -38,6 +40,10 @@ func (vn VersionNumber) String() string { return "whatever" case VersionUnknown: return "unknown" + case VersionDraft29: + return "draft-29" + case VersionDraft32: + return "draft-32" case VersionTLS: return "TLS dev version (WIP)" default: diff --git a/internal/protocol/version_test.go b/internal/protocol/version_test.go index c1a989fec..04fadd808 100644 --- a/internal/protocol/version_test.go +++ b/internal/protocol/version_test.go @@ -14,6 +14,8 @@ var _ = Describe("Version", func() { Expect(IsValidVersion(VersionTLS)).To(BeTrue()) Expect(IsValidVersion(VersionWhatever)).To(BeFalse()) Expect(IsValidVersion(VersionUnknown)).To(BeFalse()) + Expect(IsValidVersion(VersionDraft29)).To(BeFalse()) + Expect(IsValidVersion(VersionDraft32)).To(BeFalse()) Expect(IsValidVersion(1234)).To(BeFalse()) }) @@ -25,6 +27,8 @@ var _ = Describe("Version", func() { Expect(VersionTLS.String()).To(ContainSubstring("TLS")) Expect(VersionWhatever.String()).To(Equal("whatever")) Expect(VersionUnknown.String()).To(Equal("unknown")) + Expect(VersionDraft29.String()).To(Equal("draft-29")) + Expect(VersionDraft32.String()).To(Equal("draft-32")) // check with unsupported version numbers from the wiki Expect(VersionNumber(0x51303039).String()).To(Equal("gQUIC 9")) Expect(VersionNumber(0x51303133).String()).To(Equal("gQUIC 13"))