forked from quic-go/quic-go
remove the handshakeCompleteChan from the TLS crypto setup
In TLS, we know that the handshake completed when RunHandshake() returns.
This commit is contained in:
@@ -63,8 +63,6 @@ type cryptoSetupTLS struct {
|
||||
handshakeErrChan chan struct{}
|
||||
// HandleData() sends errors on the messageErrChan
|
||||
messageErrChan chan error
|
||||
// handshakeComplete is closed when the handshake completes
|
||||
handshakeComplete chan<- struct{}
|
||||
// handshakeDone is closed as soon as the go routine running qtls.Handshake() returns
|
||||
handshakeDone chan struct{}
|
||||
// transport parameters are sent on the receivedTransportParams, as soon as they are received
|
||||
@@ -110,7 +108,6 @@ func NewCryptoSetupTLSClient(
|
||||
connID protocol.ConnectionID,
|
||||
params *TransportParameters,
|
||||
handleParams func(*TransportParameters),
|
||||
handshakeComplete chan<- struct{},
|
||||
tlsConf *tls.Config,
|
||||
initialVersion protocol.VersionNumber,
|
||||
supportedVersions []protocol.VersionNumber,
|
||||
@@ -124,7 +121,6 @@ func NewCryptoSetupTLSClient(
|
||||
connID,
|
||||
params,
|
||||
handleParams,
|
||||
handshakeComplete,
|
||||
tlsConf,
|
||||
versionInfo{
|
||||
currentVersion: currentVersion,
|
||||
@@ -143,7 +139,6 @@ func NewCryptoSetupTLSServer(
|
||||
connID protocol.ConnectionID,
|
||||
params *TransportParameters,
|
||||
handleParams func(*TransportParameters),
|
||||
handshakeComplete chan<- struct{},
|
||||
tlsConf *tls.Config,
|
||||
supportedVersions []protocol.VersionNumber,
|
||||
currentVersion protocol.VersionNumber,
|
||||
@@ -156,7 +151,6 @@ func NewCryptoSetupTLSServer(
|
||||
connID,
|
||||
params,
|
||||
handleParams,
|
||||
handshakeComplete,
|
||||
tlsConf,
|
||||
versionInfo{
|
||||
currentVersion: currentVersion,
|
||||
@@ -174,7 +168,6 @@ func newCryptoSetupTLS(
|
||||
connID protocol.ConnectionID,
|
||||
params *TransportParameters,
|
||||
handleParams func(*TransportParameters),
|
||||
handshakeComplete chan<- struct{},
|
||||
tlsConf *tls.Config,
|
||||
versionInfo versionInfo,
|
||||
logger utils.Logger,
|
||||
@@ -191,7 +184,6 @@ func newCryptoSetupTLS(
|
||||
readEncLevel: protocol.EncryptionInitial,
|
||||
writeEncLevel: protocol.EncryptionInitial,
|
||||
handleParamsCallback: handleParams,
|
||||
handshakeComplete: handshakeComplete,
|
||||
logger: logger,
|
||||
perspective: perspective,
|
||||
handshakeDone: make(chan struct{}),
|
||||
@@ -256,7 +248,6 @@ func (h *cryptoSetupTLS) RunHandshake() error {
|
||||
<-handshakeErrChan
|
||||
return errors.New("Handshake aborted")
|
||||
case <-handshakeComplete: // return when the handshake is done
|
||||
close(h.handshakeComplete)
|
||||
return nil
|
||||
case err := <-handshakeErrChan:
|
||||
// if handleMessageFor{server,client} are waiting for some qtls action, make them return
|
||||
|
||||
@@ -63,7 +63,6 @@ var _ = Describe("Crypto Setup TLS", func() {
|
||||
protocol.ConnectionID{},
|
||||
&TransportParameters{},
|
||||
func(p *TransportParameters) {},
|
||||
make(chan struct{}),
|
||||
testdata.GetTLSConfig(),
|
||||
[]protocol.VersionNumber{protocol.VersionTLS},
|
||||
protocol.VersionTLS,
|
||||
@@ -94,7 +93,6 @@ var _ = Describe("Crypto Setup TLS", func() {
|
||||
protocol.ConnectionID{},
|
||||
&TransportParameters{},
|
||||
func(p *TransportParameters) {},
|
||||
make(chan struct{}),
|
||||
testdata.GetTLSConfig(),
|
||||
[]protocol.VersionNumber{protocol.VersionTLS},
|
||||
protocol.VersionTLS,
|
||||
@@ -124,7 +122,6 @@ var _ = Describe("Crypto Setup TLS", func() {
|
||||
protocol.ConnectionID{},
|
||||
&TransportParameters{},
|
||||
func(p *TransportParameters) {},
|
||||
make(chan struct{}),
|
||||
testdata.GetTLSConfig(),
|
||||
[]protocol.VersionNumber{protocol.VersionTLS},
|
||||
protocol.VersionTLS,
|
||||
@@ -204,7 +201,6 @@ var _ = Describe("Crypto Setup TLS", func() {
|
||||
protocol.ConnectionID{},
|
||||
&TransportParameters{},
|
||||
func(p *TransportParameters) {},
|
||||
make(chan struct{}),
|
||||
clientConf,
|
||||
protocol.VersionTLS,
|
||||
[]protocol.VersionNumber{protocol.VersionTLS},
|
||||
@@ -221,7 +217,6 @@ var _ = Describe("Crypto Setup TLS", func() {
|
||||
protocol.ConnectionID{},
|
||||
&TransportParameters{StatelessResetToken: bytes.Repeat([]byte{42}, 16)},
|
||||
func(p *TransportParameters) {},
|
||||
make(chan struct{}),
|
||||
serverConf,
|
||||
[]protocol.VersionNumber{protocol.VersionTLS},
|
||||
protocol.VersionTLS,
|
||||
@@ -261,7 +256,6 @@ var _ = Describe("Crypto Setup TLS", func() {
|
||||
protocol.ConnectionID{},
|
||||
&TransportParameters{},
|
||||
func(p *TransportParameters) {},
|
||||
make(chan struct{}),
|
||||
&tls.Config{InsecureSkipVerify: true},
|
||||
protocol.VersionTLS,
|
||||
[]protocol.VersionNumber{protocol.VersionTLS},
|
||||
@@ -301,7 +295,6 @@ var _ = Describe("Crypto Setup TLS", func() {
|
||||
protocol.ConnectionID{},
|
||||
cTransportParameters,
|
||||
func(p *TransportParameters) { sTransportParametersRcvd = p },
|
||||
make(chan struct{}),
|
||||
&tls.Config{ServerName: "quic.clemente.io"},
|
||||
protocol.VersionTLS,
|
||||
[]protocol.VersionNumber{protocol.VersionTLS},
|
||||
@@ -322,7 +315,6 @@ var _ = Describe("Crypto Setup TLS", func() {
|
||||
protocol.ConnectionID{},
|
||||
sTransportParameters,
|
||||
func(p *TransportParameters) { cTransportParametersRcvd = p },
|
||||
make(chan struct{}),
|
||||
testdata.GetTLSConfig(),
|
||||
[]protocol.VersionNumber{protocol.VersionTLS},
|
||||
protocol.VersionTLS,
|
||||
|
||||
14
session.go
14
session.go
@@ -123,7 +123,7 @@ type session struct {
|
||||
// It receives when it makes sense to try decrypting undecryptable packets.
|
||||
// Only used for gQUIC.
|
||||
handshakeEvent <-chan struct{}
|
||||
handshakeCompleteChan <-chan struct{} // is closed when the handshake completes
|
||||
handshakeCompleteChan chan struct{} // is closed when the handshake completes
|
||||
handshakeComplete bool
|
||||
|
||||
receivedFirstPacket bool // since packet numbers start at 0, we can't use largestRcvdPacketNumber != 0 for this
|
||||
@@ -327,7 +327,6 @@ func newTLSServerSession(
|
||||
logger utils.Logger,
|
||||
v protocol.VersionNumber,
|
||||
) (quicSession, error) {
|
||||
handshakeCompleteChan := make(chan struct{})
|
||||
s := &session{
|
||||
conn: conn,
|
||||
sessionRunner: runner,
|
||||
@@ -335,7 +334,7 @@ func newTLSServerSession(
|
||||
srcConnID: srcConnID,
|
||||
destConnID: destConnID,
|
||||
perspective: protocol.PerspectiveServer,
|
||||
handshakeCompleteChan: handshakeCompleteChan,
|
||||
handshakeCompleteChan: make(chan struct{}),
|
||||
logger: logger,
|
||||
version: v,
|
||||
}
|
||||
@@ -350,7 +349,6 @@ func newTLSServerSession(
|
||||
origConnID,
|
||||
params,
|
||||
s.processTransportParameters,
|
||||
handshakeCompleteChan,
|
||||
tlsConf,
|
||||
conf.Versions,
|
||||
v,
|
||||
@@ -402,7 +400,6 @@ var newTLSClientSession = func(
|
||||
logger utils.Logger,
|
||||
v protocol.VersionNumber,
|
||||
) (quicSession, error) {
|
||||
handshakeCompleteChan := make(chan struct{})
|
||||
s := &session{
|
||||
conn: conn,
|
||||
sessionRunner: runner,
|
||||
@@ -410,7 +407,7 @@ var newTLSClientSession = func(
|
||||
srcConnID: srcConnID,
|
||||
destConnID: destConnID,
|
||||
perspective: protocol.PerspectiveClient,
|
||||
handshakeCompleteChan: handshakeCompleteChan,
|
||||
handshakeCompleteChan: make(chan struct{}),
|
||||
logger: logger,
|
||||
version: v,
|
||||
}
|
||||
@@ -423,7 +420,6 @@ var newTLSClientSession = func(
|
||||
s.destConnID,
|
||||
params,
|
||||
s.processTransportParameters,
|
||||
handshakeCompleteChan,
|
||||
tlsConf,
|
||||
initialVersion,
|
||||
conf.Versions,
|
||||
@@ -494,6 +490,10 @@ func (s *session) run() error {
|
||||
go func() {
|
||||
if err := s.cryptoStreamHandler.RunHandshake(); err != nil {
|
||||
s.closeLocal(err)
|
||||
return
|
||||
}
|
||||
if s.version.UsesTLS() {
|
||||
close(s.handshakeCompleteChan)
|
||||
}
|
||||
}()
|
||||
if s.version.UsesTLS() && s.perspective == protocol.PerspectiveClient {
|
||||
|
||||
Reference in New Issue
Block a user