fix race condition when setting up TLS sessions in the server

This commit is contained in:
Marten Seemann
2018-03-07 10:52:30 +07:00
parent 77a419898c
commit d3297f0734

View File

@@ -140,10 +140,11 @@ func (s *server) setupTLS() error {
case tlsSession := <-sessionChan:
connID := tlsSession.connID
sess := tlsSession.sess
s.sessionsMutex.Lock()
if _, ok := s.sessions[connID]; ok { // drop this session if it already exists
s.sessionsMutex.Unlock()
continue
}
s.sessionsMutex.Lock()
s.sessions[connID] = sess
s.sessionsMutex.Unlock()
s.runHandshakeAndSession(sess, connID)