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;
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)) {
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)) {
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);