diff --git a/main.go b/main.go index 6e557c2..2fd7bfa 100644 --- a/main.go +++ b/main.go @@ -410,46 +410,46 @@ func main() { setupPages(cfg, r) r.GET("/github.com/:username/:repo/releases/*filepath", func(ctx context.Context, c *app.RequestContext) { - ctx = context.WithValue(ctx, "matcher", "release") + c.Set("matcher", "release") proxy.RoutingHandler(cfg, limiter, iplimiter)(ctx, c) }) r.GET("/github.com/:username/:repo/archive/*filepath", func(ctx context.Context, c *app.RequestContext) { - ctx = context.WithValue(ctx, "matcher", "release") + c.Set("matcher", "release") proxy.RoutingHandler(cfg, limiter, iplimiter)(ctx, c) }) r.GET("/github.com/:username/:repo/blob/*filepath", func(ctx context.Context, c *app.RequestContext) { - ctx = context.WithValue(ctx, "matcher", "blob") + c.Set("matcher", "blob") proxy.RoutingHandler(cfg, limiter, iplimiter)(ctx, c) }) r.GET("/github.com/:username/:repo/raw/*filepath", func(ctx context.Context, c *app.RequestContext) { - ctx = context.WithValue(ctx, "matcher", "raw") + c.Set("matcher", "raw") proxy.RoutingHandler(cfg, limiter, iplimiter)(ctx, c) }) r.GET("/github.com/:username/:repo/info/*filepath", func(ctx context.Context, c *app.RequestContext) { - ctx = context.WithValue(ctx, "matcher", "gitclone") + c.Set("matcher", "gitclone") proxy.RoutingHandler(cfg, limiter, iplimiter)(ctx, c) }) r.GET("/github.com/:username/:repo/git-upload-pack", func(ctx context.Context, c *app.RequestContext) { - ctx = context.WithValue(ctx, "matcher", "gitclone") + c.Set("matcher", "gitclone") proxy.RoutingHandler(cfg, limiter, iplimiter)(ctx, c) }) r.GET("/raw.githubusercontent.com/:username/:repo/*filepath", func(ctx context.Context, c *app.RequestContext) { - ctx = context.WithValue(ctx, "matcher", "raw") + c.Set("matcher", "raw") proxy.RoutingHandler(cfg, limiter, iplimiter)(ctx, c) }) r.GET("/gist.githubusercontent.com/:username/*filepath", func(ctx context.Context, c *app.RequestContext) { - ctx = context.WithValue(ctx, "matcher", "gist") + c.Set("matcher", "gist") proxy.NoRouteHandler(cfg, limiter, iplimiter)(ctx, c) }) r.GET("/api.github.com/repos/:username/:repo/*filepath", func(ctx context.Context, c *app.RequestContext) { - ctx = context.WithValue(ctx, "matcher", "api") + c.Set("matcher", "api") proxy.RoutingHandler(cfg, limiter, iplimiter)(ctx, c) }) diff --git a/proxy/handler.go b/proxy/handler.go index 9e1ced0..4b9b977 100644 --- a/proxy/handler.go +++ b/proxy/handler.go @@ -151,8 +151,7 @@ func NoRouteHandler(cfg *config.Config, limiter *rate.RateLimiter, iplimiter *ra func RoutingHandler(cfg *config.Config, limiter *rate.RateLimiter, iplimiter *rate.IPRateLimiter) app.HandlerFunc { return func(ctx context.Context, c *app.RequestContext) { // 输出所有传入参数 - logDebug("All Request Params: %v", c.Params) - logDebug("Context Params(Matcher): %v", ctx.Value("matcher")) + logDebug("Context Params(Matcher): %v", c.GetString("matcher")) // 限制访问频率 if cfg.RateLimit.Enabled { @@ -192,7 +191,7 @@ func RoutingHandler(cfg *config.Config, limiter *rate.RateLimiter, iplimiter *ra user = c.Param("user") repo = c.Param("repo") - matcher = ctx.Value("matcher").(string) + matcher = c.GetString("matcher") logInfo("%s %s %s %s %s Matched-Username: %s, Matched-Repo: %s", c.ClientIP(), c.Method(), rawPath, c.Request.Header.UserAgent(), c.Request.Header.GetProtocol(), user, repo) // dump log 记录详细信息 c.ClientIP(), c.Method(), rawPath,c.Request.Header.UserAgent(), c.Request.Header.GetProtocol(), full Header