Better value calculation, prevents the zero HeartbeatTimeout problem.

This commit is contained in:
NI
2019-08-10 15:41:22 +08:00
parent 6b524593b6
commit 2f670d625a

View File

@@ -79,13 +79,19 @@ func (s Server) WithDefault() Server {
readTimeout := s.maxDur(initialTimeout, 3*time.Second) readTimeout := s.maxDur(initialTimeout, 3*time.Second)
readTimeout = s.maxDur(s.ReadTimeout, readTimeout) readTimeout = s.maxDur(s.ReadTimeout, readTimeout)
heartBeatTimeout := s.minDur(s.HeartbeatTimeout, readTimeout/2)
if heartBeatTimeout <= 0 {
heartBeatTimeout = readTimeout / 2
}
return Server{ return Server{
ListenInterface: s.defaultListenInterface(), ListenInterface: s.defaultListenInterface(),
ListenPort: s.defaultListenPort(), ListenPort: s.defaultListenPort(),
InitialTimeout: initialTimeout, InitialTimeout: initialTimeout,
ReadTimeout: readTimeout, ReadTimeout: readTimeout,
WriteTimeout: s.maxDur(s.WriteTimeout, 3*time.Second), WriteTimeout: s.maxDur(s.WriteTimeout, 3*time.Second),
HeartbeatTimeout: s.minDur(s.HeartbeatTimeout, readTimeout/2), HeartbeatTimeout: heartBeatTimeout,
ReadDelay: s.ReadDelay, ReadDelay: s.ReadDelay,
WriteDelay: s.WriteDelay, WriteDelay: s.WriteDelay,
TLSCertificateFile: s.TLSCertificateFile, TLSCertificateFile: s.TLSCertificateFile,