Bläddra i källkod

allow customized timeout in socks protocol

v2ray 9 år sedan
förälder
incheckning
566adec285
3 ändrade filer med 7 tillägg och 1 borttagningar
  1. 1 0
      proxy/socks/config.go
  2. 5 0
      proxy/socks/config_json.go
  3. 1 1
      proxy/socks/server.go

+ 1 - 0
proxy/socks/config.go

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

+ 5 - 0
proxy/socks/config_json.go

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

+ 1 - 1
proxy/socks/server.go

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