mirror of
https://github.com/valyala/fasthttp.git
synced 2026-06-16 16:17:38 +03:00
Always set Keepalive options
Different versions of Go have different defaults, so we just always set what the user configured.
This commit is contained in:
@@ -1445,6 +1445,7 @@ func (s *Server) getNextProto(c net.Conn) (proto string, err error) {
|
||||
// eventually go away.
|
||||
type tcpKeepaliveListener struct {
|
||||
*net.TCPListener
|
||||
keepalive bool
|
||||
keepalivePeriod time.Duration
|
||||
}
|
||||
|
||||
@@ -1453,7 +1454,7 @@ func (ln tcpKeepaliveListener) Accept() (net.Conn, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := tc.SetKeepAlive(true); err != nil {
|
||||
if err := tc.SetKeepAlive(ln.keepalive); err != nil {
|
||||
tc.Close() //nolint:errcheck
|
||||
return nil, err
|
||||
}
|
||||
@@ -1477,13 +1478,12 @@ func (s *Server) ListenAndServe(addr string) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if s.TCPKeepalive {
|
||||
if tcpln, ok := ln.(*net.TCPListener); ok {
|
||||
return s.Serve(tcpKeepaliveListener{
|
||||
TCPListener: tcpln,
|
||||
keepalivePeriod: s.TCPKeepalivePeriod,
|
||||
})
|
||||
}
|
||||
if tcpln, ok := ln.(*net.TCPListener); ok {
|
||||
return s.Serve(tcpKeepaliveListener{
|
||||
TCPListener: tcpln,
|
||||
keepalive: s.TCPKeepalive,
|
||||
keepalivePeriod: s.TCPKeepalivePeriod,
|
||||
})
|
||||
}
|
||||
return s.Serve(ln)
|
||||
}
|
||||
@@ -1523,13 +1523,12 @@ func (s *Server) ListenAndServeTLS(addr, certFile, keyFile string) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if s.TCPKeepalive {
|
||||
if tcpln, ok := ln.(*net.TCPListener); ok {
|
||||
return s.ServeTLS(tcpKeepaliveListener{
|
||||
TCPListener: tcpln,
|
||||
keepalivePeriod: s.TCPKeepalivePeriod,
|
||||
}, certFile, keyFile)
|
||||
}
|
||||
if tcpln, ok := ln.(*net.TCPListener); ok {
|
||||
return s.ServeTLS(tcpKeepaliveListener{
|
||||
TCPListener: tcpln,
|
||||
keepalive: s.TCPKeepalive,
|
||||
keepalivePeriod: s.TCPKeepalivePeriod,
|
||||
}, certFile, keyFile)
|
||||
}
|
||||
return s.ServeTLS(ln, certFile, keyFile)
|
||||
}
|
||||
@@ -1550,13 +1549,12 @@ func (s *Server) ListenAndServeTLSEmbed(addr string, certData, keyData []byte) e
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if s.TCPKeepalive {
|
||||
if tcpln, ok := ln.(*net.TCPListener); ok {
|
||||
return s.ServeTLSEmbed(tcpKeepaliveListener{
|
||||
TCPListener: tcpln,
|
||||
keepalivePeriod: s.TCPKeepalivePeriod,
|
||||
}, certData, keyData)
|
||||
}
|
||||
if tcpln, ok := ln.(*net.TCPListener); ok {
|
||||
return s.ServeTLSEmbed(tcpKeepaliveListener{
|
||||
TCPListener: tcpln,
|
||||
keepalive: s.TCPKeepalive,
|
||||
keepalivePeriod: s.TCPKeepalivePeriod,
|
||||
}, certData, keyData)
|
||||
}
|
||||
return s.ServeTLSEmbed(ln, certData, keyData)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user