package server import ( "errors" "fmt" "net/http" "time" ) const ( readTimeout = 10 * time.Second writeTimeout = 10 * time.Second maxHeaderBytes = 1 << 20 // 1 MiB ) func (s *Server) serveUntilShutdown() { listenAddr := fmt.Sprintf(":%d", s.params.Config.Port) s.httpServer = &http.Server{ Addr: listenAddr, Handler: s, MaxHeaderBytes: maxHeaderBytes, ReadTimeout: readTimeout, WriteTimeout: writeTimeout, } s.SetupRoutes() s.log.Info("http begin listen", "listenaddr", listenAddr, "version", s.params.Globals.Version, "buildarch", s.params.Globals.Buildarch, ) err := s.httpServer.ListenAndServe() if err != nil && !errors.Is(err, http.ErrServerClosed) { s.log.Error("listen error", "error", err) if s.cancelFunc != nil { s.cancelFunc() } } }