forked from quic-go/quic-go
pass perspective to packetPacker
This commit is contained in:
@@ -18,6 +18,7 @@ type packedPacket struct {
|
|||||||
|
|
||||||
type packetPacker struct {
|
type packetPacker struct {
|
||||||
connectionID protocol.ConnectionID
|
connectionID protocol.ConnectionID
|
||||||
|
perspective protocol.Perspective
|
||||||
version protocol.VersionNumber
|
version protocol.VersionNumber
|
||||||
cryptoSetup handshake.CryptoSetup
|
cryptoSetup handshake.CryptoSetup
|
||||||
|
|
||||||
@@ -29,11 +30,12 @@ type packetPacker struct {
|
|||||||
controlFrames []frames.Frame
|
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{
|
return &packetPacker{
|
||||||
cryptoSetup: cryptoSetup,
|
cryptoSetup: cryptoSetup,
|
||||||
connectionID: connectionID,
|
connectionID: connectionID,
|
||||||
connectionParameters: connectionParameters,
|
connectionParameters: connectionParameters,
|
||||||
|
perspective: perspective,
|
||||||
version: version,
|
version: version,
|
||||||
streamFramer: streamFramer,
|
streamFramer: streamFramer,
|
||||||
packetNumberGenerator: newPacketNumberGenerator(protocol.SkipPacketAveragePeriodLength),
|
packetNumberGenerator: newPacketNumberGenerator(protocol.SkipPacketAveragePeriodLength),
|
||||||
@@ -110,7 +112,7 @@ func (p *packetPacker) packPacket(stopWaitingFrame *frames.StopWaitingFrame, lea
|
|||||||
raw := getPacketBuffer()
|
raw := getPacketBuffer()
|
||||||
buffer := bytes.NewBuffer(raw)
|
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
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ var _ = Describe("Packet packer", func() {
|
|||||||
connectionParameters: cpm,
|
connectionParameters: cpm,
|
||||||
packetNumberGenerator: newPacketNumberGenerator(protocol.SkipPacketAveragePeriodLength),
|
packetNumberGenerator: newPacketNumberGenerator(protocol.SkipPacketAveragePeriodLength),
|
||||||
streamFramer: streamFramer,
|
streamFramer: streamFramer,
|
||||||
|
perspective: protocol.PerspectiveServer,
|
||||||
}
|
}
|
||||||
publicHeaderLen = 1 + 8 + 2 // 1 flag byte, 8 connection ID, 2 packet number
|
publicHeaderLen = 1 + 8 + 2 // 1 flag byte, 8 connection ID, 2 packet number
|
||||||
packer.version = protocol.Version34
|
packer.version = protocol.Version34
|
||||||
|
|||||||
@@ -108,14 +108,13 @@ func newSession(conn connection, v protocol.VersionNumber, connectionID protocol
|
|||||||
|
|
||||||
session.setup()
|
session.setup()
|
||||||
cryptoStream, _ := session.GetOrOpenStream(1)
|
cryptoStream, _ := session.GetOrOpenStream(1)
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
session.cryptoSetup, err = handshake.NewCryptoSetup(connectionID, conn.RemoteAddr().IP, v, sCfg, cryptoStream, session.connectionParameters, session.aeadChanged)
|
session.cryptoSetup, err = handshake.NewCryptoSetup(connectionID, conn.RemoteAddr().IP, v, sCfg, cryptoStream, session.connectionParameters, session.aeadChanged)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
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}
|
session.unpacker = &packetUnpacker{aead: session.cryptoSetup, version: session.version}
|
||||||
|
|
||||||
return session, err
|
return session, err
|
||||||
@@ -142,7 +141,7 @@ func newClientSession(conn *net.UDPConn, addr *net.UDPAddr, v protocol.VersionNu
|
|||||||
return nil, err
|
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}
|
session.unpacker = &packetUnpacker{aead: session.cryptoSetup, version: session.version}
|
||||||
|
|
||||||
return session, err
|
return session, err
|
||||||
|
|||||||
Reference in New Issue
Block a user