static void log_db_parser_reload_database(LogDBParser *self) { struct stat st; if (stat(self->db_file, &st) < 0) { msg_error("Error stating pattern database file, no automatic reload will be performed", evt_tag_str("error", g_strerror(errno)), NULL); return; } if ((self->db_file_inode == st.st_ino && self->db_file_mtime == st.st_mtime)) { return; } self->db_file_inode = st.st_ino; self->db_file_mtime = st.st_mtime; if (!pattern_db_reload_ruleset(self->db, self->cfg, self->db_file)) { msg_error("Error reloading pattern database, no automatic reload will be performed", NULL); } else { /* free the old database if the new was loaded successfully */ msg_notice("Log pattern database reloaded", evt_tag_str("file", self->db_file), evt_tag_str("version", pattern_db_get_ruleset_version(self->db)), evt_tag_str("pub_date", pattern_db_get_ruleset_pub_date(self->db)), NULL); } }
void create_pattern_db(gchar *pdb) { patterndb = pattern_db_new(); messages = g_ptr_array_new(); pattern_db_set_emit_func(patterndb, test_emit_func, NULL); g_file_open_tmp("patterndbXXXXXX.xml", &filename, NULL); g_file_set_contents(filename, pdb, strlen(pdb), NULL); if (pattern_db_reload_ruleset(patterndb, configuration, filename)) { if (!g_str_equal(pattern_db_get_ruleset_version(patterndb), "3")) test_fail("Invalid version '%s'\n", pattern_db_get_ruleset_version(patterndb)); if (!g_str_equal(pattern_db_get_ruleset_pub_date(patterndb), "2010-02-22")) test_fail("Invalid pub_date '%s'\n", pattern_db_get_ruleset_pub_date(patterndb)); } else { fail = TRUE; } }
static void _load_pattern_db_from_string(gchar *pdb) { patterndb = pattern_db_new(); messages = g_ptr_array_new(); pattern_db_set_emit_func(patterndb, _emit_func, NULL); g_file_open_tmp("patterndbXXXXXX.xml", &filename, NULL); g_file_set_contents(filename, pdb, strlen(pdb), NULL); assert_true(pattern_db_reload_ruleset(patterndb, configuration, filename), "Error loading ruleset [[[%s]]]", pdb); assert_string(pattern_db_get_ruleset_version(patterndb), "3", "Invalid version"); assert_string(pattern_db_get_ruleset_pub_date(patterndb), "2010-02-22", "Invalid pubdate"); }