diff --git a/http3/server.go b/http3/server.go index 6803a0d77..b1f96ed04 100644 --- a/http3/server.go +++ b/http3/server.go @@ -334,7 +334,7 @@ func (s *Server) SetQuicHeaders(hdr http.Header) error { s.supportedVersionsAsString = strings.Join(versions, ",") } - hdr.Add("Alt-Svc", fmt.Sprintf(`quic=":%d"; ma=2592000; v="%s"`, port, s.supportedVersionsAsString)) + hdr.Add("Alt-Svc", fmt.Sprintf(`%s=":%d"; ma=2592000; quic="%s"`, nextProtoH3, port, s.supportedVersionsAsString)) return nil } diff --git a/http3/server_test.go b/http3/server_test.go index aa6b7efa4..eec52ad3a 100644 --- a/http3/server_test.go +++ b/http3/server_test.go @@ -334,12 +334,12 @@ var _ = Describe("Server", func() { versionsAsString = append(versionsAsString, v.ToAltSvc()) } return http.Header{ - "Alt-Svc": {fmt.Sprintf(`quic=":443"; ma=2592000; v="%s"`, strings.Join(versionsAsString, ","))}, + "Alt-Svc": {fmt.Sprintf(`%s=":443"; ma=2592000; quic="%s"`, nextProtoH3, strings.Join(versionsAsString, ","))}, } } BeforeEach(func() { - Expect(getExpectedHeader([]protocol.VersionNumber{99, 90, 9})).To(Equal(http.Header{"Alt-Svc": {`quic=":443"; ma=2592000; v="99,90,9"`}})) + Expect(getExpectedHeader([]protocol.VersionNumber{0x00000001, 0x1abadaba})).To(Equal(http.Header{"Alt-Svc": {nextProtoH3 + `=":443"; ma=2592000; quic="1,1abadaba"`}})) expected = getExpectedHeader(protocol.SupportedVersions) }) diff --git a/internal/protocol/version.go b/internal/protocol/version.go index 3406cfa46..69ccbe485 100644 --- a/internal/protocol/version.go +++ b/internal/protocol/version.go @@ -50,7 +50,7 @@ func (vn VersionNumber) String() string { // ToAltSvc returns the representation of the version for the H2 Alt-Svc parameters func (vn VersionNumber) ToAltSvc() string { - return fmt.Sprintf("%d", vn) + return fmt.Sprintf("%x", uint32(vn)) } func (vn VersionNumber) isGQUIC() bool {