diff options
author | zeripath <art27@cantab.net> | 2021-05-04 22:48:31 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-04 22:48:31 +0100 |
commit | 47fd1569361a4cb474aa760cefa76c1158c5d944 (patch) | |
tree | eb8483b1bd146938cd89b271087b1bdef004b76e /modules/context | |
parent | ab77a24f18ae45248bd6c71778fe3bfacacf864f (diff) | |
download | gitea-47fd1569361a4cb474aa760cefa76c1158c5d944.tar.gz gitea-47fd1569361a4cb474aa760cefa76c1158c5d944.zip |
Use route rather than use thus reducing the number of stack frames (#15301)
Since the move to Chi the number of stack frames has proliferated somewhat catastrophically and we're up to 96 frames with multiple tests of the url outside of a trie which is inefficient.
This PR reduces the number of stack frames by 6 through careful use of Route, moves Captcha into its own router so that it only fires on Captcha routes, similarly for avatars and repo-avatars.
The robots.txt, / and apple-touch-icon.png are moved out of requiring Contexter.
It moves access logger higher in the stack frame because there is no reason why it can't be higher.
Extract from #15186
Contains #15292
Diffstat (limited to 'modules/context')
-rw-r--r-- | modules/context/context.go | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/modules/context/context.go b/modules/context/context.go index 523499aa61..750941b1d1 100644 --- a/modules/context/context.go +++ b/modules/context/context.go @@ -692,6 +692,7 @@ func Contexter() func(next http.Handler) http.Handler { log.Debug("Session ID: %s", ctx.Session.ID()) log.Debug("CSRF Token: %v", ctx.Data["CsrfToken"]) + // FIXME: do we really always need these setting? There should be someway to have to avoid having to always set these ctx.Data["IsLandingPageHome"] = setting.LandingPageURL == setting.LandingPageHome ctx.Data["IsLandingPageExplore"] = setting.LandingPageURL == setting.LandingPageExplore ctx.Data["IsLandingPageOrganizations"] = setting.LandingPageURL == setting.LandingPageOrganizations @@ -708,6 +709,11 @@ func Contexter() func(next http.Handler) http.Handler { ctx.Data["ManifestData"] = setting.ManifestData + ctx.Data["UnitWikiGlobalDisabled"] = models.UnitTypeWiki.UnitGlobalDisabled() + ctx.Data["UnitIssuesGlobalDisabled"] = models.UnitTypeIssues.UnitGlobalDisabled() + ctx.Data["UnitPullsGlobalDisabled"] = models.UnitTypePullRequests.UnitGlobalDisabled() + ctx.Data["UnitProjectsGlobalDisabled"] = models.UnitTypeProjects.UnitGlobalDisabled() + ctx.Data["i18n"] = locale ctx.Data["Tr"] = i18n.Tr ctx.Data["Lang"] = locale.Language() |