From 2f670d625a109979d083704cdbf4ac56858a1524 Mon Sep 17 00:00:00 2001 From: NI Date: Sat, 10 Aug 2019 15:41:22 +0800 Subject: [PATCH] Better value calculation, prevents the zero HeartbeatTimeout problem. --- application/configuration/config.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/application/configuration/config.go b/application/configuration/config.go index 4a20257..abd378b 100644 --- a/application/configuration/config.go +++ b/application/configuration/config.go @@ -79,13 +79,19 @@ func (s Server) WithDefault() Server { readTimeout := s.maxDur(initialTimeout, 3*time.Second) readTimeout = s.maxDur(s.ReadTimeout, readTimeout) + heartBeatTimeout := s.minDur(s.HeartbeatTimeout, readTimeout/2) + + if heartBeatTimeout <= 0 { + heartBeatTimeout = readTimeout / 2 + } + return Server{ ListenInterface: s.defaultListenInterface(), ListenPort: s.defaultListenPort(), InitialTimeout: initialTimeout, ReadTimeout: readTimeout, WriteTimeout: s.maxDur(s.WriteTimeout, 3*time.Second), - HeartbeatTimeout: s.minDur(s.HeartbeatTimeout, readTimeout/2), + HeartbeatTimeout: heartBeatTimeout, ReadDelay: s.ReadDelay, WriteDelay: s.WriteDelay, TLSCertificateFile: s.TLSCertificateFile,