updated copyright end date to 2014
[ppastats.git] / src / fcache.c
index 89c66d4..6ba8c83 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011-2012 jeanfi@gmail.com
+ * Copyright (C) 2011-2014 jeanfi@gmail.com
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License as
@@ -59,12 +59,15 @@ static char *key_to_path(const char *key)
        char *path;
        const char *dir;
 
+       if (!key || !*key || *key != '/')
+               return NULL;
+
        dir = get_cache_dir();
        if (!dir)
                return NULL;
 
-       path = malloc(strlen(dir) + 1 + strlen(key) + strlen("/data.json") + 1);
-       sprintf(path, "%s%s/data.json", dir, key);
+       path = malloc(strlen(dir) + 1 + strlen(key) + strlen("/data") + 1);
+       sprintf(path, "%s%s.data", dir, key);
 
        return path;
 }
@@ -74,22 +77,24 @@ char *fcache_get(const char *key)
        char *path, *content;
 
        path = key_to_path(key);
-       if (!path)
+       if (!path) {
+               log_err(_("file cache, invalid key: %s"), key);
                return NULL;
+       }
 
        content = file_get_content(path);
-       
+
        if (content)
                log_debug(_("file cache hit %s"), key);
        else
                log_debug(_("file cache miss %s %s"), key, path);
-       
+
        free(path);
-       
+
        return content;
 }
-       
-void fcache_put(const char *key, char *value)
+
+void fcache_put(const char *key, const char *value)
 {
        char *path, *dir, *tmp;
        FILE *f;