- if (!strcmp(name, "root"))
- cgit_root = xstrdup(value);
- else if (!strcmp(name, "root-title"))
- cgit_root_title = xstrdup(value);
- else if (!strcmp(name, "css"))
- cgit_css = xstrdup(value);
- else if (!strcmp(name, "logo"))
- cgit_logo = xstrdup(value);
- else if (!strcmp(name, "logo-link"))
- cgit_logo_link = xstrdup(value);
- else if (!strcmp(name, "virtual-root"))
- cgit_virtual_root = xstrdup(value);
-}
-
-void cgit_repo_config_cb(const char *name, const char *value)
-{
- if (!strcmp(name, "name"))
- cgit_repo_name = xstrdup(value);
- else if (!strcmp(name, "desc"))
- cgit_repo_desc = xstrdup(value);
- else if (!strcmp(name, "owner"))
- cgit_repo_owner = xstrdup(value);
-}
-
-void cgit_querystring_cb(const char *name, const char *value)
-{
- if (!strcmp(name,"r"))
- cgit_query_repo = xstrdup(value);
- else if (!strcmp(name, "p"))
- cgit_query_page = xstrdup(value);
- else if (!strcmp(name, "h")) {
- cgit_query_head = xstrdup(value);
- cgit_query_has_symref = 1;
- } else if (!strcmp(name, "id")) {
- cgit_query_sha1 = xstrdup(value);
- cgit_query_has_sha1 = 1;
+ if (!cgit_query_repo) {
+ item->name = xstrdup(fmt("%s/index.html", cgit_cache_root));
+ item->ttl = cgit_cache_root_ttl;
+ } else if (!cgit_query_page) {
+ item->name = xstrdup(fmt("%s/%s/index.html", cgit_cache_root,
+ cgit_query_repo));
+ item->ttl = cgit_cache_repo_ttl;
+ } else {
+ item->name = xstrdup(fmt("%s/%s/%s/%s.html", cgit_cache_root,
+ cgit_query_repo, cgit_query_page,
+ cache_safe_filename(cgit_querystring)));
+ if (cgit_query_has_symref)
+ item->ttl = cgit_cache_dynamic_ttl;
+ else if (cgit_query_has_sha1)
+ item->ttl = cgit_cache_static_ttl;
+ else
+ item->ttl = cgit_cache_repo_ttl;