diff --git a/httputils/server.go b/httputils/server.go index 3baa5d1..3c6f59d 100644 --- a/httputils/server.go +++ b/httputils/server.go @@ -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") diff --git a/httputils/fileserver.go b/httputils/stream.go similarity index 100% rename from httputils/fileserver.go rename to httputils/stream.go