Merge pull request #1841 from lucas-clemente/vnp-quic-bit

set the QUIC bit in Version Negotiation packets
This commit is contained in:
Marten Seemann
2019-03-31 18:29:26 +02:00
committed by GitHub
2 changed files with 2 additions and 1 deletions

View File

@@ -15,7 +15,7 @@ func ComposeVersionNegotiation(destConnID, srcConnID protocol.ConnectionID, vers
buf := bytes.NewBuffer(make([]byte, 0, expectedLen)) buf := bytes.NewBuffer(make([]byte, 0, expectedLen))
r := make([]byte, 1) r := make([]byte, 1)
_, _ = rand.Read(r) // ignore the error here. It is not critical to have perfect random here. _, _ = rand.Read(r) // ignore the error here. It is not critical to have perfect random here.
buf.WriteByte(r[0] | 0x80) buf.WriteByte(r[0] | 0xc0)
utils.BigEndian.WriteUint32(buf, 0) // version 0 utils.BigEndian.WriteUint32(buf, 0) // version 0
connIDLen, err := encodeConnIDLen(destConnID, srcConnID) connIDLen, err := encodeConnIDLen(destConnID, srcConnID)
if err != nil { if err != nil {

View File

@@ -14,6 +14,7 @@ var _ = Describe("Version Negotiation Packets", func() {
data, err := ComposeVersionNegotiation(destConnID, srcConnID, versions) data, err := ComposeVersionNegotiation(destConnID, srcConnID, versions)
Expect(err).ToNot(HaveOccurred()) Expect(err).ToNot(HaveOccurred())
Expect(data[0] & 0x80).ToNot(BeZero()) Expect(data[0] & 0x80).ToNot(BeZero())
Expect(data[0] & 0x40).ToNot(BeZero())
hdr, _, rest, err := ParsePacket(data, 4) hdr, _, rest, err := ParsePacket(data, 4)
Expect(err).ToNot(HaveOccurred()) Expect(err).ToNot(HaveOccurred())
Expect(hdr.DestConnectionID).To(Equal(destConnID)) Expect(hdr.DestConnectionID).To(Equal(destConnID))