mirror of
https://github.com/v2fly/v2ray-core.git
synced 2024-12-22 01:57:12 -05:00
remove struct scoped context
This commit is contained in:
parent
9caa59c827
commit
9ff0dc7327
@ -30,7 +30,6 @@ type idEntry struct {
|
|||||||
|
|
||||||
type TimedUserValidator struct {
|
type TimedUserValidator struct {
|
||||||
sync.RWMutex
|
sync.RWMutex
|
||||||
ctx context.Context
|
|
||||||
validUsers []*protocol.User
|
validUsers []*protocol.User
|
||||||
userHash map[[16]byte]indexTimePair
|
userHash map[[16]byte]indexTimePair
|
||||||
ids []*idEntry
|
ids []*idEntry
|
||||||
@ -45,14 +44,13 @@ type indexTimePair struct {
|
|||||||
|
|
||||||
func NewTimedUserValidator(ctx context.Context, hasher protocol.IDHash) protocol.UserValidator {
|
func NewTimedUserValidator(ctx context.Context, hasher protocol.IDHash) protocol.UserValidator {
|
||||||
tus := &TimedUserValidator{
|
tus := &TimedUserValidator{
|
||||||
ctx: ctx,
|
|
||||||
validUsers: make([]*protocol.User, 0, 16),
|
validUsers: make([]*protocol.User, 0, 16),
|
||||||
userHash: make(map[[16]byte]indexTimePair, 512),
|
userHash: make(map[[16]byte]indexTimePair, 512),
|
||||||
ids: make([]*idEntry, 0, 512),
|
ids: make([]*idEntry, 0, 512),
|
||||||
hasher: hasher,
|
hasher: hasher,
|
||||||
baseTime: protocol.Timestamp(time.Now().Unix() - cacheDurationSec*3),
|
baseTime: protocol.Timestamp(time.Now().Unix() - cacheDurationSec*3),
|
||||||
}
|
}
|
||||||
go tus.updateUserHash(updateIntervalSec * time.Second)
|
go tus.updateUserHash(ctx, updateIntervalSec*time.Second)
|
||||||
return tus
|
return tus
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -80,7 +78,7 @@ func (v *TimedUserValidator) generateNewHashes(nowSec protocol.Timestamp, idx in
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v *TimedUserValidator) updateUserHash(interval time.Duration) {
|
func (v *TimedUserValidator) updateUserHash(ctx context.Context, interval time.Duration) {
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
case now := <-time.After(interval):
|
case now := <-time.After(interval):
|
||||||
@ -90,7 +88,7 @@ func (v *TimedUserValidator) updateUserHash(interval time.Duration) {
|
|||||||
v.generateNewHashes(nowSec, entry.userIdx, entry)
|
v.generateNewHashes(nowSec, entry.userIdx, entry)
|
||||||
}
|
}
|
||||||
v.Unlock()
|
v.Unlock()
|
||||||
case <-v.ctx.Done():
|
case <-ctx.Done():
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,6 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type TCPListener struct {
|
type TCPListener struct {
|
||||||
ctx context.Context
|
|
||||||
listener *net.TCPListener
|
listener *net.TCPListener
|
||||||
tlsConfig *gotls.Config
|
tlsConfig *gotls.Config
|
||||||
authConfig internet.ConnectionAuthenticator
|
authConfig internet.ConnectionAuthenticator
|
||||||
@ -34,7 +33,6 @@ func ListenTCP(ctx context.Context, address net.Address, port net.Port, addConn
|
|||||||
tcpSettings := networkSettings.(*Config)
|
tcpSettings := networkSettings.(*Config)
|
||||||
|
|
||||||
l := &TCPListener{
|
l := &TCPListener{
|
||||||
ctx: ctx,
|
|
||||||
listener: listener,
|
listener: listener,
|
||||||
config: tcpSettings,
|
config: tcpSettings,
|
||||||
addConn: addConn,
|
addConn: addConn,
|
||||||
@ -56,14 +54,14 @@ func ListenTCP(ctx context.Context, address net.Address, port net.Port, addConn
|
|||||||
}
|
}
|
||||||
l.authConfig = auth
|
l.authConfig = auth
|
||||||
}
|
}
|
||||||
go l.KeepAccepting()
|
go l.KeepAccepting(ctx)
|
||||||
return l, nil
|
return l, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v *TCPListener) KeepAccepting() {
|
func (v *TCPListener) KeepAccepting(ctx context.Context) {
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
case <-v.ctx.Done():
|
case <-ctx.Done():
|
||||||
return
|
return
|
||||||
default:
|
default:
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user