forked from quic-go/quic-go
fix race condition when setting up TLS sessions in the server
This commit is contained in:
@@ -140,10 +140,11 @@ func (s *server) setupTLS() error {
|
|||||||
case tlsSession := <-sessionChan:
|
case tlsSession := <-sessionChan:
|
||||||
connID := tlsSession.connID
|
connID := tlsSession.connID
|
||||||
sess := tlsSession.sess
|
sess := tlsSession.sess
|
||||||
|
s.sessionsMutex.Lock()
|
||||||
if _, ok := s.sessions[connID]; ok { // drop this session if it already exists
|
if _, ok := s.sessions[connID]; ok { // drop this session if it already exists
|
||||||
|
s.sessionsMutex.Unlock()
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
s.sessionsMutex.Lock()
|
|
||||||
s.sessions[connID] = sess
|
s.sessions[connID] = sess
|
||||||
s.sessionsMutex.Unlock()
|
s.sessionsMutex.Unlock()
|
||||||
s.runHandshakeAndSession(sess, connID)
|
s.runHandshakeAndSession(sess, connID)
|
||||||
|
|||||||
Reference in New Issue
Block a user