]> git.itanic.dy.fi Git - rrdd/blobdiff - config.c
Parsers: Implement framework for registering and querying parsers
[rrdd] / config.c
index 2e28c3337ab34ac793a9dda2d8e8f3f3a66fb227..939a8c6c0aac6a8c638fa776d95b1621ae30d509 100644 (file)
--- a/config.c
+++ b/config.c
@@ -145,38 +145,6 @@ static int parse_images(config_setting_t *list, struct rrd_database *db)
        return 0;
 }
 
-static int (*str_to_parser(const char *str))(char *rrd_data, const char **parser_data)
-{
-       if (!str)
-               return NULL;
-
-       if (!strcmp(str, "cpu"))
-               return cpu_parser;
-
-       if (!strcmp(str, "mem"))
-               return mem_parser;
-
-       if (!strcmp(str, "cpu_mem"))
-               return cpu_mem_parser;
-
-       if (!strcmp(str, "digitemp"))
-               return digitemp_parser;
-
-       if (!strcmp(str, "digitemp_mod"))
-               return digitemp_parser_mod;
-
-       if (!strcmp(str, "script"))
-               return script_parser;
-
-       if (!strcmp(str, "netstats"))
-               return netstats_parser;
-
-       if (!strcmp(str, "onewire"))
-               return onewire_parser;
-
-       return NULL;
-}
-
 static int parse_data_sources(config_setting_t *rrd, struct rrd_database *db)
 {
        config_setting_t *list, *group;
@@ -286,7 +254,7 @@ static int parse_database(config_setting_t *rrd, struct rrd_database *db)
 
        /* Parser is not a mandatory parameter */
        config_setting_lookup_string(rrd, "parser", &parser);
-       db->parse = str_to_parser(parser);
+       db->parser = str_to_parser(parser);
 
        list = config_setting_get_member(rrd, "image");
        parse_images(list, db);