diff options
author | Jaime Martinez <jmartinez@gitlab.com> | 2022-02-01 06:07:30 +0300 |
---|---|---|
committer | Jaime Martinez <jmartinez@gitlab.com> | 2022-02-01 06:07:30 +0300 |
commit | be03f220910a2188d824f81612221db78f74ff2a (patch) | |
tree | fd9419ebc3cee2e8fbf3ee48674c0cf567092ae3 /app.go | |
parent | 1ecb7b42dc488d94ea958b120b544f680e866716 (diff) | |
parent | 066ac20ffe98a7cf3e3d35e3a489459dec12f157 (diff) |
Merge branch 'remove/file-descriptors' into 'master'
refactor: stop passing file descriptors around and use net.Listen directly
See merge request gitlab-org/gitlab-pages!667
Diffstat (limited to 'app.go')
-rw-r--r-- | app.go | 30 |
1 files changed, 15 insertions, 15 deletions
@@ -294,9 +294,9 @@ func (a *theApp) Run() { var servers []*http.Server // Listen for HTTP - for _, fd := range a.config.Listeners.HTTP { + for _, addr := range a.config.ListenHTTPStrings.Split() { s := a.listen( - fd, + addr, httpHandler, errortracking.WithField("listener", request.SchemeHTTP), withLimiter(limiter), @@ -305,14 +305,14 @@ func (a *theApp) Run() { } // Listen for HTTPS - for _, fd := range a.config.Listeners.HTTPS { + for _, addr := range a.config.ListenHTTPSStrings.Split() { tlsConfig, err := a.TLSConfig() if err != nil { log.WithError(err).Fatal("Unable to retrieve tls config") } s := a.listen( - fd, + addr, httpHandler, errortracking.WithField("listener", request.SchemeHTTPS), withLimiter(limiter), @@ -322,9 +322,9 @@ func (a *theApp) Run() { } // Listen for HTTP proxy requests - for _, fd := range a.config.Listeners.Proxy { + for _, addr := range a.config.ListenProxyStrings.Split() { s := a.listen( - fd, + addr, proxyHandler, errortracking.WithField("listener", "http proxy"), withLimiter(limiter), @@ -333,14 +333,14 @@ func (a *theApp) Run() { } // Listen for HTTPS PROXYv2 requests - for _, fd := range a.config.Listeners.HTTPSProxyv2 { + for _, addr := range a.config.ListenHTTPSProxyv2Strings.Split() { tlsConfig, err := a.TLSConfig() if err != nil { log.WithError(err).Fatal("Unable to retrieve tls config") } s := a.listen( - fd, + addr, httpHandler, errortracking.WithField("listener", "https proxy"), withLimiter(limiter), @@ -351,8 +351,8 @@ func (a *theApp) Run() { } // Serve metrics for Prometheus - if a.config.ListenMetrics != 0 { - a.listenMetricsFD(&wg, a.config.ListenMetrics) + if a.config.General.MetricsAddress != "" { + a.listenMetrics(&wg, a.config.General.MetricsAddress) } sigChan := make(chan os.Signal, 1) @@ -378,10 +378,10 @@ func (a *theApp) Run() { } } -func (a *theApp) listen(fd uintptr, h http.Handler, errTrackingOpt errortracking.CaptureOption, opts ...option) *http.Server { +func (a *theApp) listen(addr string, h http.Handler, errTrackingOpt errortracking.CaptureOption, opts ...option) *http.Server { server := &http.Server{} go func() { - if err := a.listenAndServe(server, fd, h, opts...); err != nil && !errors.Is(err, http.ErrServerClosed) { + if err := a.listenAndServe(server, addr, h, opts...); err != nil && !errors.Is(err, http.ErrServerClosed) { capturingFatal(err, errTrackingOpt) } }() @@ -389,14 +389,14 @@ func (a *theApp) listen(fd uintptr, h http.Handler, errTrackingOpt errortracking return server } -func (a *theApp) listenMetricsFD(wg *sync.WaitGroup, fd uintptr) { +func (a *theApp) listenMetrics(wg *sync.WaitGroup, addr string) { wg.Add(1) go func() { defer wg.Done() - l, err := net.FileListener(os.NewFile(fd, "[socket]")) + l, err := net.Listen("tcp", addr) if err != nil { - capturingFatal(fmt.Errorf("failed to listen on FD %d: %w", fd, err), errortracking.WithField("listener", "metrics")) + capturingFatal(fmt.Errorf("failed to listen on addr %s: %w", addr, err), errortracking.WithField("listener", "metrics")) } monitoringOpts := []monitoring.Option{ |