diff --git a/Changelog.md b/Changelog.md index 7221aec4..7159a548 100644 --- a/Changelog.md +++ b/Changelog.md @@ -2,7 +2,7 @@ ## v0.10.0 (unreleased) -- Drop support for QUIC 42. +- Add support for QUIC 44, drop support for QUIC 42. ## v0.9.0 (2018-08-15) diff --git a/integrationtests/chrome/chrome_test.go b/integrationtests/chrome/chrome_test.go index ff7cf640..60eb9e95 100644 --- a/integrationtests/chrome/chrome_test.go +++ b/integrationtests/chrome/chrome_test.go @@ -13,6 +13,11 @@ var _ = Describe("Chrome tests", func() { for i := range protocol.SupportedVersions { version := protocol.SupportedVersions[i] + // TODO: activate Chrome integration tests with gQUIC 44 + if version == protocol.Version44 { + continue + } + Context(fmt.Sprintf("with version %s", version), func() { JustBeforeEach(func() { testserver.StartQuicServer([]protocol.VersionNumber{version}) diff --git a/integrationtests/self/multiplex_test.go b/integrationtests/self/multiplex_test.go index 01944e33..0960f49b 100644 --- a/integrationtests/self/multiplex_test.go +++ b/integrationtests/self/multiplex_test.go @@ -21,6 +21,12 @@ var _ = Describe("Multiplexing", func() { for _, v := range append(protocol.SupportedVersions, protocol.VersionTLS) { version := v + // gQUIC 44 uses 0 byte connection IDs for packets sent to the client + // It's not possible to do demultiplexing. + if v == protocol.Version44 { + continue + } + Context(fmt.Sprintf("with QUIC version %s", version), func() { runServer := func(ln quic.Listener) { go func() { diff --git a/interface.go b/interface.go index afbdffc7..7d773260 100644 --- a/interface.go +++ b/interface.go @@ -21,6 +21,8 @@ const ( VersionGQUIC39 = protocol.Version39 // VersionGQUIC43 is gQUIC version 43. VersionGQUIC43 = protocol.Version43 + // VersionGQUIC43 is gQUIC version 44. + VersionGQUIC44 = protocol.Version44 ) // A Cookie can be used to verify the ownership of the client address. diff --git a/internal/protocol/version.go b/internal/protocol/version.go index 25f851db..299c6fcc 100644 --- a/internal/protocol/version.go +++ b/internal/protocol/version.go @@ -29,6 +29,7 @@ const ( // SupportedVersions lists the versions that the server supports // must be in sorted descending order var SupportedVersions = []VersionNumber{ + Version44, Version43, Version39, } diff --git a/internal/protocol/version_test.go b/internal/protocol/version_test.go index cdfaa26c..36326f1c 100644 --- a/internal/protocol/version_test.go +++ b/internal/protocol/version_test.go @@ -20,7 +20,7 @@ var _ = Describe("Version", func() { It("says if a version is valid", func() { Expect(IsValidVersion(Version39)).To(BeTrue()) Expect(IsValidVersion(Version43)).To(BeTrue()) - Expect(IsValidVersion(Version44)).To(BeFalse()) + Expect(IsValidVersion(Version44)).To(BeTrue()) Expect(IsValidVersion(VersionTLS)).To(BeTrue()) Expect(IsValidVersion(VersionWhatever)).To(BeFalse()) Expect(IsValidVersion(VersionUnknown)).To(BeFalse())