1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2024-09-27 14:26:11 -04:00

refine user timeout

This commit is contained in:
Darien Raymond 2017-01-31 17:46:39 +01:00
parent ad7d98473f
commit 08b9778f05
No known key found for this signature in database
GPG Key ID: 7251FFA14BB18169
3 changed files with 13 additions and 16 deletions

View File

@ -1,6 +1,8 @@
package protocol
import (
"time"
"v2ray.com/core/common/errors"
)
@ -30,15 +32,18 @@ func (v *User) GetTypedAccount() (Account, error) {
}
func (v *User) GetSettings() UserSettings {
settings := UserSettings{
PayloadReadTimeout: 120,
}
if v.Level > 0 {
settings.PayloadReadTimeout = 0
settings := UserSettings{}
switch v.Level {
case 0:
settings.PayloadTimeout = time.Second * 30
case 1:
settings.PayloadTimeout = time.Minute * 2
default:
settings.PayloadTimeout = time.Minute * 5
}
return settings
}
type UserSettings struct {
PayloadReadTimeout uint32
PayloadTimeout time.Duration
}

View File

@ -158,11 +158,7 @@ func (s *Server) handleConnection(ctx context.Context, conn internet.Connection)
ctx, cancel := context.WithCancel(ctx)
userSettings := s.user.GetSettings()
timeout := time.Second * time.Duration(userSettings.PayloadReadTimeout)
if timeout == 0 {
timeout = time.Minute * 2
}
timer := signal.CancelAfterInactivity(ctx, cancel, timeout)
timer := signal.CancelAfterInactivity(ctx, cancel, userSettings.PayloadTimeout)
ray := s.packetDispatcher.DispatchToOutbound(ctx)
requestDone := signal.ExecuteAsync(func() error {

View File

@ -203,11 +203,7 @@ func (v *VMessInboundHandler) Process(ctx context.Context, network net.Network,
ctx = proxy.ContextWithDestination(ctx, request.Destination())
ctx = protocol.ContextWithUser(ctx, request.User)
ctx, cancel := context.WithCancel(ctx)
timeout := time.Second * time.Duration(userSettings.PayloadReadTimeout)
if timeout == 0 {
timeout = time.Minute * 2
}
timer := signal.CancelAfterInactivity(ctx, cancel, timeout)
timer := signal.CancelAfterInactivity(ctx, cancel, userSettings.PayloadTimeout)
ray := v.packetDispatcher.DispatchToOutbound(ctx)
input := ray.InboundInput()