Przeglądaj źródła

fix cached id generation after system sleep

Darien Raymond 7 lat temu
rodzic
commit
ee5bc8133a
1 zmienionych plików z 5 dodań i 1 usunięć
  1. 5 1
      proxy/vmess/vmess.go

+ 5 - 1
proxy/vmess/vmess.go

@@ -64,7 +64,11 @@ func (v *TimedUserValidator) generateNewHashes(nowSec protocol.Timestamp, user *
 	var hashValue [16]byte
 	genHashForID := func(id *protocol.ID) {
 		idHash := v.hasher(id.Bytes())
-		for ts := user.lastSec; ts <= nowSec; ts++ {
+		lastSec := user.lastSec
+		if lastSec < nowSec-cacheDurationSec*2 {
+			lastSec = nowSec - cacheDurationSec*2
+		}
+		for ts := lastSec; ts <= nowSec; ts++ {
 			common.Must2(idHash.Write(ts.Bytes(nil)))
 			idHash.Sum(hashValue[:0])
 			idHash.Reset()