]> git.itanic.dy.fi Git - rrdd/blobdiff - config.c
onewire_parser.c: Fix compiler warnings about string lengths
[rrdd] / config.c
index 68939bdc499edded4a32346ecfd1356f70f6c513..83242033d6958c329d51c219c92c29c683839a2d 100644 (file)
--- a/config.c
+++ b/config.c
@@ -129,11 +129,11 @@ static int parse_images(config_setting_t *list, struct rrd_database *db)
                db->images[i]->width            = width;
                db->images[i]->height           = height;
                strncpy(db->images[i]->timestart, timestart,
-                       sizeof(db->images[i]->timestart));
+                       sizeof(db->images[i]->timestart) - 1);
                strncpy(db->images[i]->timeend, timeend,
-                       sizeof(db->images[i]->timeend));
+                       sizeof(db->images[i]->timeend) - 1);
                strncpy(db->images[i]->imageformat, imageformat,
-                       sizeof(db->images[i]->imageformat));
+                       sizeof(db->images[i]->imageformat) - 1);
                db->images[i]->options          = options;
                db->images[i]->text_lead        = text_lead;
                db->images[i]->text             = text;
@@ -232,6 +232,7 @@ static int parse_database(config_setting_t *rrd, struct rrd_database *db)
        config_setting_t *list, *str_list;
        const char *name, *parser = NULL, *filename, **parser_data;
        const char **pre_draw_cmd;
+       const char **post_draw_cmd;
        const char *logfile = NULL, *logfile_timestamp_fmt = NULL;
 
        if (!config_setting_lookup_string(rrd, "name", &name)) {
@@ -242,10 +243,9 @@ static int parse_database(config_setting_t *rrd, struct rrd_database *db)
        pr_info("parsing database %s\n", name);
        db->name = strdup(name);
 
-       if (!config_setting_lookup_string(rrd, "filename", &filename)) {
+       if (!config_setting_lookup_string(rrd, "filename", &filename))
                pr_err("Database %s does not contain filename\n", db->name);
-               return -1;
-       }
+
        db->filename = strdup(filename);
 
        if (!config_setting_lookup_int(rrd, "interval", &db->interval)) {
@@ -274,6 +274,12 @@ static int parse_database(config_setting_t *rrd, struct rrd_database *db)
                db->pre_draw_cmd = (char *const *)pre_draw_cmd;
        }
 
+       str_list = config_setting_get_member(rrd, "post_draw_cmd");
+       if (str_list) {
+               read_strings_from_list(str_list, &post_draw_cmd);
+               db->post_draw_cmd = (char *const *)post_draw_cmd;
+       }
+
        config_setting_lookup_string(rrd, "logfile", &logfile);
        if (logfile)
                db->logfile = strdup(logfile);