12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- // Copyright 2016 The Gitea Authors. All rights reserved.
- // SPDX-License-Identifier: MIT
-
- package cmd
-
- import (
- "net"
- "net/http"
- "net/http/fcgi"
- "strings"
-
- "code.gitea.io/gitea/modules/graceful"
- "code.gitea.io/gitea/modules/log"
- "code.gitea.io/gitea/modules/setting"
- )
-
- func runHTTP(network, listenAddr, name string, m http.Handler, useProxyProtocol bool) error {
- return graceful.HTTPListenAndServe(network, listenAddr, name, m, useProxyProtocol)
- }
-
- // NoHTTPRedirector tells our cleanup routine that we will not be using a fallback http redirector
- func NoHTTPRedirector() {
- graceful.GetManager().InformCleanup()
- }
-
- // NoMainListener tells our cleanup routine that we will not be using a possibly provided listener
- // for our main HTTP/HTTPS service
- func NoMainListener() {
- graceful.GetManager().InformCleanup()
- }
-
- // NoInstallListener tells our cleanup routine that we will not be using a possibly provided listener
- // for our install HTTP/HTTPS service
- func NoInstallListener() {
- graceful.GetManager().InformCleanup()
- }
-
- func runFCGI(network, listenAddr, name string, m http.Handler, useProxyProtocol bool) error {
- // This needs to handle stdin as fcgi point
- fcgiServer := graceful.NewServer(network, listenAddr, name)
-
- err := fcgiServer.ListenAndServe(func(listener net.Listener) error {
- return fcgi.Serve(listener, http.HandlerFunc(func(resp http.ResponseWriter, req *http.Request) {
- if setting.AppSubURL != "" {
- req.URL.Path = strings.TrimPrefix(req.URL.Path, setting.AppSubURL)
- }
- m.ServeHTTP(resp, req)
- }))
- }, useProxyProtocol)
- if err != nil {
- log.Fatal("Failed to start FCGI main server: %v", err)
- }
- log.Info("FCGI Listener: %s Closed", listenAddr)
- return err
- }
|