author | Lars Hjemli <hjemli@gmail.com> | 2008-04-14 21:07:52 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2008-04-14 21:07:52 (UTC) |
commit | 78031f92b0ff064efa82065a3cf6020c1256a5fd (patch) (side-by-side diff) | |
tree | 44c8d9925dc57149f22f15f1ec06ffd4c5c0a24e | |
parent | e9a7042b5b44c6af2c7dc91eabed732d92278218 (diff) | |
download | cgit-78031f92b0ff064efa82065a3cf6020c1256a5fd.zip cgit-78031f92b0ff064efa82065a3cf6020c1256a5fd.tar.gz cgit-78031f92b0ff064efa82065a3cf6020c1256a5fd.tar.bz2 |
Fix search in repo index even if caching is enabled
The repository index page needed to include the querystring in the cache
filename.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r-- | cgit.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -150,65 +150,67 @@ static void prepare_context(struct cgit_context *ctx) ctx->cfg.cache_root_ttl = 5; ctx->cfg.cache_static_ttl = -1; ctx->cfg.css = "/cgit.css"; ctx->cfg.logo = "/git-logo.png"; ctx->cfg.max_commit_count = 50; ctx->cfg.max_lock_attempts = 5; ctx->cfg.max_msg_len = 60; ctx->cfg.max_repodesc_len = 60; ctx->cfg.module_link = "./?repo=%s&page=commit&id=%s"; ctx->cfg.renamelimit = -1; ctx->cfg.robots = "index, nofollow"; ctx->cfg.root_title = "Git repository browser"; ctx->cfg.script_name = CGIT_SCRIPT_NAME; ctx->page.mimetype = "text/html"; ctx->page.charset = PAGE_ENCODING; ctx->page.filename = NULL; } static int cgit_prepare_cache(struct cacheitem *item) { if (!ctx.repo && ctx.qry.repo) { ctx.page.title = fmt("%s - %s", ctx.cfg.root_title, "Bad request"); cgit_print_http_headers(&ctx); cgit_print_docstart(&ctx); cgit_print_pageheader(&ctx); cgit_print_error(fmt("Unknown repo: %s", ctx.qry.repo)); cgit_print_docend(); return 0; } if (!ctx.repo) { - item->name = xstrdup(fmt("%s/index.html", ctx.cfg.cache_root)); + item->name = xstrdup(fmt("%s/index.%s.html", + ctx.cfg.cache_root, + cache_safe_filename(ctx.qry.raw))); item->ttl = ctx.cfg.cache_root_ttl; return 1; } if (!ctx.qry.page) { item->name = xstrdup(fmt("%s/%s/index.%s.html", ctx.cfg.cache_root, cache_safe_filename(ctx.repo->url), cache_safe_filename(ctx.qry.raw))); item->ttl = ctx.cfg.cache_repo_ttl; } else { item->name = xstrdup(fmt("%s/%s/%s/%s.html", ctx.cfg.cache_root, cache_safe_filename(ctx.repo->url), ctx.qry.page, cache_safe_filename(ctx.qry.raw))); if (ctx.qry.has_symref) item->ttl = ctx.cfg.cache_dynamic_ttl; else if (ctx.qry.has_sha1) item->ttl = ctx.cfg.cache_static_ttl; else item->ttl = ctx.cfg.cache_repo_ttl; } return 1; } struct refmatch { char *req_ref; char *first_ref; int match; }; int find_current_ref(const char *refname, const unsigned char *sha1, int flags, void *cb_data) |