Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-pages.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKassio Borges <kassioborgesm@gmail.com>2023-05-17 18:02:06 +0300
committerKassio Borges <kassioborgesm@gmail.com>2023-05-17 18:02:06 +0300
commit89c333a866ceef7d6d970999a13778804d7a45cc (patch)
tree16d28a55611ed608b9a422f1d0cd19cb2b26d55a
parentf86f076800e10bac97c9d7cde04ba38300a2aa63 (diff)
Ensure to use configured timeouts in http.Server
-rw-r--r--.golangci.yml4
-rw-r--r--app.go4
-rw-r--r--server.go14
3 files changed, 11 insertions, 11 deletions
diff --git a/.golangci.yml b/.golangci.yml
index dd8bf738..b79af490 100644
--- a/.golangci.yml
+++ b/.golangci.yml
@@ -114,10 +114,6 @@ issues:
- path: internal/fixture/fixtures\.go
linters:
- gosec
- - path: app.go
- text: "G112"
- linters:
- - gosec
# Maximum issues count per one linter. Set to 0 to disable. Default is 50.
max-issues-per-linter: 0
diff --git a/app.go b/app.go
index 4fe08c9b..de650a93 100644
--- a/app.go
+++ b/app.go
@@ -306,7 +306,7 @@ func (a *theApp) Run() error {
}
func (a *theApp) listen(eg *errgroup.Group, addr string, h http.Handler, errTrackingOpt errortracking.CaptureOption, opts ...option) *http.Server {
- server := &http.Server{}
+ server := newHTTPServer(a)
eg.Go(func() error {
if err := a.listenAndServe(server, addr, h, opts...); err != nil && !errors.Is(err, http.ErrServerClosed) {
errortracking.CaptureErrWithStackTrace(err, errTrackingOpt)
@@ -320,7 +320,7 @@ func (a *theApp) listen(eg *errgroup.Group, addr string, h http.Handler, errTrac
}
func (a *theApp) listenMetrics(eg *errgroup.Group, config cfg.Metrics) *http.Server {
- server := &http.Server{}
+ server := newHTTPServer(a)
eg.Go(func() error {
l, err := net.Listen("tcp", config.Address)
if err != nil {
diff --git a/server.go b/server.go
index 0c0c3c8d..9d667157 100644
--- a/server.go
+++ b/server.go
@@ -22,6 +22,15 @@ type listenerConfig struct {
limiter *netutil.Limiter
}
+func newHTTPServer(a *theApp) *http.Server {
+ return &http.Server{
+ ReadTimeout: a.config.Server.ReadTimeout,
+ ReadHeaderTimeout: a.config.Server.ReadHeaderTimeout,
+ WriteTimeout: a.config.Server.WriteTimeout,
+ ErrorLog: stdlog.New(logrus.StandardLogger().Writer(), "", 0),
+ }
+}
+
func (a *theApp) listenAndServe(server *http.Server, addr string, h http.Handler, opts ...option) error {
config := &listenerConfig{}
@@ -33,17 +42,12 @@ func (a *theApp) listenAndServe(server *http.Server, addr string, h http.Handler
server.Handler = h
server.TLSConfig = config.tlsConfig
- server.ErrorLog = stdlog.New(logrus.StandardLogger().Writer(), "", 0)
// ensure http2 is enabled even if TLSConfig is not null
// See https://github.com/golang/go/blob/97cee43c93cfccded197cd281f0a5885cdb605b4/src/net/http/server.go#L2947-L2954
if server.TLSConfig != nil {
server.TLSConfig.NextProtos = append(server.TLSConfig.NextProtos, "h2")
}
- server.ReadTimeout = a.config.Server.ReadTimeout
- server.ReadHeaderTimeout = a.config.Server.ReadHeaderTimeout
- server.WriteTimeout = a.config.Server.WriteTimeout
-
lc := net.ListenConfig{
KeepAlive: a.config.Server.ListenKeepAlive,
}