// internal/server/server.go package server import ( "context" "fmt" "net/http" internallog "envoy-control-plane/internal/log" "envoy-control-plane/internal/pkg/api" ) // RunRESTServer starts the REST API server with appropriate middleware. func RunRESTServer(ctx context.Context, mux *http.ServeMux, restPort uint, webrootPath string, enableCertIssuance bool) error { log := internallog.LogFromContext(ctx) corsHandler := api.CORS(mux) restAddr := fmt.Sprintf(":%d", restPort) log.Infof("starting REST API server on %s", restAddr) if enableCertIssuance { log.Infof("ACME challenge path configured: %s/ -> %s", api.ACME_CALLENGE_WEB_PATH, webrootPath) } if err := http.ListenAndServe(restAddr, corsHandler); err != nil { return fmt.Errorf("REST server error: %w", err) } return nil } // NOTE: The function to start the gRPC xDS server (internal.RunServer) remains in your existing 'internal' package.