1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2025-10-18 23:14:04 -04:00

allow customized timeout in socks protocol

This commit is contained in:
v2ray
2016-07-11 15:46:18 +02:00
parent 96c6012013
commit 566adec285
3 changed files with 7 additions and 1 deletions

View File

@@ -14,6 +14,7 @@ type Config struct {
Accounts map[string]string Accounts map[string]string
Address v2net.Address Address v2net.Address
UDPEnabled bool UDPEnabled bool
Timeout int
} }
func (this *Config) HasAccount(username, password string) bool { func (this *Config) HasAccount(username, password string) bool {

View File

@@ -27,6 +27,7 @@ func (this *Config) UnmarshalJSON(data []byte) error {
Accounts []*SocksAccount `json:"accounts"` Accounts []*SocksAccount `json:"accounts"`
UDP bool `json:"udp"` UDP bool `json:"udp"`
Host *v2net.AddressJson `json:"ip"` Host *v2net.AddressJson `json:"ip"`
Timeout int `json:"timeout"`
} }
rawConfig := new(SocksConfig) rawConfig := new(SocksConfig)
@@ -55,6 +56,10 @@ func (this *Config) UnmarshalJSON(data []byte) error {
} else { } else {
this.Address = v2net.LocalHostIP this.Address = v2net.LocalHostIP
} }
if rawConfig.Timeout >= 0 {
this.Timeout = rawConfig.Timeout
}
return nil return nil
} }

View File

@@ -96,7 +96,7 @@ func (this *Server) Start() error {
func (this *Server) handleConnection(connection internet.Connection) { func (this *Server) handleConnection(connection internet.Connection) {
defer connection.Close() defer connection.Close()
timedReader := v2net.NewTimeOutReader(120, connection) timedReader := v2net.NewTimeOutReader(this.config.Timeout, connection)
reader := v2io.NewBufferedReader(timedReader) reader := v2io.NewBufferedReader(timedReader)
defer reader.Release() defer reader.Release()