diff --git a/packet_packer.go b/packet_packer.go index aa49e5952..6ad92cfb6 100644 --- a/packet_packer.go +++ b/packet_packer.go @@ -18,6 +18,7 @@ type packedPacket struct { type packetPacker struct { connectionID protocol.ConnectionID + perspective protocol.Perspective version protocol.VersionNumber cryptoSetup handshake.CryptoSetup @@ -29,11 +30,12 @@ type packetPacker struct { controlFrames []frames.Frame } -func newPacketPacker(connectionID protocol.ConnectionID, cryptoSetup handshake.CryptoSetup, connectionParameters handshake.ConnectionParametersManager, streamFramer *streamFramer, version protocol.VersionNumber) *packetPacker { +func newPacketPacker(connectionID protocol.ConnectionID, cryptoSetup handshake.CryptoSetup, connectionParameters handshake.ConnectionParametersManager, streamFramer *streamFramer, perspective protocol.Perspective, version protocol.VersionNumber) *packetPacker { return &packetPacker{ cryptoSetup: cryptoSetup, connectionID: connectionID, connectionParameters: connectionParameters, + perspective: perspective, version: version, streamFramer: streamFramer, packetNumberGenerator: newPacketNumberGenerator(protocol.SkipPacketAveragePeriodLength), @@ -110,7 +112,7 @@ func (p *packetPacker) packPacket(stopWaitingFrame *frames.StopWaitingFrame, lea raw := getPacketBuffer() buffer := bytes.NewBuffer(raw) - if err = responsePublicHeader.Write(buffer, p.version, protocol.PerspectiveServer); err != nil { + if err = responsePublicHeader.Write(buffer, p.version, p.perspective); err != nil { return nil, err } diff --git a/packet_packer_test.go b/packet_packer_test.go index 4345d52ed..3e1ba1062 100644 --- a/packet_packer_test.go +++ b/packet_packer_test.go @@ -33,6 +33,7 @@ var _ = Describe("Packet packer", func() { connectionParameters: cpm, packetNumberGenerator: newPacketNumberGenerator(protocol.SkipPacketAveragePeriodLength), streamFramer: streamFramer, + perspective: protocol.PerspectiveServer, } publicHeaderLen = 1 + 8 + 2 // 1 flag byte, 8 connection ID, 2 packet number packer.version = protocol.Version34 diff --git a/session.go b/session.go index c7ba8b447..7b6782638 100644 --- a/session.go +++ b/session.go @@ -108,14 +108,13 @@ func newSession(conn connection, v protocol.VersionNumber, connectionID protocol session.setup() cryptoStream, _ := session.GetOrOpenStream(1) - var err error session.cryptoSetup, err = handshake.NewCryptoSetup(connectionID, conn.RemoteAddr().IP, v, sCfg, cryptoStream, session.connectionParameters, session.aeadChanged) if err != nil { return nil, err } - session.packer = newPacketPacker(connectionID, session.cryptoSetup, session.connectionParameters, session.streamFramer, session.version) + session.packer = newPacketPacker(connectionID, session.cryptoSetup, session.connectionParameters, session.streamFramer, session.perspective, session.version) session.unpacker = &packetUnpacker{aead: session.cryptoSetup, version: session.version} return session, err @@ -142,7 +141,7 @@ func newClientSession(conn *net.UDPConn, addr *net.UDPAddr, v protocol.VersionNu return nil, err } - session.packer = newPacketPacker(connectionID, session.cryptoSetup, session.connectionParameters, session.streamFramer, session.version) + session.packer = newPacketPacker(connectionID, session.cryptoSetup, session.connectionParameters, session.streamFramer, session.perspective, session.version) session.unpacker = &packetUnpacker{aead: session.cryptoSetup, version: session.version} return session, err