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:
authorfeistel <6742251-feistel@users.noreply.gitlab.com>2021-05-31 20:25:01 +0300
committerfeistel <6742251-feistel@users.noreply.gitlab.com>2021-05-31 20:25:01 +0300
commit25cf40ee845c37087e43cd51c1aafee77f4477bb (patch)
tree388b840d15dc1cb4facc812dc36baafb5ee66b60
parent2dfe2a557825f5d9dcf9f7c35066eaa86ed4fd31 (diff)
make listernerConfig bigger and pass it as the only argument to listendAndServe as a function
-rw-r--r--app.go18
-rw-r--r--server.go26
2 files changed, 25 insertions, 19 deletions
diff --git a/app.go b/app.go
index 048c2116..0c8bf52f 100644
--- a/app.go
+++ b/app.go
@@ -421,7 +421,7 @@ func (a *theApp) listenHTTPFD(wg *sync.WaitGroup, fd uintptr, httpHandler http.H
wg.Add(1)
go func() {
defer wg.Done()
- if err := a.listenAndServe(fd, httpHandler, limiter, listenerConfig{}); err != nil {
+ if err := a.listenAndServe(listenerConfig{fd: fd, handler: httpHandler, limiter: limiter}); err != nil {
capturingFatal(err, errortracking.WithField("listener", request.SchemeHTTP))
}
}()
@@ -431,7 +431,12 @@ func (a *theApp) listenHTTPSFD(wg *sync.WaitGroup, fd uintptr, httpHandler http.
wg.Add(1)
go func() {
defer wg.Done()
- if err := a.listenAndServe(fd, httpHandler, limiter, listenerConfig{isTLS: true}); err != nil {
+ tlsConfig, err := a.TLSConfig()
+ if err != nil {
+ capturingFatal(err, errortracking.WithField("listener", request.SchemeHTTPS))
+ }
+
+ if err := a.listenAndServe(listenerConfig{fd: fd, handler: httpHandler, limiter: limiter, tlsConfig: tlsConfig}); err != nil {
capturingFatal(err, errortracking.WithField("listener", request.SchemeHTTPS))
}
}()
@@ -443,7 +448,7 @@ func (a *theApp) listenProxyFD(wg *sync.WaitGroup, fd uintptr, proxyHandler http
wg.Add(1)
go func(fd uintptr) {
defer wg.Done()
- if err := a.listenAndServe(fd, proxyHandler, limiter, listenerConfig{}); err != nil {
+ if err := a.listenAndServe(listenerConfig{fd: fd, handler: proxyHandler, limiter: limiter}); err != nil {
capturingFatal(err, errortracking.WithField("listener", "http proxy"))
}
}(fd)
@@ -455,7 +460,12 @@ func (a *theApp) ListenHTTPSProxyv2FD(wg *sync.WaitGroup, fd uintptr, httpHandle
wg.Add(1)
go func() {
defer wg.Done()
- if err := a.listenAndServe(fd, httpHandler, limiter, listenerConfig{isTLS: true, isProxyV2: true}); err != nil {
+ tlsConfig, err := a.TLSConfig()
+ if err != nil {
+ capturingFatal(err, errortracking.WithField("listener", request.SchemeHTTPS))
+ }
+
+ if err := a.listenAndServe(listenerConfig{fd: fd, handler: httpHandler, limiter: limiter, tlsConfig: tlsConfig, isProxyV2: true}); err != nil {
capturingFatal(err, errortracking.WithField("listener", request.SchemeHTTPS))
}
}()
diff --git a/server.go b/server.go
index c459766e..afc80d13 100644
--- a/server.go
+++ b/server.go
@@ -25,8 +25,11 @@ type keepAliveSetter interface {
}
type listenerConfig struct {
- isTLS bool
+ fd uintptr
isProxyV2 bool
+ tlsConfig *tls.Config
+ limiter *netutil.Limiter
+ handler http.Handler
}
func (ln *keepAliveListener) Accept() (net.Conn, error) {
@@ -42,16 +45,9 @@ func (ln *keepAliveListener) Accept() (net.Conn, error) {
return conn, nil
}
-func (a *theApp) listenAndServe(fd uintptr, handler http.Handler, limiter *netutil.Limiter, config listenerConfig) error {
- var tlsConfig *tls.Config
- if config.isTLS {
- var err error
- if tlsConfig, err = a.TLSConfig(); err != nil {
- return err
- }
- }
+func (a *theApp) listenAndServe(config listenerConfig) error {
// create server
- server := &http.Server{Handler: context.ClearHandler(handler), TLSConfig: tlsConfig}
+ server := &http.Server{Handler: context.ClearHandler(config.handler), TLSConfig: config.tlsConfig}
if a.config.General.HTTP2 {
err := http2.ConfigureServer(server, &http2.Server{})
@@ -60,13 +56,13 @@ func (a *theApp) listenAndServe(fd uintptr, handler http.Handler, limiter *netut
}
}
- l, err := net.FileListener(os.NewFile(fd, "[socket]"))
+ l, err := net.FileListener(os.NewFile(config.fd, "[socket]"))
if err != nil {
- return fmt.Errorf("failed to listen on FD %d: %v", fd, err)
+ return fmt.Errorf("failed to listen on FD %d: %v", config.fd, err)
}
- if limiter != nil {
- l = netutil.SharedLimitListener(l, limiter)
+ if config.limiter != nil {
+ l = netutil.SharedLimitListener(l, config.limiter)
}
l = &keepAliveListener{l}
@@ -80,7 +76,7 @@ func (a *theApp) listenAndServe(fd uintptr, handler http.Handler, limiter *netut
}
}
- if tlsConfig != nil {
+ if config.tlsConfig != nil {
l = tls.NewListener(l, server.TLSConfig)
}