mirror of https://github.com/v2ray/v2ray-core
Don't generate duplicated hash
parent
7f6878fbc3
commit
ab151cc053
|
@ -42,8 +42,7 @@ func NewTimedUserSet() UserSet {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (us *TimedUserSet) removeEntries(entries <-chan interface{}) {
|
func (us *TimedUserSet) removeEntries(entries <-chan interface{}) {
|
||||||
for {
|
for entry := range entries {
|
||||||
entry := <-entries
|
|
||||||
us.access.Lock()
|
us.access.Lock()
|
||||||
delete(us.userHash, entry.(string))
|
delete(us.userHash, entry.(string))
|
||||||
us.access.Unlock()
|
us.access.Unlock()
|
||||||
|
@ -52,7 +51,7 @@ func (us *TimedUserSet) removeEntries(entries <-chan interface{}) {
|
||||||
|
|
||||||
func (us *TimedUserSet) generateNewHashes(lastSec, nowSec int64, idx int, id ID) {
|
func (us *TimedUserSet) generateNewHashes(lastSec, nowSec int64, idx int, id ID) {
|
||||||
idHash := NewTimeHash(HMACHash{})
|
idHash := NewTimeHash(HMACHash{})
|
||||||
for lastSec < nowSec+cacheDurationSec {
|
for lastSec < nowSec {
|
||||||
idHash := idHash.Hash(id.Bytes[:], lastSec)
|
idHash := idHash.Hash(id.Bytes[:], lastSec)
|
||||||
us.access.Lock()
|
us.access.Lock()
|
||||||
us.userHash[string(idHash)] = indexTimePair{idx, lastSec}
|
us.userHash[string(idHash)] = indexTimePair{idx, lastSec}
|
||||||
|
@ -66,9 +65,8 @@ func (us *TimedUserSet) updateUserHash(tick <-chan time.Time) {
|
||||||
now := time.Now().UTC()
|
now := time.Now().UTC()
|
||||||
lastSec := now.Unix()
|
lastSec := now.Unix()
|
||||||
|
|
||||||
for {
|
for now := range tick {
|
||||||
now := <-tick
|
nowSec := now.UTC().Unix() + cacheDurationSec
|
||||||
nowSec := now.UTC().Unix()
|
|
||||||
for idx, id := range us.validUserIds {
|
for idx, id := range us.validUserIds {
|
||||||
us.generateNewHashes(lastSec, nowSec, idx, id)
|
us.generateNewHashes(lastSec, nowSec, idx, id)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue