diff --git a/server.go b/server.go index 5084d81f..206a7118 100644 --- a/server.go +++ b/server.go @@ -374,14 +374,14 @@ func (s *server) sendVersionNegotiationPacket(p *receivedPacket) error { s.logger.Debugf("Client offered version %s, sending VersionNegotiationPacket", hdr.Version) var data []byte - if hdr.Version.UsesIETFFrameFormat() { + if hdr.IsPublicHeader { + data = wire.ComposeGQUICVersionNegotiation(hdr.DestConnectionID, s.config.Versions) + } else { var err error data, err = wire.ComposeVersionNegotiation(hdr.SrcConnectionID, hdr.DestConnectionID, s.config.Versions) if err != nil { return err } - } else { - data = wire.ComposeGQUICVersionNegotiation(hdr.DestConnectionID, s.config.Versions) } _, err := s.conn.WriteTo(data, p.remoteAddr) return err diff --git a/server_test.go b/server_test.go index 6b42339d..dd4de1eb 100644 --- a/server_test.go +++ b/server_test.go @@ -330,6 +330,7 @@ var _ = Describe("Server", func() { err := serv.handlePacketImpl(&receivedPacket{ remoteAddr: udpAddr, header: &wire.Header{ + IsPublicHeader: true, VersionFlag: true, DestConnectionID: connID, PacketNumber: 1,