X-Git-Url: https://git.octo.it/?p=collection4.git;a=blobdiff_plain;f=src%2Fgraph_config.c;h=5d275f0d6b4c4f5a1d8eee79796581078f038471;hp=94dd440edc75d25a9242b6cfc4d0f511ecee2549;hb=e3fb09073a64cc051c11c4a1bdcec493f937b764;hpb=0ab3085f89e64eecd67d3179ea87f0463e918a10 diff --git a/src/graph_config.c b/src/graph_config.c index 94dd440..5d275f0 100644 --- a/src/graph_config.c +++ b/src/graph_config.c @@ -1,3 +1,26 @@ +/** + * collection4 - graph_config.c + * Copyright (C) 2010 Florian octo Forster + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA + * + * Authors: + * Florian octo Forster + **/ + #include #include #include @@ -7,13 +30,23 @@ #include #include "graph_config.h" +#include "graph.h" #include "graph_list.h" #include "oconfig.h" #include "common.h" +#include "data_provider.h" + +#ifndef CONFIGFILE +# define CONFIGFILE "/etc/collection.conf" +#endif + +#ifndef CACHEFILE +# define CACHEFILE "/tmp/collection4.json" +#endif -#define CONFIG_FILE "/usr/lib/cgi-bin/octo/collection.conf" +static time_t last_read_mtime = 0; -time_t last_read_mtime = 0; +static char *cache_file = NULL; static int dispatch_config (const oconfig_item_t *ci) /* {{{ */ { @@ -26,6 +59,10 @@ static int dispatch_config (const oconfig_item_t *ci) /* {{{ */ child = ci->children + i; if (strcasecmp ("Graph", child->key) == 0) graph_config_add (child); + else if (strcasecmp ("DataProvider", child->key) == 0) + data_provider_config (child); + else if (strcasecmp ("CacheFile", child->key) == 0) + graph_config_get_string (child, &cache_file); else { DEBUG ("Unknown config option: %s", child->key); @@ -39,7 +76,7 @@ static int internal_read_config (void) /* {{{ */ { oconfig_item_t *ci; - ci = oconfig_parse_file (CONFIG_FILE); + ci = oconfig_parse_file (CONFIGFILE); if (ci == NULL) return (-1); @@ -58,7 +95,7 @@ static time_t get_config_mtime (void) /* {{{ */ int status; memset (&statbuf, 0, sizeof (statbuf)); - status = stat (CONFIG_FILE, &statbuf); + status = stat (CONFIGFILE, &statbuf); if (status != 0) return (0); @@ -113,4 +150,11 @@ int graph_config_get_bool (const oconfig_item_t *ci, /* {{{ */ return (0); } /* }}} int graph_config_get_bool */ +const char *graph_config_get_cache_file (void) /* {{{ */ +{ + if (cache_file == NULL) + return (CACHEFILE); + return (cache_file); +} /* }}} char graph_config_get_cache_file */ + /* vim: set sw=2 sts=2 et fdm=marker : */