summaryrefslogtreecommitdiffabout
path: root/cache.c
Unidiff
Diffstat (limited to 'cache.c') (more/less context) (ignore whitespace changes)
-rw-r--r--cache.c22
1 files changed, 0 insertions, 22 deletions
diff --git a/cache.c b/cache.c
index 91b89a6..1ff1251 100644
--- a/cache.c
+++ b/cache.c
@@ -1,50 +1,28 @@
1/* cache.c: cache management 1/* cache.c: cache management
2 * 2 *
3 * Copyright (C) 2006 Lars Hjemli 3 * Copyright (C) 2006 Lars Hjemli
4 * 4 *
5 * Licensed under GNU General Public License v2 5 * Licensed under GNU General Public License v2
6 * (see COPYING for full license text) 6 * (see COPYING for full license text)
7 */ 7 */
8 8
9#include "cgit.h" 9#include "cgit.h"
10 10
11const int NOLOCK = -1; 11const int NOLOCK = -1;
12 12
13void cache_prepare(struct cacheitem *item)
14{
15 if (!cgit_query_repo) {
16 item->name = xstrdup(fmt("%s/index.html", cgit_cache_root));
17 item->ttl = cgit_cache_root_ttl;
18 } else if (!cgit_query_page) {
19 item->name = xstrdup(fmt("%s/%s/index.html", cgit_cache_root,
20 cgit_query_repo));
21 item->ttl = cgit_cache_repo_ttl;
22 } else {
23 item->name = xstrdup(fmt("%s/%s/%s/%s.html", cgit_cache_root,
24 cgit_query_repo, cgit_query_page,
25 cgit_querystring));
26 if (cgit_query_has_symref)
27 item->ttl = cgit_cache_dynamic_ttl;
28 else if (cgit_query_has_sha1)
29 item->ttl = cgit_cache_static_ttl;
30 else
31 item->ttl = cgit_cache_repo_ttl;
32 }
33}
34
35int cache_exist(struct cacheitem *item) 13int cache_exist(struct cacheitem *item)
36{ 14{
37 if (stat(item->name, &item->st)) { 15 if (stat(item->name, &item->st)) {
38 item->st.st_mtime = 0; 16 item->st.st_mtime = 0;
39 return 0; 17 return 0;
40 } 18 }
41 return 1; 19 return 1;
42} 20}
43 21
44int cache_create_dirs() 22int cache_create_dirs()
45{ 23{
46 char *path; 24 char *path;
47 25
48 path = fmt("%s", cgit_cache_root); 26 path = fmt("%s", cgit_cache_root);
49 if (mkdir(path, S_IRWXU) && errno!=EEXIST) 27 if (mkdir(path, S_IRWXU) && errno!=EEXIST)
50 return 0; 28 return 0;