Przeglądaj źródła

Fix Noise session caching

Rod Hynes 4 tygodni temu
rodzic
commit
777e7a2692
1 zmienionych plików z 7 dodań i 2 usunięć
  1. 7 2
      psiphon/common/inproxy/session.go

+ 7 - 2
psiphon/common/inproxy/session.go

@@ -1237,7 +1237,7 @@ func (s *ResponderSessions) touchSession(sessionID ID, session *session) {
 	s.mutex.Lock()
 	defer s.mutex.Unlock()
 
-	if !session.hasUnexpectedInitiatorPublicKey() {
+	if session.hasUnexpectedInitiatorPublicKey() {
 
 		// In this case, SetKnownInitiatorPublicKeys was called concurrent to
 		// HandlePacket, after HandlePacket's getSession, and now the known
@@ -1306,9 +1306,14 @@ func (s *ResponderSessions) getSession(sessionID ID) (*session, error) {
 		return nil, errors.Trace(err)
 	}
 
+	TTL := lrucache.DefaultExpiration
+	if !s.applyTTL {
+		TTL = lrucache.NoExpiration
+	}
+
 	s.mutex.Lock()
 	err = s.sessions.Add(
-		strSessionID, session, lrucache.DefaultExpiration)
+		strSessionID, session, TTL)
 	s.mutex.Unlock()
 
 	if err != nil {