From a3f60cea18be241f9bf1c15aa6edfc315ac1b134 Mon Sep 17 00:00:00 2001 From: video-prize-ranch Date: Tue, 28 Mar 2023 17:45:02 -0400 Subject: [PATCH] Return final and use cache key var --- server/upstream/redirects.go | 18 ++++++++++-------- server/upstream/upstream.go | 4 +--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/server/upstream/redirects.go b/server/upstream/redirects.go index 295212f..f53917a 100644 --- a/server/upstream/redirects.go +++ b/server/upstream/redirects.go @@ -58,12 +58,12 @@ func (o *Options) getRedirects(giteaClient *gitea.Client, redirectsCache cache.S }) } } - _ = redirectsCache.Set(o.TargetOwner+"/"+o.TargetRepo+"/"+o.TargetBranch, redirects, redirectsCacheTimeout) + _ = redirectsCache.Set(cacheKey, redirects, redirectsCacheTimeout) } return redirects } -func (o *Options) matchRedirects(ctx *context.Context, giteaClient *gitea.Client, redirects []Redirect, redirectsCache cache.SetGetKey) { +func (o *Options) matchRedirects(ctx *context.Context, giteaClient *gitea.Client, redirects []Redirect, redirectsCache cache.SetGetKey) (final bool) { if len(redirects) > 0 { for _, redirect := range redirects { reqUrl := ctx.Req.RequestURI @@ -74,10 +74,10 @@ func (o *Options) matchRedirects(ctx *context.Context, giteaClient *gitea.Client if redirect.StatusCode == 200 { o.TargetPath = redirect.To o.Upstream(ctx, giteaClient, redirectsCache) - return + return true } else { ctx.Redirect(redirect.To, redirect.StatusCode) - return + return true } } @@ -90,23 +90,25 @@ func (o *Options) matchRedirects(ctx *context.Context, giteaClient *gitea.Client if redirect.StatusCode == 200 { o.TargetPath = splatUrl o.Upstream(ctx, giteaClient, redirectsCache) - return + return true } else { ctx.Redirect(splatUrl, redirect.StatusCode) - return + return true } } else { // do rewrite if status code is 200 if redirect.StatusCode == 200 { o.TargetPath = redirect.To o.Upstream(ctx, giteaClient, redirectsCache) - return + return true } else { ctx.Redirect(redirect.To, redirect.StatusCode) - return + return true } } } } } + + return false } \ No newline at end of file diff --git a/server/upstream/upstream.go b/server/upstream/upstream.go index 137781d..afba8d4 100644 --- a/server/upstream/upstream.go +++ b/server/upstream/upstream.go @@ -140,9 +140,7 @@ func (o *Options) Upstream(ctx *context.Context, giteaClient *gitea.Client, redi // Get and match redirects redirects := o.getRedirects(giteaClient, redirectsCache) - o.matchRedirects(ctx, giteaClient, redirects, redirectsCache) - - return false + return o.matchRedirects(ctx, giteaClient, redirects, redirectsCache) } // handle unexpected client errors