From 17a42a0c119b69882a88c13650fb135dbb9edaba Mon Sep 17 00:00:00 2001 From: Nicola Murino Date: Thu, 4 Feb 2021 09:06:41 +0100 Subject: [PATCH] webdav: add compression support Fixes #295 --- webdavd/server.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/webdavd/server.go b/webdavd/server.go index 0bdc7c72..ada7bd60 100644 --- a/webdavd/server.go +++ b/webdavd/server.go @@ -14,6 +14,7 @@ import ( "strings" "time" + "github.com/go-chi/chi/middleware" "github.com/rs/cors" "github.com/rs/xid" "golang.org/x/net/webdav" @@ -37,9 +38,10 @@ type webDavServer struct { } func (s *webDavServer) listenAndServe() error { + compressor := middleware.NewCompressor(5, "text/*") + handler := compressor.Handler(s) httpServer := &http.Server{ Addr: s.binding.GetAddress(), - Handler: s, ReadHeaderTimeout: 30 * time.Second, IdleTimeout: 120 * time.Second, MaxHeaderBytes: 1 << 16, // 64KB @@ -55,8 +57,9 @@ func (s *webDavServer) listenAndServe() error { AllowCredentials: s.config.Cors.AllowCredentials, OptionsPassthrough: true, }) - httpServer.Handler = c.Handler(s) + handler = c.Handler(handler) } + httpServer.Handler = handler if certMgr != nil && s.binding.EnableHTTPS { serviceStatus.Bindings = append(serviceStatus.Bindings, s.binding) httpServer.TLSConfig = &tls.Config{