提交 9bb08396 编写于 作者: I itcode

Fix the problem of long connection for more than 30 seconds and disconnection of the server

上级 629f2856
......@@ -60,6 +60,7 @@ var (
allowPorts string
maxPoolCount int64
maxPortsPerClient int64
vhostHttpTimeout int64
)
func init() {
......@@ -85,6 +86,7 @@ func init() {
rootCmd.PersistentFlags().Int64VarP(&authTimeout, "auth_timeout", "", 900, "auth timeout")
rootCmd.PersistentFlags().StringVarP(&subDomainHost, "subdomain_host", "", "", "subdomain host")
rootCmd.PersistentFlags().Int64VarP(&maxPortsPerClient, "max_ports_per_client", "", 0, "max ports per client")
rootCmd.PersistentFlags().Int64VarP(&vhostHttpTimeout, "vhost_http_timeout", "", 30, "vhost http timeout")
}
var rootCmd = &cobra.Command{
......@@ -177,6 +179,7 @@ func parseServerCommonCfgFromCmd() (err error) {
g.GlbServerCfg.AuthTimeout = authTimeout
g.GlbServerCfg.SubDomainHost = subDomainHost
g.GlbServerCfg.MaxPortsPerClient = maxPortsPerClient
g.GlbServerCfg.VhostHttpTimeout = vhostHttpTimeout
return
}
......
......@@ -66,3 +66,6 @@ subdomain_host = frps.com
# if tcp stream multiplexing is used, default is true
tcp_mux = true
# if long connection for more than 30 seconds and disconnection of the server ,fix the pars .
vhost_http_timeout = 30
\ No newline at end of file
......@@ -73,6 +73,7 @@ type ServerCommonConf struct {
MaxPortsPerClient int64 `json:"max_ports_per_client"`
HeartBeatTimeout int64 `json:"heart_beat_timeout"`
UserConnTimeout int64 `json:"user_conn_timeout"`
VhostHttpTimeout int64 `json:"vhost_http_timeout "`
}
func GetDefaultServerConf() *ServerCommonConf {
......@@ -102,6 +103,7 @@ func GetDefaultServerConf() *ServerCommonConf {
MaxPortsPerClient: 0,
HeartBeatTimeout: 90,
UserConnTimeout: 10,
VhostHttpTimeout: 30,
}
}
......@@ -300,6 +302,15 @@ func UnmarshalServerConfFromIni(defaultCfg *ServerCommonConf, content string) (c
cfg.HeartBeatTimeout = v
}
}
if tmpStr, ok = conf.Get("common", "vhost_http_timeout"); ok {
v, errRet := strconv.ParseInt(tmpStr, 10, 64)
if errRet != nil {
err = fmt.Errorf("Parse conf error: vhost_http_timeout is incorrect")
return
} else {
cfg.VhostHttpTimeout = v
}
}
return
}
......
......@@ -25,13 +25,14 @@ import (
"sync"
"time"
"github.com/fatedier/frp/g"
frpLog "github.com/fatedier/frp/utils/log"
"github.com/fatedier/golib/pool"
)
var (
responseHeaderTimeout = time.Duration(30) * time.Second
responseHeaderTimeout = time.Duration(g.GlbServerCfg.VhostHttpTimeout) * time.Second
ErrRouterConfigConflict = errors.New("router config conflict")
ErrNoDomain = errors.New("no such domain")
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册