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
path: root/app.go
diff options
context:
space:
mode:
authorAndrew Newdigate <andrew@gitlab.com>2019-08-30 21:52:51 +0300
committerAndrew Newdigate <andrew@gitlab.com>2019-08-30 21:52:51 +0300
commit9bd20c295647425bbb56431393c3502a81fa71f5 (patch)
tree050e5a3785b70cd85052080ad3c26602b868f5ce /app.go
parent4e80090046d58d8ddd80a38939262a957d6dea1f (diff)
Refactoring to reduce cyclometric complexity
Diffstat (limited to 'app.go')
-rw-r--r--app.go87
1 files changed, 53 insertions, 34 deletions
diff --git a/app.go b/app.go
index 59a47bfc..f5843be1 100644
--- a/app.go
+++ b/app.go
@@ -345,52 +345,22 @@ func (a *theApp) Run() {
// Listen for HTTP
for _, fd := range a.ListenHTTP {
- wg.Add(1)
- go func(fd uintptr) {
- defer wg.Done()
- err := listenAndServe(fd, httpHandler, a.HTTP2, nil, limiter)
- if err != nil {
- capturingFatal(err, errortracking.WithField("listener", "http"))
- }
- }(fd)
+ a.listenHTTPFD(&wg, fd, httpHandler, limiter)
}
// Listen for HTTPS
for _, fd := range a.ListenHTTPS {
- wg.Add(1)
- go func(fd uintptr) {
- defer wg.Done()
- err := listenAndServeTLS(fd, a.RootCertificate, a.RootKey, httpHandler, a.ServeTLS, a.InsecureCiphers, a.TLSMinVersion, a.TLSMaxVersion, a.HTTP2, limiter)
- if err != nil {
- capturingFatal(err, errortracking.WithField("listener", "https"))
- }
- }(fd)
+ a.listenHTTPSFD(&wg, fd, httpHandler, limiter)
}
// Listen for HTTP proxy requests
for _, fd := range a.ListenProxy {
- wg.Add(1)
- go func(fd uintptr) {
- defer wg.Done()
- err := listenAndServe(fd, proxyHandler, a.HTTP2, nil, limiter)
- if err != nil {
- capturingFatal(err, errortracking.WithField("listener", "http proxy"))
- }
- }(fd)
+ a.listenProxyFD(&wg, fd, proxyHandler, limiter)
}
// Serve metrics for Prometheus
if a.ListenMetrics != 0 {
- wg.Add(1)
- go func(fd uintptr) {
- defer wg.Done()
-
- handler := promhttp.Handler()
- err := listenAndServe(fd, handler, false, nil, nil)
- if err != nil {
- capturingFatal(err, errortracking.WithField("listener", "metrics"))
- }
- }(a.ListenMetrics)
+ a.listenMetricsFD(&wg, a.ListenMetrics)
}
a.listenAdminUnix(&wg)
@@ -401,6 +371,55 @@ func (a *theApp) Run() {
wg.Wait()
}
+func (a *theApp) listenHTTPFD(wg *sync.WaitGroup, fd uintptr, httpHandler http.Handler, limiter *netutil.Limiter) {
+ wg.Add(1)
+ go func() {
+ defer wg.Done()
+ err := listenAndServe(fd, httpHandler, a.HTTP2, nil, limiter)
+ if err != nil {
+ capturingFatal(err, errortracking.WithField("listener", "http"))
+ }
+ }()
+}
+
+func (a *theApp) listenHTTPSFD(wg *sync.WaitGroup, fd uintptr, httpHandler http.Handler, limiter *netutil.Limiter) {
+ wg.Add(1)
+ go func() {
+ defer wg.Done()
+ err := listenAndServeTLS(fd, a.RootCertificate, a.RootKey, httpHandler, a.ServeTLS, a.InsecureCiphers, a.TLSMinVersion, a.TLSMaxVersion, a.HTTP2, limiter)
+ if err != nil {
+ capturingFatal(err, errortracking.WithField("listener", "https"))
+ }
+ }()
+}
+
+func (a *theApp) listenProxyFD(wg *sync.WaitGroup, fd uintptr, proxyHandler http.Handler, limiter *netutil.Limiter) {
+ wg.Add(1)
+ go func() {
+ wg.Add(1)
+ go func(fd uintptr) {
+ defer wg.Done()
+ err := listenAndServe(fd, proxyHandler, a.HTTP2, nil, limiter)
+ if err != nil {
+ capturingFatal(err, errortracking.WithField("listener", "http proxy"))
+ }
+ }(fd)
+ }()
+}
+
+func (a *theApp) listenMetricsFD(wg *sync.WaitGroup, fd uintptr) {
+ wg.Add(1)
+ go func() {
+ defer wg.Done()
+
+ handler := promhttp.Handler()
+ err := listenAndServe(fd, handler, false, nil, nil)
+ if err != nil {
+ capturingFatal(err, errortracking.WithField("listener", "metrics"))
+ }
+ }()
+}
+
func (a *theApp) listenAdminUnix(wg *sync.WaitGroup) {
fd := a.ListenAdminUnix
if fd == 0 {