Allow setting Read/Write/Idle timeouts

This commit is contained in:
DataHoarder 2022-06-09 17:49:40 +02:00
parent 517eb1652a
commit 953990eb8f
Signed by: DataHoarder
SSH key fingerprint: SHA256:OLTRf6Fl87G52SiR7sWLGNzlJt4WOX+tfI2yxo0z7xk
2 changed files with 17 additions and 10 deletions

View file

@ -27,12 +27,14 @@ type Server struct {
Debug bool
Handler RequestHandler
ReadTimeout time.Duration
WriteTimeout time.Duration
IdleTimeout time.Duration
extraHeadersMutex sync.RWMutex
extraHeaders map[string]string
}
const ServeStreamChunked = -1
type RequestContext interface {
GetPath() string
GetConnectionTime() time.Time
@ -94,8 +96,9 @@ func (server *Server) Serve() {
}
s := &fasthttp.Server{
ReadTimeout: 5 * time.Second,
IdleTimeout: 15 * time.Second,
ReadTimeout: server.ReadTimeout,
WriteTimeout: server.WriteTimeout,
IdleTimeout: server.IdleTimeout,
Handler: func(ctx *fasthttp.RequestCtx) {
server.Handler(handler(ctx))
},
@ -137,10 +140,11 @@ func (server *Server) Serve() {
}
s := &http.Server{
ReadTimeout: 5 * time.Second,
IdleTimeout: 15 * time.Second,
Addr: server.ListenAddress,
TLSConfig: server.TLSConfig.Config,
ReadTimeout: server.ReadTimeout,
WriteTimeout: server.WriteTimeout,
IdleTimeout: server.IdleTimeout,
Addr: server.ListenAddress,
TLSConfig: server.TLSConfig.Config,
Handler: http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
server.Handler(handler(w, r))
}),
@ -175,8 +179,11 @@ func (server *Server) Serve() {
s := &http3.Server{
Server: &http.Server{
Addr: server.ListenAddress,
TLSConfig: server.TLSConfig.QUICConfig,
ReadTimeout: server.ReadTimeout,
WriteTimeout: server.WriteTimeout,
IdleTimeout: server.IdleTimeout,
Addr: server.ListenAddress,
TLSConfig: server.TLSConfig.QUICConfig,
Handler: http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if server.Debug {
log.Print("Received HTTP/3 request")